Codificare, decodificare o generare schemi per file flat in App per la logica di Azure

Si applica a: App per la logica di Azure (A consumo e Standard)

Per i flussi di lavoro di integrazione business-to-business (B2B), è spesso necessario convertire i dati tra formati di file XML e flat prima di poter scambiare questi dati con i partner commerciali.

Questa guida illustra come usare le azioni del connettore predefinite file flat per codificare o decodificare XML e generare schemi di file flat compatibili con BizTalk da dati di esempio.

Informazioni tecniche sul connettore

Il connettore File flat include le azioni di codifica, decodifica e generazione dello schema seguenti:

Action Consumption Normale
Codifica del file flat
Decodifica di file di testo semplice
Generazione dello schema di file flat No
Applicazione logica Ambiente
Consumption App per la logica di Azure multi-tenant
Normale Soluzioni Azure Logic a tenant unico, Ambiente del servizio App Service v3 (solo piani Windows), e distribuzione ibrida

Per altre informazioni, vedere Connettori predefiniti dell'account di integrazione.

Prerequisiti

  • Un account e una sottoscrizione di Azure. Ottenere un account Azure gratuito.

  • La risorsa e il flusso di lavoro dell'app Logic in cui si vogliono usare le operazioni Flat File.

    Le operazioni sui file flat non includono trigger. Il flusso di lavoro può iniziare con qualsiasi trigger o usare qualsiasi azione per inserire il codice XML di origine.

    Gli esempi in questo articolo usano il trigger di richiesta denominato Quando viene ricevuta una richiesta HTTP.

    Per altre informazioni, vedere:

  • Una risorsa dell'account di integrazione per definire e archiviare i componenti per i processi di integrazione aziendale e B2B.

    • Sia l'account di integrazione che la risorsa dell'app per la logica devono essere presenti nella stessa sottoscrizione di Azure e nella stessa area di Azure.

    • Prima di iniziare a usare le operazioni File flat, è necessario collegare l'app per la logica a consumo o collegare l'app per la logica Standard all'account di integrazione per l'uso di artefatti come partner commerciali e contratti. È possibile collegare un account di integrazione a più risorse dell'app per la logica a consumo o Standard per condividere gli stessi artefatti.

    Suggerimento

    Se non si lavora con artefatti B2B, ad esempio partner commerciali e contratti nei flussi di lavoro Standard, potrebbe non essere necessario un account di integrazione. È invece possibile caricare gli schemi direttamente nella risorsa dell'app per la logica Standard. In entrambi i casi, è possibile usare lo stesso schema in tutti i flussi di lavoro figlio nella stessa risorsa dell'app per la logica. Per usare lo stesso schema tra più risorse dell'app per la logica, è necessario usare e collegare un account di integrazione.

  • Schema di file flat che specifica come codificare o decodificare il contenuto XML.

    Nei flussi di lavoro Standard le operazioni file flat consentono di selezionare uno schema da un account di integrazione collegato o caricato in precedenza nell'app per la logica, ma non entrambi.

    Per altre informazioni, vedere Aggiungere schemi agli account di integrazione.

  • Installare o usare uno strumento che può inviare richieste HTTP per testare la soluzione, ad esempio:

    Attenzione

    Per scenari in cui sono presenti dati sensibili, ad esempio credenziali, segreti, token di accesso, chiavi API e altre informazioni simili, assicurarsi di usare uno strumento che protegge i dati con le funzionalità di sicurezza necessarie. Lo strumento deve funzionare offline o in locale e non richiede l'accesso a un account online o sincronizzare i dati nel cloud. Quando si usa uno strumento con queste caratteristiche, si riduce il rischio di esporre i dati sensibili al pubblico.

Limitazioni

  • Il contenuto XML da decodificare deve essere codificato in formato UTF-8.

  • Nello schema di file flat, verificare che i gruppi XML contenuti non abbiano numeri eccessivi della proprietà max count impostata su un valore maggiore di 1. Evitare di annidare un gruppo XML con un valore di proprietà max count maggiore di 1 all'interno di un altro gruppo XML con una proprietà max count maggiore di 1.

  • Quando App per la logica di Azure analizza lo schema di file flat e quando lo schema consente la scelta del frammento successivo, App per la logica di Azure genera un simbolo e una stima per tale frammento. Se lo schema consente troppi costrutti, ad esempio più di 100.000, l'espansione dello schema diventa molto grande, che utilizza troppe risorse e troppo tempo.

