Share via


Creare mappe per trasformare i dati in App per la logica di Azure con Visual Studio Code

Si applica a: App per la logica di Azure (standard)

Per scambiare messaggi con formati XML o JSON diversi in un flusso di lavoro App per la logica di Azure, è necessario trasformare i dati da un formato a un altro, soprattutto se sono presenti lacune tra le strutture dello schema di origine e di destinazione. La trasformazione dei dati consente di colmare tali lacune. Per questa attività, è necessario creare una mappa che definisce la trasformazione tra gli elementi dati negli schemi di origine e di destinazione.

Per creare e modificare visivamente una mappa, è possibile usare Visual Studio Code con l'estensione App per la logica di Azure (Standard) nel contesto di un progetto di app per la logica Standard. Lo strumento Data Mapper offre un'esperienza unificata per il mapping e la trasformazione XSLT usando i movimenti di trascinamento della selezione, una libreria di funzioni predefinite per la creazione di espressioni e un modo per testare manualmente le mappe create e usate nei flussi di lavoro.

Dopo aver creato la mappa, è possibile chiamare direttamente tale mappa da un flusso di lavoro nel progetto dell'app per la logica o da un flusso di lavoro nel portale di Azure. Per questa attività, è possibile usare l'azione Operazioni del mapper dati denominata Transform using Data Mapper XSLT nel flusso di lavoro.

Questa guida pratica illustra come creare una mappa dati vuota, scegliere gli schemi di origine e di destinazione, selezionare gli elementi dello schema per avviare il mapping, creare vari mapping, salvare e testare la mappa e quindi chiamare la mappa da un flusso di lavoro nel progetto dell'app per la logica.

Limitazioni e problemi noti

  • Data Mapper attualmente funziona solo in Visual Studio Code in esecuzione nei sistemi operativi Windows.

  • Data Mapper è attualmente disponibile solo in Visual Studio Code, non nel portale di Azure e solo all'interno di progetti di app per la logica Standard, non in progetti di app per la logica a consumo.

  • Data Mapper attualmente non supporta i file con valori delimitati da virgole (csv).

  • Il riquadro visualizzazione Codice di Data Mapper è attualmente di sola lettura.

  • Il layout della mappa e la posizione dell'elemento sono attualmente automatici e di sola lettura.

  • Per chiamare le mappe create con lo strumento Data Mapper, è possibile usare solo l'azione Operazioni di Data Mapper denominata Transform usando Data Mapper XSLT. Per le mappe create da qualsiasi altro strumento, utilizzare l'azione Operazioni XML denominata Transform XML.

  • Per usare le mappe create con lo strumento Data Mapper, ma nella portale di Azure, è necessario aggiungerle direttamente alla risorsa dell'app per la logica Standard.

Prerequisiti

  • Visual Studio Code e l'estensione App per la logica di Azure (Standard) per creare flussi di lavoro di app per la logica Standard.

    Nota

    L'estensione Data Mapper separata in precedenza viene ora unita all'estensione App per la logica di Azure (Standard). Per evitare conflitti, qualsiasi versione esistente dell'estensione Data Mapper viene rimossa quando si installa o si aggiorna l'estensione App per la logica di Azure (Standard). Dopo l'installazione o l'aggiornamento dell'estensione, riavviare Visual Studio Code.

  • File dello schema di origine e di destinazione che descrivono i tipi di dati da trasformare. Questi file possono avere uno dei formati seguenti:

    • File di definizione di XML Schema con estensione xsd
    • Un file JavaScript Object Notation con estensione json
  • Progetto di app per la logica Standard che include un flusso di lavoro con stato o senza stato con almeno un trigger. Se non si ha un progetto, seguire questa procedura in Visual Studio Code:

    1. Connessione all'account Azure, se non è già stato fatto.

    2. Creare una cartella locale, un progetto di app per la logica Standard locale e un flusso di lavoro con stato o senza stato. Durante la creazione del flusso di lavoro, selezionare Apri nella finestra corrente.

  • Dati di input di esempio se si vuole testare la mappa e verificare che la trasformazione funzioni come previsto.

  • Per usare la funzione Esegui XSLT, i frammenti XSLT devono esistere nei file che usano l'estensione con estensione xml o xslt. È necessario inserire i frammenti XSLT nella cartella InlineXslt nella struttura di cartelle del progetto locale: Artifacts>DataMapper>Extensions>InlineXslt. Se questa struttura di cartelle non esiste, creare le cartelle mancanti.

