Blog PlanningPME

Suivez l'actualité de votre logiciel de planning

Faites communiquer PlanningPME avec Excel

Saviez-vous que PlanningPME et Excel peuvent communiquer ensemble ?

 

Vous utilisez Excel pour créer votre planning mais vous aimeriez avoir un véritable outil de planning simple et performant partageable en réseau ?

PlanningPME est la solution qu'il vous faut pour gérer plus facilement votre planning et celui de vos collaborateurs mais aussi pour résoudre le problème de lecture seule sous Excel si problématique au quotidien.

 

Voici quelques avantages liés à l'intégration de PlanningPME avec Excel :

- Vous souhaitez transférez vos informations contenues dans Excel vers PlanningPME ?  Que se soit les ressources, clients, projets ou encore les tâches, toutes ces informations peuvent être récupérées dans PlanningPME via la synchonisation des données. 

- Vous souhaitez analyser votre gestion du temps ? Faites-le grâce aux tableaux croisés dynamiques d'Excel 

-  Vous avez besoin d'exportez certaines informations présentes dans le planning ? Utilisez les filtres dans PlanningPME puis exportez vos données vers Excel pour réaliser les tableaux de bord dont vous avez besoin

 

Pour en savoir plus sur votre l'intégration entre votre planning et excel, consultez notre site internet dès à présent ! 

Notre équipe de conseillers est également à votre disposition pour plus d'informations alors n'hésitez pas à nous contacter.

 

 

Pilotez PlanningPME

Depuis votre système d'informations, vous pouvez piloter PlanningPME pour qu'il affiche une tâche avec vos propres informations. Il vous suffit de préciser le libellé de la tâche, les dates et heures mais aussi le numéro de client pour que PlanningPME puisse rechercher le client correspondant dans la base de données et l'afficher; les champs supplémentaires peuvent aussi être renseignés.

Une fois toutes ces informations précisées, vous devez appeler la méthode DisplayWindow et non Save pour que PlanningPME affiche la tâche, ce sera alors à l'utilisateur de sauver la tâche en modifiant ou non les informations de cette dernière.

Dim d As DoTask
 Dim f As Field
 Set d = New DoTask
 Set f = New Field
 d.Label = "nouvelle tâche"
 d.AllDay = True
 d.BeginningDate = "15/9/2011"
 d.EndDate = "15/9/2011"
 d.Custumer.Number = "4500"
 
 
 Set f = New Field
 f.Value = "first"
 d.Fields.Add f
 
 Set f = New Field
 f.Value = "second"
 d.Fields.Add f

 d.DisplayWindow

comptabilité logiciel

Vous recherchez un logiciel:

  • Pour gérer les absences des employés?
  • Pour comptabiliser les heures travaillées de vos employées?
  • Un logiciel de planning qui se synchronise avec votre logiciel de comptabilité?

Pour répondre à ces besoins, Target Skills propose son logiciel de formation: PlanningPME

En quelques années, PlanningPME est donc devenu

l'un des leader en tant que logiciel de planning s'interfaçant avec la plupart des logiciels de paye!

Avantages

-Sous un même planning, comptabiliser les heures de travail et d'absence de tous les employés


-Envoyez directement les informations du planning vers votre logiciel de comptabilité

 

Outlook

Outlook est un logiciel bureautique incontournable dans la vie professionnelle de toute entreprise. En effet, devenu un véritable outil d'organisation et de communication, Outlook contribue fortement à l’ efficacité collective.  

8PlanningPME, l’un des leader sur le marché des les logiciels de planning est également une véritable réussite : 

 Tous les modules offerts par cette application vous permettent de contrôler l’activité, les absences et le fichier clients 

Et dans le but d’accroître sa puissance, PlanningPME est compatible avec Outlook ! 

Vous avez donc la possibilité de synchroniser vos tâches et rendez-vous de PlanningPME vers Outlook et de Outlook vers PlanningPME

 

 

