Encoder, décoder ou générer des schémas pour les fichiers plats dans Azure Logic Apps

S’applique à : Azure Logic Apps (Consommation + Standard)

Pour les flux de travail d’intégration b2B (business-to-business), vous devez souvent convertir des données entre les formats de fichiers XML et plats avant de pouvoir échanger ces données avec des partenaires commerciaux.

Ce guide montre comment utiliser des actions de connecteur intégrées de fichier plat pour encoder ou décoder du code XML et générer des schémas de fichiers plats compatibles Avec BizTalk à partir d’exemples de données.

Référence technique du connecteur

Le connecteur Fichier plat inclut les actions d’encodage, de décodage et de génération de schéma suivantes :

Action Consumption Norme
Encodage de fichier plat Oui Oui
Décodage de fichiers plats Oui Oui
Génération de schéma de fichier plat Non Oui
Application logique Environnement
Consumption Azure Logic Apps multilocataire
Norme Azure Logic Apps à locataire unique, App Service Environment v3 (plans Windows uniquement) et déploiement hybride

Pour en savoir plus, consultez Connecteurs intégrés au compte d’intégration.

Prérequis

  • Un compte et un abonnement Azure. Obtenez un compte Azure gratuit.

  • La ressource d’application logique et le flux de travail dans lesquels vous souhaitez utiliser les opérations Flat File.

    Les opérations de fichier plat n’incluent aucun déclencheur. Votre flux de travail peut commencer par n’importe quel déclencheur ou utiliser n’importe quelle action pour introduire le code XML source.

    Les exemples de cet article utilisent le déclencheur de requête nommé Lorsqu’une requête HTTP est reçue.

    Pour plus d’informations, consultez :

  • Ressource de compte d’intégration pour définir et stocker des artefacts pour l’intégration d’entreprise et les flux de travail B2B.

    • Votre compte d’intégration et votre ressource d’application logique doivent exister dans le même abonnement Azure et la même région Azure.

    • Avant de commencer à utiliser des opérations de fichier plat, vous devez lier votre application logique de Consommation ou lier votre application logique Standard au compte d’intégration pour travailler avec des artefacts tels que des partenaires commerciaux et des contrats. Vous pouvez lier un compte d’intégration à plusieurs ressources d’application logique Consommation ou Standard pour partager les mêmes artefacts.

    Conseil / Astuce

    Si vous ne travaillez pas avec des artefacts B2B tels que des partenaires commerciaux et des contrats dans des flux de travail Standard, vous n’avez peut-être pas besoin d’un compte d’intégration. Au lieu de cela, vous pouvez charger des schémas directement dans votre ressource d’application logique Standard. Dans tous les cas, vous pouvez utiliser le même schéma pour tous les workflows enfants au sein de la même ressource d’application logique. Pour utiliser le même schéma sur plusieurs ressources d’application logique, vous devez utiliser et lier un compte d’intégration.

  • Schéma de fichier plat qui spécifie comment encoder ou décoder du contenu XML.

    Dans les flux de travail Standard, les opérations de fichier plat vous permettent de sélectionner un schéma à partir d’un compte d’intégration lié ou que vous avez précédemment chargé dans votre application logique, mais pas les deux.

    Pour plus d’informations, consultez Ajouter des schémas aux comptes d’intégration.

  • Installez ou utilisez un outil capable d’envoyer des requêtes HTTP pour tester votre solution, par exemple :

    Attention

    Pour les scénarios où vous avez des données sensibles, telles que des informations d’identification, des secrets, des jetons d’accès, des clés API et d’autres informations similaires, veillez à utiliser un outil qui protège vos données avec les fonctionnalités de sécurité nécessaires. L’outil doit fonctionner hors connexion ou localement, et ne nécessite pas de se connecter à un compte en ligne ou de synchroniser des données sur le cloud. Lorsque vous utilisez un outil avec ces caractéristiques, vous réduisez le risque d’exposer des données sensibles au public.

Limites

  • Le contenu XML que vous souhaitez décoder doit être encodé au format UTF-8.

  • Assurez-vous que les groupes XML contenus dans votre schéma de fichier plat ne présentent pas de nombres excessifs pour la propriété max count définie sur une valeur supérieure à 1. Évitez d’imbriquer un groupe XML avec une valeur de propriété max count supérieure à 1 à l’intérieur d’un autre groupe XML dont la propriété max count est supérieure à 1.

  • Quand Azure Logic Apps analyse le schéma de fichier plat et lorsque le schéma autorise le choix du fragment suivant, Azure Logic Apps génère un symbole et une prédiction pour ce fragment. Si le schéma autorise trop de constructions, par exemple, plus de 100 000, l’expansion du schéma devient très volumineuse, ce qui consomme trop de ressources et trop de temps.