Creare una mappa dati

  1. Nel menu a sinistra di Visual Studio Code selezionare l'icona di Azure .

  2. Nel riquadro di Azure, nella sezione Data Mapper selezionare Crea nuova mappa dati.

    Screenshot showing Visual Studio Code with Data Mapper tool, Azure window open, and selected button for Create new data map.

  3. Specificare un nome per la mappa dati.

  4. Specificare gli schemi di origine e di destinazione seguendo questa procedura:

    1. Nell'area della mappa selezionare Aggiungi uno schema di origine.

      Screenshot showing Visual Studio Code with Data Mapper open, new data map, and selected option for Add a source schema.

    2. Nel riquadro Configura visualizzato selezionare Aggiungi nuovo>sfoglia.

    3. Trovare e selezionare il file dello schema di origine e quindi selezionare Aggiungi.

      Se lo schema di origine non viene visualizzato nella finestra Apri , dall'elenco dei tipi di file modificare Il file XSD (*.xsd) in Tutti i file (*.*).

      La superficie della mappa mostra ora i tipi di dati dello schema di origine. Per gli esempi in questa guida,

    4. Nell'area della mappa selezionare Aggiungi uno schema di destinazione.

    5. Nel riquadro Configura visualizzato selezionare Aggiungi nuovo>sfoglia.

    6. Trovare e selezionare il file dello schema di destinazione e quindi selezionare Aggiungi.

      Se lo schema di destinazione non viene visualizzato nella finestra Apri , dall'elenco dei tipi di file modificare File XSD (*.xsd) in Tutti i file (*.*).

      La superficie della mappa mostra ora i tipi di dati dello schema di destinazione.

    In alternativa, è anche possibile aggiungere i file di schema di origine e di destinazione in locale al progetto dell'app per la logica nella cartella Artifacts/Schemas, in modo che vengano visualizzati in Visual Studio Code. In questo caso, è possibile specificare lo schema di origine e di destinazione nello strumento Data Mapper nel riquadro Configura selezionando Seleziona esistente anziché Aggiungi nuovo.

    Al termine, la mappa è simile all'esempio seguente:

    Screenshot showing the Data Mapper open and data map with sample source and target schemas.

Nella tabella seguente vengono descritti i possibili tipi di dati che potrebbero essere visualizzati in uno schema:

Simbolo Tipo Altre informazioni
Icon representing an Array data type. Matrice Contiene elementi o nodi di elementi ripetuti
Icon representing a Binary data type. Binario
Icon representing a Bool data type. Bool Solo True o false
Icon representing a Complex data type. Complesso Oggetto XML con proprietà figlio, simile al tipo JSON object
Icon representing a DateTime data type. Data/Ora
Icon representing a Decimal data type. Decimale
Icon representing an Integer data type. Intero Solo numeri interi
Icon representing the NULL symbol. Null Non un tipo di dati, ma viene visualizzato quando esiste un errore o un tipo non valido
Icon representing a Number data type. Numero Intero JSON o decimale
Icon representing an Object data type. Oggetto Oggetto JSON con proprietà figlio, simile al tipo XML complesso
Icon representing a String data type. Stringa

Per spostarsi intorno alla mappa, sono disponibili le opzioni seguenti:

  • Per eseguire una panoramica, trascinare il puntatore intorno alla superficie della mappa. In alternativa, tieni premuta la rotellina del mouse, mentre muovi il mouse o il trackball.

  • Dopo aver spostato un livello verso il basso nella mappa, nell'angolo inferiore sinistro della mappa viene visualizzata una barra di spostamento in cui è possibile selezionare le opzioni seguenti:

    Screenshot showing map navigation bar.

    Opzione Movimento alternativo
    Zoom indietro Nell'area della mappa premere MAIUSC + doppio clic.
    -O-
    Scorrere verso il basso con la rotellina del mouse.
    Zoom avanti Nella superficie della mappa selezionare due volte.
    -O-
    Scorrere verso l'alto con la rotellina del mouse.
    Adattare lo zoom None
    Mostra (nascondi) mini-mappa None
  • Per spostarsi verso l'alto di un livello sulla mappa, nel percorso di navigazione nella parte superiore della mappa selezionare un livello precedente.