Version d'évaluation gratuite à télécharger

 

 

 

Synchronisation entre PlanningPME et Outlook

Synchronisation bidirectionnelle entre PlanningPME et Outlook!

 

Il est désormais possible de synchroniser vos tâches :

  • depuis PlanningPME vers Outlook
  • depuis Outlook vers PlanningPME

Exemple :

Création d'un rendez-vous dans Outlook :

Visualisation dans PlanningPME :

Toutes vos tâches seront automatiquement synchronisées vers PlanningPME !!!

Accédez directement à la documentation relative à la synchronisation avec Outlook

 

 

Arnaud CHARRE

importer vos clients depuis excel

Vous trouverez ici un script qui vous permettra d'importer vos clients à partir d'un fichier Excel vers PlaningPME.

Voici le fichier Excel : Clients.xls (14,00 kb)

Et le script que vous devrez sauvegarder dans un fichier .vbs

'Connection to PlanningPME
'Register PlanningPME.dll before -> c:\windows\system32\regsvr32 PlanningPME.dll
Set ppme = CreateObject("PlanningPME.Application")
ppme.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Documentation\Intégrations\Excel\client\Import Clients\PPME.pp"
ppme.Connect

'Connection to Excel
Set Connection = CreateObject("ADODB.Connection")
'VB
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Documentation\Intégrations\Excel\client\Import Clients\Clients.xls;Extended Properties=" & Chr(34) & "Excel 8.0;HDR=Yes;IMEX=1" & Chr(34)

Set rs = CreateObject("ADODB.Recordset")

Set search = CreateObject("ADODB.Recordset")

rs.Open "select * from [defa0006$]", Connection

'Parse Excel file and create custumer if not exist

While rs.EOF = False

    Set c = ppme.CreateItem(4) 'PpDoCustumer
   
    ' CUSTOMER_ID non vide
    If IsNull(rs.Fields("ctcodcom")) = False Then
   
        c.Number = rs.Fields("ctcodcom")
   
        ' search the custumer in planningpme
        search.Open "select IDX_CLIENT from CLIENT where NUMERO_CLIENT='" & c.Number & "'", ppme.Connection
        ' if exist load the object
        If search.EOF = False Then
            c.Key = search.Fields("IDX_CLIENT")
            c.Load2
        End If
   
        'Create Custumer with PlanningPME object
        If IsNull(rs.Fields("Ctragsoc")) = False Then
            c.Company = rs.Fields("Ctragsoc")
        End If
       
        If IsNull(rs.Fields("Ctloccli")) = False Then
            c.City = rs.Fields("Ctloccli")
        End If
       
        If IsNull(rs.Fields("Cttelcli")) = False Then
            c.Phone = rs.Fields("Cttelcli")
        End If

        c.Save
       
        search.Close
       
    End If
   
rs.MoveNext

Wend

 

Plugin


PlanningPME vous permet de créer un plugin

Pourquoi faire un plugin PlanningPME ?

  • Pour pouvoir insérer des contrôles (bouton) dans l’interface de PlanningPME et y associer des actions.
  • Pour déclencher des actions à certains moments dans PlanningPME (exemple : Ajout, modification ou suppression d’une tâche)

Qui peut faire un plug-in PlanningPME ?

  • Un développeur maitrisant Visual Basic ou Visual C++ ou C#

1 – Enregistrez la PlanningPME.dll

C:\windows\system32\regsvr32.dll PlanningPME.dll

2 – Créer le plugin avec Visual Basic

Choisir le nom de votre objet, ici Project1

Choisissez le nom de votre classe

ce sera donc: Projet1.plugin

Référencez la dll PlanningPME dans votre projet

Insérez votre code

Const BN_CLICKED = 0
Const WM_COMMAND = 273

Option Explicit

Implements PlanningPMEPlugin