Charger un schéma

Après avoir créé votre schéma, chargez le schéma en fonction de votre flux de travail :

Ajouter une action d’encodage de fichier plat

  1. Dans le portail Azure, ouvrez votre ressource d’application logique.

  2. Dans le concepteur, ouvrez votre flux de travail.

    Si votre flux de travail n’a pas de déclencheur ou d’autres actions dont votre flux de travail a besoin, commencez par ajouter ces opérations.

    Cet exemple utilise le déclencheur de requête nommé Lorsqu’une requête HTTP est reçue. Pour ajouter un déclencheur, consultez Ajouter un déclencheur pour démarrer votre flux de travail.

  3. Dans le concepteur, suivez ces étapes générales pour ajouter l’action intégrée nommée Encodage de fichier plat.

    Le volet d’informations d’action s’ouvre avec l’onglet Paramètres sélectionné.

  4. Dans le paramètre Contenu de l’action, fournissez le contenu XML à encoder, qui est soit la sortie du déclencheur, soit à partir d’une action précédente, en procédant comme suit :

    1. Sélectionnez dans la zone Contenu , puis sélectionnez l’icône éclair pour ouvrir la liste de contenu dynamique.

    2. Dans la liste de contenu dynamique, sélectionnez le contenu XML à encoder.

    L’exemple suivant montre la liste de contenu dynamique ouverte, la sortie du déclencheur Lorsqu’une requête HTTP est reçue et le contenu corps sélectionné de la sortie du déclencheur.

    Capture d’écran montrant le portail Azure, le concepteur de flux de travail, l’action d’encodage de fichier plat et le paramètre Contenu avec la liste de contenu dynamique et le contenu sélectionnés pour l’encodage.

    Remarque

    Si Body n’apparaît pas dans la liste de contenu dynamique, à côté de l'intitulé de la section Quand une requête HTTP est reçue, sélectionnez Voir plus. Vous pouvez également entrer directement le contenu à décoder dans la zone Contenu.

  5. Dans la liste Nom du schéma, sélectionnez votre schéma.

    Capture d’écran montrant le concepteur et la liste des noms de schémas ouverte avec le schéma sélectionné pour l'encodage.

    Remarque

    Si la liste de schémas est vide, la cause peut être :

    • La ressource d’application logique n’est pas liée à un compte d’intégration.
    • Le compte d’intégration lié ne contient aucun fichier de schéma.
    • La ressource d’application logique ne contient aucun fichier de schéma. Cette raison s’applique uniquement aux applications logiques standard.
  6. Pour ajouter d’autres paramètres facultatifs à l’action, sélectionnez ces paramètres dans la liste des paramètres avancés .

    Paramètre Valeur Descriptif
    Mode de génération de nœuds vides ForcedDisabled ou HonorSchemaNodeProperty ou ForcedEnabled Mode à utiliser pour la génération de nœuds vides avec l’encodage de fichier plat.

    Pour BizTalk, le schéma de fichier plat possède une propriété qui contrôle la génération de nœud vide. Vous pouvez suivre le comportement de propriété de génération de nœud vide pour votre schéma de fichier plat. Vous pouvez également utiliser ce paramètre pour qu’Azure Logic Apps génère ou omet des nœuds vides. Pour plus d’informations, consultez les balises pour les éléments vides.
    Normalisation XML Oui ou Non Paramètre permettant d’activer ou de désactiver la normalisation XML pour l’encodage de fichier plat. Pour plus d’informations, consultez XmlTextReader.Normalization.
  7. Enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

Ajouter une action de décodage de fichier plat

  1. Dans le portail Azure, ouvrez votre ressource d’application logique.

  2. Dans le concepteur, ouvrez votre flux de travail.

    Si votre flux de travail n’a pas de déclencheur ou d’autres actions dont votre flux de travail a besoin, commencez par ajouter ces opérations.

    Cet exemple utilise le déclencheur de requête nommé Lorsqu’une requête HTTP est reçue. Pour ajouter un déclencheur, consultez Ajouter un déclencheur pour démarrer votre flux de travail.

  3. Dans le concepteur, suivez ces étapes générales pour ajouter l’action intégrée nommée Décodage de fichier plat.

  4. Dans le paramètre Contenu de l’action, fournissez le contenu XML à décoder, en tant que sortie du déclencheur ou d’une action précédente en procédant comme suit :

    1. Sélectionnez dans la zone Contenu , puis sélectionnez l’icône éclair pour ouvrir la liste de contenu dynamique.

    2. Dans la liste de contenu dynamique, sélectionnez le contenu XML à décoder.

    L’exemple suivant montre la liste de contenu dynamique ouverte, la sortie du déclencheur Lorsqu’une requête HTTP est reçue et le contenu corps sélectionné de la sortie du déclencheur.

    Capture d’écran montrant le portail Azure, le concepteur de flux de travail, l’action de décodage de fichiers plats et le paramètre Contenu avec la liste de contenu dynamique et le contenu sélectionnés pour le décodage.

    Remarque

    Si Body n'apparaît pas dans la liste de contenu dynamique, sélectionnez Afficher plus en regard de l’étiquette de la section « Quand une requête HTTP est reçue ». Vous pouvez également entrer directement le contenu à décoder dans la zone Contenu.

  5. Dans la liste Nom du schéma, sélectionnez votre schéma.

    Capture d’écran qui montre le concepteur et la liste des noms de schémas ouverte avec le schéma sélectionné pour le décodage.

    Remarque

    Si la liste de schémas est vide, la cause peut être :

    • La ressource d’application logique n’est pas liée à un compte d’intégration.
    • Le compte d’intégration lié ne contient aucun fichier de schéma.
    • La ressource d’application logique ne contient aucun fichier de schéma. Cette raison s’applique uniquement aux applications logiques standard.
  6. Enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

Vous avez maintenant terminé la configuration de votre action de décodage de fichier plat. Dans une application réelle, vous souhaiterez peut-être stocker les données décodées dans une application métier telle que Salesforce. Vous pouvez également envoyer les données décodées à une partie. Pour envoyer la sortie de l’action de décodage à Salesforce ou à votre partie, utilisez les autres connecteurs disponibles dans Azure Logic Apps :

Ajouter une action de génération de schéma de fichier plat

L’action Génération de schéma de fichier plat génère un schéma de fichier plat XSD au moment de l’exécution à partir d’un exemple de contenu de fichier plat que vous fournissez en tant qu’entrée. Le schéma généré est compatible avec les annotations de fichier plat BizTalk, telles que b:schemaInfo, b:recordInfoet b:fieldInfo.

  1. Dans le portail Azure, ouvrez votre ressource d’application logique.

  2. Dans le concepteur, ouvrez votre flux de travail.

    Si votre flux de travail n’a pas de déclencheur ou d’autres actions dont votre flux de travail a besoin, commencez par ajouter ces opérations.

    Cet exemple utilise le déclencheur de requête nommé Lorsqu’une requête HTTP est reçue. Pour ajouter un déclencheur, consultez Ajouter un déclencheur pour démarrer votre flux de travail.

  3. Dans le concepteur, suivez ces étapes générales pour ajouter l’action intégrée nommée Génération de schéma de fichier plat.

  4. Dans le paramètre Contenu de l’action, fournissez l’exemple de contenu de fichier plat.

    Vous pouvez utiliser du contenu à partir de la sortie du déclencheur ou d’une action précédente :

    1. Sélectionnez dans la zone Contenu , puis sélectionnez l’icône éclair pour ouvrir la liste de contenu dynamique.

    2. Dans la liste de contenu dynamique, sélectionnez l’exemple de contenu de fichier plat.

  5. Définissez la valeur du paramètre Structure d’enregistrement sur Délimité ou Positionnel.

    Le concepteur utilise des paramètres dynamiques (getFlatFileSchemaGenerationParameters) pour afficher le jeu de paramètres correct, en fonction de la valeur sélectionnée recordStructure .

    L’exemple suivant montre les paramètres de configuration de la structure d’enregistrement délimitée :

    Capture d’écran montrant le portail Azure, le concepteur de flux de travail, l’action de génération de schéma de fichier plat et le paramètre Contenu avec une structure d’enregistrement délimitée.

    L’exemple suivant montre les paramètres de configuration de la structure d’enregistrement positionnel :

    Capture d’écran montrant le portail Azure, le concepteur de flux de travail, l’action de génération de schéma de fichier plat et le paramètre Contenu avec la structure d’enregistrement positionnelle.

  6. Pour votre structure d’enregistrement sélectionnée, définissez les paramètres obligatoires et facultatifs.

    Paramètres communs (délimités et positionnels)

    Paramètre Catégorie Obligatoire Descriptif
    content Any Oui Contenu de données d’exemple de fichier plat (chaîne ou binaire).
    recordStructure String Oui Delimited ou Positional.
    hasHeader Boolean Oui Si true, traite la première ligne d’enregistrement comme l’en-tête et utilise ces valeurs comme noms de champs générés.
    recordDelimiter String Non Délimiteur d’enregistrement (ligne). L’analyse utilise cette valeur littéralement (aucun décodage hexadécimal). Utilisez des caractères réels, tels que \r\n ou \n. Pour utiliser le fractionnement de ligne par défaut, omettez cette valeur. Le XSD généré peut émettre une valeur hexadécimal (0x0D0A) dans les annotations de schéma.
    recordDelimiterOrder String Non Positionnement du délimiteur : Infix (par défaut), Prefixou Postfix.
    rootElementName String Non Nom de l’élément racine pour le XSD. Valeur par défaut : Root.
    targetNamespace String Non Espace de noms cible pour le schéma. Valeur par défaut : http://schemas.microsoft.com/FlatFile/{RootElementName}
    recordName String Non Nom de l’élément d’enregistrement enfant répété. Valeur par défaut : {RootElementName}_Record

    Paramètres spécifiques délimités

    Paramètre Catégorie Obligatoire Descriptif
    fieldDelimiter String Oui Caractères délimiteurs de champ, tels que des virgules, des points-virgules, des tabulations, fournir des caractères réels, tels que ,, ;ou \t. L’analyse utilise la comparaison de chaînes littérales (pas de décodage hexadécimal).
    fieldDelimiterOrder String Oui Positionnement du délimiteur : Infix (par défaut), Prefixou Postfix.
    escapeCharacter String Non Caractère d’échappement pour les délimiteurs intégrés dans les valeurs de champ. Indiquez le caractère réel, tel que \ ou ". L’analyse utilise la correspondance littérale (aucun décodage hexadécimal).

    Paramètres spécifiques à la position

    Paramètre Catégorie Obligatoire Descriptif
    countPositionsByByte Boolean Oui Mesure les longueurs de champ en octets (true) ou en caractères (false). Pertinent pour les encodages multioctets.
    fieldPositions Array Oui Tableau d’objets de position de champ, chacun avec length et justification.
    fieldPositions[].length Integer Oui Largeur fixe du champ.
    fieldPositions[].justification String Oui Contrôle l’alignement de la marge intérieure. Entrez manuellement la valeur Left ou Right (sans distinction entre majuscules et minuscules).

    Remarque : le concepteur actuel ne fournit pas de liste pour vous permettre de sélectionner une valeur.
  7. Avant d’exécuter le flux de travail, passez en revue le comportement du délimiteur et du caractère d’échappement :

    Comportement du délimiteur d’enregistrement

    Aspect Comportement
    Analyse (fractionnement de lignes) options.RecordDelimiter (valeur utilisateur brute) passe directement à String.Split(). Pas de décodage hexadécimal.
    Sortie XSD GetRecordDelimiterForSchema() convertit comme suit :

    - S’il est préfixé par 0x, laissez-le inchangé.
    - Si elle est vide, la valeur par défaut est 0x0D0A.
    - Sinon, convertissez des caractères littérals en octets hexadécimaux.
    Entrée hexadécimal Non pour l’analyse syntaxique. Si vous fournissez 0x0D0A, l’analyse tente de scinder selon le texte littéral 0x0D0A.
    Que fournir Utilisez les caractères littéraux : \r\n, \n, ou omettez-les entièrement, ce qui, par défaut, effectue le fractionnement sur \r\n/\n/\r.

    Comportement du délimiteur de champ

    Aspect Comportement
    Analyse (champs de fractionnement) options.FieldDelimiter est transmis directement à SplitDelimitedRecord() comme comparaison littérale de chaînes. Pas de décodage hexadécimal.
    Sortie XSD Si la valeur commence par 0x, émet child_delimiter_type="hex"; sinon, "char".
    Entrée hexadécimale Non pour l’analyse syntaxique. 0x09 correspond au texte 0x09littéral, et non à l’onglet.
    Que fournir Utilisez des caractères réels : ,, ;, \t, |, et ainsi de suite.

    Comportement des caractères d’échappement

    Aspect Comportement
    Analyse syntaxique (échappement) options.EscapeCharacter est comparé littéralement. En cas de correspondance, le caractère suivant est consommé tel quel. Pas de décodage hexadécimal.
    Sortie XSD Si la valeur commence par 0x, émet escape_char_type="hex"; sinon, "char".
    Entrée hexadécimal Non pour l’analyse syntaxique. Même comportement de correspondance littérale.
    Que fournir Utilisez le caractère réel, par exemple, \ ou ".
  8. Enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

  9. Pour utiliser la sortie de schéma générée pour décoder ou encoder des actions, enregistrez manuellement cette sortie en tant que .xsd fichier.

  10. Chargez le .xsd fichier dans votre compte d’intégration. Ou, pour les flux de travail Standard, chargez le fichier dans le dossier Artefacts des ressources d’application logique. Vous pouvez également utiliser l’API REST pour charger l’artefact de schéma.

    Le schéma généré est retourné dans le corps de sortie de l’action sous forme de chaîne :

    @body('Flat_File_Schema_Generation')
    
  11. Si vous le souhaitez, utilisez les exemples de définition suivants :

    Exemple délimité

    {
       "Flat_File_Schema_Generation": {
          "type": "FlatFileSchemaGeneration",
          "runAfter": {},
          "inputs": {
             "content": "@triggerBody()",
             "recordStructure": "Delimited",
             "fieldDelimiter": ";",
             "fieldDelimiterOrder": "Infix",
             "recordDelimiter": "\\r\\n",
             "hasHeader": true,
             "rootElementName": "MerchantOrders",
             "targetNamespace": "http://schemas.contoso.com/FlatFile/MerchantOrders",
             "recordName": "MerchantOrder",
             "escapeCharacter": "\\"
          }
       }
    }
    

    Exemple de positionnement

    {
       "Flat_File_Schema_Generation": {
          "type": "FlatFileSchemaGeneration",
          "runAfter": {},
          "inputs": {
             "content": "@triggerBody()",
             "recordStructure": "Positional",
             "fieldPositions": [
                { "length": 6, "justification": "Left" },
                { "length": 5, "justification": "Left" },
                { "length": 3, "justification": "Left" }
             ],
             "countPositionsByByte": false,
             "hasHeader": false,
             "rootElementName": "Ledger",
             "targetNamespace": "http://schemas.contoso.com/FlatFile/Ledger"
          }
       }
    }
    

    Passez le schéma généré à l’action suivante :

    {
       "Next_Action": {
          "inputs": {
             "schema": "@body('Flat_File_Schema_Generation')"
          },
          "runAfter": {
             "Flat_File_Schema_Generation": [ "Succeeded" ]
          }
       }
    }
    
  12. Passez en revue la sortie, les règles d’inférence et les problèmes connus :

    Output:

    Propriété Catégorie Descriptif
    body String Schéma XSD compatible BizTalk généré en tant que chaîne XML.

    Contenu XSD généré de haut niveau :

    • b:schemaInfo annotation avec standard="Flat File", root_referenceet codepage="65001" (UTF-8)
    • b:recordInfo annotations par enregistrement avec structure, child_delimiter, child_delimiter_type, child_order et, facultatifs, escape_char et escape_char_type
    • b:fieldInfo annotations par champ avec justification et, pour les schémas positionnels, pos_offset et pos_length
    • Inférence de type de données à partir d’exemples de données : xs:string, , xs:integerxs:decimal, xs:boolean, xs:date,xs:dateTime

    Inférence de type de données à partir du premier enregistrement de données non vide :

    Valeur d'échantillon Type XSD inféré
    true ou false xs:boolean
    12345 xs:integer
    19.99 xs:decimal
    2025-01-15 xs:date
    2025-01-15T10:30:00 xs:dateTime
    Toute autre valeur xs:string

    Ordre des éléments enfants (placement du délimiteur) :

    JSON Sens Exemple (;)
    Infix Délimiteur entre les champs A;B;C
    Prefix Délimiteur avant chaque champ ;A;B;C
    Postfix Délimiteur après chaque champ A;B;C;

    Gestion des en-têtes :

    • Lorsque hasHeader est true, la première ligne est considérée comme contenant les noms de champs, et non comme des données.
    • Les valeurs d’en-tête sont converties en noms d’éléments XML valides. Les caractères spéciaux deviennent _et les chiffres de début obtiennent un _ préfixe.
    • Si seule une ligne d’en-tête existe et qu’aucun enregistrement de données n’existe, les champs sont par défaut xs:string.
    • Si un champ d’en-tête est vide, le nom du champ généré revient à Field{N}.
    • Quand hasHeader c’est falsele cas, les champs sont nommés Field1automatiquement, Field2et Field3ainsi de suite.

Limitations et problèmes connus

Limitation Descriptif
L’inférence de type utilise un enregistrement unique. Le premier enregistrement de données non vide détermine les types de colonnes.
Type d’enregistrement unique uniquement L’action génère une structure d’enregistrements répétée et ne prend pas en charge les dispositions d’enregistrements hétérogènes.
Aucun enregistrement imbriqué ou hiérarchique Le schéma généré est plat, ce qui signifie que vous disposez d’un élément racine avec un enregistrement enfant et des champs répétitifs.
Les limites positionnelles ne sont pas détectées automatiquement. Vous devez fournir des longueurs de champ exactes en fieldPositions.
Page de codes UTF-8 uniquement Les ensembles de schémas générés définissent codepage="65001" et n’exposent pas le choix de l’encodage.
Le comportement des caractères d’échappement est littéral. La gestion des échappements correspond à la valeur littérale et ignore uniquement le caractère unique suivant.
recordName par défaut Si elle n’est pas spécifiée, la valeur par défaut est {RootElementName}_Record.
Entrée de justification du concepteur fieldPositions[].justification prend en charge uniquement Left et Right.
Problème Résolution
Nombre de champs incorrect Vérifiez qu’il fieldDelimiterOrder correspond à votre format de données (Infix, Prefix, Postfix).
Les valeurs hexadécimales sont en sortie uniquement Bien que le XSD généré puisse afficher les délimiteurs sous forme de valeurs hexadécimales (par exemple, 0x0D0A) et laisser passer dans les annotations les valeurs préfixées par 0x, l’analyse ne décode pas les entrées hexadécimales. Pour l’analyse, fournissez toujours des caractères de délimiteur réels (\r\n, \n, \t, ,, ;).
Les noms de champs d’en-tête sont inattendus Les valeurs d’en-tête sont converties en noms XML valides. Par exemple, 1st Qty devient _1st_Qty.
Comportement du délimiteur d’enregistrement Si recordDelimiter est omis, l’analyse syntaxique se fractionne sur les véritables caractères de nouvelle ligne (\r\n, \n, \r). Dans les annotations XSD générées, le délimiteur d’enregistrement a pour valeur par défaut 0x0D0A.

Résoudre les problèmes

Error Cause Résolution
The flat file sample data content is required. content est null ou vide. Vérifiez que le déclencheur ou l’action précédente fournit du contenu de fichier plat non vide.
The schema generation options are required. Erreur interne : l’objet options a la valeur Null. Vérifiez que la définition de workflow contient des entrées valides.
Failed to generate flat file schema: '{details}'. Erreur d’exécution inattendue, par exemple, encodage ou données incorrectes. Inspectez les détails ou le message d’erreur interne pour la cause racine.
The field delimiter is required for delimited record structure. recordStructure est Delimited, mais fieldDelimiter est manquant ou vide. Fournissez, par exemple, des virgules, des points-virgules ou des tabulations. Ne fournissez fieldDelimiterpas de texte hexadécimal tel que 0x09; fournissez des caractères réels tels que \t.
The field positions array is required for positional record structure. recordStructure est Positional, mais fieldPositions est manquant ou vide. fieldPositions Fournissez length et justification pour chaque champ.
The flat file sample data contains no data records. Aucune ligne de données non vide n’existe (ou uniquement un en-tête quand hasHeader=true). Fournissez au moins un enregistrement de données non vide dans l’exemple de contenu.
Positional field '{N}' exceeds the record length. Record length: '{len}', position: '{pos}', field length: '{fieldLen}'. Les longueurs de champ totales dépassent la longueur des enregistrements. Ajustez les longueurs de fieldPositions, ou vérifiez si countPositionsByByte doit être modifié.

Tester votre workflow

Pour déclencher votre workflow, suivez les étapes suivantes :

  1. Dans le déclencheur Requête, recherchez le paramètre d’URL HTTP POST et copiez l’URL.

  2. Ouvrez votre outil de requête HTTP et utilisez ses instructions pour envoyer une requête HTTP à l’URL copiée, y compris la méthode attendue par le déclencheur Requête.

    Cet exemple utilise la méthode POST avec l’URL.

  3. Incluez le contenu XML que vous souhaitez encoder ou décoder dans le corps de la requête.

  4. Une fois votre flux de travail exécuté, accédez à l’historique des exécutions du flux de travail et examinez les entrées et sorties de l’action Fichier plat .