Carica schema

Dopo aver creato lo schema, caricare lo schema in base al flusso di lavoro:

aggiungere un'azione di codifica per file flat

  1. Nel portale di Azure apri la risorsa dell'app per la logica.

  2. Nella finestra di progettazione aprire il flusso di lavoro.

    Se il flusso di lavoro non ha un trigger o altre azioni necessarie per il flusso di lavoro, aggiungere prima tali operazioni.

    In questo esempio viene usato il trigger Request denominato Quando viene ricevuta una richiesta HTTP. Per aggiungere un trigger, vedere Aggiungere un trigger per avviare il flusso di lavoro.

  3. Nella finestra di progettazione seguire questa procedura generale per aggiungere l'azione predefinita denominata Codifica file flat.

    Viene visualizzato il riquadro delle informazioni sull'azione con la scheda Parametri selezionata.

  4. Nel parametro Contenuto dell'azione specificare il contenuto XML da codificare, ovvero l'output del trigger o di un'azione precedente, seguendo questa procedura:

    1. Selezionare all'interno della casella Contenuto e quindi selezionare l'icona a forma di fulmine per aprire l'elenco di contenuto dinamico.

    2. Nell'elenco di contenuto dinamico selezionare il contenuto XML da codificare.

    L'esempio seguente mostra l'elenco dei contenuti dinamici aperto, l'output del trigger Quando viene ricevuta una richiesta HTTP e il contenuto Corpo selezionato dall'output del trigger.

    Screenshot che mostra il portale di Azure, la finestra di progettazione del flusso di lavoro, l'azione Codifica file flat e il parametro Content con elenco di contenuto dinamico e contenuto selezionato per la codifica.

    Note

    Se Body non viene visualizzato nell'elenco di contenuto dinamico, accanto all'etichetta di sezione Quando viene ricevuta una richiesta HTTP , selezionare Visualizza altro. È anche possibile immettere direttamente il contenuto da codificare nella casella Contenuto.

  5. Nell'elenco Nome schema, selezionare lo schema.

    Screenshot che mostra la finestra di progettazione e l'elenco Schema Name aperto con lo schema selezionato per la codifica.

    Note

    Se l'elenco di schemi è vuoto, la causa potrebbe essere:

    • La risorsa dell'app per la logica non è collegata a un account di integrazione.
    • L'account di integrazione collegato non contiene file di schema.
    • La risorsa dell'app per la logica non contiene file di schema. Questo motivo si applica solo alle app per la logica Standard.
  6. Per aggiungere altri parametri facoltativi all'azione, selezionarli dall'elenco Parametri avanzati .

    Parametro valore Descrizione
    Modalità di generazione di nodi vuoti ForcedDisabled o HonorSchemaNodeProperty o ForcedEnabled Modalità da usare per la generazione di nodi vuoti con codifica file flat.

    Per BizTalk, lo schema di file flat ha una proprietà che controlla la generazione di nodi vuoti. È possibile seguire il comportamento della proprietà di generazione di nodi vuoti per lo schema di file flat. In alternativa, è possibile usare questa impostazione per fare in modo che App per la logica di Azure generi o ometta nodi vuoti. Per altre informazioni, vedere Tag per elementi vuoti.
    Normalizzazione XML o No Impostazione per abilitare o disabilitare la normalizzazione XML nella codifica file flat. Per altre informazioni, vedere XmlTextReader.Normalization.
  7. Salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione selezionare Salva.