Private Sub PlanningPMEPlugin_InitializeControls(ByVal Controls As PlanningPMEControls)

    Dim Control As PlanningPMEControl
    Set Control = New PlanningPMEControl
   
    Control.Caption = "My Button update Task"
    Control.ID = 5000
    Control.x = 350
    Control.y = 50
    Control.Height = 20
    Control.Width = 150
    Control.Type = PpControlPushButton
    Control.When = PpWhenUpdate
    Control.Destination = PpDestinationDoTask
   
    Controls.Add Control
   
End Sub

Private Sub PlanningPMEPlugin_OnEvent(ByVal Context As PlanningPMEContext)
    If Context.Context = PpContextMessage Then
        If Context.Loword = 5000 And Context.message = WM_COMMAND And Context.Hiword = BN_CLICKED Then
            MsgBox "BN_CLICKED task Key = " & Context.Key
        End If
    End If
  
    If Context.Context = PpContextTrigger Then
        If Context.When = PpWhenInsert Then
            MsgBox "Trigger Insert task Key = " & Context.Key
        End If
        If Context.When = PpWhenUpdate Then
            MsgBox "Trigger Update task Key = " & Context.Key
        End If
    End If
   
End Sub

Compilez votre projet

3 - Enregistrez votre plugin

C:\windows\system32\regsvr32.dll plugin.dll

4 – Indiquez à PlanningPME dans la base de registre (HKEY_LOCAL_MACHINE) le nom de votre plugin

5 – Lancez PlanningPME

Vous aurez un nouveau bouton dans la tâche

 

Synchronisation des clients avec Batigest

Voici le script qui vous permettra de synchroniser les clients à partir du logiciel Batigest en base Access vers PlanningPME.

'Connection to PlanningPME
'Register PlanningPME.dll before -> c:\windows\system32\regsvr32 PlanningPME.dll
Set ppme = CreateObject("PlanningPME.Application")
ppme.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Documentation\Intégrations\Access\BATIGEST\Batigest2.pp"
ppme.Connect

'Connection to Excel
Set Connection = CreateObject("ADODB.Connection")
'VB
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Documentation\Intégrations\Access\BATIGEST\BatigArt.mdb"

Set rs = CreateObject("ADODB.Recordset")

Set search = CreateObject("ADODB.Recordset")

rs.Open "select Code, Nom, Civilite, Interloc, Adr, SuiteAdr, CP, Ville, Pays, Tel, Portable, Fax, EMail, Compte, ModeReg, Domiciliation,T VAIntracom from [Client]", Connection

'Parse Excel file and create custumer if not exist

While rs.EOF = False

    Set c = ppme.CreateItem(4) 'PpDoCustumer
   
    ' CUSTOMER_ID non vide
    If IsNull(rs.Fields("Code")) = False Then
   
        c.Number = rs.Fields("Code")
       
        ' search the custumer in planningpme
        search.Open "select IDX_CLIENT from CLIENT where NUMERO_CLIENT='" & c.Number & "'", ppme.Connection
        ' if exist load the object
        If search.EOF = False Then
            c.Key = search.Fields("IDX_CLIENT")
            c.Load2
        End If
   
        'Create Custumer with PlanningPME object
        If IsNull(rs.Fields("NOM")) = False Then
            c.Company = rs.Fields("NOM") & " " & rs.Fields("Civilite")
        End If
       
        If IsNull(rs.Fields("Interloc")) = False Then
           c.LastName = rs.Fields("Interloc")
        End If
         
           c.FirstName = ""
                 
        If IsNull(rs.Fields("Adr")) = False Then
            c.Adress = rs.Fields("Adr") & "" & rs.Fields("SuiteAdr")
        End If
       
        If IsNull(rs.Fields("CP")) = False Then
            c.ZIP = rs.Fields("CP")
        End If
              
        If IsNull(rs.Fields("Ville")) = False Then
            c.City = rs.Fields("Ville")
        End If
       
        If IsNull(rs.Fields("PAYS")) = False Then
            c.Country = rs.Fields("PAYS")
        End If

        If IsNull(rs.Fields("EMAIL")) = False Then
            c.Email = rs.Fields("EMAIL")
        End If
       
        If IsNull(rs.Fields("Tel")) = False Then
            c.Phone = rs.Fields("Tel")
        End If

        If IsNull(rs.Fields("Portable")) = False Then
            c.Mobile = rs.Fields("Portable")
        End If
       
        If IsNull(rs.Fields("FAX")) = False Then
            c.Fax = rs.Fields("FAX")
        End If
       
        'Declaration AddFields
        Compte = rs.Fields("Compte")
        ModeReg = rs.Fields("ModeReg")
        Domiciliation = rs.Fields("Domiciliation")
        TVA = rs.Fields("TVAIntracom")
               
        If c.Fields.Count > 3 Then
            c.Fields.Item(0).Value = Compte
            c.Fields.Item(1).Value = ModeReg
            c.Fields.Item(2).Value = Domiciliation
            c.Fields.Item(3).Value = TVA
        End If
                   
           
        c.Save
       
        search.Close
       
    End If
   
