Schema's coderen, decoderen of genereren voor platte bestanden in Azure Logic Apps

Van toepassing op: Azure Logic Apps (Verbruik + Standard)

Voor B2B-integratiewerkstromen (business-to-business) moet u vaak gegevens converteren tussen XML- en platte bestandsindelingen voordat u deze gegevens kunt uitwisselen met handelspartners.

In deze handleiding wordt beschreven hoe u ingebouwde connectoracties voor plat bestand gebruikt om XML te coderen of decoderen en om platte bestandsschema's te genereren die compatibel zijn met BizTalk op basis van voorbeeldgegevens.

Technische naslaggids voor connector

De connector Plat bestand bevat de volgende coderings-, decoderings- en schemageneratieacties:

Action Consumption Standaard
Codering van platte bestanden Yes Yes
Decodering van platte tekstbestanden Yes Yes
Schemageneratie voor platte bestanden No Yes
Logic-app Milieu
Consumption Multi-tenant Azure Logic Apps
Standaard Azure Logic Apps met één tenant, App Service Environment v3 (alleen Windows-abonnementen) en hybride implementatie

Zie Ingebouwde connectors voor integratieaccounts voor meer informatie.

Vereisten

  • Een Azure-account en -abonnement. Ontvang een gratis Azure-account.

  • De resource en werkstroom van de Logic App waarin u de plat-bestandsbewerkingen wilt gebruiken.

    Platte bestandsbewerkingen bevatten geen triggers. Uw werkstroom kan beginnen met elke trigger of elke actie gebruiken om de bron-XML in te voeren.

    In de voorbeelden in dit artikel wordt de Request-trigger genaamd Wanneer een HTTP-aanvraag wordt ontvangen gebruikt.

    Voor meer informatie, zie:

  • Een integratieaccountresource voor het definiëren en opslaan van artefacten voor bedrijfsintegratie en B2B-werkstromen.

    • Zowel uw integratieaccount als de resource van de logische app moeten zich in hetzelfde Azure-abonnement en dezelfde Azure-regio bevinden.

    • Voordat u met Flat File-bewerkingen aan de slag gaat, moet u uw Consumption logic app of uw standaard logische app aan het integratieaccount koppelen om artefacten zoals handelspartners en overeenkomsten te gebruiken. U kunt een integratieaccount koppelen aan meerdere Consumption- of Standaard-logische appresources om dezelfde artefacten te delen.

    Aanbeveling

    Als u niet met B2B-artefacten werkt, zoals handelspartners en overeenkomsten in Standaardwerkstromen, hebt u mogelijk geen integratieaccount nodig. In plaats daarvan kunt u schema's rechtstreeks uploaden naar de resource van uw standaard logische app. In beide gevallen kunt u hetzelfde schema gebruiken voor alle onderliggende werkstromen in dezelfde logische app-resource. Als u hetzelfde schema wilt gebruiken voor meerdere resources voor logische apps, moet u een integratieaccount gebruiken en koppelen.

  • Een plat bestandsschema dat aangeeft hoe XML-inhoud moet worden gecodeerd of gedecodeerd.

    In Standaardwerkstromen kunt u met Flat File-bewerkingen een schema selecteren uit een gekoppeld integratieaccount of dat u eerder hebt geüpload naar uw Logic Apps, maar niet beide.

    Zie Schema's toevoegen aan integratieaccounts voor meer informatie.

  • Installeer of gebruik een hulpprogramma waarmee HTTP-aanvragen kunnen worden verzonden om uw oplossing te testen, bijvoorbeeld:

    Let op

    Voor scenario's waarin u gevoelige gegevens hebt, zoals referenties, geheimen, toegangstokens, API-sleutels en andere vergelijkbare informatie, moet u een hulpprogramma gebruiken waarmee uw gegevens worden beveiligd met de benodigde beveiligingsfuncties. Het hulpprogramma moet offline of lokaal werken en u hoeft zich niet aan te melden bij een onlineaccount of gegevens naar de cloud te synchroniseren. Wanneer u een hulpprogramma met deze kenmerken gebruikt, vermindert u het risico dat gevoelige gegevens openbaar worden gemaakt voor het publiek.

Beperkingen

  • XML-inhoud die u wilt decoderen, moet in UTF-8-formaat zijn gecodeerd.

  • Zorg er in het schema voor het platte bestand voor dat de XML-groepen die het bevat niet te veel max count-eigenschappen hebben die zijn ingesteld op een waarde groter dan 1. Vermijd het nesten van een XML-groep met een max count eigenschapswaarde groter dan 1 in een andere XML-groep met een max count eigenschap groter dan 1.

  • Wanneer Azure Logic Apps het platte bestandsschema parseert en wanneer het schema de keuze van het volgende fragment toestaat, genereert Azure Logic Apps een symbool en een voorspelling voor dat fragment. Als het schema te veel constructies toestaat, bijvoorbeeld meer dan 100.000, wordt de schema-uitbreiding erg groot, wat te veel resources en te veel tijd verbruikt.

Schema uploaden

Nadat u uw schema hebt gemaakt, uploadt u het schema op basis van uw werkstroom:

Een platte bestandscoderingsactie toevoegen

  1. Open uw logische app-resource in Azure Portal.

  2. Open uw werkstroom in de ontwerper.

    Als uw werkstroom geen trigger of andere acties heeft die uw werkstroom nodig heeft, voegt u deze bewerkingen eerst toe.

    In dit voorbeeld wordt de aanvraagtrigger gebruikt met de naam Wanneer een HTTP-aanvraag wordt ontvangen. Zie Een trigger toevoegen om uw werkstroom te starten voor instructies over het toevoegen van een trigger.

  3. Volg deze algemene stappen in de ontwerpfunctie om de ingebouwde actie met de naam Platte bestandscodering toe te voegen.

    Het deelvenster met actiegegevens wordt geopend met het tabblad Parameters geselecteerd.

  4. Geef in de parameter Inhoud van de actie de XML-inhoud op die moet worden gecodeerd, en dat is uitvoer van de trigger of een eerdere actie, door de volgende stappen te volgen:

    1. Selecteer in het vak Inhoud en selecteer vervolgens het bliksempictogram om de lijst met dynamische inhoud te openen.

    2. Selecteer in de lijst met dynamische inhoud de XML-inhoud die u wilt coderen.

    In het volgende voorbeeld ziet u de lijst met geopende dynamische inhoud, de uitvoer van de trigger Wanneer een HTTP-aanvraag wordt ontvangen en de geselecteerde hoofdtekstinhoud uit de triggeruitvoer.

    Schermopname van de Azure-portal, de werkstroomontwerper, de actie Platte bestandscodering en de parameter Inhoud met dynamische inhoudslijst en inhoud die is geselecteerd voor codering.

    Notitie

    Als de hoofdtekst niet wordt weergegeven in de lijst met dynamische inhoud, selecteert u naast het sectielabel Wanneer een HTTP-aanvraag wordt ontvangen , de optie Meer informatie. U kunt de inhoud ook rechtstreeks invoeren om te coderen in het vak Inhoud .

  5. Selecteer uw schema in de lijst Schemanaam .

    De schermafbeelding toont de ontwerper en de geopende lijst met schemanamen, met het geselecteerde schema voor codering.

    Notitie

    Als de schemalijst leeg is, kan dit de volgende oorzaken hebben:

    • De resource van de logische app is niet gekoppeld aan een integratieaccount.
    • Het gekoppelde integratieaccount bevat geen schemabestanden.
    • De resource van de logische app bevat geen schemabestanden. Deze reden is alleen van toepassing op standaard logische apps.
  6. Als u andere optionele parameters aan de actie wilt toevoegen, selecteert u deze parameters in de lijst Geavanceerde parameters .

    Kenmerk Waarde Beschrijving
    Modus voor het genereren van lege knooppunten ForcedDisabled of HonorSchemaNodeProperty of ForcedEnabled De modus die moet worden gebruikt voor het genereren van lege knooppunten met platte bestandscodering.

    Voor BizTalk heeft het platte bestandsschema een eigenschap waarmee het genereren van lege knooppunten wordt bepaald. U kunt het eigenschapsgedrag van het genereren van lege knooppunten bij uw platte bestandsschema volgen. U kunt deze instelling ook gebruiken om azure Logic Apps lege knooppunten te laten genereren of weglaten. Zie Tags voor lege elementen voor meer informatie.
    XML-normalisatie Ja of Nee De instelling voor het in- of uitschakelen van XML-normalisatie in platte bestandscodering. Zie XmlTextReader.Normalization voor meer informatie.
  7. Sla uw workflow op. Selecteer in de werkbalk van de ontwerper Opslaan.

Een actie voor het decoderen van platte bestanden toevoegen

  1. Open uw logische app-resource in Azure Portal.

  2. Open uw werkstroom in de ontwerper.

    Als uw werkstroom geen trigger of andere acties heeft die uw werkstroom nodig heeft, voegt u deze bewerkingen eerst toe.

    In dit voorbeeld wordt de aanvraagtrigger gebruikt met de naam Wanneer een HTTP-aanvraag wordt ontvangen. Zie Een trigger toevoegen om uw werkstroom te starten voor instructies over het toevoegen van een trigger.

  3. Volg deze algemene stappen in de ontwerpfunctie om de ingebouwde actie met de naam Platte bestandscodering toe te voegen.

  4. Geef in de parameter Inhoud van de actie de XML-inhoud op die moet worden gedecodeerd, hetzij als uitvoer van de trigger of van een vorige actie door de volgende stappen uit te voeren:

    1. Selecteer in het vak Inhoud en selecteer vervolgens het bliksempictogram om de lijst met dynamische inhoud te openen.

    2. Selecteer in de lijst met dynamische inhoud de XML-inhoud die u wilt decoderen.

    In het volgende voorbeeld ziet u de lijst met geopende dynamische inhoud, de uitvoer van de trigger Wanneer een HTTP-aanvraag wordt ontvangen en de geselecteerde hoofdtekstinhoud uit de triggeruitvoer.

    Schermopname van de Azure-portal, de werkstroomontwerper, de actie Flat File Decoding en de parameter Inhoud met dynamische inhoudslijst en inhoud die is geselecteerd voor decodering.

    Notitie

    Als hoofdtekst niet wordt weergegeven in de lijst met dynamische inhoud, selecteert u Meer weergeven naast het sectielabel Wanneer een HTTP-aanvraag wordt ontvangen . U kunt de inhoud ook rechtstreeks invoeren om te decoderen in het vak Inhoud .

  5. Selecteer uw schema in de lijst Schemanaam .

    Schermopname toont de ontwerper en de geopende lijst met schemanamen met het geselecteerde schema voor decodering.

    Notitie

    Als de schemalijst leeg is, kan dit de volgende oorzaken hebben:

    • De resource van de logische app is niet gekoppeld aan een integratieaccount.
    • Het gekoppelde integratieaccount bevat geen schemabestanden.
    • De resource van de logische app bevat geen schemabestanden. Deze reden is alleen van toepassing op standaard logische apps.
  6. Sla uw werkstroom op. Selecteer in de werkbalk van de ontwerper Opslaan.

U bent nu klaar met het instellen van de actie voor het decoderen van platte bestanden. In een echte app wilt u mogelijk de gedecodeerde gegevens opslaan in een LOB-app (Line-Of-Business), zoals Salesforce. U kunt de gedecodeerde gegevens ook verzenden naar een handelspartner. Als u de uitvoer van de decoderingsactie naar Salesforce of uw handelspartner wilt verzenden, gebruikt u de andere connectors die beschikbaar zijn in Azure Logic Apps:

