Exploitation > Imports/Exports > Sas import/export 

Lorsqu'on lance un processus d'import de données, les données à intégrer sont lues par groupes logiques de lignes de types différents (par exemple un en-tête, des lignes de détail qui lui sont associées, un sous-détail des lignes de détail...). Chaque groupe logique de lignes forme un enregistrement.

La structure de l'enregistrement est définie dans le modèle d'import-export (via le tableau des indicateurs). Si aucune ligne n'est définie dans ce tableau, chaque ligne constitue un enregistrement.

Lors de l'import, chaque enregistrement est testé du point de vue du format des données, mais aussi en utilisant des règles plus générales de cohérence (les règles métier). Si des erreurs sont détectées à ce stade, l'enregistrement n'est pas intégré (mais les enregistrements suivants peuvent l'être).

Le sas d'import-export permet de stocker le détail des données rejetées pour un fichier importé donné : dans un lot, on trouve chaque enregistrement rejeté sous la forme de 1 à N lignes, et dans chaque ligne, on retrouve la description de la structure de la ligne, et les valeurs des champs lues dans le fichier. Lorsque des erreurs ont été détectées sur un champ donné, elles sont mises en évidence par un style prédéfini.

A partir de là, l'utilisateur peut :

  • modifier les valeurs qui sont erronées
  • ajouter des lignes le cas échéant
  • ré-extraire les données d'un ensemble de lots dans un fichier, afin de pouvoir le réimporter à nouveau après correction.
  • rajouter des enregistrements dans un lot donné.

Il est aussi possible d'importer directement un fichier dans le sas d'import/export sans chercher à l'importer en réel. Dans ce cas, seuls les contrôles de de cohérence des formats de données seront faits, et tous les groupes seront mis dans le sas.

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

La gestion du sas se fait dans un objet organisé en deux onglets, les listes de gauche permettent, outre les deux volets classiques (liste gauche présentant une ligne par lot,  et derniers lus), de faire apparaître :

  • les numéros avec le détail des lignes, de façon hiérarchique (Sas import/export par Lot)
  • une hiérarchie numéro de lot / numéro de ligne / champ pour les lignes sur lesquelles une erreur est signalée (Sas import/export par erreur).

En-tête

Présentation

L'en-tête identifie le lot et la ligne courante dans le lot.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

  • No de lot (champ NUMLOT)

Attribué à partir d'un compteur, le numéro de lot, identifie un groupe cohérent de données importé dans le sas.

Définit le modèle d'import/export qui a été utilisé lors de l'alimentation du sas.

Ce code modèle peut être utilisé dans la numérotation des lots, si le compteur intègre un segment de type Complément.

  • Nbre lignes (champ NBRLIG)

Permet d'afficher le nombre de lignes du lot courant.

  • Fichier (champ FILEXT)

Permet de définir le chemin d'un fichier de données par défaut qui sera proposé lors du lancement de l'import ou de l'export (et utilisé de façon automatique en cas de lancement d'un enchaînement d'import ou d'export).  Si le chemin fichier est relatif,  le répertoire de base est supposé être le répertoire de base d'installation du progiciel.

Le chemin peut intégrer le caractère #. Si c'est le cas, il y aura gestion des numéros séquentiels :

  • En import, cela signifie que l'on va rechercher tous les fichiers dont le modèle correspond au chemin, avec # représentant 5 chiffres (on intègre ces fichiers dans l'ordre croissant des numéros)
  • En export, cela signifie que l'on crée un fichier intégrant la valeur formattée du compteur [C]EXPORT sur 5 chiffres . Ceci va normalement de pair avec le fait de cocher la case Gestion chrono lors du lancement de la fonction d'export.

Par exemple, si le chrono export est égal à 156, /u/tmp/fic# permet de générer le fichier /u/tmp/fic00156.

Bloc numéro 2

  • champ LIGFIR

Ces boutons magnétophone permettent de naviguer dans les lignes du lot courant, respectivement en revenant à la première ligne, à la ligne précédente, en passant à la ligne suivante, à la dernière ligne.

  • champ LIGPRE

 

  • champ LIGNEX

 

  • champ LIGLST

 

  • No de ligne (champ NUMLIG)

 

  • Indicateur (champ LEVCOD)