rs.MoveNext

Wend

 

Synchronisation des clients avec EBP

Voici le script qui vous permettra de synchroniser les clients à partir du logiciel EBP en base Access vers PlanningPME.

'Connection to PlanningPME
'Register PlanningPME.dll before -> c:\windows\system32\regsvr32 PlanningPME.dll
Set ppme = CreateObject("PlanningPME.Application")
ppme.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Documentation\Intégrations\Access\EBP - CLients\PPME.pp"
ppme.Connect

'Connection to Base Access
Set Connection = CreateObject("ADODB.Connection")
'VB
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\Documentation\Intégrations\Access\EBP - CLients\Societededemonstration0500.mdb"

Set rs = CreateObject("ADODB.Recordset")

Set search = CreateObject("ADODB.Recordset")

rs.Open "select clID, clNom, clAdr1, clCP, clVille, clPays, clTel, clMob, clFax, clMail, clWeb, clNomBnq, clCpteBqe, clNII, clIBAN from [Client]", Connection

'Parse Access file and create customer if not exist

While rs.EOF = False

    Set c = ppme.CreateItem(4) 'PpDoCustumer
   
    ' CUSTOMER_ID non vide
    If IsNull(rs.Fields("clID")) = False Then
   
        c.Number = rs.Fields("clID")
       
        ' search the custumer in planningpme
        search.Open "select IDX_CLIENT from CLIENT where NUMERO_CLIENT='" & c.Number & "'", ppme.Connection
        ' if exist load the object
        If search.EOF = False Then
            c.Key = search.Fields("IDX_CLIENT")
            c.Load2
        End If
   
        'Create Custumer with PlanningPME object
        If IsNull(rs.Fields("clNom")) = False Then
            c.Company = rs.Fields("clNom")
        End If
      
              
        If IsNull(rs.Fields("clAdr1")) = False Then
            c.Adress = rs.Fields("clAdr1")
        End If
       
        If IsNull(rs.Fields("clCP")) = False Then
            c.ZIP = rs.Fields("clCP")
        End If
              
        If IsNull(rs.Fields("clVille")) = False Then
            c.City = rs.Fields("clVille")
        End If
       
        If IsNull(rs.Fields("clPays")) = False Then
            c.Country = rs.Fields("clPays")
        End If

        If IsNull(rs.Fields("clMail")) = False Then
            c.Email = rs.Fields("clMail")
        End If
       
        If IsNull(rs.Fields("clTel")) = False Then
            c.Phone = rs.Fields("clTel")
        End If

        If IsNull(rs.Fields("clMob")) = False Then
            c.Mobile = rs.Fields("clMob")
        End If
       
        If IsNull(rs.Fields("clFax")) = False Then
            c.Fax = rs.Fields("clFax")
        End If
       
  If c.Fields.Count > 3 Then
               
  If IsNull(rs.Fields("clCpteBqe")) = False Then
    c.Fields.Item(0).Value = rs.Fields("clCpteBqe")
  End if

  If IsNull(rs.Fields("clNomBnq")) = False Then
    c.Fields.Item(1).Value = rs.Fields("clNomBnq")
  End if

  If IsNull(rs.Fields("clNII")) = False Then
    c.Fields.Item(2).Value = rs.Fields("clNII")
  End if

  If IsNull(rs.Fields("clIBAN")) = False Then
    c.Fields.Item(3).Value = rs.Fields("clIBAN")
  End if

  End if         
           
        c.Save
       
        search.Close
       
    End If
   