Selezionare gli elementi di destinazione e di origine da mappare

  1. Sulla superficie della mappa, a partire dal lato destro, nell'area dello schema di destinazione selezionare l'elemento di destinazione di cui si vuole eseguire il mapping. Se l'elemento desiderato è figlio di un elemento padre, trovare ed espandere prima l'elemento padre.

  2. A questo ora, sul lato sinistro, nell'area dello schema di origine selezionare Seleziona elemento.

  3. Nella finestra Schema di origine visualizzata selezionare uno o più elementi di origine da visualizzare sulla mappa.

    • Per includere un elemento figlio padre e diretto, aprire il menu di scelta rapida dell'elemento padre e selezionare Aggiungi elementi figlio.

    • Per includere un elemento padre e tutti gli elementi figlio per tale padre, inclusi tutti i sotto-genitori, aprire il menu di scelta rapida dell'elemento padre di primo livello e selezionare Aggiungi elementi figlio (ricorsivo).To include a sub-parent, open the top-level parent's shortcut menu, and select Add children (Recursive).

  4. Al termine, è possibile chiudere la finestra dello schema di origine. È sempre possibile aggiungere altri elementi di origine in un secondo momento. Nell'angolo superiore sinistro della mappa selezionare Mostra schema di origine (Icon for Show source schema.).

Creare un mapping diretto tra elementi

Per una semplice trasformazione tra elementi con lo stesso tipo negli schemi di origine e di destinazione, seguire questa procedura:

  1. Per esaminare cosa accade nel codice durante la creazione del mapping, nell'angolo in alto a destra della mappa selezionare Mostra codice.

  2. Se non è già stato fatto, nella mappa selezionare gli elementi di destinazione e quindi gli elementi di origine di cui si vuole eseguire il mapping.

  3. Spostare il puntatore sull'elemento di origine in modo che sia un cerchio che un segno più (+) vengano visualizzati.

    Screenshot showing the data map and starting a mapping between EmployeeID and ID in the source and target schema, respectively.

  4. Trascinare una linea nell'elemento di destinazione in modo che la linea si connetta al cerchio visualizzato.

    Screenshot showing the data map and ending a mapping between EmployeeID and ID in the source and target schema, respectively.

    A questo punto è stato creato un mapping diretto tra entrambi gli elementi.

    Screenshot showing the data map and a finished mapping between EmployeeID and ID in the source and target schema, respectively.

    La finestra della visualizzazione codice riflette la relazione di mapping creata:

    Screenshot showing code view with direct mapping between EmployeeID and ID in the source and target schema, respectively.

Nota

Se si crea un mapping tra gli elementi in cui i tipi di dati non corrispondono, viene visualizzato un avviso sull'elemento di destinazione, ad esempio:

Screenshot showing direct mapping between mismatching data types.

Creare un mapping complesso tra elementi

Per una trasformazione più complessa tra gli elementi negli schemi di origine e di destinazione, ad esempio gli elementi che si desidera combinare o che hanno tipi di dati diversi, è possibile usare una o più funzioni per eseguire attività per tale trasformazione.

La tabella seguente elenca i gruppi di funzioni disponibili e le funzioni di esempio che è possibile usare:

Raggruppa Esempi di funzioni
Sollecito Average, Count, Direct Access, Distinct values, Filter, Index, Join, Maximum, Minimum, Reverse, Sort, Subsequence, Sum
Conversione A date, To integer, To number, To string
Data e ora Aggiunta di giorni
Confronto logico Equal, Exists, Greater, Greater or equal, If, If else, Is nil, Is null, Is number, Is string, Less, Less, Less or equal, Logical AND, Logical NOT, Logical OR, Not equal
Math Absolute, Add, Arctangent, Ceiling, Cosine, Divide, Esponenziale (base 10), Floor, Integer divide, Log, Log (base 10), Module, Multiply, Power, Round, Sine, Square root, Subtract, Tangente
Stringa Il codice punta a stringhe, Concat, Contains, Ends with, Length, Lowercase, Name, Regular expression matches, Regular expression replace, Replace, Starts with, String to code-points, Substring, Substring after, Substring before, Trim, Trim left, Trim right, Uppercase
Utilità Copy, Error, Execute XPath, Format date-time, Format number, Run XSLT

