Configurer un offset d'octet dans une structure plate - 7.3

Guide de référence des fonctions de Talend Data Mapper

Version
7.3
Language
Français
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Création de Jobs
Last publication date
2023-01-09

Utilisez une fonction SetElementProperty et une fonction GetElementProperty pour modifier un offset d'octet dans un élément.

Avant de commencer

Vous avez créé une structure plate.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, vous avez un fichier plat avec un élément raine et trois éléments enfants nommés a, b et c, avec l'échantillon de données suivant :
A1111B2222C00003333
Chaque élément enfant contient un initiateur, A, B et C, respectivement. L'objectif est de configurer l'élément c pour ignorer la partie 0000 de la valeur.

Procédure

  1. Ouvrez l'onglet Util pour l'élément c.
  2. Glissez-déposez une fonction SetElementProperty dans l'onglet Util.
  3. Glissez-déposez une fonction Add sur l'argument Value.
  4. Glissez-déposez une fonction GetElementProperty sur l'argument First Value.
  5. Double-cliquez sur la fonction GetElementProperty et sélectionnez Byte offset dans la liste déroulante Property, puis cliquez sur OK.
  6. Glissez-déposez l'élément c sur l'argument Element de la fonction GetElementProperty.
  7. Glissez-déposez une fonction Constant sur l'argument Second Value.
  8. Double-cliquez sur la fonction Constant et saisissez 4 dans le champ Value, puis cliquez sur OK.

Résultats

L'expression créée indique que l'offset d'octet pour les éléments c doit être calculé en ajoutant les quatre octets à ignorer à l'offset courant de l'élément c, appelé par l'élément GetElementProperty.
Si vous souhaitez vérifier que l'offset est correct, vous pouvez créer une map avec cette structure en entrée et en sortie.
Lorsque vous utilisez la fonctionnalité Test Run, vous obtenez les résultats suivants :
A1111B2222C3333