rs.MoveNext

Wend

 

Intégration l'ERP Navision

L’intégration se fait en trois phases:

1ère phase: Envoi des ordres de Navision vers PlanningPME

Des ordres sont ainsi créés sur le planning au niveau d’une ressource de type «A planifier».

Les informations suivantes sont envoyées:

  • N° Ordre
  • Nom du chantier
  • Adresse du chantier
  • Type de prestation
  • Date de début
  • Durée
  • Date de fin


2ème phase: Affectation des ordres
Les ordres sont affectés manuellement à des ressources ou à des équipes depuis PlanningPME.

3ème phase: Récupération des détails relatifs à chaque ordre

Les ordres sont alors mis à jour de PlanningPME vers Navision avec les informations
suivantes
:

  • N° Projet
  • N° Salarié
  • Date de début
  • Durée
  • Date de fin

Des triggers sont utilisés pour les différentes actions suivantes:

  • Mise à jour des données «Clients» de Navision vers PlanningPME
  • Mise à jour des données «Ressources Humaines» et «Ressources Matérielles» de Navision vers PlanningPME
  • Création d’ordres dans une ressource «A planifier» de PlanningPME à partir des ordres Navision
  • Mise à jour des informations des tables «Ordres»d ans Navision après affectation des ordres aux ressources sur le planning
  • Création automatique d’un ordre dans Navision lors d’un «Copier/Coller» d’une tâche dans PlanningPME
  • Mise à jour du statut de l’ordre à «Annulé» dans Navision quand une tâche est supprimée dans PlanningPME

Lectures recommandées sur ce thème :

  • Intégration

PlanningPME version Outlook

Dans quelques semaines, nos développeurs et commerciaux seront fiers de vous présenter…

  

PlanningPME version « Outlook »

  PlanningPME et Outlook seront compatibles !    

D’ici peu, chaque utilisateur de PlanningPME pourra synchroniser des tâches de PlanningPME vers Outlook mais aussi de Outlook vers PlanningPME !

 

Pour recevoir, en avant-première, la version PlanningPME-Outlook, merci de nous envoyer vos coordonnées vià le formulaire :http://www.planningpme.fr/infostelechargements.asp?FTP_FILE=instppme.exe

A très bientôt

L'équipe PlanningPME

Lecture recommandée sur ce thème:

Intégration de PlanningPME avec l'ERP Silog

 

L'intégration sera effectuée à l'aide des triggers sous SQL-Server pour avoir une mise à jour instantanée des informations.

  • Les ordres de fabrications créés dans SILOG sont créés dans PlanningPME  (trigger insert_lctc)
  • Les ordres de fabrications vont être planifiés dans PlanningPME  et mis à jour dans SILOG (trigger update_chantier_date) 
  • Les ordres de fabrications supprimés dans SILOG sont aussi supprimés dans PlanningPME  (trigger delete_lctc)

Attention : l’utilisateur au niveau SQL-Server doit avoir accès aux 2 bases de données PlanningPME et SILOG

BASE SILOG

 

CREATE TRIGGER [insert_lctc] ON [dbo].[LCTC]
FOR INSERT

AS

/* LCTC */
declare @TempsPoste float
declare @CodeLancement varchar(50)
declare @TypeRubrique varchar(50)
declare @CodeRubrique varchar(50)
declare @Phase varchar(50)