Sulla mappa l'etichetta della funzione è simile all'esempio seguente ed è codificata a colori in base al gruppo di funzioni. Sul lato sinistro del nome della funzione viene visualizzato un simbolo per la funzione. Sul lato destro del nome della funzione viene visualizzato un simbolo per il tipo di dati dell'output della funzione.

Screenshot showing example function label.

Aggiungere una funzione senza una relazione di mapping

L'esempio in questa sezione trasforma il tipo di elemento di origine dal tipo String al tipo DateTime, che corrisponde al tipo di elemento di destinazione. Nell'esempio viene utilizzata la funzione To date , che accetta un singolo input.

  1. Per esaminare cosa accade nel codice durante la creazione del mapping, nell'angolo in alto a destra della mappa selezionare Mostra codice.

  2. Se non è già stato fatto, nella mappa selezionare gli elementi di destinazione e quindi gli elementi di origine di cui si vuole eseguire il mapping.

  3. Nell'angolo superiore sinistro della mappa selezionare Mostra funzioni (Icon for Show functions.).

    Screenshot showing source and target schema elements plus the selected function, Show functions.

  4. Dall'elenco di funzioni che si apre trovare e selezionare la funzione da usare, che aggiunge la funzione alla mappa. Se la funzione non appare visibile sulla mappa, provare a eseguire lo zoom indietro sulla superficie della mappa.

    In questo esempio viene selezionata la funzione To date . È anche possibile trovare e selezionare qualsiasi funzione personalizzata nello stesso modo. Per altre informazioni, vedere Creare una funzione personalizzata.

    Screenshot showing the selected function named To date.

    Nota

    Se non esiste alcuna linea di mapping o viene selezionata quando si aggiunge una funzione alla mappa, la funzione viene visualizzata sulla mappa, ma disconnessa da qualsiasi elemento o da altre funzioni, ad esempio:

    Screenshot showing the disconnected function, To date.

  5. Espandere la forma della funzione per visualizzare i dettagli e i punti di connessione della funzione. Per espandere la forma della funzione, selezionare all'interno della forma.

  6. Connessione la funzione agli elementi di origine e di destinazione.

    1. Trascinare e disegnare una linea tra gli elementi di origine e il bordo sinistro della funzione. È possibile iniziare dagli elementi di origine o dalla funzione .

      Screenshot showing start mapping between source element and function.

    2. Trascinare e disegnare una linea tra il bordo destro della funzione e l'elemento di destinazione. È possibile iniziare dall'elemento di destinazione o dalla funzione .

      Screenshot showing finish mapping between function and target element.

  7. Nella scheda Proprietà della funzione confermare o modificare l'input da usare.

    Screenshot showing Properties tab for the function, To date.

    Per alcuni tipi di dati, ad esempio le matrici, l'ambito per la trasformazione potrebbe anche essere disponibile. Questo ambito è in genere l'elemento immediato, ad esempio una matrice, ma in alcuni scenari l'ambito potrebbe esistere oltre l'elemento immediato.

    La finestra della visualizzazione codice riflette la relazione di mapping creata:

    Screenshot showing code view with direct mapping relationship between source and target elements.

Ad esempio, per scorrere gli elementi della matrice, vedere Creare un ciclo tra matrici. Per eseguire un'attività quando il valore di un elemento soddisfa una condizione, vedere Aggiungere una condizione tra gli elementi.

Aggiungere una funzione a una relazione di mapping esistente

Quando esiste già una relazione di mapping tra gli elementi di origine e di destinazione, è possibile aggiungere la funzione seguendo questa procedura:

  1. Nella mappa selezionare la linea per il mapping creato.

  2. Spostare il puntatore sulla riga selezionata e selezionare la funzione Inserisci segno più (+) visualizzata, ad esempio:

    Screenshot shows Visual Studio Code with elements from source and target schemas with mapping relationship and option to Insert function.

  3. Nell'elenco delle funzioni che si apre trovare e selezionare la funzione che si vuole usare.

    La funzione viene visualizzata sulla mappa e viene connessa automaticamente tra gli elementi di origine e di destinazione.

