Traitement XML
Le traitement des fichiers XML est légèrement différent de celui des autres fichiers. Leur mode de traitement est défini par le descripteur de format. Le processus back-end divise le fichier source xml en plusieurs entités, définies par les tables du descripteur. Pendant la charge du fichier, chaque entité est traitée séparément, triée dans l'ordre parent vers enfant, ce qui crée une approche différente de celle du chargement d'un fichier normal (un fichier .csv, par exemple). Les différences sont les suivantes :
- La table résultante, telle que définie dans les propriétés de la tâche, ne contiendra pas, dans ce cas, les données du fichier xml mais seulement la liste des différentes entités. Pour chaque entité, le nom de la table dans laquelle se trouvent les données correspondant à cette entité est indiqué. Ainsi, les données du fichier XML ne sont pas stockées dans la table définie dans les propriétés de la tâche, mais dans plusieurs tables différentes.
- Lorsque les différentes entités sont chargées, la procédure stockée (pour traiter les données) se déclenche pour chaque entité, directement après le chargement de celle-ci. S'il existe n entités, la procédure est exécutée n fois. Toutefois, quand une entité est traitée, il est possible que des entités enfants n'aient pas encore été chargées. Pour identifier les différentes entités pendant le traitement, il est possible de définir un paramètre « TEMPFILENAME » dans la procédure stockée. Ce paramètre contient le nom du fichier (qui correspond au nom de la table) correspondant à l'entité venant d'être chargée et exigeant un traitement.
- Les données correspondant à chaque entité restent dans leurs tables correspondantes pendant toute la charge. Elles ne sont supprimées que lorsque la même tâche est exécutée une nouvelle fois.