/* LCTE */
declare @NumeroAffaireFils varchar(50)

/* COMC */
declare @DateFinProdPlusTard datetime
declare @CodeArticleprestto varchar(50)
declare @NoCommande  varchar(50)

/* COME */

declare @CodeClient varchar(50)
declare @VarAlphaUtil2 varchar(50)
declare @NumeroAffairePere varchar(30)


/* autre variable */
declare @IdxRessourceAPlanifier int

declare @DateHeureDebut datetime
declare @DateHeureFin datetime
declare @HeureDebut datetime
declare @HeureFin datetime
declare @DateDebut datetime
declare @DateFin datetime
declare @IdxChantier int


/* on ne traite que les opérations */
if ( @TypeRubrique <> 'O' )
begin
 return
end


select @Phase=inserted.Phase, @TempsPoste=inserted.TempsPoste, @CodeLancement=inserted.CodeLancement, @TypeRubrique=inserted.TypeRubrique, @CodeRubrique=inserted.CodeRubrique From inserted

/* Recherche des infos dans LCTE */
SELECT @NumeroAffaireFils=[NumeroAffaire] FROM [LCTE] WHERE [CodeLancement]=@CodeLancement

if ( @NumeroAffaireFils = '' )
begin
 return
end

/* Recherche des infos dans COMC */
SELECT @DateFinProdPlusTard=[DateFinProdPlusTard], @CodeArticleprestto=[CodeArticleprestto], @NoCommande=[NoCommande] FROM [COMC] WHERE [NumeroAffaireFils]=@NumeroAffaireFils

if ( @NoCommande = '' )
begin
 return
end

/* Recherche des infos dans COME */
SELECT @CodeClient=[CodeClient], @VarAlphaUtil2=[VarAlphaUtil2], @NumeroAffairePere=[NumeroAffairePere] FROM [COME] WHERE [NoCommande]=@NoCommande

if ( @NumeroAffairePere = '' )
begin
 return
end

/* Insert dans CHANTIER */ 
INSERT PlanningPME.dbo.CHANTIER ([_CODECLIENT], [_VARALPHAUTIL2], [_NUMEROAFFAIREFILS], [_CODEARTICLEPRESTTO], [_CODELANCEMENT], [_NUMEROAFFAIRE], UN_OU_PLS_RESSOURCE,[_DATEFINPRODPLUSTARD], [_TEMPSPOSTE], [_OF], [_CODERUBRIQUE], NOM_CHANTIER, [_PHASE]) VALUES (@CodeClient, @VarAlphaUtil2, @NumeroAffaireFils, @CodeArticleprestto, @CodeLancement, @NumeroAffairePere,1076, @DateFinProdPlusTard, @TempsPoste,1, @CodeRubrique, @CodeRubrique, @Phase)

set @IdxChantier = (SELECT MAX(@@IDENTITY) from PlanningPME.dbo.CHANTIER)

/**/
set @DateDebut=@DateFinProdPlusTard
set @DateFin=@DateFinProdPlusTard
Set @DateFin = DATEADD(day,@TempsPoste/8,@DateDebut)

/**/
set @HeureDebut= '8:00'
Set @HeureFin = '17:00'


/* Calcul des champs date et heure */
/**/
Set @DateHeureDebut = DATEADD(minute,DATEPART(hour,@HeureDebut)*60+DATEPART(minute,@HeureDebut),@DateDebut)
Set @DateHeureFin = DATEADD(minute,DATEPART(hour,@HeureFin)*60+DATEPART(minute,@HeureFin),@DateFin)


/* Insert dans CHANTIER_DATE */
INSERT PlanningPME.dbo.CHANTIER_DATE (IDX_CHANTIER, DATE_DEBUT, DATE_FIN, HEURE_DEBUT, HEURE_FIN, JOURNEE_ENTIERE, DATE_HEURE_DEBUT, DATE_HEURE_FIN, TYPE, DUREE) VALUES (@IdxChantier, @DateDebut, @DateFin, @HeureDebut, @HeureFin, 0, @DateHeureDebut, @DateHeureFin, 1661, @TempsPoste)

