L’objectif de ce type d’interface est pouvoir déclencher un traitement dans LDCompta depuis une autre application Windows, que cette dernière soit écrite avec WinDev ou pas.
Deux traitements sont supportés à ce jour :
Globalement, l’interface fonctionne sur un schéma client-serveur. LDCompta fournit le serveur : il s'agit d'une petite application qui doit s'exécuter sur la même machine que l’application client, et qui reste toujours active, en tache de fond, restant visible sous forme d'un icône en partie droite de la barre des tâches.
L’application cliente peut être développée dans n’importe quel langage ou AGL, pourvu que ce langage permette de gérer les messages Windows, soit directement par des ordres du langage, soit en faisant appel aux API Windows (fonction PostMessage notamment). A titre d’exemple, LD SYSTEME peut fournir les sources d’une application client écrite en WinDev.
Vous trouverez ci-après des informations techniques à destination des développeurs voulant mettre en œuvre ce type d'interface.
La communication fonctionne de la façon suivante :
A ce jour, 4 types de message existent :
[Données]
RepData=C:\Ldsystem\Fichiers\Compta
RepSousRep=C:\Ldsystem\Fichiers\Compta
RepTemp=C:\Ldsystem\Temp
TraceServeur=YES
MessageFile=C:\Ldsystem\Fichiers\Compta\MsgFile.txt
Le mot-clé MessageFile définit le nom et l'emplacement du fichier dans lequel on lit et écrit chaque message.
La ligne TraceServeur=YES, si elle est présente, demande au serveur de tracer tous les messages qu'il reçoit. Le fichier résultat de cette trace se nomme LDCPTSVR.LOG, dans le répertoire temporaire défini par le mot clé RepTemp dans le LDCParam.INI.
Le message est toujours composé d'un en-tête de 256 caractères, avec une suite de longueur variable (comprise entre 0 et 256), cette longueur variable étant définie dans l'en-tête. La structure du message est la suivante :
Msg est compose de //Taille Pos E/S Description
Nom est une chaine fixe sur 10 // 10 1-10 E Nom de l'API demandé
Format est une chaine fixe sur 10 // 10 11-20 E Nom du format
Utilisateur est une chaine fixe sur 10 // 10 21-30 E Utilisateur demandeur
MotPasse est une chaine fixe sur 10 // 10 31-40 E Mot de passe
Société est une chaine fixe sur 3 // 3 41-43 E Code société en compta
LongueurSuiteMessage est une chaine fixe sur 5 // 5 44-48 E Longueur du message, hors en-tête
TraitéParServeur est une chaine fixe sur 1 // 1 49-49 E/S A zéro lors de l'envoi du message,
// Positionné à 1 par le serveur lorsque le message est traité
MotPasseSuite est une chaine fixe sur 10 // 10 50-59 E Mot de passe de l'utilisateur (Caractères 11 à 20)
ZoneRéservée est une chaine fixe sur 77 // 67 60-126 ? Réservé usage futur
NuméroErreur est une chaine fixe sur 4 // 4 127-130 S Numéro d'erreur : 0000=OK, >0000 si erreur
LibelléErreur est une chaine fixe sur 126 // 126 131-256 S Libellé erreur si numéro d'erreur > 0000
fin
Dans le cas du message de demande d'en-cours client, la suite du message a la structure suivante :
FormatECF001 est compose de // Taille Pos E/S Description
Compte est une chaine fixe sur 10 // 10 1-10 E N° du compte comptable
DateSolde est une chaine fixe sur 8 // 8 11-18 E Date du solde du compte, sous forme AAAAMMJJ
Solde est une chaine fixe sur 15 // 15 19-33 S Solde du compte 13.2 Format +12345678901.12
TotalPortefeuille est une chaine fixe sur 15 // 15 34-48 S Total des règlements en portefeuille
TotalBanque est une chaine fixe sur 15 // 15 49-63 S Total des règlements remis en banque non échus
TotalAcceptation est une chaine fixe sur 15 // 15 64-78 S Total des règlements émis à l'acceptation
fin
Dans le cas du message de demande d'interface en entrée de LDCompta, la suite du message a la structure suivante :
FormatINT001 est compose de // Taille Pos E/S Description
AfficherFenetres est une chaine fixe sur 1 // 1 1-1 E Afficher fenêtres procédure d'interface : O=Oui, N=Non
Traitement est une chaine fixe sur 1 // 1 2-2 E Traitement à réaliser 1=Contrôle, 2=Contrôle+validation
AfficherEnregs est une chaine fixe sur 1 // 1 3-3 E Afficher tous les enregistrements : O=Oui, N=Non
ImprimerListe est une chaine fixe sur 1 // 1 4-4 E Imprimer liste de contrôle : O=Oui, N=Non
ZoneRéservée est une chaine fixe sur 6 // 6 5-10 E Réservé usage futur
FichierEntrée est une chaine fixe sur 64 // 64 11-74 E Nom et emplacement du fichier en entrée de l'interface
FichierDescription est une chaine fixe sur 64 // 64 75-138 E Nom et emplacement du fichier de description (.FDF)
fin
Dans tous les cas de figure, que l’on communique par une zone mémoire ou par un fichier texte, le message de 256 caractères suivi de la suite du message (78 octets dans le cas de l'en-cours client, 138 dans le cas du lancement de la procédure d’interface) doit être écrit tel quel dans la zone mémoire ou le fichier texte, sans aucun séparateur ou délimiteur.
Pour savoir si le serveur a répondu, il faut relire le même fichier message, et tester la zone nommé TraitéParServeur (position 49 du message), qui est positionnée à 1 par le serveur lorsqu'il a répondu.
Pour ce qui est du message de demande d'interface en entrée de LDCompta, on peut voir que la structure de la suite du message permet de renseigner toutes les zones qui sont normalement définies sur le premier onglet de la fenêtre de lancement de l’interface accessible depuis le progiciel comptable. La première zone AfficherFenêtres permet de choisir entre un mode dans lequel on voit s’ouvrir à l’écran les différentes fenêtres de la procédure d’interface, et où on est donc informé directement du déroulement de la procédure, ou un mode dans lequel les fenêtres de la procédure d’interface s’exécutent hors-écran, sans que l’utilisateur ne voit quoi que ce soit. Dans ce deuxième mode, et tout particulièrement si le serveur renvoie un code d’erreur signifiant que la procédure d’interface n’a pas abouti, il faut consulter le fichier historique du traitement nommé INTCPT.LOG dans le répertoire temporaire défini dans le progiciel comptable. Enfin, dans les deux modes, on peut demander, grâce à la zone ImprimerListe, à ce que la liste de contrôle de la procédure d’interface s’imprime systématiquement.
Remarque : de la même façon que lorsque la procédure d’interface est appelée depuis le progiciel comptable, si le contrôle et la validation du fichier à interfacer aboutissent sans erreur, le fichier texte en entrée de procédure d’interface est supprimé.
Le programme serveur se nomme LDCPTSVR.EXE. Il est livré dans le répertoire des programmes de LDCompta (en général, C:\Ldsystem\Program\Compta).
Ce programme doit être actif pour pouvoir répondre aux sollicitations du client. Pour l’activer, plusieurs solutions sont possibles :
Si vous souhaitez tester le fonctionnement du serveur, vous pouvez utiliser le programme client fourni par LD SYSTEME à titre d’exemple. Ce programme client se nomme LDCPTCLT.EXE. Il doit être installé lui aussi dans le répertoire des programmes de LDCompta. Si vous ne disposez pas encore de ce programme, demandez-le au support technique LD SYSTEME. Vous pouvez aussi obtenir le projet complet WinDev correspondant à l’application cliente (répertoire du projet fourni sous forme d’un fichier ZIP auto-extractible, à décompresser dans le répertoire de votre choix). Cet exemple peut vous aider à réaliser votre programme client avec WinDev. Si vous ne développez pas avec WinDev, les sources de l’application sont également fournis « en clair », sous la forme d’un fichier au format RTF. La syntaxe du langageWinDev étant très proche du langage naturel, ces sources peuvent là encore vous apporter une aide précieuse.
![]() |
![]() |
Chapitre suivant ![]() |