Aggiungere una funzione con più input

Nell'esempio di questa sezione vengono concatenati più tipi di elementi di origine in modo da poter eseguire il mapping dei risultati al tipo di elemento di destinazione. Nell'esempio viene usata la funzione Concat , che accetta più input.

  1. Per esaminare cosa accade nel codice durante la creazione del mapping, nell'angolo in alto a destra della mappa selezionare Mostra codice.

  2. Se non è già stato fatto, nella mappa selezionare gli elementi di destinazione e quindi gli elementi di origine di cui si vuole eseguire il mapping.

  3. Nell'angolo superiore sinistro della mappa selezionare Mostra funzioni (Icon for Show functions.).

    Screenshot showing source and target schema elements and the selected function named Show functions.

  4. Dall'elenco di funzioni che si apre trovare e selezionare la funzione da usare, che aggiunge la funzione alla mappa. Se la funzione non appare visibile sulla mappa, provare a eseguire lo zoom indietro sulla superficie della mappa.

    In questo esempio viene selezionata la funzione Concat :

    Screenshot showing the selected function named Concat.

    Nota

    Se non esiste alcuna linea di mapping o viene selezionata quando si aggiunge una funzione alla mappa, la funzione viene visualizzata sulla mappa, ma disconnessa da qualsiasi elemento o altre funzioni. Se la funzione richiede la configurazione, nell'angolo superiore destro della funzione viene visualizzato un punto rosso, ad esempio:

    Screenshot showing the disconnected function, Concat.

  5. Espandere la forma della funzione per visualizzare i dettagli e i punti di connessione della funzione. Per espandere la forma della funzione, selezionare all'interno della forma.

  6. Nel riquadro informazioni sulla funzione, nella scheda Proprietà , in Input selezionare gli elementi dati di origine da usare come input.

    In questo esempio vengono selezionati gli elementi di origine FirstName e LastName come input della funzione, che aggiungono automaticamente le rispettive connessioni sulla mappa.

    Screenshot showing multiple source data elements selected as function inputs.

  7. Per completare il trascinamento del mapping e disegnare una linea tra il bordo destro della funzione e l'elemento di destinazione. È possibile iniziare dall'elemento di destinazione o dalla funzione .

    Screenshot showing finished mapping from function with multiple inputs to target element.

    La finestra della visualizzazione codice riflette la relazione di mapping creata:

    Screenshot showing code view with complex mapping relationship between source and target elements.

Creare un ciclo tra matrici

Se gli schemi di origine e di destinazione includono matrici, è possibile creare una relazione di mapping del ciclo che scorre gli elementi in tali matrici. Nell'esempio riportato in questa sezione viene eseguito un ciclo attraverso una matrice di origine Employee e una matrice di destinazione Person.

  1. Per esaminare cosa accade nel codice durante la creazione del mapping, nell'angolo in alto a destra della mappa selezionare Mostra codice.

  2. Nella mappa, nell'area dello schema di destinazione, selezionare l'elemento della matrice di destinazione e gli elementi dell'elemento della matrice di destinazione di cui si vuole eseguire il mapping.

  3. Nella mappa, nell'area dello schema di destinazione, espandere l'elemento della matrice di destinazione e gli elementi della matrice.

  4. Nell'area dello schema di origine aggiungere l'elemento della matrice di origine e gli elementi dell'elemento della matrice alla mappa.

  5. Creare un mapping diretto tra gli elementi di origine e di destinazione.

    Screenshot showing the data map and drawing a connection between Name array items in the source and target arrays, Employee and Person, respectively.

    Quando si crea per la prima volta una relazione di mapping tra una coppia di elementi di matrice corrispondente, viene creata automaticamente una relazione di mapping a livello di matrice padre.

    Screenshot showing loop mapping between the Name array items plus the source and target arrays, Employee and Person, respectively.

    La finestra della visualizzazione codice riflette la relazione di mapping creata:

    Screenshot showing code view with looping relationship between source and target arrays, Employee and Person, respectively.

  6. Continuare a eseguire il mapping degli altri elementi della matrice.

    Screenshot showing continue looping mapping between other array items in source and target arrays.