Définit le code de l'indicateur correspondant à la ligne traitée. Par exemple, si un modèle d'import gère des lignes d'en-tête identifiées par un E, des lignes de détail identifiées par un L, et des lignes de sous-détail identifiées par un S, on trouvera l'un de ces 3 caractères dans ce champ.

  • Enregistrement (champ ENR)

Indique le numéro de ligne courant et le nombre de lignes du lot.

Fermer

 

Onglet Lignes

Présentation

Cet onglet permet de faire apparaître les champs du modèle tels qu'ils doivent être intégrés pour le type de lignes courant (identifié par l'indicateur). En regard, on retrouve les valeurs trouvées dans le fichier d'import (avec une mise en forme particulière si une erreur a été détectée sur le champ).

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau

  • champ NBLIG

 

Champ affiché qui identifie la table dans laquelle l'information est supposée être intégrée lors de l'import (on la retrouve sur le modèle d'import/export).

  • Champ (champ FLDNAM)

Champ affiché qui identifie le champ dans lequel l'information est supposée être intégrée lors de l'import (on la retrouve sur le modèle d'import/export).

  • Intitulé (champ FLDINTIT)

Intitulé associé au code précédent.

Champ affiché qui définit le type de données attaché au champ à intégrer. En fonction de ce type, certains contrôles de cohérence peuvent être réalisés. En cas de saisie de la valeur du champ, une fenêtre de sélection dépendant précisément du type peut être activée.

  • Valeur (champ FLDVAL)

Définit la valeur du champ à intégrer.

Par défaut, on trouve la valeur qui a été trouvée lors de l'import, mise en valeur par un style particulier si elle est considérée comme incorrecte. Mais elle peut être modifiée par le biais de cette fonction.

Il est à noter que, lors de la saisie :

  • on a accès à des fonctions de sélection (via clic droit) dans des tables liées ou sur une liste de menus locaux (le numéro du choix fait étant renvoyé dans ce cas).
  • on ne réalise pas les contrôles d'existence dans la table liée ou dans le menu local (on considère que la table en question peut être mise à jour par un autre import préliminaire : c'est seulement au moment où on fera réellement la mise à jour que le contrôle sera fait).

Un champ erroné est remis dans le style par défaut dès lors qu'une saisie conforme aux contraintes de formats de champs a été faite sur la ligne. La ligne en question disparaît également de la liste des erreurs (elle existe toujours dans la table des erreurs, mais avec un indicateur signalant qu'elle est corrigée).

Fermer

 

Onglet Clob

Présentation

Lorsqu'un champ de type clob (chaîne de caractères longue) est défini dans le modèle, cet onglet permet de visualiser sa valeur, et de la modifier si nécessaire, en appuyant sur le bouton correspondant.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

  • Clob (champ CLBINTIT)

Définit le code du clob.

  • Modification (champ CLBEXE)

Ce bouton permet de passer en mode modification sur le texte (de type clob) présenté ci-dessous.

Bloc numéro 2

  • champ WA

 

  • champ FLDCLB

Champ de type clob tel qu'il a été intégré dans le sas d'import/export. Il est modifiable via le bouton situé en haut de l'onglet.

Fermer

 

Etats

Par défaut, les états suivants sont associés à la fonction :

 PRTSCR : Impression écran

Mais ceci peut être modifié par paramétrage.

Boutons spécifiques

Permet d'ajouter une ligne dans le groupe en décalant toutes les lignes suivantes de l'enregistrement de 1. La ligne ajoutée est proposée par défaut avec les valeurs de la précédente ligne, mais il est possible de la modifier. En cas d'abandon, la ligne ajoutée est supprimée, et les lignes décalées sont renumérotées pour revenir à leur position d'origine.

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Fichier

  • Type de destination (champ TYPEXP)

 

  • Fichier de données (champ NOMEXP)

Permet de définir le chemin d'un fichier de données dans lequel l'export est lancé. Si le chemin fichier est relatif,  le répertoire de base est supposé être le répertoire de base d'installation du progiciel.

Il est possible de placer le méta-caractère # dans un nom de fichier à exporter. Dans ce cas, ce caractère est remplacé par le numéro de chrono export courant, sur 5 chiffres (précédé le cas échéant de zéros), sous réserve que l'on ait lancé un export chronologique.

Fermer

Permet de réexporter le lot courant vers un fichier, dont le nom est saisi.

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