Een actie voor het genereren van een plat bestandsschema toevoegen

Met de actie Schema genereren van plat bestand wordt tijdens runtime een XSD-plat bestandsschema gegenereerd op basis van de voorbeeldinhoud van platte bestanden die u als invoer opgeeft. Het gegenereerde schema is compatibel met bizTalk flat-bestandsaantekeningen, zoals b:schemaInfo, b:recordInfoen b:fieldInfo.

  1. Open uw logische app-resource in Azure Portal.

  2. Open uw werkstroom in de ontwerper.

    Als uw werkstroom geen trigger of andere acties heeft die uw werkstroom nodig heeft, voegt u deze bewerkingen eerst toe.

    In dit voorbeeld wordt de aanvraagtrigger gebruikt met de naam Wanneer een HTTP-aanvraag wordt ontvangen. Zie Een trigger toevoegen om uw werkstroom te starten voor instructies over het toevoegen van een trigger.

  3. Volg deze algemene stappen in de ontwerpfunctie om de ingebouwde actie met de naam Plat bestandsschema genereren toe te voegen.

  4. Geef in de parameter Inhoud van de actie de voorbeeldinhoud van het platte bestand op.

    U kunt inhoud uit de uitvoer van de trigger of een vorige actie gebruiken:

    1. Selecteer in het vak Inhoud en selecteer vervolgens het bliksempictogram om de lijst met dynamische inhoud te openen.

    2. Selecteer in de lijst met dynamische inhoud de voorbeeld-platte bestandsinhoud.

  5. Stel de parameter Recordstructuur in op Gescheiden of Positioneel.

    De ontwerpfunctie gebruikt dynamische parameters (getFlatFileSchemaGenerationParameters) om de juiste parameterset weer te geven op basis van de geselecteerde recordStructure waarde.

    Het volgende voorbeeld toont de configuratieparameters voor de recordstructuur met scheidingstekens:

    Schermopname van de Azure portal, werkstroomontwerper, de actie voor het genereren van een plat bestand en de parameter Inhoud met een gescheiden recordstructuur.

    In het volgende voorbeeld ziet u de configuratieparameters voor de positionele recordstructuur:

    Schermopname van de Azure-portal, werkstroomontwerper, actie voor het genereren van plat bestandschema en inhoudsparameter met positionele recordstructuur.

  6. Stel voor de geselecteerde recordstructuur de vereiste en optionele parameters in.

    Algemene parameters (gescheiden en positioneel)

    Kenmerk Typ Required Beschrijving
    content Any Yes Platte bestandsvoorbeeldgegevensinhoud (tekenreeks of binair).
    recordStructure String Yes Hetzij Delimited, hetzij Positional.
    hasHeader Boolean Yes Als true is ingesteld, wordt de eerste gegevensregel als koptekst behandeld en worden die waarden gebruikt als de gegenereerde veldnamen.
    recordDelimiter String No Scheidingsteken (regel) opnemen. Bij parseren wordt deze waarde letterlijk gebruikt (geen hexdecodering). Gebruik werkelijke tekens, zoals \r\n of \n. Als u standaard regelsplitsing wilt gebruiken, laat u deze waarde weg. De gegenereerde XSD kan een hexwaarde (0x0D0A) verzenden in schemaaantekeningen.
    recordDelimiterOrder String No Plaatsing van scheidingsteken: Infix (standaard), Prefixof Postfix.
    rootElementName String No Naam van hoofdelement voor de XSD. Standaard: Root.
    targetNamespace String No Doelnaamruimte voor het schema. Standaardwaarde: http://schemas.microsoft.com/FlatFile/{RootElementName}
    recordName String No Naam voor het herhaalde onderliggende recordelement. Standaardwaarde: {RootElementName}_Record

    Specifieke parameters met scheidingstekens

    Kenmerk Typ Required Beschrijving
    fieldDelimiter String Yes Veldscheidingstekens, zoals komma, puntkomma, tabblad, Werkelijke tekens opgeven, zoals ,, ;of \t. Parseren maakt gebruik van letterlijke tekenreeksvergelijking (geen hexdecodering).
    fieldDelimiterOrder String Yes Plaatsing van scheidingsteken: Infix (standaard), Prefixof Postfix.
    escapeCharacter String No Escape-teken voor ingesloten scheidingstekens in veldwaarden. Geef het werkelijke teken op, zoals \ of ". Parseren maakt gebruik van letterlijke overeenkomsten (geen hexdecodering).

    Positiespecifieke parameters

    Kenmerk Typ Required Beschrijving
    countPositionsByByte Boolean Yes Meet de lengte van velden in bytes (true) of tekens (false). Relevant voor multibyte-coderingen.
    fieldPositions Array Yes Matrix van veldpositieobjecten, elk met length en justification.
    fieldPositions[].length Integer Yes Vaste breedte van het veld.
    fieldPositions[].justification String Yes Hiermee bepaalt u de uitlijning van de opvulling. Voer handmatig de waarde Left of Right in (niet hoofdlettergevoelig).

    Opmerking: de huidige ontwerper biedt geen lijst voor het selecteren van een waarde.
  7. Voordat u de workflow uitvoert, controleert u het gedrag van het scheidingsteken en het escapeteken:

    Gedrag van recordscheidingsteken

    Aspect Gedrag
    Parseren (splitslijnen) options.RecordDelimiter (onbewerkte gebruikerswaarde) wordt rechtstreeks doorgegeven aan String.Split(). Geen hexadecimale decodering.
    XSD-uitvoer GetRecordDelimiterForSchema() converteert als volgt:

    - Als 0x-voorvoegsel is, gaat u door.
    - Als deze leeg is, wordt standaard ingesteld op 0x0D0A.
    - Anders converteert u letterlijke tekens naar hex-bytes.
    hexadecimale invoer Nee voor parseren. Als u 0x0D0A opgeeft, probeert de parser te splitsen op de letterlijke tekst 0x0D0A.
    Wat u moet verstrekken Gebruik de letterlijke tekens: \r\n, \n, of laat deze volledig weg; dan wordt standaard gesplitst op \r\n/\n/\r.

    Gedrag van veldscheidingsteken

    Aspect Gedrag
    Parseren (velden splitsen) options.FieldDelimiter wordt rechtstreeks aan SplitDelimitedRecord() doorgegeven als een letterlijke tekenreeksvergelijking. Geen hexadecimale decodering.
    XSD-uitvoer Als de waarde begint met 0x, verzendt child_delimiter_type="hex"; anders . "char"
    Hexadecimale invoer Nee voor het parseren. 0x09 komt overeen met letterlijke tekst 0x09, niet tab.
    Wat u moet verstrekken Gebruik werkelijke tekens: ,, ;, \t, |enzovoort.

    Gedrag van escapetekens

    Aspect Gedrag
    Parseren (ontsnappen) options.EscapeCharacter wordt letterlijk vergeleken. Wanneer dit overeenkomt, wordt het volgende teken gebruikt as-is. Geen hexadecimale decodering.
    XSD-uitvoer Als de waarde begint met 0x, verzendt escape_char_type="hex"; anders . "char"
    Hexadecimale invoer Nee voor parsering. Hetzelfde gedrag bij letterlijke overeenkomsten.
    Wat u moet verstrekken Gebruik het daadwerkelijke teken, bijvoorbeeld \ of ".
  8. Sla uw workflow op. Selecteer in de werkbalk van de ontwerper Opslaan.

  9. Als u de gegenereerde schema-uitvoer wilt gebruiken voor het decoderen of coderen van acties, slaat u deze uitvoer handmatig op als een .xsd bestand.

  10. Upload het .xsd bestand naar uw integratieaccount. Voor standaardwerkstromen uploadt u het bestand ook naar de map Artefacten van logische apps. U kunt ook de REST API gebruiken om het schema-artefact te uploaden.

    Het gegenereerde schema wordt geretourneerd in de hoofdtekst van de actie als een tekenreeks:

    @body('Flat_File_Schema_Generation')
    
  11. Gebruik eventueel de volgende definitievoorbeelden:

    Gescheiden voorbeeld

    {
       "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": "\\"
          }
       }
    }
    

    Positioneel voorbeeld

    {
       "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"
          }
       }
    }
    

    Geef het gegenereerde schema door aan de volgende actie:

    {
       "Next_Action": {
          "inputs": {
             "schema": "@body('Flat_File_Schema_Generation')"
          },
          "runAfter": {
             "Flat_File_Schema_Generation": [ "Succeeded" ]
          }
       }
    }
    
  12. Controleer de uitvoer, deductieregels en bekende problemen:

    Uitvoer:

    Eigenschap Typ Beschrijving
    body String Gegenereerd BizTalk-compatibel XSD-schema als een XML-tekenreeks.

    Gegenereerde XSD-inhoud op hoog niveau:

    • b:schemaInfo aantekening met standard="Flat File", root_referenceen codepage="65001" (UTF-8)
    • b:recordInfo aantekeningen per record met structure, child_delimiter, child_delimiter_type, en child_orderoptioneel escape_char en escape_char_type
    • b:fieldInfo aantekeningen per veld met justification en, voor positionele schema's, pos_offset en pos_length
    • Gegevenstypedeductie van voorbeeldgegevens: xs:string, xs:integer, xs:decimal, xs:boolean, xs:datexs:dateTime

    Gegevenstypedeductie van eerste niet-lege gegevensrecord:

    Voorbeeldwaarde Afgeleid XSD-type
    true of false xs:boolean
    12345 xs:integer
    19.99 xs:decimal
    2025-01-15 xs:date
    2025-01-15T10:30:00 xs:dateTime
    Elke andere waarde xs:string

    Onderliggende volgorde (plaatsing van scheidingsteken):

    Bestelling Meaning Voorbeeld (;)
    Infix Scheidingsteken tussen velden A;B;C
    Prefix Scheidingsteken voor elk veld ;A;B;C
    Postfix Scheidingsteken na elk veld A;B;C;

    Verwerking van headers:

    • Wanneer hasHeader is true, wordt de eerste regel behandeld als veldnamen, niet als gegevens.
    • Headerwaarden worden geschoond naar geldige XML-elementnamen. Speciale tekens worden _en voorloopcijfers krijgen een _ voorvoegsel.
    • Als er alleen een koptekstregel bestaat en er geen gegevensrecords bestaan, worden velden standaard ingesteld op xs:string.
    • Als een veldkop leeg is, valt de gegenereerde veldnaam terug op Field{N}.
    • Wanneer hasHeaderfalse is, worden velden automatisch Field1, Field2, Field3 enzovoort genoemd.