Configurare una condizione e un'attività da eseguire tra gli elementi

Per aggiungere una relazione di mapping che valuta una condizione ed esegue un'attività quando viene soddisfatta la condizione, è possibile usare più funzioni, ad esempio la funzione If , una funzione di confronto, ad esempio Greater, e l'attività da eseguire, ad esempio Multiply.

L'esempio in questa sezione calcola uno sconto da applicare quando la quantità di acquisto supera 20 articoli usando le funzioni seguenti:

  • Maggiore: controllare se la quantità di articoli è maggiore di 20.
  • Se: controllare se la funzione Greater restituisce true.
  • Moltiplica: calcolare lo sconto moltiplicando il prezzo dell'articolo per il 10% e la quantità dell'articolo.
  1. Per esaminare cosa accade nel codice durante la creazione del mapping, nell'angolo in alto a destra della mappa selezionare Mostra codice.

  2. Se non è già stato fatto, nella mappa selezionare gli elementi di destinazione e quindi gli elementi di origine di cui si vuole eseguire il mapping.

    In questo esempio vengono selezionati gli elementi seguenti:

    Screenshot showing the data map and elements to map.

  3. Nell'angolo superiore sinistro della mappa selezionare Mostra funzioni (Icon for Show functions.).

  4. Aggiungere le funzioni seguenti alla mappa: Greater, If e Multiply

  5. Espandere tutte le forme della funzione per visualizzare i dettagli della funzione e i punti di connessione.

  6. Connessione gli elementi di origine, le funzioni e gli elementi di destinazione come indicato di seguito:

    • Elemento ItemPrice dello schema di origine per l'elemento ItemPrice dello schema di destinazione
    • Elemento ItemQuantity dello schema di origine nel campo Value della funzione Greater
    • Output della funzione Greater nel campo Condizione della funzione If
    • Elemento ItemPrice dello schema di origine nel campo Multiplicand 0* della funzione Multiply
    • Output della funzione Multiply nel campo Valore della funzione If
    • Output della funzione If nell'elemento ItemDiscount dello schema di destinazione

    Nota

    Nella funzione If la parola ANY viene visualizzata a destra del nome della funzione, a indicare che è possibile assegnare il valore di output a qualsiasi elemento.

  7. Nelle funzioni seguenti, nella scheda Proprietà specificare i valori seguenti:

    Funzione Parametro e valore di input
    Maggiore - Value #1: Elemento di origine denominato ItemQuantity
    - Valore 2: 20
    Per - Multiplicand #1: Elemento di origine denominato ItemPrice
    - Multiplicand #2: .10
    Se - Condizione: is-greater-than(ItemQuantity,20)
    - Valore: multiply(ItemPrice, .10)

    La mappa seguente mostra l'esempio completato:

    Screenshot showing finished condition example.

    La finestra della visualizzazione codice riflette la relazione di mapping creata:

    Screenshot showing code view with conditional mapping between source and target elements using the functions, Greater, If, and Multiply.

Salvare la mappa

Al termine, sulla barra degli strumenti della mappa selezionare Salva.

Visual Studio Code salva la mappa come artefatti seguenti:

  • File <your-map-name.yml> nella cartella del progetto Artifacts>MapDefinitions
  • File <your-map-name.xslt> nella cartella Artifacts> Mappe project

Generare un file XSLT in qualsiasi momento

Per generare il <file your-map-name.xslt> in qualsiasi momento, sulla barra degli strumenti della mappa selezionare Genera XSLT.

Testare la mappa

Per verificare che la trasformazione funzioni come previsto, sono necessari dati di input di esempio.

  1. Prima di testare la mappa, assicurarsi di generare il file your-map-name.xslt> più recente.<

  2. Sulla barra degli strumenti della mappa selezionare Test.

  3. Nella finestra Input del riquadro Mappa di test incollare i dati di input di esempio e quindi selezionare Test.

    Il riquadro test passa alla scheda Output e mostra il codice di stato e il corpo della risposta del test.