Définit le modèle à utiliser pour l'import, qui détermine à la fois le type de données à intégrer et le format de présentation correspondant.

Attention, tous les modèles ne sont pas utilisables en import (une case à cocher définit si le modèle l’est ou pas).

Emplacement

  • Type de destination (champ TYPEXP)

 

  • Fichier de données (champ NOMIMP)

Permet de définir le chemin d'un fichier de données depuis lequel l'import est lancé. Si le chemin fichier est relatif,  le répertoire de base est supposé être le répertoire de base d'installation du progiciel.

Il est possible de placer le méta-caractère # dans un nom de fichier à importer. Dans ce cas, l’import de tous les fichiers correspondant au nom de fichier avec des chiffres au lieu du # 4 sera réalisé en séquence, l’ordre d’import étant l’ordre croissant des chiffres. Ceci permet d’importer automatiquement des fichiers créés par la fonction d’export chronologique, en important les données dans l’ordre dans lequel elles ont été extraites.

Fermer

Permet d'importer dans le sas le contenu d'un fichier. Contrairement à l'import standard, qui ne met dans le sas que les enregistrements pour lesquels des erreurs ont été trouvées, cette fonction importe tous les enregistrements du fichier dans le sas. Elle crée un nouveau lot.

Barre de menu

Suppression / Lot courant

Permet de supprimer la totalité du lot courant du sas. Une confirmation est demandée à l'utilisateur.

Suppression / Enregistrement courant

Permet de supprimer tout l'enregistement correspondant à la ligne courante du sas, en renumérotant les lignes postérieures de l'enregistrement pour que ces lignes restent numérotées sans trous.

Suppression / Ligne courante

Permet de supprimer la ligne courante de l'enregistrement dans le sas, en renumérotant ses lignes. Si la première ligne de l'enregistrement est supprimée, on supprime tout l'enregistrement.

Exemple de manipulation de lignes

Afin de bien comprendre comment fonctionnent les insertions et ajouts de ligne, imaginons un modèle simple, composé d'un en-tête (E) et de lignes multiples (L).

Soit un fichier composé comme suit :

  • Entegistrement 1 = En-tête suivi de 2 lignes
  • Enregistrement 2 = En-tête suivi de 3 lignes
  • Enregistrement 3 = En-tête suivi de 3 lignes

Si tout est importé dans le sas, on obtient la situation suivante (en gras, on voir la première ligne de chaque enregistrement):

No de ligne 

Type de ligne / No

1

E 1

2

L 11

3

L12

4

E 2

5

L 21

6

L 22

7

L 23

8

E 3

9

L 31

10

L 32

11

L 33

Si on se positionne sur la ligne 5, et que l'on supprime la ligne courante, on va retrouver la situation suivante (-- signale les lignes inexistantes) :

No de ligne 

Type de ligne / No

1

E 1

2

L 11

3

L12

4

E 2

5

L 22

6

L 23

--

--

8

E 3

9

L 31

10

L 32

11

L 33

Les lignes 6 et 7 ont été retassées pour ne pas laisser de trou dans l'enregistrement, les lignes suivantes n'ont pas été renumérotées.

Si l'on se positionne sur l'une des lignes 1, 2, ou 3 (premier enregistrement), et que l'on supprime l'enregistrement courant, ou, ce qui revient au même, si on se positionne sur la ligne 1 et que l'on supprime la ligne courante, la situation devient la suivante :

No de ligne 

Type de ligne / No

 --

 --

 --

 --

 --

 --

4

E 2

5

L 22

6

L 23

 --

 

8

E 3

9

L 31

10

L 32

11

L 33

Si enfin on se positionne en ligne 5, et que l'on ajoute une ligne nommée NN, on obtient :

No de ligne 

Type de ligne / No

-- 

 --

-- 

 --

--

 --

4

E 2

5

L 22

6

L NN

7

L 23 

8

E 3

9

L 31

10

L 32

11

L 33

Si on devait ajouter une deuxième ligne MM après la ligne NN, le décalage des lignes se propage à l'enregistrement suivant, ce qui donne :

No de ligne 

Type de ligne / No

-- 

 --

--

 --

-- 

 --

4

E 2

5

L 22

6

L NN

7

L MM

8

L 23 

9

E 3

10

L 31

11

L 32

12

L 33

Messages d'erreur

Il n'y a pas de message d'erreur autre que les messages d'erreur génériques.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre