Référence pour les formats de fichier

De Wiki1000

Sommaire

Formats de génération

Principe général de la génération

Le format est une représentation sous forme arborescente du fichier que l'on souhaite générer.

Un format est composé d'un ensemble de balises.

On distingue deux sortes de balises:

  • les balises noeuds de l'arbre : Les noeuds permettent d'explorer le modèle.
  • les balises feuilles de l'arbre : Les feuilles portent les données à écrire.

La génération va explorer le modèle métier en partant de l'objet à générer (une remise bancaire par exemple).

Pour cela, on explore le format récursivement, la classe courante nous indique notre position dans le modèle.

Les noeuds permettent de changer de classe courante et ainsi d'accéder aux données que l'on souhaite écrire dans le fichier généré.

Exploration du modèle

def_format_1.png

def_format_2.png

def_format_3.png

Attributs de la balise

N° d'ordre : permet de trier les balises

Condition d'exploration

  • type condition aucune : exploration des balises enfants
  • type condition formule : exploration des balises enfants seulement si la formule retourne vrai (l'objet qui exécute la formule est du type de la classe courante)
  • type condition formule processus : exploration des balises enfants seulement si la formule retourne vrai (c'est le processus de génération qui exécute la formule)


Attributs de la donnée

def_format_7.png

Longueur : longueur de la donnée écrite dans le fichier. si la donnée retournée est plus longue, elle est tronquée

Mode de calcul

  • Mode de calcul constante : la donnée ne varie pas
  • Mode de calcul élément du modèle : un attribut de la classe courante
  • Mode de calcul formule : permet d'exécuter une formule, l'objet qui exécute est du type de la classe courante
  • Mode de calcul formule (contexte processus) : permet d'exécuter une formule, l'objet qui exécute est le processus. Cela permet d'accéder à des attributs portés par le processus qui exécute la génération (compteur de ligne par exemple)

Méthodes disponibles sur le processus de génération

La méthode GetCompteur est disponible sur le processus de génération.

 function GetCompteur(aIdCompteur : integer; aInit, aIncrement: boolean): integer;
Resultat La valeur du compteur
aIdCompteur Identifiant du compteur
aInit Initialiser le compteur (oui/non)
aIncrement Incrémenter le compteur (oui/non)


Spécificités fichiers Xml

Spécificités fichiers plats

Formats d'intégration

Principe général

Le paramétrage de l'exploration du modèle permet d'affecter les données lues à l'objet qui convient.


def_format_int1.png

Pour les formats Xml : le format représente le message xml reçu.

Pour les formats non Xml : Le format est parcouru récursivement, l'exploration du fichier permet de se positionner sur les données du fichier.

Attributs de la balise

Motif de recherche : Permet de sélectionner une partie du fichier lu : ligne ou bloc(un bloc est un ensemble de lignes)

La partie sélectionnée devient la partie courante du fichier pour les balises enfants.

Syntaxe :

  • "%" représente n'importe quelle chaîne
  • "[nb]" représente n'importe quelle chaîne de longueur nb

Exemples :

"03%" : une ligne qui commence par "03"

"E2IDKU1[48]PEX%" : une ligne qui commence par "E2IDKU1" suivi de 48 caractères quelconques puis de "PEX" et terminée par une chaîne quelconque.

Le motif délimite un bloc : la partie sélectionnée est l'ensemble de lignes commençant par le motif de recherche (jusqu'au prochain motif)

Le motif est en fin de bloc :la partie sélectionnée est l'ensemble de lignes se terminant par le motif de recherche (jusqu'au prochain motif),

Exemple :

exemple_fichier.png

exemple_param_int.png


L'amorce du traitement

Le processus appelant est passé en paramètre, c'est l'objet maître qui tiendra les objets créés.

Pour cela, il est possible que le processus appelant ait un attribut de type liste d'objet, le nom de cet attribut devra apparaître en premier comme rôle itération dans le format.

Pour des raisons d'empreinte mémoire, il est cependant préférable que les objets soient attachés à un rôle liste. Le processus (non persistant) appelant pourra alors avoir un rôle vers un objet persistant (par exemple un objet de session) qui lui aura un liste des objets importés.


Itération

Itération par liste

Si les objets intégrés sont liés par un rôle liste, on le renseigne.

iteration_liste.png

Itération par attribut

Les objets intégrés peuvent ne pas être liés par un rôle liste.(classe de type SQL par exemple). La liaison peut alors s'exprimer grâce à des attributs.

iteration_attribut.png


Par exemple la classe TSQLRemise a pour attribut identité "id" et elle est référencée par la classe TSQLOrdre grâce à l'attribut "idRemise".(Une Remise est liée à plusieurs ordres)



Spécificité fichiers fixes

Spécificité fichiers variables

Outils personnels