Chiamare la mappa da un flusso di lavoro nel progetto

  1. Nel menu a sinistra di Visual Studio Code selezionare Esplora (icona file) per visualizzare la struttura del progetto dell'app per la logica.

  2. Espandere la cartella con il nome del flusso di lavoro. Dal menu di scelta rapida del file workflow.json selezionare Apri finestra di progettazione.

  3. Nella finestra di progettazione del flusso di lavoro seguire questi passaggi generali per aggiungere l'azione predefinita Operazioni di Gestione dei dati denominata Transform using Data Mapper XSLT (Trasformazione tramite XsLT di Data Mapper).

  4. Nella finestra di progettazione selezionare l'azione Transform using Data Mapper XSLT .On the designer, select the Transform using Data Mapper XSLT action.

  5. Nel riquadro delle informazioni sull'azione visualizzato specificare il valore Contenuto e lasciare Map Source impostato su App per la logica. Nell'elenco Nome mappa selezionare il file di mappa (con estensione xslt) che si desidera usare.

    Screenshot shows Visual Studio Code, Standard workflow designer, with selected action named Transform using Data Mapper XSLT and action properties.

    Per usare la stessa azione Transform using Data Mapper XSLT nella portale di Azure, è necessario aggiungere la mappa alla risorsa dell'app per la logica Standard.

Creare una funzione personalizzata

Per creare una funzione personalizzata che è possibile usare con lo strumento Data Mapper, seguire questa procedura:

  1. Creare un file XML (xml) con un nome significativo che descrive lo scopo della funzione.

    Se sono presenti più funzioni correlate, è possibile usare un singolo file per queste funzioni. Anche se è possibile usare qualsiasi nome di file, un nome di file o una categoria significativa semplifica l'identificazione, la ricerca e l'individuazione delle funzioni.

  2. Nel file XML è necessario usare lo schema seguente per la definizione della funzione:

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:element name="customfunctions">
          <xs:complexType>
             <xs:sequence>
                <xs:element maxOccurs="unbounded" name="function">
                   <xs:complexType>
                      <xs:sequence>
                         <xs:element maxOccurs="unbounded" name="param">
                            <xs:complexType>
                                <xs:attribute name="name" type="xs:string" use="required" />
                                <xs:attribute name="as" type="xs:string" use="required" />
                            </xs:complexType>
                         </xs:element>
                         <xs:any minOccurs="0" />
                      </xs:sequence>
                      <xs:attribute name="name" type="xs:string" use="required" />
                      <xs:attribute name="as" type="xs:string" use="required" />
                      <xs:attribute name="description" type="xs:string" use="required" />
                   </xs:complexType>
                </xs:element>
             </xs:sequence>
          </xs:complexType>
       </xs:element>
    </xs:schema>
    

    Ogni elemento XML denominato "function" implementa una funzione di stile XSLT3.0 con altri attributi. L'elenco delle funzioni Di mapper dati include il nome della funzione, la descrizione, i nomi dei parametri e i tipi di parametro.

    Nell'esempio seguente viene illustrata l'implementazione di un file SampleFunctions.xml :

    <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <customfunctions>
       <function name="age" as="xs:float" description="Returns the current age.">
          <param name="inputDate" as="xs:date"/> 
          <value-of select="round(days-from-duration(current-date() - xs:date($inputDate)) div 365.25, 1)"/>
       </function> 
       <function name="custom-if-then-else" as="xs:string" description="Evaluates the condition and returns corresponding value.">
          <param name="condition" as="xs:boolean"/>
          <param name="thenResult" as="xs:anyAtomicType"/>
          <param name="elseResult" as="xs:anyAtomicType"/>
          <choose>
             <when test="$condition">
                <value-of select="$thenResult"></value-of>
             </when>
             <otherwise>
                <value-of select="$elseResult"></value-of>
             </otherwise>
          </choose>
       </function>
    </customfunctions>
    
  3. Nel computer locale aprire la cartella per il progetto di app per la logica Standard.

  4. Aprire la cartella Artifacts e creare la struttura di cartelle seguente, se non esistente: Funzioni estensioni>DataMapper>.

  5. Nella cartella Funzioni salvare il file XML della funzione.

  6. Per trovare la funzione personalizzata nell'elenco delle funzioni dello strumento Data Mapper, cercare la funzione o espandere la raccolta di funzioni personalizzate.

Passaggi successivi