Export-Import sélectif tables locales
Introduction
L’application d’Import-Export de tables locales permet de disposer d’un environnement pour exporter le contenu de tables de valeurs (tables définies dans les bases de type LOC).
Plusieurs tables peuvent être exportées simultanément. La notion de session d’export permet de définir l’ensemble des informations nécessaires à l’exportation. Ces différentes tables peuvent être liées entres elles : il peut y avoir des liens directs par clés (lien hiérarchique classique type lien entête et ligne de commande) ou des liens indirects (exemple lien enregistrement article – unité de mesure de charge).
Explorateur STUDIO : « Administration Sessions Import-Export »
Définition Session
La gestion des sessions permet de définir l’ensemble des sessions qui seront accessibles lors de l’exécution du traitement d’exportation. Elle permet de définir les caractéristiques générales de la session d’exportation.
La déclaration d’une session se fait comme suit :
Description de la fiche de définition d’une session
Session
Zone obligatoire.
Référence de la session.
Désignation
Zone facultative.
Désignation de la session.
Commentaire
Zone facultative.
Commentaire de la session.
Répertoire
Zone facultative.
Répertoire d’exportation des données.
Fichier
Zone facultative.
Nom du fichier d’exportation des données.
Suppression si Existe
Zone facultative.
Indique si Diapason supprime le fichier d’exportation des données avant d’effectuer une exportation.
Cde. Système
Zone facultative.
Commande système à exécuter lors de l’exportation.
Type Import
Zone facultative.
Permet de paramétrer quel type d’importation sera utilisé.
Type | Description |
0 | Importation sur Société Courante. Diapason effectue une suppression puis une création (suppression des enregistrements dans les tables avant création des enregistrements exportés) |
1 | Importation sur Société Temporaire. Diapason importe dans une Société temporaire (Référence société + _TMP). Cela permet de contrôler le résultat de l’exportation dans un environnement temporaire par DIALOG et de l’enregistrer ultérieurement dans la société réelle |
Req. REB Avant Import
Zone facultative.
Requête DIALOG REB exécutée avant la première importation de données.
-Contexte en entrée :
Cette requête garde la visibilité de toutes les variables et listes manipulées lors de l’exportation (SCR, VBP, WfEntSel…).
-Contexte en sortie :
Liste WfEntSel
Remarque : l’exécution d’un LC-ERREUR stoppe l’exportation.
Les variables et les listes sont partagées entre chaque exécution de requête.
Req. REB Aprés Import
Zone facultative.
Requête DIALOG REB exécutée après la dernière importation de données de la session.
-Contexte en entrée :
Cette requête garde la visibilité de toutes les variables et listes manipulées lors de l’exportation (SCR, VBP, WfEntSel…).
Remarque : l’exécution d’un LC-ERREUR stoppe l’exportation.
Les variables et les listes sont partagées entre chaque exécution de requête.
Actions disponibles sur les sessions
Définition Contenu
Cette action permet de définir le contenu de la session et lance la « Gestion des détails des sessions d’Export-Import » Voir chapitre ci-dessous.
Initialisation Critères
Permet d’initialiser les critères propres à la session. Les variables critères utilisées dans les requêtes (session et contenu) sont présentées.
Génération
Cette action permet de générer le programme qui sera exécuté lors de l’exportation.
Exportation Tables Locales
Cette action permet de lancer le traitement d’exportation de la session choisie.
Voir « Traitement EXP-LOC » ci-dessous.
Importation Tables Locales
Cette action permet de lancer le traitement d’importation de Tables Locales.
Voir « Traitement IMP-LOC » ci-dessous.
Accès Historique
Cette action lance la liste de consultation des l’historiques des sessions.
Voir « Historique Session Export –Import » ci-dessous.
Exportation
Lance l’exportation de la définition des sessions.
Cette action va présenter la liste des objets liés (l’objet principal étant toujours pris par défaut) susceptibles d’être exportés.
Par défaut tous les objets liés sont sélectionnés. L’utilisateur peut décider de désélectionner les objets qu’il désire.
Voir documentation « d’Exportation et d’Importation de données ».
Importation de données
Lance « l’importation de données » Diapason.
Voir documentation « d’Exportation et d’Importation de données ».
Gestion des détails des sessions d’Export-Import
Cette application permet de définir l’ensemble des tables qui seront exportées ainsi que les conditions d’extraction des données.
Description de la fiche de définition du détail d’une session.
Num. Ord. Exe.
Zone facultative.
Indique le numéro d’ordre de traitement des tables lors de l’exportation.
Type d’action export
Zone obligatoire.
Indique le type d’exportation qui détermine le mode de sélection des enregistrements de la table.
Type | Description |
0 | Exportation Table par Condition |
1 | Exportation Table par DIALOG |
9 | Exécution Règle DIALOG |
Base Donnée
Zone obligatoire.
Indique la base de la table à exporter.
Table Associée
Zone obligatoire.
Indique la table concernée par l’exportation.
Cdi d’Exportation
Zone non saisissable.
Pour le type d’exportation « Exportation table par Condition », affiche la condition d’extraction des enregistrements de la table.
Accés Cdi. Export.
Pour le type d’exportation « Exportation table par Condition », permet de donner la condition d’extraction des enregistrements de la table.
Cette action présente une fiche avec un éditeur permettant de saisir la condition.
Cette condition peut contenir des variables critères standard (SCR) et spécifiques (VCR). La condition ne doit pas commencer par « WHERE » et il ne faut pas spécifier le champ « RefSocApp ». Cette fiche présente aussi des boutons d’aide à la saisie : « Aide », « Indexs », « Critères », « Autres Tables ». |
Req. REB Export.
Permet de sélectionner la requête de type REB d’exportation.
Saisie obligatoire uniquement pour les types d’exportation ‘1’ et ‘9’.
Cette requête est exécutée en début de traitement d’une table.
-Contexte en entrée :
SCR.PAR_SesExpRef
SCR.PAR_SesExpNOr
Liste WfEntSel
-Contexte en sortie :
Liste WfEntSel
Remarque :
L’exécution d’un LC-ERREUR stoppe l’exportation.
Les variables et les listes sont partagées entre chaque exécution de requête.
Req. REB Exp./Enr
Zone facultative.
Permet de sélectionner la requête de type REB d’exportation.
Elle est exécutée sur chaque enregistrement sélectionné lors de l’exportation.
Contexte en entrée :
SCR.PAR_SesExpRef
SCR.PAR_SesExpNOr
SCR.DIATab
SCR.DIAIde
Liste WfEntSel
Contexte en sortie
Liste WfEntSel
Remarques :
L’exécution d’un LC-ERREUR stoppe l’exportation.
Les variables et les listes sont partagées entre chaque exécution de requête.
Req. REB Imp./Enr
Zone facultative.
Permet de sélectionner la requête de type REB d’exportation.
Elle est exécutée sur chaque enregistrement sélectionné lors de l’importation.
-Contexte en entrée :
Cette requête garde la visibilité de toutes les variables et listes manipulées lors de l’exportation (SCR, VBP, WfEntSel…).
-Contexte en sortie
Liste WfEntSel
Remarques :
L’exécution d’un LC-ERREUR stoppe l’exportation.
Les variables et les listes sont partagées entre chaque exécution de requête.
Champs Clé
Zone Saisissable uniquement pour le type d’exportation ‘1’.
Permet de définir les champs de la clé primaire unique de la table.
Champs Exclus
Permet de donner la liste des champs non concernés par l’exportation.
Actions disponibles sur le détail des sessions
Renumérotation Automatique
Cette action renumérote de 10 en 10, le champ numéro d’ordre « Num. Ord. Exe. » de tous les éléments constituants le détail de la session.
Traitement d’ Export–Import
Explorateur Exploitation : « Traitements/Traitements Paramétrés/ Traitements Paramétrés »
Exportation EXP-LOC
Ce traitement permet d’exporter les données définies dans une session d’Export –Import
Le traitement présente une fiche de critères permettant de saisir la session d’exportation ainsi que les variables critères des requêtes et des conditions.
L’action Critère lance la fiche suivante.
Le contenu de cette fiche est dépendant du paramétrage de la session (reqûetes, conditions ).
L’exportation génère des fichiers « NOMFIC.ACT » et « NOMFIC.DAT » dans le répertoire défini sur la session.
Les fichiers générés lors de l'exportation sont importés par le traitement d’importation décrit ci dessous.
Importation IMP-LOC
Ce traitement permet d’importer les données d’une exportation précédente dans la société courante.
Lors de l’exécution, il présente la fiche suivante :
Voir Traitement d'importation des données
Historique Session Export –Import
Cette application permet de consulter l’historique des sessions d’exportations et d’importations. Elle permet de tracer chaque exécution d’importation ou d’exportation. Cette liste dispose des actions « d’exportation » et « d’importation » des Sessions.
Explorateur STUDIO : «Administration Sessions Import-Export»
La liste présente les informations suivantes :
Date
Date de réalisation de l’évènement (Export/Import.)
Heure
Heure de réalisation de l’évènement (Export/Import.)
M
Mode réalisation de l’évènement : Soit E pour export, soit I pour import.
Session
Référence de la session.
Site
Référence du site à l’origine de l’exportation.
Désignation
Désignation de la session
Pb
Indique si l’exportation ou l’importation s’est correctement déroulée.
Erreur
Référence du Problème rencontré lors de l’évènement.
Commentaire
Commentaire de la session.
Les actions disponibles sur la liste des historiques d’Import-Export sont :
Gestion Sessions
Cette action lance l’application des gestion des sessions d’import-export.
Suppression
Cette action permet de supprimer un ou plusieurs enregistrements de la liste des historiques.
Exportation Tables Locales
Cette action permet de lancer le traitement d’exportation de la session choisie.
Voir « Traitement EXP-LOC » ci-dessous.
Importation Tables Locales
Cette action permet de lancer le traitement d’importation de Tables Locales.
Voir « Traitement IMP-LOC » ci-dessous.
Importation de données
Lance « l’importation de données » Diapason.
Voir documentation « d’Exportation et d’Importation de données ».
Exemple.
Définition structures
Soit la structure suivante dans la base LOC :
SPE_CDClient : Client (créer 3 clients C1, C2 et C3)
RefSocApp
CliResRef
CliGenRef
CliGenNom
Index :
I0 : primaire, unique : RefSocApp + CliResRef + CliGenRef
SPE_CDCoEn : Commande (créer 3 commandes pour chaque client)
RefSocApp
CdeNumCom
CliResRef
CliGenRef
CdeDatLiv
Index :
I0 : primaire, unique : RefSocApp + CdeNumCom
I1 : non unique : RefSocApp + CliResRef + CliGenRef
SPE_CDCoLi : Ligne (créer 2 lignes pour chaque commande avec des articles différents)
RefSocApp
CdeNumCom
CdeNumLig
GenRefArt
CdeLigQte
CdeLigPri
Index :
I0 : primaire, unique : RefSocApp + CdeNumCom+CdeNumLig
SPE_DDArtic : article (créer 3 articles : A1 et A2 et A3, avec des unités communesU1, U2, U3 et U4)
RefSocApp
GenRefArt
GenDesArt
StoUnMe
FabUnMe
SPE_UnMeDef : unité de mesure (créer les unités nécessaires)
RefUnMe
DesUnMe
Contenu et exemple d’exportation :
Session d’exportation : exporter les informations pour un client donné (exemple donné ci-dessus avec cellules surlignées : données exportés pour client C2)
Exemple 1.
Exemple d’une session d’exportation :
ExpSesDetNIn | ExpSesDetNOr | Autres champs |
1 | 10 | ExpSesDetTyp = 0 DTTVDefBase = LOC DTTVDefTable = SPE_CDClient ExpSesDetCdiImp = CDClient.CliResRef = SRC.CliResRef AND CDClient.CliGenRef = SCR.CliGenRef ExpSesDetExpReq = ExpSesDetExpEnrReq = |
2 | 20 | ExpSesDetTyp = 0 DTTVDefBase = LOC DTTVDefTable = SPE_CDCoEn ExpSesDetCdiImp = CDCoEn.CdeSolSta = No AND CDCoEn.CliResRef = SRC.CliResRef AND CDCoEn.CliGenRef= SRC.CliGenRef ExpSesDetExpReq = ExpSesDetExpEnrReq =IniExp |
3 | 30 | ExpSesDetTyp = 1 DTTVDefBase = DTD DTTVDefTable = SPE_CDCoLi ExpSesDetCdiImp = ExpSesDetExpReq = ExpSesDetExpEnrReq =IniExp |
4 | 40 | ExpSesDetTyp = 1 DTTVDefBase = DTD DTTVDefTable = DDArtic ExpSesDetCdiImp = ExpSesDetExpReq = ExpSesDetExpEnrReq =IniExp |
5 | 50 | ExpSesDetTyp = 1 DTTVDefBase = DTD DTTVDefTable = UnMe ExpSesDetCdiImp = ExpSesDetExpReq = ExpSesDetExpEnrReq = |
Requête IniExp :
Si SCR.DIATab = ‘CDCoEn’, alors :
Recherche CDCoEn avec Identifiant = SCR.DIAIde.
Si existe, alors :
Pour Chaque/Soc CDCoLi avec CDCoLi.CdeNumCom = CDCoEn.CdeNumCom :
Vlo.Ide = IDENTIFIANT(cdcoli)
Recherche WfEntSel avc WfEntSel.DiaTab = ‘CDCoLi’ et WfEntSel.DiaIde = VLO.Ide
Si existe alors
FinSi
Sinon
Création WfEntSel. DiaTab = ‘CDCoLi’ DiaIde = VLO.Ide.
FinSi.
FinSi.
FinSi.
FinSi
Si SCR.DIATab = ‘CDCoLi’, alors :
Recherche CDCoLi avec Identifiant = SCR.DIAIde.
Si existe, alors :
Recherche DDArtic avec CDCoLi.GenRefTypeArt et CDCoLi.GenRefArt
Si existe, alors
Vlo.Ide = IDENTIFIANT(DDARtic)
Recherche WfEntSel avec WfEntSel.DiaTab = ‘DDArtic’ et WfEntSel.DiaIde = VLO.Ide
Si existe alors
FinSi
Sinon
Création WfEntSel. DiaTab = ‘DDArtic’ DiaIde = VLO.Ide.
FinSi.
FinSi.
FinSi.
FinSi
Si SCR.DIATab = ‘DDArtic’, alors :
Recherche DDArtic avec Identifiant = SCR.DIAIde.
Si existe, alors
Recherche UnMeDef avec RefUnMeDef = DDArtic.StoUnMe
Si existe, alors
Vlo.Ide = IDENTIFIANT(UnMeDef)
Recherche WfEntSel avc WfEntSel.DiaTab = ‘UnMeDef’ et WfEntSel.DiaIde = VLO.Ide
Si existe alors
FinSi
Sinon
Création WfEntSel. DiaTab = ‘UnMeDef’ DiaIde = VLO.Ide.
FinSi.
FinSi.
Recherche UnMeDef avec RefUnMeDef = DDArtic.FabUnMe
Si existe, alors
Vlo.Ide = IDENTIFIANT(UnMeDef)
Recherche WfEntSel avc WfEntSel.DiaTab = ‘UnMeDef’ et WfEntSel.DiaIde = VLO.Ide
Si existe alors
FinSi
Sinon
Création WfEntSel. DiaTab = ‘UnMeDef’ DiaIde = VLO.Ide.
FinSi.
FinSi.
FinSi.
FinSi
Exemple 2.
Idem à exemple 1, avec
sur CDCoEn, le contexte requête suivant :
ExpSesDetExpReq =
ExpSesDetExpEnrReq =
sur CDCoLi, le contexte requête suivant :
ExpSesDetExpReq = ReqExp
ExpSesDetExpEnrReq = IniExp
Requête ReqExp :
Pour Chaque WfEntSel avec WfEntSel.DIATab = ‘CDCoEn’ :
Recherche CDCoEn avec Identifiant = WfEntSel.DIAIde.
Si existe, alors :
Pour Chaque/Soc CDCoLi avec CDCoLi.CdeNumCom = CDCoEn.CdeNumCom :
Vlo.Ide = IDENTIFIANT(DDARtic)
Recherche WfEntSel avec WfEntSel.DiaTab = ‘CDCoLi’ et WfEntSel.DiaIde = VLO.Ide
Si existe alors
FinSi
Sinon
Création WfEntSel. DiaTab = ‘CDCoLi’ DiaIde = VLO.Ide.
FinSi.
FinPour
Exemple 3.
Idem à exemple 2, avec
sur CDCoEn, le contexte requête suivant :
ExpSesDetExpReq =
ExpSesDetExpEnrReq =
Ajout d’un ADExImDe entre CDCoEn et CDCoLi de type 9 avec :
ExpSesDetExpReq = ReqExp
sur CDCoLi, le contexte requête suivant :
ExpSesDetExpReq =
ExpSesDetExpEnrReq = IniExp
Requête ReqExp :
Pour Chaque WfEntSel avec WfEntSel.DIATab = ‘CDCoEn’ :
Recherche CDCoEn avec Identifiant = WfEntSel.DIAIde.
Si existe, alors :
Pour Chaque/Soc CDCoLi avec CDCoLi.CdeNumCom = CDCoEn.CdeNumCom :
Vlo.Ide = IDENTIFIANT(DDARtic)
Recherche WfEntSel avec WfEntSel.DiaTab = ‘CDCoLi’ et WfEntSel.DiaIde = VLO.Ide
Si existe alors
FinSi
Sinon
Création WfEntSel. DiaTab = ‘CDCoLi’ DiaIde = VLO.Ide.
FinSi.
FinPour