Beperkingen en bekende problemen

Beperking Beschrijving
Typedeductie maakt gebruik van één record. De eerste niet-lege gegevensrecord bepaalt kolomtypen.
Slechts één recordtype De actie genereert één herhalende recordstructuur en biedt geen ondersteuning voor heterogene recordindelingen.
Geen geneste of hiërarchische gegevensrecords Het gegenereerde schema is plat, wat betekent dat u een hoofdelement hebt met één herhalende onderliggende record en velden.
Positiegrenzen worden niet automatisch gedetecteerd. U moet exacte veldlengten opgeven in fieldPositions.
Alleen UTF-8-codepagina Gegenereerde schemasets stellen codepage="65001" in en bieden geen mogelijkheid om de codering te selecteren.
Escape-tekens worden letterlijk geïnterpreteerd. Escape-verwerking komt overeen met de letterlijke waarde en slaat alleen het volgende teken over.
recordName standaard Als dit niet is opgegeven, wordt standaard ingesteld op {RootElementName}_Record.
Invoer voor uitlijning in de ontwerper fieldPositions[].justification ondersteunt alleen Left en Right.
Issue Resolutie / Besluit
Onjuist aantal velden Controleer of deze fieldDelimiterOrder overeenkomt met uw gegevensindeling (Infix, Prefix, Postfix).
Hex-waarden zijn alleen voor uitvoer Hoewel de gegenereerde XSD scheidingstekens kan weergeven als hexadecimale waarden (bijvoorbeeld 0x0D0A) en in annotaties waarden met het voorvoegsel 0x kan doorgeven, wordt hexadecimale invoer bij het parseren niet gedecodeerd. Geef voor parseren altijd werkelijke scheidingstekens (\r\n, \n, \t, ,). ;
Veldnamen van kopteksten zien er onverwacht uit Headerwaarden worden opgeschoond naar geldige XML-namen. Bijvoorbeeld, 1st Qty wordt _1st_Qty.
Gedrag van recordscheidingsteken Als recordDelimiter wordt weggelaten, splitst het parseren op daadwerkelijke regeleindetekens (\r\n, \n, \r). Bij gegenereerde XSD-aantekeningen wordt het recordscheidingsteken standaard ingesteld op 0x0D0A.

