Créer des mappages qui convertissent des données XML entre les différents formats dans Azure Logic Apps à l’aide d’Enterprise Integration PackCreate maps that transform XML between formats in Azure Logic Apps with Enterprise Integration Pack

Le connecteur Enterprise Integration Transform convertit les données d’un format vers un autre format.The Enterprise integration Transform connector converts data from one format to another format. Vous pouvez, par exemple, avoir un message entrant qui contient la date du jour au format AnnéeMoisJour.For example, you may have an incoming message that contains the current date in the YearMonthDay format. Vous pouvez utiliser une transformation pour remettre en forme la date au format MoisJourAnnée.You can use a transform to reformat the date to be in the MonthDayYear format.

Que fait une transformation ?What does a transform do?

Une transformation, également appelée mappage, est composée d’un schéma XML source (l’entrée) et d’un schéma XML cible (la sortie).A Transform, which is also known as a map, consists of a Source XML schema (the input) and a Target XML schema (the output). Vous pouvez utiliser différentes fonctions intégrées pour aider à manipuler ou à contrôler les données, y compris les manipulations de chaînes, les affectations conditionnelles, les expressions arithmétiques, les formateurs d'heure et de date et même les constructions de bouclage.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.

Création d’une transformationHow to create a transform?

Vous pouvez créer une transformation/un mappage à l’aide du Kit de développement logiciel (SDK) Enterprise Integrationde Visual Studio.You can create a transform/map by using the Visual Studio Enterprise Integration SDK. Lorsque vous avez terminé de créer et de tester la transformation, vous la téléchargez dans votre compte d’intégration.When you are finished creating and testing the transform, you upload the transform into your integration account.

Utilisation d’une transformationHow to use a transform

Après avoir chargé la transformation / le mappage dans votre compte d’intégration, vous pouvez l’utiliser pour créer une application logique.After you upload the transform/map into your integration account, you can use it to create a Logic app. L’application logique exécute vos transformations à chaque fois qu’elle est déclenchée (et qu’il existe du contenu d’entrée qui doit être transformé).The Logic app runs your transformations whenever the Logic app is triggered (and there is input content that needs to be transformed).

Voici les étapes à suivre pour utiliser une transformation:Here are the steps to use a transform:

PrérequisPrerequisites

  • Créer un compte d’intégration et y ajouter un mappageCreate an integration account and add a map to it

Maintenant que vous avez exécuté la configuration requise, il est temps de créer votre application logique :Now that you've taken care of the prerequisites, it's time to create your Logic app:

  1. Créez une application logique et liez-la à votre compte d’intégration qui contient le mappage.Create a Logic app and link it to your integration account that contains the map.

  2. Ajouter un déclenchement de Requête à votre application logiqueAdd a Request trigger to your Logic app

  3. Ajoutez l’action Transformer XML en sélectionnant d’abord Ajouter une action Add the Transform XML action by first selecting Add an action

  4. Entrez le mot transform dans la zone de recherche afin de filtrer toutes les actions et d’obtenir celle que vous souhaitez utiliserEnter the word transform in the search box to filter all the actions to the one that you want to use

  5. Sélectionnez l’action Transformer XMLSelect the Transform XML action

  6. Ajoutez le CONTENU XML à transformer.Add the XML CONTENT that you transform. Vous pouvez utiliser toute donnée XML que vous recevez dans la requête HTTP en tant que CONTENU.You can use any XML data you receive in the HTTP request as the CONTENT. Dans cet exemple, sélectionnez le corps de la demande HTTP qui a déclenché l’application logique.In this example, select the body of the HTTP request that triggered the Logic app.

    Notes

    Vérifiez que le contenu de Transformer XML est au format XML.Make sure that the content for the Transform XML is XML. Si le contenu n’est pas au format XML ou s’il est codé en base 64, vous devez spécifier une expression qui traite le contenu.If the content is not in XML or is base64-encoded, you must specify an expression that processes the content. Vous pouvez par exemple utiliser des fonctions comme @base64ToBinary pour le décodage du contenu ou @xml pour le traitement du contenu au format XML.For example, you can use functions, like @base64ToBinary for decoding content or @xml for processing the content as XML.

  7. Sélectionnez le nom du MAPPAGE que vous souhaitez utiliser pour effectuer la transformation.Select the name of the MAP that you want to use to perform the transformation. Le mappage doit déjà exister dans votre compte d’intégration.The map must already be in your integration account. Lors d’une étape précédente, vous avez déjà attribué à votre application logique l’accès à votre compte d’intégration qui contient le mappage.In an earlier step, you already gave your Logic app access to your integration account that contains your map.

  8. Enregistrez votre travailSave your work

