Enterprise Integration con trasformazioni XMLEnterprise integration with XML transforms

PanoramicaOverview

Il connettore di trasformazione di Enterprise Integration converte i dati da un formato a un altro.The Enterprise integration Transform connector converts data from one format to another format. Ad esempio, si è ricevuto un messaggio contenente la data corrente nel formato YearMonthDay.For example, you may have an incoming message that contains the current date in the YearMonthDay format. È possibile usare una trasformazione per riformattare la data nel formato MonthDayYear.You can use a transform to reformat the date to be in the MonthDayYear format.

Funzioni della trasformazioneWhat does a transform do?

Un'app per le API Transform, conosciuta anche come Map, consiste in uno schema XML di origine (input) e in uno schema XML di destinazione (output).A Transform, which is also known as a map, consists of a Source XML schema (the input) and a Target XML schema (the output). È possibile usare diverse funzioni predefinite per contribuire a gestire o controllare i dati, incluse la modifica di stringhe, le operazioni Conditional Assignment, le espressioni aritmetiche, i formattatori di data/ora e persino i costrutti a ciclo continuo.You can use different built-in functions to help manipulate or control the data, including string manipulations, conditional assignments, arithmetic expressions, date time formatters, and even looping constructs.

Procedura: Creare una trasformazioneHow to create a transform?

È possibile creare una mappa/trasformazione tramite l' SDK di Enterprise Integrationdi Visual Studio.You can create a transform/map by using the Visual Studio Enterprise Integration SDK. Al termine della creazione e del testing della trasformazione, caricare la trasformazione nell'account di integrazione.When you are finished creating and testing the transform, you upload the transform into your integration account.

Procedura: Usare una trasformazioneHow to use a transform

Dopo aver caricato il file della trasformazione/mappa nell'account di integrazione, è possibile usarlo per creare un'app per la logica.After you upload the transform/map into your integration account, you can use it to create a Logic app. L'app per la logica esegue le trasformazioni a ogni attivazione dell'app, con la relativa trasformazione del contenuto immesso.The Logic app runs your transformations whenever the Logic app is triggered (and there is input content that needs to be transformed).

Di seguito è riportata la procedura per l'uso di una trasformazione:Here are the steps to use a transform:

prerequisitiPrerequisites

  • Creare un account di integrazione e aggiungervi una mappaCreate an integration account and add a map to it

Una volta soddisfatti i requisiti, è ora di creare l'app per la logica:Now that you've taken care of the prerequisites, it's time to create your Logic app:

  1. Creare un'app per la logica e collegarla all'account di integrazione che contiene la mappa.Create a Logic app and link it to your integration account that contains the map.
  2. Aggiungere un trigger Richiesta all'app per la logica.Add a Request trigger to your Logic app
  3. Aggiungere l'azione Trasforma XML selezionando prima Aggiungi un'azione Add the Transform XML action by first selecting Add an action
  4. Immettere la parola trasforma nella casella di ricerca per filtrare tutte le azioni e ottenere quella che si vuole usare.Enter the word transform in the search box to filter all the actions to the one that you want to use
  5. Selezionare l'azione Trasforma XMLSelect the Transform XML action
  6. Aggiungere il CONTENUTO XML da trasformare.Add the XML CONTENT that you transform. È possibile usare tutti i dati XML ricevuti nella richiesta HTTP come CONTENUTO.You can use any XML data you receive in the HTTP request as the CONTENT. In questo esempio selezionare il corpo della richiesta HTTP che ha attivato l'app per la logica.In this example, select the body of the HTTP request that triggered the Logic app.

    Nota

    Assicurarsi che il contenuto relativo all'azione Trasforma XML sia in formato XML.Make sure that the content for the Transform XML is XML. Se il contenuto non è in formato XML o in codifica Base64, è necessario specificare un'espressione che elabori il contenuto.If the content is not in XML or is base64-encoded, you must specify an expression that processes the content. In questo caso, è possibile usare funzioni come @base64ToBinary per decodificare il contenuto o @xml per elaborare il contenuto come XML.For example, you can use functions, like @base64ToBinary for decoding content or @xml for processing the content as XML.

  7. Selezionare il nome della MAPPA che si vuole usare per eseguire la trasformazione.Select the name of the MAP that you want to use to perform the transformation. La mappa deve essere già presente nell'account di integrazione.The map must already be in your integration account. In un passaggio precedente è stato concesso l'accesso dell'app per la logica all'account di integrazione che contiene la mappa.In an earlier step, you already gave your Logic app access to your integration account that contains your map.

  8. Salvare il lavoro Save your work

A questo punto, la configurazione della mappa è completa.At this point, you are finished setting up your map. In un'applicazione reale è possibile archiviare i dati trasformati in un'applicazione LOB, ad esempio SalesForce.In a real world application, you may want to store the transformed data in an LOB application such as SalesForce. È possibile eseguire facilmente questa azione inviando l'output della trasformazione a Salesforce.You can easily as an action to send the output of the transform to Salesforce.