/* Idx de la ressource à planifier */
set @IdxRessourceAPlanifier  = 26

/* Insert dans CHANTIER_RESSOURCE */
INSERT PlanningPME.dbo.CHANTIER_RESSOURCE (IDX_CHANTIER,IDX_RESSOURCE) VALUES (@IdxChantier, @IdxRessourceAPlanifier)

CREATE TRIGGER delete_lctc ON dbo.LCTC
FOR  DELETE

AS

declare @CodeLancement varchar(50)
declare @Phase varchar(50)
declare @CodeRubrique varchar(50)
declare @IDX_CHANTIER int


select @CodeLancement=deleted.[CodeLancement], @Phase=deleted.[Phase], @CodeRubrique=deleted.[CodeRubrique] from  deleted

if ( @CodeLancement = '' OR @Phase = '' OR @CodeRubrique='' )
begin
 return
end

select @IDX_CHANTIER=IDX_CHANTIER from PlanningPME.dbo.CHANTIER where [_CODELANCEMENT]=@CodeLancement AND [_PHASE]=@Phase AND [_CODERUBRIQUE]=@CodeRubrique

delete from  PlanningPME.dbo.CHANTIER where IDX_CHANTIER=@IDX_CHANTIER
delete from  PlanningPME.dbo.CHANTIER_DATE where IDX_CHANTIER=@IDX_CHANTIER

delete from  PlanningPME.dbo.CHANTIER_RESSOURCE where IDX_CHANTIER=@IDX_CHANTIER


BASE PLANNINGPME

CREATE TRIGGER update_chantier_date ON dbo.CHANTIER_DATE
FOR  UPDATE

AS

declare @CodeLancement varchar(50)
declare @Phase varchar(50)
declare @CodeRubrique varchar(50)
declare @INDISPONIBILITE bit
declare @OF bit
declare @DateDebut datetime
declare @HeureDebut datetime
declare @DateFin datetime
declare @HeureFin datetime
declare @IDX_CHANTIER int

select @IDX_CHANTIER=inserted.IDX_CHANTIER, @DateDebut=inserted.DATE_DEBUT, @HeureDebut=inserted.HEURE_DEBUT, @DateFin=inserted.DATE_FIN, @HeureFin=inserted.HEURE_FIN from  inserted

select @OF=[_OF], @INDISPONIBILITE=INDISPONIBILITE, @CodeLancement=[_CODELANCEMENT], @Phase=[_PHASE], @CodeRubrique=[_CODERUBRIQUE] from CHANTIER where IDX_CHANTIER=@IDX_CHANTIER


/* on ne s'occupe pas des indispos */
if ( @INDISPONIBILITE = 1 )
begin
 return
end

/* on ne s'occupe pas des tâches crées dans PPME */
if ( @OF = 0 )
begin
 return
end

if ( @CodeLancement = '' OR @Phase = '' OR @CodeRubrique='' )
begin
 return
end


update CEDIPPME.dbo.[LCTC]
set DateDebutPlanifiee = @DateDebut,HeureDebutPlanif = DATEPART(hour,@HeureDebut), MinuteDebutPlanif=DATEPART(minute,@HeureDebut) ,
 DateFinPlanifiee = @DateFin, HeureFinPlanif=DATEPART(hour,@HeureFin), MinuteFinPlanif=DATEPART(minute,@HeureFin)
where @CodeLancement=CodeLancement and Phase=@Phase and CodeRubrique=@CodeRubrique

 

 

Remplir un champ supplémentaire de type choix

Dans PlanningPME, vous avez la possibilité d'ajouter des champs supplémentaires dans les différentes fenêtres comme : Tâche, Client, Ressource, Projet ...

