Cegid XRP Ultimate  |  
I3   Actualisé le 06/10/2022
Fondations
TODL - Alimentation des sas

   Il s'agit d'un traitement permettant de charger des données en masse dans les tables sas.

   Les données à charger sont présentes dans un ou plusieurs fichiers au format texte. Le traitement lit ces derniers ligne à ligne et exécute pour chacune d'elles une requête d'insertion en base de données.
- La structure des fichiers de données est décrite dans un fichier modèle dédié ;
- La requête d'insertion à exécuter est décrite dans un second fichier modèle dédié.

   Par construction, le traitement s'appuie donc sur :
- N fichiers de données à charger (N > 0) ;
- 1 fichier descriptif de la structure des fichiers de données ;
- 1 fichier descriptif de la requête à exécuter.

   Concernant les données, l'unité de référence du traitement est le fichier. En effet, dès lors qu'une erreur est détectée dans un fichier, c'est la totalité des enregistrements de ce dernier qui est rejetée (rollback). De plus, les données des fichiers sont traitées par lot afin d'optimiser les temps de chargement.

   Après traitement, les fichiers de données peuvent à la demande être déplacés vers un répertoire dédié aux fichiers traités ou rejetés selon la présence ou non d'erreurs.

Soumission (voir aussi : Paramétrage du traitement)

   Chemin des fichiers à charger
   Les données à charger sont présentes sous forme de fichiers texte de type CSV. Le chemin de ces derniers sur le serveur de traitements est précisé dans ce critère.

   Exemple de valeur pour traiter un fichier unique :
"/products/.../QUALT/datas/todl/DM2013051856.csv"


   Exemple de valeur d'un critère impliquant potentiellement plusieurs fichiers :
"/products/.../QUALT/datas/todl/DM20130518*.csv"


   Important : le chemin que l'on spécifie est un chemin de fichier présent sur le serveur de traitements. Le traitement s'exécutant sur cette machine, il convient évidemment de fournir une syntaxe qui lui permette de trouver le fichier à partir de cette dernière.

   Emplacement du fichier modèle des données
   Un fichier texte complémentaire et obligatoire permet de décrire la structure des fichiers de données à charger. Le chemin de ce fichier est fourni par ce critère.

   A l'instar des fichiers de données, le fichier modèle des données devra être présent physiquement sur le serveur de traitements.

   Exemple de valeur :
"c:\temp\TODL\model\oetteDATAModel.txt"



   Le fichier modèle des données est un fichier au format texte, respectant la syntaxe des fichiers de propriétés Windows.

   Les propriétés sont les suivantes :

   encoding
Permet de spécifier le jeu de caractères à utiliser pour lire correctement les fichiers de données. Le défaut est ISO-8859-15.
Facultatif : Oui.

   separator
Précise le séparateur de champs à utiliser. Le défaut est ";".
Facultatif : Oui.

   header
Précise le nom des champs composant chaque ligne du fichier. Les noms des champs sont séparés les uns des autres par le caractère ";" quel que soit par ailleurs le séparateur choisi dans la propriété "separator".
Facultatif : Non.
Son absence provoque une erreur.

   Exemple : numoette;nomoette;noroette

   Dans cet exemple, on écrit que le premier champ trouvé dans chaque ligne de données lues sera "numoette", le deuxième "nomoette", le troisième "noroette", etc.

    Exemple de fichier de description des données

   encoding=ISO-8859-15
separator=;
header=numoette;nomoette;nu3oette;nu4oette

   Répertoire des fichiers traités
   Ce critère permet de préciser si, après traitement, les fichiers de données où aucune erreur n'a été rencontrée doivent être déplacés dans un répertoire dédié. La valeur de ce critère est, vide ou "." si le fichier ne doit pas être déplacé, sinon l'emplacement du répertoire de destination. Ce répertoire est un répertoire physiquement présent sur le serveur de traitements.

   Répertoire des fichiers rejetés
   Ce critère permet de préciser si, après traitement, les fichiers de données où au moins une erreur a été rencontrée doivent être déplacés dans un répertoire dédié. La valeur de ce critère est, vide ou "." si le fichier ne doit pas être déplacé, sinon l'emplacement du répertoire de destination. Ce répertoire est un répertoire physiquement présent sur le serveur de traitements.

   Emplacement du fichier modèle de la requête
   Ce critère précise le fichier contenant la description des requêtes à exécuter pour alimenter Cegid XRP Ultimate.

   Exemple de valeur :