Aggiungere un'azione di decodifica file flat

  1. Nel portale di Azure apri la risorsa dell'app per la logica.

  2. Nella finestra di progettazione aprire il flusso di lavoro.

    Se il flusso di lavoro non ha un trigger o altre azioni necessarie per il flusso di lavoro, aggiungere prima tali operazioni.

    In questo esempio viene usato il trigger Request denominato Quando viene ricevuta una richiesta HTTP. Per aggiungere un trigger, vedere Aggiungere un trigger per avviare il flusso di lavoro.

  3. Nella finestra di progettazione seguire questa procedura generale per aggiungere l'azione predefinita denominata Decodifica file flat.

  4. Nel parametro Content dell'azione specificare il contenuto XML da decodificare come output dal trigger o da un'azione precedente seguendo questa procedura:

    1. Selezionare all'interno della casella Contenuto e quindi selezionare l'icona a forma di fulmine per aprire l'elenco di contenuto dinamico.

    2. Nell'elenco di contenuto dinamico selezionare il contenuto XML da decodificare.

    L'esempio seguente mostra l'elenco dei contenuti dinamici aperto, l'output del trigger Quando viene ricevuta una richiesta HTTP e il contenuto Corpo selezionato dall'output del trigger.

    Screenshot che mostra il portale di Azure, la finestra di progettazione del flusso di lavoro, l'azione Decodifica file flat e il parametro Content con elenco di contenuto dinamico e contenuto selezionato per la decodifica.

    Note

    Se Body non viene visualizzato nell'elenco di contenuto dinamico, selezionare Visualizza altro accanto all'etichetta di sezione Quando viene ricevuta una richiesta HTTP . È anche possibile immettere direttamente il contenuto da decodificare nella casella Contenuto.

  5. Nell'elenco Nome schema, selezionare lo schema.

    Screenshot che mostra il progettista e l'elenco

    Note

    Se l'elenco di schemi è vuoto, la causa potrebbe essere:

    • La risorsa dell'app per la logica non è collegata a un account di integrazione.
    • L'account di integrazione collegato non contiene file di schema.
    • La risorsa dell'app per la logica non contiene file di schema. Questo motivo si applica solo alle app per la logica Standard.
  6. Salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione selezionare Salva.

A questo punto la configurazione dell'azione di decodifica file flat è terminata. In un'app reale è possibile archiviare i dati decodificati in un'app line-of-business (LOB), ad esempio Salesforce. In alternativa è possibile inviare i dati decodificati a un partner commerciale. Per inviare l'output dall'azione di decodifica a Salesforce o al partner commerciale, usare gli altri connettori disponibili in App per la logica di Azure:

Aggiungi un'azione di generazione dello schema per file flat