Problemen oplossen

Fout Oorzaak Resolutie / Besluit
The flat file sample data content is required. content is null of leeg. Zorg ervoor dat de trigger of voorgaande actie niet-lege inhoud van een plat bestand levert.
The schema generation options are required. Interne fout: het object Options is null. Controleer of de werkstroomdefinitie geldige invoer bevat.
Failed to generate flat file schema: '{details}'. Onverwachte runtimefout, bijvoorbeeld door tekencodering of ongeldig opgemaakte gegevens. Inspecteer de details of het interne foutbericht voor de hoofdoorzaak.
The field delimiter is required for delimited record structure. recordStructure is Delimited maar fieldDelimiter ontbreekt of is leeg. Geef bijvoorbeeld een komma, puntkomma of tab op. Geef fieldDelimitergeen hexe tekst op, zoals 0x09; geef werkelijke tekens op, zoals \t.
The field positions array is required for positional record structure. recordStructure is Positional maar fieldPositions ontbreekt of is leeg. Geef fieldPositionslength en justification voor elk veld.
The flat file sample data contains no data records. Er zijn geen niet-lege gegevensregels (of alleen een kopregel als hasHeader=true). Neem ten minste één gegevensrecord dat niet leeg is op in de voorbeeldinhoud.
Positional field '{N}' exceeds the record length. Record length: '{len}', position: '{pos}', field length: '{fieldLen}'. De totale veldlengten overschrijden de recordlengte. Pas de lengten van fieldPositions aan, of controleer of countPositionsByByte moet worden gewijzigd.

Uw werkstroom testen

Voer de volgende stappen uit om uw werkstroom te activeren:

  1. Zoek in de aanvraagtrigger de HTTP POST URL-parameter en kopieer de URL.

  2. Open uw HTTP-aanvraagprogramma en gebruik de bijbehorende instructies om een HTTP-aanvraag naar de gekopieerde URL te verzenden, inclusief de methode die de aanvraagtrigger verwacht.

    In dit voorbeeld wordt de POST methode met de URL gebruikt.

  3. Neem de XML-inhoud op die u wilt coderen of decoderen in de hoofdtekst van de aanvraag.

  4. Nadat de werkstroom is uitgevoerd, gaat u naar de uitvoeringsgeschiedenis van de werkstroom en bekijkt u de invoer en uitvoer van de actie Plat bestand .