PlanningPME met à votre disposition un champ de type choix qui s'affiche sous la forme d'une combobox, la liste des valeurs peut être renseignée dans PlanningPME ou bien alimentée par un script lors de l'ouverture de PlanningPME.

Voici un petit exemple :

'Register PlanningPME.dll before -> c:\windows\system32\regsvr32 PlanningPME.dll

Set ppme = CreateObject("PlanningPME.Application")
ppme.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Target Skills\PlanningPME\PlanningPME.pp"
ppme.Connect

set dfs = ppme.GetDataFields(84) ' PpTask1

for i=0 to dfs.Count()

   if dts.Item(i).Field = "MONCHAMP" then

      dts.Item(i).Data = "Item1" & vbCrLf  & "Item2" & vbCrLf  & "Item3"

   end if

next i 

Il vous suffit d'enregistrer ce script sous l'extension .vbs et de le mettre dans les paramètres de lancement de PlanningPME

Si vous voulez réaliser l'alimentation à partir d'une base de données externe, il vous suffira d'ouvrir votre propre connexion et de parcourir vos éléments pour les ajouter.

Créer son propre menu au sein de PlanningPME

Dans PlanningPME, vous avez la possibilité de lancer une application externe depuis le menu "fichier" de PlanningPME.

Aujourd'hui nous allons faire en sorte de pouvoir lancer PlanningPME WebAccess depuis le logiciel PlanningPME.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Target Skills\PLanningPME\Menu] 
"Menu"="WebAccess"

"LabelItem1"="WebAccess - Version évaluation"
"ParamItem1"="
http://test.planningpme.com/EVAL/webaccess/fr/Login.aspx
"OptionItem1"=dword:00000002

 

Explications : 

  • Menu sert à nommer le nom du menu qui apparaitra dans le menu "Fichier"
  • LabelItem1 sert à nommer le sous menu
  • ParamItem1 sert à préciser le chemin (ou URL) vers l'application
  • OptionItem1 sert à préciser l'action à entreprendre. Pour le moment laisser la valeur à 2. Elle aura pour conséquence d'ouvrir le chemin nommé dans ParamItem1

Résultat : 

 

 Cette fonctionnalité ouvre beaucoup de possibilités. En effet cela vous permet de lancer par exemple :

  • des scripts divers (synchronisation de données, sauvegarde du planning)
  • d'autre planning, si vous travaillez sur plussieurs plannings
  • etc...

Dans un prochain billet nous détaillerons le paramètre OptionItem1 et les options qu'il propose.

 

Arnaud CHARRE

Objet métier

Target Skills met à votre disposition le modèle objet de PlanningPME contenu dans le complément COM PlanningPME.dll utilisable dans la plupart des outils de développements. PlanningPME.dll se situe sous le répertoire d'installation de PlanningPME, par défaut le répertoire : C:\Program Files\Target Skills\PlanningPME

Pour utiliser ce composant, vous devez préalablement l'enregistrer avec la commande suivante : c:\windows\system32\regsvr32.exe "C:\Program Files\Target Skills\PlanningPME\PlanningPME.dll"

Vous aurez alors le message suivant :

Avec cet objet métier, vous allez pouvoir réaliser facilement des intégrations entre PlanningPME et vos logiciels tel que  

  • Synchronisation ou importation de clients.
  • Synchronisation des équipements de vos clients.
  • Synchronisation ou importation de vos projets.
  • Importation de tâches.
  • Importation de congés.

Comment ?

En créant des fichiers .vbs que vous pourrez exécuter pour effectuer vos synchronisations et importations.

  • Importation : il vous suffira de d'executer votre fichier .vbs pour importer vos donner.
  • Synchronisation : entrez votre fichier .vbs dans PlanningPME pour que ce dernier lancer l'excution au lancement de PlanningPME ou bien au chargement du planning.

La prochaine fois, nous entrerons dans le vif du sujet avec un exemple d'importation.