L'azione Generazione dello schema di file flat genera in fase di esecuzione uno schema XSD per file flat a partire dal contenuto di esempio di un file flat fornito come input. Lo schema generato è compatibile con le annotazioni di file flat BizTalk, ad esempio b:schemaInfo, b:recordInfoe b:fieldInfo.

  1. Nel portale di Azure apri la risorsa dell'app per la logica.

  2. Nella finestra di progettazione aprire il flusso di lavoro.

    Se il flusso di lavoro non ha un trigger o altre azioni necessarie per il flusso di lavoro, aggiungere prima tali operazioni.

    In questo esempio viene usato il trigger Request denominato Quando viene ricevuta una richiesta HTTP. Per aggiungere un trigger, vedere Aggiungere un trigger per avviare il flusso di lavoro.

  3. Nella finestra di progettazione seguire questa procedura generale per aggiungere l'azione predefinita denominata Generazione dello schema file flat.

  4. Nel parametro Content dell'azione specificare il contenuto dell'esempio di file flat.

    È possibile usare il contenuto dall'output del trigger o da un'azione precedente:

    1. Selezionare all'interno della casella Contenuto , quindi selezionare l'icona a forma di fulmine per aprire l'elenco di contenuto dinamico.

    2. Nell'elenco di contenuto dinamico selezionare il contenuto del file flat di esempio.

  5. Impostare il parametro Struttura del record su Delimited o Positional.

    La finestra di progettazione usa parametri dinamici (getFlatFileSchemaGenerationParameters) per visualizzare il set di parametri corretto, in base al valore selezionato recordStructure .

    L'esempio seguente illustra i parametri di configurazione per la struttura di record delimitati :

    Screenshot che mostra il portale di Azure, la finestra di progettazione del flusso di lavoro, l'azione di generazione dello schema file flat e il parametro Content con struttura di record delimitata.

    L'esempio seguente illustra i parametri di configurazione per la struttura dei record Positional :

    Screenshot che mostra il portale di Azure, la finestra di progettazione del flusso di lavoro, l'azione di generazione dello schema file flat e il parametro Content con struttura di record posizionale.

  6. Per la struttura di record selezionata, impostare i parametri obbligatori e facoltativi.

    Parametri comuni (delimitati e posizionali)

    Parametro Type Obbligatorio Descrizione
    content Any Contenuto dei dati di esempio di file flat (stringa o binario).
    recordStructure String Delimited o Positional.
    hasHeader Boolean Se true, considera la prima riga di record come intestazione e usa tali valori come nomi di campo generati.
    recordDelimiter String No Delimitatore di record (riga). L'analisi usa questo valore letteralmente (nessuna decodifica esadecimale). Usare i caratteri effettivi, ad esempio \r\n o \n. Per usare la divisione di riga predefinita, omettere questo valore. L'XSD generato può generare un valore esadecimale (0x0D0A) nelle annotazioni dello schema.
    recordDelimiterOrder String No Posizionamento del delimitatore: Infix (impostazione predefinita), Prefixo Postfix.
    rootElementName String No Nome dell'elemento radice per l'XSD. Impostazione predefinita: Root.
    targetNamespace String No Spazio dei nomi di destinazione dello schema. Impostazione predefinita: http://schemas.microsoft.com/FlatFile/{RootElementName}
    recordName String No Nome dell'elemento record figlio che si ripete. Impostazione predefinita: {RootElementName}_Record

    Parametri specifici delimitati

    Parametro Type Obbligatorio Descrizione
    fieldDelimiter String Caratteri delimitatori di campo, ad esempio virgole, punto e virgola, tabulazioni, Specificare i caratteri effettivi, ad esempio ,, ;o \t. L'analisi usa il confronto tra stringhe letterali (nessuna decodifica esadecimale).
    fieldDelimiterOrder String Posizionamento del delimitatore: Infix (impostazione predefinita), Prefixo Postfix.
    escapeCharacter String No Carattere di escape per delimitatori incorporati nei valori dei campi. Specificare il carattere effettivo, ad esempio \ o ". L'analisi usa la corrispondenza letterale (nessuna decodifica esadecimale).

    Parametri specifici della posizione

    Parametro Type Obbligatorio Descrizione
    countPositionsByByte Boolean Misura le lunghezze dei campi in byte (true) o caratteri (false). Rilevante per le codifiche multibyte.
    fieldPositions Array Array di oggetti di posizione dei campi, ciascuno con length e justification.
    fieldPositions[].length Integer Larghezza fissa del campo.
    fieldPositions[].justification String Controlla l'allineamento della spaziatura interna. Immettere manualmente il valore Left o Right (senza distinzione tra maiuscole e minuscole).

    Nota: la finestra di progettazione corrente non fornisce un elenco che consente di selezionare un valore.
  7. Prima di eseguire il flusso di lavoro, controlla il comportamento del delimitatore e del carattere di escape:

    Comportamento del delimitatore di record

    Aspect Behavior
    Analisi sintattica (suddivisione delle righe) options.RecordDelimiter (valore utente non elaborato) passa direttamente a String.Split(). Nessuna decodifica esadecimale.
    Output XSD GetRecordDelimiterForSchema() converte come segue:

    - Se ha il prefisso 0x, lascia passare.
    - Se vuoto, il valore predefinito è 0x0D0A.
    - In caso contrario, convertire caratteri letterali in byte esadecimale.
    Input esadecimale No per l'analisi sintattica. Se si fornisce 0x0D0A, il parser tenta di suddividere in corrispondenza del testo letterale 0x0D0A.
    Cosa fornire Usare i caratteri letterali: \r\n, \n, oppure ometterli del tutto; in tal caso, per impostazione predefinita, la suddivisione avviene in base a \r\n/\n/\r.

    Comportamento del delimitatore di campo

    Aspect Behavior
    Analisi (suddivisione dei campi) options.FieldDelimiter passa direttamente a SplitDelimitedRecord() come confronto di stringhe letterali. Nessuna decodifica esadecimale.
    Output XSD Se il valore inizia con 0x, genera child_delimiter_type="hex"; in caso contrario, "char".
    Inserimento esadecimale No per l'analisi sintattica. 0x09 corrisponde al testo letterale 0x09, non alla tabulazione.
    Cosa fornire Usare i caratteri effettivi: ,, ;, \t, |e così via.

    Comportamento del carattere di escape

    Aspect Behavior
    Analisi sintattica (escape dei caratteri) options.EscapeCharacter viene confrontato letteralmente. In caso di corrispondenza, il carattere successivo viene interpretato così com'è. Nessuna decodifica esadecimale.
    Output in XSD Se il valore inizia con 0x, genera escape_char_type="hex"; in caso contrario, "char".
    Input esadecimale No per l'analisi sintattica. Stesso comportamento di corrispondenza letterale.
    Cosa fornire Usare il carattere effettivo, \ ad esempio o ".
  8. Salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione selezionare Salva.

  9. Per usare l'output dello schema generato per decodificare o codificare azioni, salvare manualmente l'output come .xsd file.

  10. Caricare il .xsd file nell'account di integrazione. In alternativa, per i flussi di lavoro Standard, caricare il file nella cartella Artifacts della risorsa dell'app per la logica. È anche possibile usare l'API REST per caricare l'artefatto dello schema.

    Lo schema generato viene restituito nel corpo dell'azione come stringa:

    @body('Flat_File_Schema_Generation')
    
  11. Facoltativamente, usare gli esempi di definizione seguenti:

    Esempio delimitato

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

    Esempio posizionale

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

    Passare lo schema generato all'azione successiva:

    {
       "Next_Action": {
          "inputs": {
             "schema": "@body('Flat_File_Schema_Generation')"
          },
          "runAfter": {
             "Flat_File_Schema_Generation": [ "Succeeded" ]
          }
       }
    }
    
  12. Esaminare l'output, le regole di inferenza e i problemi noti:

    Risultato:

    Proprietà Type Descrizione
    body String Generata una stringa XML contenente lo schema XSD compatibile con BizTalk.

    Contenuto XSD generato di alto livello:

    • b:schemaInfo annotazione con standard="Flat File", root_referencee codepage="65001" (UTF-8)
    • b:recordInfo annotazioni per record con structure, child_delimiter, child_delimiter_type, child_order e gli elementi facoltativi escape_char e escape_char_type
    • b:fieldInfo annotazioni per campo con justification e, per gli schemi posizionali, pos_offset e pos_length
    • Inferenza del tipo di dati da dati di esempio: xs:string, xs:integer, xs:decimal, xs:boolean, xs:date, xs:dateTime

    Inferenza del tipo di dati dal primo record di dati non vuoto:

    Valore di esempio Tipo XSD inferito
    true oppure false xs:boolean
    12345 xs:integer
    19.99 xs:decimal
    2025-01-15 xs:date
    2025-01-15T10:30:00 xs:dateTime
    Qualsiasi altro valore xs:string

    Ordine figlio (posizionamento del delimitatore):

    Ordine Meaning Esempio (;)
    Infix Delimitatore tra campi A;B;C
    Prefix Delimitatore prima di ogni campo ;A;B;C
    Postfix Delimitatore dopo ogni campo A;B;C;

    Gestione delle intestazioni:

    • Quando hasHeader è true, la prima riga viene considerata come nomi di campo, non dati.
    • I valori dell'intestazione vengono convertiti in nomi di elementi XML validi. I caratteri speciali diventano _e le cifre iniziali ottengono un _ prefisso.
    • Se esiste solo una riga di intestazione e non esistono record di dati, per impostazione predefinita i campi sono xs:string.
    • Se un campo di intestazione è vuoto, il nome del campo generato esegue il fallback a Field{N}.
    • Quando hasHeader è false, i campi sono denominati automaticamente Field1, Field2, Field3e così via.