À ce stade, vous avez terminé de configurer votre mappage.At this point, you are finished setting up your map. Dans une application réelle, vous souhaiterez peut-être stocker les données transformées dans une application métier, comme SalesForce.In a real world application, you may want to store the transformed data in an LOB application such as SalesForce. Vous pouvez facilement ajouter une action pour envoyer la sortie de la transformation à SalesForce.You can easily as an action to send the output of the transform to Salesforce.

Vous pouvez maintenant tester votre transformation en effectuant une demande au point de terminaison HTTP.You can now test your transform by making a request to the HTTP endpoint.

Fonctionnalités et cas d’usageFeatures and use cases

  • La transformation créée dans un mappage peut être simple, par exemple la copie d'un nom et de l'adresse d'un document vers un autre.The transformation created in a map can be simple, such as copying a name and address from one document to another. Vous pouvez aussi créer des transformations plus complexes à l'aide des opérations de mappage prêtes à l'emploi.Or, you can create more complex transformations using the out-of-the-box map operations.
  • Plusieurs fonctions ou opérations de mappage sont disponibles, y compris des chaînes, des fonctions de date et d'heure, et ainsi de suite.Multiple map operations or functions are readily available, including strings, date time functions, and so on.
  • Vous pouvez effectuer une copie de données directe entre les schémas.You can do a direct data copy between the schemas. Dans le Mappeur inclus dans le Kit de développement logiciel (SDK), il suffit de dessiner une ligne qui relie les éléments dans le schéma source à leurs équivalents dans le schéma de destination.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.
  • Lors de la création d’un mappage, sa représentation graphique est affichée, notamment toutes les relations et les liens que vous créez.When creating a map, you view a graphical representation of the map, which shows all the relationships and links you create.
  • Utilisez la fonctionnalité Tester le mappage pour ajouter un exemple de message XML.Use the Test Map feature to add a sample XML message. Avec un simple clic, vous pouvez tester le mappage que vous avez créé et afficher la sortie générée.With a simple click, you can test the map you created, and see the generated output.
  • Téléchargement de mappages existantsUpload existing maps
  • Comprend la prise en charge du format XML.Includes support for the XML format.

Fonctionnalités avancéesAdvanced features

Assembly de référence ou code personnalisé à partir de mappagesReference assembly or custom code from maps

L’action de transformation prend également en charge les mappages et les transformations comportant une référence à un assembly externe.The transform action also supports maps or transforms with reference to external assembly. Cette fonctionnalité autorise les appels de code .NET personnalisé effectués directement à partir de mappages XSLT.This capability enables calls to custom .NET code directly from XSLT maps. Voici les prérequis à respecter pour utiliser des assemblys dans des mappages.Here are the prerequisites to use assembly in maps.

  • Le mappage et l’assembly auquel il fait référence doivent être chargés sur le compte d’intégration.The map and the assembly referenced from the map needs to be uploaded to integration account.

    Notes

    Le mappage et l’assembly doivent être chargés dans un ordre précis.Map and assembly are required to be uploaded in a specific order. Vous devrez charger l’assembly avant de charger le mappage qui y fait référence.You must upload the assembly before you upload the map that references the assembly.

  • Le mappage doit également comporter ces attributs et une section CDATA contenant l’appel au code de l’assembly :The map must also have these attributes and a CDATA section that contains the call to the assembly code:

    • name est le nom d’assembly personnalisé.name is the custom assembly name.
    • namespace est l’espace de noms de l’assembly qui comprend le code personnalisé.namespace is the namespace in your assembly that includes the custom code.

    Cet exemple montre un mappage qui fait référence à un assembly nommé « XslUtilitiesLib » et appelle la méthode circumreference à partir de celui-ci.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>
    

Marque d’ordre d’octetByte Order Mark

Par défaut, la réponse de la transformation commence par la marque d’ordre d’octet.By default, the response from the transformation starts with the Byte Order Mark (BOM). Cette fonctionnalité n’est disponible que dans l’éditeur en mode Code.You can access this functionality only while working in the Code View editor. Pour désactiver cette fonctionnalité, spécifiez disableByteOrderMark pour la propriété 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"
}

En savoir plusLearn more