I was testing out Shopify liquid template to perform XML to XML/JSON data transformation. Liquid template is one of the templating tool mentioned in Microsoft's website to perform data transformation in Logic App (the other tool being the venerable XSLT).
I've not used XSLT before, but comparing to liquid template, the latter seems more friendly. As such, I embarked on using liquid template for my research.
Below are the 2 observations I found, and the workaround I need to do to fulfill the task on hand.
-
Syntax differences between liquid and dotliquid (used by Microsoft):
a. Capitalisation of first letter, i.e.Append
instead ofappend
.
b. Different naming, i.e.DividedBy
instead ofdivided_by
The problem for syntax differences is that there's no error. The script just run successfully, but the filter functions are not executed 🙄.
-
Unable to differentiate single child node vs. list of child nodes. To give an example, below are 2 valid snippets that can be interpreted differently.
Snippet 1
<order> <orderItem> <itemName>Item 1</itemName> </orderItem> </order>
Snippet 2
<order> <orderItem> <itemName>Item 1</itemName> </orderItem> <orderItem> <itemName>Item 2</itemName> </orderItem> </order>
The first snippet interprets
order
as an object containingorderItem
. On the other hand, the second snippet interpretsorder
as an _array _of `orderItem 😅Fortunately, Microsoft has JSONArrayFor. Using JSONArrayFor instead of For loop, we're able to force
order
to be treated as an array regardless of the number oforderItem
insiderorder
.
Top comments (0)