"c:\temp\TODL\model\oetteRQModel.txt"



   Le fichier modèle des données est un fichier au format texte, respectant la syntaxe des fichiers de propriétés Windows.

   Cas d'une table cible unique

   Dans le cas d'une table cible unique, la propriété "table" précise la table à alimenter. Toutes les autres propriétés sont considérées comme désignant des colonnes de cette table et leur valeur désigne donc les données à charger.

   table
Nom de la table à alimenter
Exemple : oette

   {nomColonne}
Nom de la colonne de la table à alimenter
Exemple : numoette

   Valeurs possibles pour les colonnes :
- un nom de champ (issu de la structure du fichier de données) ;
- un paramètre applicatif ;
- un littéral ;
- un compteur de numéro interne ;
- une expression.

   Un nom de champ

   Dans ce cas, la valeur doit commencer par le caractère "@"et bien sûr désigner un champ existant dans le modèle des fichiers de données.

   Exemple : nomoette=@fournisseur

   Note : si, pour une colonne donnée, la valeur est omise ou vierge, la valeur positionnée par défaut est le champ portant le même nom que la colonne en question.

   Exemple :

   La déclaration

   table=oette
numoette
nomoette=@fournisseur


   Est équivalente à

   table=oette
numoette=@numoette
nomoette=@fournisseur



   Un paramètre applicatif

   Dans ce cas, la valeur commence par le caractère "$". Le reste doit désigner un paramètre applicatif existant.

   Les symboles classiques :

   $DATE : Date sous la forme "yyyyMMdd". Exemple : 20130630.

   $TIME : Heure sous la forme "HH:mm:ss". Exemple : 23:40:51.

   $YEAR : Année sous la forme "yyyy". Exemple : 2013.

   $MONTH : Mois sous la forme "MM". Exemple : 11.

   $DAYOFMONTH : Numéro du jour dans le mois sous la forme "dd". Exemple : 25.

   $HOUR24 : Heure de 0 à 23 sous la forme "HH". Exemple : 15.

   $MIN : Minutes sous la forme "mm". Exemple : 56.

   $SEC : Secondes sous la forme "ss". Exemple : 48.

   De façon générale, les paramètres applicatifs proviennent des occurrences du paramètre QINPRM :
- occgtpar = nom du paramètre ;
- txtgtpar = valeur du paramètre.


   Un compteur de numéro interne

   Dans ce cas, la valeur doit commencer par le caractère ":". Le reste désigne le compteur de numéro interne à utiliser (nomgtnui).

   Exemple :

   La déclaration

   table=ocect
nuiocect=:OCECT
numocect
etsocect


   alimentera la zone "nuiocect" de la table avec la prochaine valeur du compteur "OCECT".


   Un littéral

   Dans ce cas, la valeur doit être entourée du caractère "'" (apostrophe), sauf s'il s'agit d'un numérique où cette précaution n'est pas nécessaire.

   Exemple :

   table=ocect
nuiocect=:OCECT
numocect
etsocect
cptocect=411256
rolocect='E'


   Une expression

   Il s'agit d'une expression qui sera évaluée au moment de l'exécution par le SGBD. Dans ce cas, la valeur ne possède pas de caractère particulier, elle ne doit pas être entourée d'apostrophes.

   Exemple :

   etasatfc=nvl(@etasatfc,'A')


   Cas de l'alimentation de plusieurs tables

   Dans le cas où chaque ligne du fichier alimente plusieurs tables, la syntaxe diffère légèrement. Chaque table est assignée à un alias, ce qui se fait par le biais de la syntaxe :

   table.{alias}={nomTable}

   Exemple

   table.1=oette

   1 est ici l'alias choisi.

   Toutes les colonnes qui se rapportent à la table en question doivent ensuite impérativement être précédées de l'alias de la table.

   Syntaxe :

   {alias}.{nomColonne}={valeur}

   Exemple :

   table.2=satfc
2.etssatfc='YGA'
2.fousatfc=substr(@fou,1,2)


   Il n'y a pas de limite théorique au nombre de tables alimentées, mais il est évident que plus elles seront nombreuses, plus les temps de traitements seront élevés.

   Nombre d'enregistrements à ignorer
   Ce critère précise le nombre de lignes de données que l'on doit ignorer en tête des fichiers de données traités. Cette contrainte s'applique à chaque fichier concerné. Ainsi, si, par exemple, la valeur spécifiée est 10, chacun des fichiers verra ses 10 premières lignes de données ignorées. Ces dernières ne donneront donc pas lieu à l'appel des requêtes d'insertion.