Limitazioni e problemi noti

Limitation Descrizione
L'inferenza di tipo si basa su un singolo record. Il primo record di dati non vuoto determina i tipi di colonna.
Solo tipo di record singolo L'azione genera una struttura di record ripetuta e non supporta layout di record eterogenei.
Nessun record annidato o gerarchico Lo schema generato ha una struttura piatta, ossia presenta un elemento radice con un record figlio ripetuto e relativi campi.
I limiti posizionale non vengono rilevati automaticamente. È necessario specificare le lunghezze esatte dei campi in fieldPositions.
Solo pagina codici UTF-8 Genera insiemi di schemi codepage="65001" e non consente di selezionare la codifica.
Il comportamento dei caratteri di escape viene interpretato alla lettera. La gestione delle sequenze di escape corrisponde al valore letterale e salta solo il carattere singolo successivo.
recordName Predefinito Se non specificato, il valore predefinito è {RootElementName}_Record.
Input di giustificazione del Designer fieldPositions[].justification supporta solo Left e Right.
Problema Resolution
Numero di campi errato Verificare che fieldDelimiterOrder corrisponda al formato dei dati (Infix, Prefix, Postfix).
I valori esadecimali sono solo in uscita Anche se l'XSD generato può mostrare i delimitatori come valori esadecimali (ad esempio, 0x0D0A) e riportare nelle annotazioni valori con prefisso 0x, l'analisi sintattica non decodifica l'input esadecimale. Per l'analisi, fornire sempre caratteri delimitatori effettivi (\r\n, \n, \t,, , ;).
I nomi dei campi di intestazione sembrano insoliti I valori di intestazione vengono sanificati in nomi XML validi. Ad esempio, 1st Qty diventa _1st_Qty.
Comportamento del delimitatore di record Se recordDelimiter viene omesso, l'analisi divide in base ai caratteri di nuova riga effettivi (\r\n, \n, \r). Nelle annotazioni XSD generate, per impostazione predefinita il delimitatore di record è 0x0D0A.