È ora possibile testare la trasformazione eseguendo una richiesta all'endpoint HTTP.You can now test your transform by making a request to the HTTP endpoint.

Funzionalità e casi d'usoFeatures and use cases

  • La trasformazione creata in una mappa può essere semplice, come ad esempio la copia di un nome e di un indirizzo da un documento a un altro.The transformation created in a map can be simple, such as copying a name and address from one document to another. In alternativa, è possibile creare trasformazioni più complesse usando operazioni di mapping predefinite.Or, you can create more complex transformations using the out-of-the-box map operations.
  • Sono già disponibili più operazioni o funzioni di mapping, incluse stringhe, funzioni data/ora e così via.Multiple map operations or functions are readily available, including strings, date time functions, and so on.
  • È possibile eseguire una copia diretta dei dati tra gli schemi.You can do a direct data copy between the schemas. Nel mapper incluso nell'SDK, questa operazione è semplice quanto tracciare una linea che colleghi gli elementi nello schema di origine con le relative controparti nello schema di destinazione.In the Mapper included in the SDK, this is as simple as drawing a line that connects the elements in the source schema with their counterparts in the destination schema.
  • Durante la creazione di una mappa viene visualizzata la relativa rappresentazione grafica, che mostra tutte le relazioni e i collegamenti creati dall'utente.When creating a map, you view a graphical representation of the map, which shows all the relationships and links you create.
  • Usare la funzione Mappa di test per aggiungere un messaggio XML di esempio.Use the Test Map feature to add a sample XML message. Con un semplice clic, è possibile testare la mappa creata e visualizzare l'output generato.With a simple click, you can test the map you created, and see the generated output.
  • Caricare le mappe esistentiUpload existing maps
  • Include il supporto per il formato XML.Includes support for the XML format.

Funzionalità avanzateAdvanced features

Assembly di riferimento o codice personalizzato dalle mappeReference assembly or custom code from maps

L'azione di trasformazione supporta anche le mappe o le trasformazioni con riferimento all'assembly esterno.The transform action also supports maps or transforms with reference to external assembly. Questa funzionalità abilita le chiamate a codice .NET personalizzato direttamente da mappe XSLT.This capability enables calls to custom .NET code directly from XSLT maps. Di seguito sono elencati i prerequisiti per l'uso dell'assembly nelle mappe.Here are the prerequisites to use assembly in maps.

  • La mappa e l'assembly a cui si fa riferimento nella mappa devono essere caricati nell'account di integrazione.The map and the assembly referenced from the map needs to be uploaded to integration account.

    Nota

    La mappa e l'assembly devono essere caricati in un ordine specifico.Map and assembly are required to be uploaded in a specific order. È necessario caricare l'assembly prima della mappa che fa riferimento all'assembly.You must upload the assembly before you upload the map that references the assembly.

  • La mappa deve anche presentare questi attributi e una sezione CDATA contenente la chiamata al codice dell'assembly:The map must also have these attributes and a CDATA section that contains the call to the assembly code:

    • nome è il nome personalizzato dell'assembly.name is the custom assembly name.
    • spazio dei nomi è lo spazio dei nomi nell'assembly che include il codice personalizzato.namespace is the namespace in your assembly that includes the custom code.

    Questo esempio mostra una mappa che fa riferimento a un assembly denominato "XslUtilitiesLib" e chiama il metodo circumreference dall'assembly.This example shows a map that references an assembly named "XslUtilitiesLib" and calls the circumreference method from the assembly.

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts">
    <msxsl:script language="C#" implements-prefix="user">
      <msxsl:assembly name="XsltHelperLib"/>
      <msxsl:using namespace="XsltHelpers"/>
      <![CDATA[public double circumference(int radius){ XsltHelper helper = new XsltHelper(); return helper.circumference(radius); }]]>
    </msxsl:script>
    <xsl:template match="data">
       <circles>
          <xsl:for-each select="circle">
              <circle>
                  <xsl:copy-of select="node()"/>
                      <circumference>
                          <xsl:value-of select="user:circumference(radius)"/>
                      </circumference>
              </circle>
          </xsl:for-each>
       </circles>
      </xsl:template>
      </xsl:stylesheet>
    

Byte order markByte Order Mark

Per impostazione predefinita, la risposta ottenuta dalla trasformazione inizia con il Byte order mark (BOM).By default, the response from the transformation starts with the Byte Order Mark (BOM). È possibile accedere a questa funzionalità solo quando si lavora nell'editor della visualizzazione Codice.You can access this functionality only while working in the Code View editor. Per disabilitare questa funzionalità, specificare disableByteOrderMark per la proprietà transformOptions:To disable this functionality, specify disableByteOrderMark for the transformOptions property:

"Transform_XML": {
    "inputs": {
        "content": "@{triggerBody()}",
        "integrationAccount": {
            "map": {
                "name": "TestMap"
            }
        },
        "transformOptions": "disableByteOrderMark"
    },
    "runAfter": {},
    "type": "Xslt"
}

Altre informazioniLearn more