Blog Post

Azure Integration Services Blog
3 MIN READ

Data Mapper for Azure Logic Apps (Standard) reaches General Availability

alexzuniga's avatar
alexzuniga
Icon for Microsoft rankMicrosoft
Nov 15, 2023

We are pleased to announce the General Availability of Data Mapper for Azure Logic Apps in Visual Studio Code. Data Mapper is Azure Logic Apps’ visual data transformation tool that can help you both create maps and execute transformations. Users can easily define a data transformation that can be used in an Azure Logic Apps workflow to exchange messages between XML or JSON formats.

 

Data Mapper provides a modernized experience for data mapping and transformation that includes drag and drop gestures, a prebuilt functions library, custom extensibility and manual testing. You can use the tool to create maps for XML to XML, JSON to JSON, XML to JSON, and JSON to XML transformations. Once created, these maps can be called from workflows in your logic app project in both Visual Studio Code and Azure Portal.

 

Benefits Summary

Mapping and transformation in one tool

  • Easily map between source and target schemas in either XML or JSON format.
  • Reduces time spent manually coding maps and transformations.
  • XSLT file created can be used in any Azure Logic Apps projects requiring maps.

Modernized experience

  • Visualization makes your data map easy to comprehend.
  • Able to view live code changes in the Show code panel when editing your data map.
  • Increased code efficiency by reducing manual coding time through drag and drop gestures. 
  • Drag and drop gestures doesn't require extensive computer knowledge, making the experience more user-friendly.
  • Schema element input(s) drop down in Properties panel simplifies the process of changing values in code.

Prebuilt functions library

  • Create expressions using functions from the prebuilt library, which includes the following categories:
    • Collection
    • Conversion
    • Date and time
    • Logical comparison
    • Math
    • String
    • Utility

Manual testing

  • Easily test your map with a sample message and view the output using the provided manual testing experience.

Boost Developer Productivity

  • Breadcrumb navigation increases productivity through efficient schema depth navigation. 
  • Able to zoom in and out, allowing you to focus on a specific section of the map.
  • Mini-map view provides a quick and simple way to visualize your overall map. 
  • Map checker panel provides warning checks with an issue description. Selecting a warning directs you to the location of the issue. 

Convenient design elements

  • Properties panel for a schema element displays element code as comprehensible information, such as name, full path, data type, and inputs.
  • Data types of an element are easily identifiable with data type icons shown in schema tree. 
  • Function category and usage are easily identifiable with category color and icons.
  • Top level view of target schema displays which children are in-progress or successfully mapped. 

Custom extensibility

  • RegEx support provides the ability to validate data, transform data for consistency, and find and replace text values
  • Inline XSLT allows you to embed your own XSLT code directly into the map, making it easier to maintain your code and provide more flexibility.
  • Custom functions expands user capability, providing you with the ability to define any reusable function for your maps.
  • Custom XPath provides an easy way to query and transform your data to the target schema.

 

Since public preview, we have enhanced features and listened to your feedback to improve Data Mapper’s performance and usability. A few important updates to note:

  • Functions have been unlocked and are now moveable so users can drag and drop to rearrange their map as it fits their visual needs.
  • We have added a series of sequencing functions for arrays (Sort, Distinct, Filter, Reverse, and Subsequence) that are available to you in the prebuilt functions library.
  • Custom extensibility has been introduced to include RegEx support, Inline XSLT, custom functions, and custom XPath.
  • Name function has been added to support the Key/Value Pair Pattern in Data Mapper
  • We have merged the Data Mapper extension with the Azure Logic Apps extension on Visual Studio Code.
  • We have updated the Data Mapper experience to support Data Mapper in a Logic Apps Workspace that includes Custom Code.
  • Data Mapper outputs information in the order specified to the target schema.  

 

Get started

To get started with creating your first map using Data Mapper, refer to the following documentation.

Data Mapper patterns

To learn more advanced scenarios for Data Mapper, check out this post on some other patterns we have available here.

 

Troubleshooting

As we transition from Data Mapper public preview to General Availability, we have merged extensions with the Logic Apps Standard extension. If you have older projects from the Data Mapper public preview, it is recommended to review your local.settings.json file to avoid debugging errors and runtime errors, ensure your local.settings.json reflects the following:

{

  "IsEncrypted": false,

  "Values": {

    "AzureWebJobsStorage": "UseDevelopmentStorage=true",

    "FUNCTIONS_WORKER_RUNTIME": "node",

    "WORKFLOWS_SUBSCRIPTION_ID": "",

    "APP_KIND": "workflowapp"

  }

}

Updated Nov 15, 2023
Version 1.0
  • PhanindraN's avatar
    PhanindraN
    Copper Contributor

    All works in local VS code but once we deploy to the Azure portal , the datamapper is not working . I get this error "The .NET framework worker could not be found." . Any insight into this error ? Did anyone tried to use the deployed version of logic app in azure portal which uses datamapper ?

  • Scott Rudy's avatar
    Scott Rudy
    Copper Contributor

    I really want to like and use the mapper, but I'm finding it really difficult to make it do what I want.

     

    • Had an issue where the designer didn't load because the host settings was missing `"AzureWebJobsSecretStorageType": "files"`
    • Target hierarchies have limited visibility on the Canvas and the Overview doesn't have the full functionality. (I know this is supposed to be a feature, but I find it hard to work with).
    • Right clicking a map line or a function, results in a blank canvas forcing a close and reopen of the map
    • Can't seem to remove a map line from the canvas and am forced to hand edit the map *.lml file
    • [EDIT] Can't seem to find a way to do a many to one mapping where I can just grab the first element
      • This is a showstopper for me and I believe it's causing the generated XSLT to be incorrect

    Aside from that it would be nice if CTRL-S would save, but at least there's a way to do it.

     

    [EDIT] I ended up getting the *..1 working with the Direct Access function and remembering that XSLT uses 1 as the index start, not 0.