Risoluzione dei problemi

Error Cause Resolution
The flat file sample data content is required. content è null o vuoto. Verificare che il trigger o l'azione precedente fornisca contenuto di file flat non vuoto.
The schema generation options are required. Errore interno: l'oggetto options è Null. Verificare che la definizione del flusso di lavoro contenga input validi.
Failed to generate flat file schema: '{details}'. Errore di runtime imprevisto, ad esempio errori di codifica o dati non validi. Esaminare i dettagli o il messaggio di errore interno per la causa radice.
The field delimiter is required for delimited record structure. recordStructure è Delimited, ma fieldDelimiter è mancante o vuoto. Immettere fieldDelimiter, ad esempio una virgola, un punto e virgola o una tabulazione. Non immettere valori esadecimali come 0x09; immettere invece caratteri effettivi come \t.
The field positions array is required for positional record structure. recordStructure è Positional ma fieldPositions è mancante o vuoto. Specificare fieldPositionslength e justification per ogni campo.
The flat file sample data contains no data records. Non esistono righe di dati non vuote (oppure è presente solo la riga di intestazione quando hasHeader=true). Specificare almeno un record di dati non vuoto nel contenuto di esempio.
Positional field '{N}' exceeds the record length. Record length: '{len}', position: '{pos}', field length: '{fieldLen}'. La lunghezza complessiva dei campi supera la lunghezza del record. Regolare le lunghezze fieldPositions o verificare se countPositionsByByte deve essere modificato.

Testare il flusso di lavoro

Per attivare il flusso di lavoro, seguire questa procedura:

  1. Nel trigger Richiesta trovare il parametro HTTP POST URL e copiare l'URL.

  2. Aprire lo strumento di richiesta HTTP e usare le istruzioni per inviare una richiesta HTTP all'URL copiato, incluso il metodo previsto dal trigger di Richiesta.

    In questo esempio viene usato il metodo POST con l'URL.

  3. Includere il contenuto XML da codificare o decodificare nel corpo della richiesta.

  4. Al termine dell'esecuzione del flusso di lavoro, passare alla cronologia di esecuzione del flusso di lavoro ed esaminare gli input e gli output dell'azione File flat .