Exemple (GFD) ENR-ACT-ENT Commandes Commerciales Archivées
Il est possible d’utiliser la fonction « ENR-ACT-ENT » sur les commandes commerciales et les devis archivés. Seules les actions « INI », « INI-SOC » et « INI-PRE » sont disponibles sur les entêtes et lignes de commandes et devis commerciaux archivés. Ces actions permettent d’initialiser WfEntVar qui contient la valeur de chaque variable de l’entité.
Pour cela, initialiser WfEntAct tel que :
Nom | T | Désignation | O | Commentaire |
Action | C | Action à exécuter | o | Doit contenir INI ou INI-SOC ou INI-PRE |
ActCle | C | Clé de lien avec WfEntVar | Doit contenir la clé pour les liens avec WfEntVar | |
EntTEn | C | Entité | o | Doit contenir ARD_CDC pour les entêtes de commandes/devis ou ARD_CDC-LIG pour les lignes de commandes/devis |
EntCl1 | C | Clé1 entité | o | Doit contenir le numéro de commande/devis archivé |
EntCl2 | C | Clé2 entité | o | Doit contenir le numéro de ligne de commande/devis archivé pour l’entité ARD_CDC-LIG |
EntPre | C | Présentation Entité | O | Doit contenir la référence de la présentation à utiliser dans le cas où l’action est INI-PRE |
Il faut renseigner la base d’archivage dans laquelle on souhaite extraire les données. Pour cela, initialiser WfEntVar tel que :
Nom | T | Désignation | O | Commentaire |
ActCle | C | Clé de lien avec WfEntAct | Doit contenir la clé pour les liens avec WfEntAct | |
EntTEn (*) | C | Entité | Doit contenir ARD_CDC pour les entêtes de commandes/devis ou ARD_CDC-LIG pour les lignes de commandes/devis | |
EntCl1 (*) | C | Clé1 entité | Doit contenir le numéro de commande/devis archivé | |
EntCl2 (*) | C | Clé2 entité | Doit contenir le numéro de ligne de commande/devis archivé pour l’entité ARD_CDC-LIG | |
EntVar | C | Variable | o | Doit contenir Base_ARD |
EntVaC | C | Valeur Variable | o | Doit contenir le nom de la base d’archivage dans laquelle on récupère les données. |
(*) : EntTen, EntCl1 et EntCl2 doivent être utiliser pour faire le lien avec WfEntAct si ActCle n’est pas renseigné.
Pour l’action « INI-SOC » qui permet de récupérer des données dans une société Diapason autre que la société courante, il faut renseigner WfEntVar tel que :
Nom | T | Désignation | O | Commentaire |
ActCle | C | Clé de lien avec WfEntAct | Doit contenir la clé pour les liens avec WfEntAct | |
EntTEn (*) | C | Entité | Doit contenir ARD_CDC pour les entêtes de commandes/devis ou ARD_CDC-LIG pour les lignes de commandes/devis | |
EntCl1 (*) | C | Clé1 entité | Doit contenir le numéro de commande/devis archivé | |
EntCl2 (*) | C | Clé2 entité | Doit contenir le numéro de ligne de commande/devis archivé pour l’entité ARD_CDC-LIG | |
EntVar | C | Variable | o | Doit contenir RefSocApp |
EntVaC | C | Valeur Variable | o | Doit contenir la société Diapason dans laquelle on récupère les données. |
Exemple : Duplication d’une commande archivée avec certaines de ses lignes
COMMENTAIRE : "Action INI sur Commandes Commerciales et Lignes de Commandes Commerciales archivées pour créer une nouvelle commande"
COMMENTAIRE : "SCR.CdeNumCom = Numéro de Commande archivée à récupérer"
COMMENTAIRE : "VCR.LisCdeNumLig = Liste des Lignes de Commande archivées à copier"
COMMENTAIRE : "SCR.RefBase contient la Base d'archivage à utiliser"
VLO.Act = CLO."INI"
VLO.Cle1 = SCR.CdeNumCom
VLO.LisLig = VCR.LisCdeNumLig
VLO.EntTEn = CLO."ARD_CDC"
VLO.Base = SCR.RefBase
COMMENTAIRE : "Récupération de l'entête de commande"
CREATION Liste WfEntAct :
PRENDRE WfEntAct Action = VLO.Act
PRENDRE WfEntAct ActCle = VLO.Cle1
PRENDRE WfEntAct EntTEn = VLO.EntTEn
PRENDRE WfEntAct EntCl1 = VLO.Cle1
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct EntCom = CLO.""
FIN_BLOC
CREATION Liste WfEntVar :
PRENDRE WfEntVar EntTEn = VLO.EntTEn
PRENDRE WfEntVar EntCl1 = VLO.Cle1
PRENDRE WfEntVar ActCle = VLO.Cle1
PRENDRE WfEntVar EntVar = CLO."Base_ARD"
PRENDRE WfEntVar EntVaC = VLO.Base
FIN_BLOC
VLO.Resultat = ENR-ACT-ENT( )
VLO.CreCde = CGL.OUI
RECH PREM LST WfEntAct :
SI WfEntAct.ActErr <> CLO.""
VLO.CreCde = CGL.NON
FIN_BLOC
CREATION Liste Res :
PRENDRE Res EntTEn = WfEntAct.EntTEn
PRENDRE Res Cde = WfEntAct.EntCl1
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Err = WfEntAct.ActErr
PRENDRE Res = WfEntAct.ActRes
FIN_BLOC
FIN_BLOC
SI VLO.CreCde VRAI
COMMENTAIRE : "Création Entête de Commande"
RECH PREM LST WfEntAct :
PRENDRE WfEntAct Action = CLO."CRE"
PRENDRE WfEntAct EntTEn = CLO."CDC"
PRENDRE WfEntAct EntCl1 = CLO."&1"
PRENDRE WfEntAct ActRes = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct EntCom = CLO.""
FIN_BLOC
POUR CHAQUE LST WfEntVar :
PRENDRE WfEntVar EntTEn = CLO."CDC"
PRENDRE WfEntVar EntCl1 = CLO."&1"
FIN_BLOC
VLO.Resultat = ENR-ACT-ENT( )
VLO.NouCde = CLO.""
RECH PREM LST WfEntAct :
SI WfEntAct.ActErr = CLO.""
VLO.NouCde = WfEntAct.ActRes
FIN_BLOC
CREATION Liste Res :
PRENDRE Res EntTEn = WfEntAct.EntTEn
PRENDRE Res Cde = WfEntAct.EntCl1
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Err = WfEntAct.ActErr
PRENDRE Res = WfEntAct.ActRes
FIN_BLOC
FIN_BLOC
SI VLO.NouCde EXISTE ET <> ""
COMMENTAIRE : "Récupération des lignes de commandes archivées"
VLO.NbLig = NB-MOT( SEPARATEUR= CLO."," , CHAINE= VLO.LisLig )
BOUCLE VLO.Boucle DE CLO.1 A VLO.NbLig :
VLO.Cle2 = MOT( SEPARATEUR= CLO."," , CHAINE= VLO.LisLig , NUMERO= VLO.Boucle )
EFFACER Liste WfEntAct
EFFACER Liste WfEntVar
COMMENTAIRE : "Récupération de la ligne de commande"
CREATION Liste WfEntAct :
PRENDRE WfEntAct Action = VLO.Act
PRENDRE WfEntAct ActCle = VLO.Cle1
PRENDRE WfEntAct EntTEn = CLO."ARD_CDC-LIG"
PRENDRE WfEntAct EntCl1 = VLO.Cle1
PRENDRE WfEntAct EntCl2 = VLO.Cle2
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct EntCom = CLO.""
FIN_BLOC
CREATION Liste WfEntVar :
PRENDRE WfEntVar EntTEn = CLO."ARD_CDC-LIG"
PRENDRE WfEntVar EntCl1 = VLO.Cle1
PRENDRE WfEntVar EntCl2 = VLO.Cle2
PRENDRE WfEntVar ActCle = VLO.Cle1
PRENDRE WfEntVar EntVar = CLO."Base_ARD"
PRENDRE WfEntVar EntVaC = VLO.Base
FIN_BLOC
VLO.Resultat = ENR-ACT-ENT( )
VLO.CreLig = CGL.OUI
RECH PREM LST WfEntAct :
SI WfEntAct.ActErr <> CLO.""
VLO.CreLig = CGL.NON
FIN_BLOC
CREATION Liste Res :
PRENDRE Res EntTEn = WfEntAct.EntTEn
PRENDRE Res Cde = WfEntAct.EntCl1
PRENDRE Res Lig = WfEntAct.EntCl2
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Err = WfEntAct.ActErr
PRENDRE Res = WfEntAct.ActRes
FIN_BLOC
FIN_BLOC
SI VLO.CreLig VRAI
COMMENTAIRE : "Création Ligne de commande"
RECH PREM LST WfEntAct :
PRENDRE WfEntAct Action = CLO."CRE"
PRENDRE WfEntAct EntTEn = CLO."CDC-LIG"
PRENDRE WfEntAct EntCl1 = VLO.NouCde
PRENDRE WfEntAct EntCl2 = CLO."&1"
PRENDRE WfEntAct ActRes = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct EntCom = CLO.""
FIN_BLOC
POUR CHAQUE LST WfEntVar :
PRENDRE WfEntVar EntTEn = CLO."CDC-LIG"
PRENDRE WfEntVar EntCl1 = VLO.NouCde
PRENDRE WfEntVar EntCl2 = CLO."&1"
FIN_BLOC
VLO.Resultat = ENR-ACT-ENT( )
RECH PREM LST WfEntAct :
CREATION Liste Res :
PRENDRE Res EntTEn = WfEntAct.EntTEn
PRENDRE Res Cde = WfEntAct.EntCl1
PRENDRE Res Lig = WfEntAct.EntCl2
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Err = WfEntAct.ActErr
PRENDRE Res = WfEntAct.ActRes
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC