GED Annexes
Exemple de paramétrage d’une arborescence
BUT : Surcharger la consultation des documents depuis un client.
Au lieu d’afficher les documents rattachés directement à ce client, nous allons afficher également les documents correspondants à ces commandes et leurs lignes.
Définition de l’ADG ADGCLI
Définition de l’arbre défaut ADGCLI_ARB
Définition entête
Structure hiérarchie
On définit par défaut une arborescence simple avec deux fils de la branche initiale ADCCLI_ARB (0000000001) :
Documents Client (0000000002) Caractéristique Champ Alpha 1 = GCLIENT (voir la suite)
Documents Commandes (0000000003)
Nous allons à partir de cette base alimenter la structure de l’arbre dynamiquement dans la requête d’initialisation afin d’ajouter autant de branches que de commandes du client ainsi que les lignes de ces mêmes commandes.
Requête REB d’initialisation de l’arbre ADGCLI_INI
On part du principe que cet objet paramétrable va être lancé depuis la GFD des clients.
J’ai donc à ma disposition les variables SCR.EntTen et EntCl* pour connaitre le client sur lequel je me trouve.
Requête
POUR CHAQUE/SOC DTD CDCoEn AVEC INDEX (ParCliCDCoEnIdx) DTD CDCoEn.CliResRef = SCR.EntCl1 ET DTD CDCoEn.CliGenRef = SCR.EntCl2 :
SI DTD CDCoEn.GenEnrDateCre >= VLO.DateDLim
CREATION Liste WfArbSor :
PRENDRE WfArbSor NodIdePer = CLO."0000000003"
PRENDRE WfArbSor NodRefPere = CLO."0000000003"
PRENDRE WfArbSor NodIdeEnc = DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodRef = DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodLib = DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodIco = CLO."FAT-ENDED"
PRENDRE WfArbSor NodIcoFer = CLO."FERMER"
PRENDRE WfArbSor NodVa1 = CLO."DOS_GCDE"
PRENDRE WfArbSor NodCl1 = DTD CDCoEn.CdeNumCom
FIN_BLOC
CREATION Liste WfArbSor :
PRENDRE WfArbSor NodIdePer = DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodRefPere = DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodIdeEnc = DTD CDCoEn.CdeNumCom + CLO."_DOC"
PRENDRE WfArbSor NodRef = DTD CDCoEn.CdeNumCom + CLO."_DOC"
PRENDRE WfArbSor NodLib = CLO."Documents de" + " " + DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodIco = CLO."FAT-ENDED"
PRENDRE WfArbSor NodIcoFer = CLO."FERMER"
PRENDRE WfArbSor NodVa1 = CLO."GCDE"
PRENDRE WfArbSor NodTab = CLO."GCDE"
PRENDRE WfArbSor NodCl1 = DTD CDCoEn.CdeNumCom
FIN_BLOC
POUR CHAQUE/SOC DTD CDCoLi AVEC INDEX (CDCoLiIdx) DTD CDCoLi.CdeNumCom = DTD CDCoEn.CdeNumCom :
CREATION Liste WfArbSor :
PRENDRE WfArbSor NodIdePer = DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodRefPere = DTD CDCoEn.CdeNumCom
PRENDRE WfArbSor NodIdeEnc = DTD CDCoLi.CdeNumLig
PRENDRE WfArbSor NodRef = DTD CDCoLi.CdeNumLig
PRENDRE WfArbSor NodLib = DTD CDCoLi.CdeNumLig
PRENDRE WfArbSor NodIco = CLO."FAT-ENDED"
PRENDRE WfArbSor NodIcoFer = CLO."FERMER"
PRENDRE WfArbSor NodVa1 = CLO."GCDL"
PRENDRE WfArbSor NodTab = CLO."GCDL"
PRENDRE WfArbSor NodCl1 = DTD CDCoLi.CdeNumCom
PRENDRE WfArbSor NodCl2 = DTD CDCoLi.CdeNumLig
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
On initialise une branche par commande du client donné.
Dans chaque branche de la commande, on a une feuille permettant d’afficher les documents généraux de la commande ainsi qu’une nouvelle branche par lignes de commande.
Requête détail des documents ADGCLI_MAJ
RECH PREM LST WfArbEnt AVEC WfArbEnt.NodIdePer = SCR.ARB_NodIdePer ET WfArbEnt.NodIdeEnc = SCR.ARB_NodIdeEnc:
POUR CHAQUE/SOC DTD ADGEDEnt AVEC DTD ADGEDEnt.ADGEDTen = WfArbEnt.NodTab ET DTD ADGEDEnt.ADGEDCl1 = WfArbEnt.NodCl1 ET DTD ADGEDEnt.ADGEDCl2 = WfArbEnt.NodCl2 ET DTD ADGEDEnt.ADGEDCl3 = WfArbEnt.NodCl3 :
POUR CHAQUE/SOC DTD ADGEDDoc AVEC DTD ADGEDDoc.ADGEDCat = DTD ADGEDEnt.ADGEDCat ET DTD ADGEDDoc.ADGEDCleV = DTD ADGEDEnt.ADGEDCleV:
CREATION Liste WfEntSel:
PRENDRE WfEntSel DiaIde = IDENTIFIANT (DTD ADGEDDoc)
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
Dans cette requête, on alimente quand on est sur une feuille la liste WfEntSel qui permet d’afficher la liste standard de présentation des documents.
Résultat
Si le focus est sur « Documents Client », une branche de type, « Documents de CDC… » ou sur une Ligne de commande (001, 002, 003 dans notre exemple), on a un affichage du type :
Exemples d’utilisation des fonctions dialog
Envoi document GED à la validation d’une PSD
Requête PSD de validation :
VLO.NbMot = NB-MOT( SEPARATEUR= CLO.";" , CHAINE= VSD.MailDest )
SI VLO.NbMot >= CLO.1
VLO.Dest = CLO."D=" + MOT ( SEPARATEUR= CLO.";" , CHAINE= VSD.MailDest , NUMERO= CLO.1 )
SI VLO.NbMot > CLO.1
BOUCLE VLO.ind DE CLO.2 A VLO.NbMot :
VLO.Dest = VLO.Dest + CLO."; D=" + MOT ( CHAINE= VSD.MailDest , NUMERO= VLO.ind )
FIN_BLOC
FIN_BLOC
VLO.Corps = VSD.AgeEvtDes
VLO.Obj = VSD.AgeEvtSuj
VLO.typmes = CLO."J_v2k8dev"
VLO.NbMot = NB-MOT ( SEPARATEUR= CLO.",», CHAINE= VBP.Liste)
BOUCLE VLO.ind DE CLO.1 A VLO.NbMot :
VLO.ID = MOT ( SEPARATEUR= CLO."," , CHAINE= VBP.Liste , NUMERO= VLO.ind )
RECH TBD DTD ADGEDEnt AVEC IDENTIFIANT= VLO.ID :
RECH TBD/SOC DTD ADGEDDoc AVEC INDEX (I1) DTD ADGEDDoc.ADGEDCat = DTD ADGEDEnt.ADGEDCat
ET DTD ADGEDDoc.ADGEDCleV = DTD ADGEDEnt.ADGEDCleV :
SI VLO.PJ = CGL.VIDE
VLO.PJ = CLO."FIC-GED-INTERNE=|"
FIN_BLOC
SINON
VLO.PJ = VLO.PJ + CLO.";" + CLO."FIC-GED-INTERNE=|"
FIN_BLOC
VLO.PJ = VLO.PJ + DTD ADGEDDoc.ADGEDIde
FIN_BLOC
FIN_BLOC
FIN_BLOC
VLO.Corps = VLO.Corps + CLO."\n" + VLO.PJ
VLO.res = ENVOI-EMAIL (DESTINATAIRES= VLO.Dest, OBJET= VLO.Obj, MESSAGE= VLO.Corps,
PIECES-JOINTES= VLO.PJ, TYPE-MESSAGE= VLO.typmes)
FIN-BLOC
Import d’un document GED la validation d’une PSD
SI SCR.SDyProEvt = CLO."PRO-VAL"
SI VSD.Fichier EXISTE ET <> ""
CREATION Liste WfGEDEnt:
PRENDRE WfGEDEnt GEDCle = CLO."PRO-VAL"
PRENDRE WfGEDEnt GEDAct = CLO."REF"
PRENDRE WfGEDEnt GEDCat = CLO."PPT"
PRENDRE WfGEDEnt GEDFicOri = VSD.Fichier
PRENDRE WfGEDEnt GEDCleFct = CLO."PPT-REU"
PRENDRE WfGEDEnt GEDDes = CLO."Document de formation"
FIN_BLOC
CREATION Liste WfGEDLien :
PRENDRE WfGEDLien GEDCle = CLO."PRO-VAL"
PRENDRE WfGEDLien GEDEnt = CLO."REU"
PRENDRE WfGEDLien GEDCle1 = SCR.EVT_REf
FIN_BLOC
VLO.Res = ENR-ACT-GED ( )
FIN_BLOC
FIN_BLOC
Modification d’un document GED à partir d’un bouton d’une PSD
Requête RCT de lancement action Modification
VLO.RepVisu = CLO."\\\\gavarnie\\tmp\\"
COMMENTAIRE : ‘Récupération de l’identifiant du document à modifier’
VLO.Res = INT-CTX( ACTION= REC-VALEUR , TYPE-VARIABLE= VSD , NOM-VARIABLE= Action ,
E-S:VALEUR= VLO.IdDocGed)
RECH TBD DTD ADGEDEnt AVEC IDENTIFIANT= VLO.IdDocGed :
RECH PREM TBD/SOC DTD ADGEDDoc AVEC INDEX (I4) DTD ADGEDDoc.ADGEDVerPri VRAI
ET DTD ADGEDDoc.ADGEDCat = DTD ADGEDEnt.ADGEDCat
ET DTD ADGEDDoc.ADGEDCleV = DTD ADGEDEnt.ADGEDCleV :
VLO.ID = DTD ADGEDDoc.ADGEDIde
VLO.ficCible = DTD ADGEDDoc.ADGEDFicOri
VLO.NbMot = NB-MOT( SEPARATEUR= CLO."/" , CHAINE= VLO.ficCible )
VLO.nomFichier = MOT( SEPARATEUR= CLO."/», CHAINE= VLO.ficCible, NUMERO= VLO.NbMot)
COMMENTAIRE : ‘Extraction du document dans un fichier cible’
VLO.Res = GED-EXT-DOC (IDENTIFIANT= VLO.ID, DESTINATAIRE= VLO.ficCible)
SI VLO.Res = CGL.VIDE
COMMENTAIRE : ‘Lancement commande système d’ouverture du fichier’
INIT VBP.IAP_TypeFils = CLO."CSY"
INIT VBP.IAP_RefFils = CLO."Ouvrir"
INIT VBP.Parametre = VLO.RepVisu + VLO.nomFichier
FIN_BLOC
SINON
INIT VBP.Parametre = CGL.VIDE
FIN_BLOC
FIN_BLOC
FIN_BLOC
Commande système OUVRIR
Définition de la commande système ‘ouvrir’
Requête REB de la commande système ‘ouvrir’
SI VBP.Parametre EXISTE ET <> ""
INIT SCR.CdeSysCmd = SCR.CdeSysCmd + " " + VBP.Parametre
FIN_BLOC
SINON
INIT SCR.CdeSysCmd = CGL.VIDE
INIT VBP.IAP_ValActFils = CLO."KO"
INIT VBP.RCT_TypeAction = CGL.VIDE
FIN_BLOC
Requête PSD de validation de la PSD
A la validation de la PSD, suppression des liens de l’entité avec l’ancien document et référencement/rattachement du document modifié.
SI SCR.SDyProEvt = CLO."PRO-VAL"
COMMENTAIRE : ‘Récupération des caractéristiques du document origine’
RECH TBD DTD ADGEDEnt AVEC IDENTIFIANT= VBP.Liste :
CREATION Liste WfGEDEnt :
PRENDRE WfGEDEnt GEDAct = CLO."CAR"
PRENDRE WfGEDEnt GEDCle = CLO."CAR"
PRENDRE WfGEDEnt GEDCat = DTD ADGEDEnt.ADGEDCat
PRENDRE WfGEDEnt GEDCleV = DTD ADGEDEnt.ADGEDCleV
FIN_BLOC
VLO.essai = ENR-ACT-GED ( )
RECH PREM LST WfGEDEnt :
VLO.NomFicOri = WfGEDEnt.GEDFicOri
FIN_BLOC
EFFACER Liste WfGEDEnt
EFFACER Liste WfGEDLien
COMMENTAIRE : ‘Suppression des liens avec le document origine’
CREATION Liste WfGEDEnt :
PRENDRE WfGEDEnt GEDAct = CLO."SUP-LIEN"
PRENDRE WfGEDEnt GEDCle = CLO."SUP-LIEN"
PRENDRE WfGEDEnt GEDCat = DTD ADGEDEnt.ADGEDCat
PRENDRE WfGEDEnt GEDCleV = DTD ADGEDEnt.ADGEDCleV
FIN_BLOC
CREATION Liste WfGEDLien :
PRENDRE WfGEDLien GEDCle = CLO."SUP-LIEN"
PRENDRE WfGEDLien GEDEnt = DTD ADGEDEnt.ADGEDTen
PRENDRE WfGEDLien GEDCle1 = DTD ADGEDEnt.ADGEDCl1
FIN_BLOC
COMMENTAIRE : ‘Référencement/Rattachement du document modifié’
CREATION Liste WfGEDEnt :
PRENDRE WfGEDEnt GEDAct = CLO."REF"
PRENDRE WfGEDEnt GEDCle = CLO."REF"
PRENDRE WfGEDEnt GEDCat = DTD ADGEDEnt.ADGEDCat
PRENDRE WfGEDEnt GEDFicOri = VLO.NomFicOri
FIN_BLOC
CREATION Liste WfGEDLien :
PRENDRE WfGEDLien GEDCle = CLO."REF"
PRENDRE WfGEDLien GEDEnt = DTD ADGEDEnt.ADGEDTen
PRENDRE WfGEDLien GEDCle1 = DTD ADGEDEnt.ADGEDCl1
FIN_BLOC
VLO.essai = ENR-ACT-GED ( )
FIN_BLOC
FIN_BLOC
Récupération chemin complet à un document GED
Recherche du chemin d’un document pour y accéder depuis un client.