Azure LogicApp 集成中的映射文件
Map file in the Integration for the LogicApp in Azure
作为 B2B 供应商的 HTTP GET 函数的结果,具有以下 XML。
<Invoices xmlns="http://gateway.com/schemas/Invoices" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://gateway..com/schemas/Invoices Invoices.xsd">
<DocumentInfo>
<DocType>INVOICES</DocType>
<DocVersion>2.0</DocVersion>
</DocumentInfo>
<Header>
<StartDate>2018-12-01T00:00:00+01:00</StartDate>
<EndDate>2019-01-03T00:00:00+01:00</EndDate>
</Header>
<Documents>
<Invoice InvoiceId="RP82807" InvoiceDate="2019-01-02T00:00:00+01:00" DocumentType="IN" RefDocId="FT34532" RefDocType="ORDER" SystemId="10" HasPDFImage="0" />
<Invoice InvoiceId="T609881" InvoiceDate="2018-12-31T00:00:00+01:00" DocumentType="IN" RefDocId="FT39339" RefDocType="ORDER" SystemId="0" HasPDFImage="0" />
</Documents>
</Invoices>
基于 this article 我创建了液体映射文件来获取 InvoiceIds 列表:
{
"Invoice": "{{content.Documents.Invoice}}"
}
在XML->Json转换器的LogicApp中使用时,得到如下结果:
{
"Invoice": ""
}
我也尝试过将其作为液体文件:
{
"Invoice": "{{content.Invoices.Documents}}"
}
还有这个:
{
"Invoice": "{{content.Invoices.Documents.Invoice}}"
}
同样的结果。
你能告诉我我做错了什么吗?
我试图用这张地图将你的 xml 文件的一部分传输到 json:
{
"DocType":"{{content.DocumentInfo.DocType}}",
"Invoice":"{{content.Documents.Invoice}}"
}
并得到输出:
{
"DocType": "INVOICES",
"Invoice": ""
}
所以这意味着我可以获得 DocType 但无法获得 Invoice 属性,所以我认为 Liquid 地图可能没有不支持 XML 格式。或许你可以将它改成这样:
<Invoice>
<InvoiceId>T609881</InvoiceId>
<InvoiceDate>2018-12-31T00:00:00+01:00</InvoiceDate>
<DocumentType>IN</DocumentType>
<RefDocId>FT39339</RefDocId>
</Invoice>
这会起作用,或者您可以转到 Liquid reference 检查是否有任何方法可以匹配这些属性。
注意:你现在想要的,绑定到Xml属性目前还没有supported.You可以参考这个answer.
如果您还有其他问题,请告诉我。
更新:您仍然可以使用逻辑应用程序来做到这一点。 例如,我使用 FTP 连接器来获取 xml 文件内容,然后创建一个 json 和 "json(xml(body('Get_file_content')))" 表达式。
这就是结果。
作为 B2B 供应商的 HTTP GET 函数的结果,具有以下 XML。
<Invoices xmlns="http://gateway.com/schemas/Invoices" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://gateway..com/schemas/Invoices Invoices.xsd">
<DocumentInfo>
<DocType>INVOICES</DocType>
<DocVersion>2.0</DocVersion>
</DocumentInfo>
<Header>
<StartDate>2018-12-01T00:00:00+01:00</StartDate>
<EndDate>2019-01-03T00:00:00+01:00</EndDate>
</Header>
<Documents>
<Invoice InvoiceId="RP82807" InvoiceDate="2019-01-02T00:00:00+01:00" DocumentType="IN" RefDocId="FT34532" RefDocType="ORDER" SystemId="10" HasPDFImage="0" />
<Invoice InvoiceId="T609881" InvoiceDate="2018-12-31T00:00:00+01:00" DocumentType="IN" RefDocId="FT39339" RefDocType="ORDER" SystemId="0" HasPDFImage="0" />
</Documents>
</Invoices>
基于 this article 我创建了液体映射文件来获取 InvoiceIds 列表:
{
"Invoice": "{{content.Documents.Invoice}}"
}
在XML->Json转换器的LogicApp中使用时,得到如下结果:
{
"Invoice": ""
}
我也尝试过将其作为液体文件:
{
"Invoice": "{{content.Invoices.Documents}}"
}
还有这个:
{
"Invoice": "{{content.Invoices.Documents.Invoice}}"
}
同样的结果。 你能告诉我我做错了什么吗?
我试图用这张地图将你的 xml 文件的一部分传输到 json:
{
"DocType":"{{content.DocumentInfo.DocType}}",
"Invoice":"{{content.Documents.Invoice}}"
}
并得到输出:
{
"DocType": "INVOICES",
"Invoice": ""
}
所以这意味着我可以获得 DocType 但无法获得 Invoice 属性,所以我认为 Liquid 地图可能没有不支持 XML 格式。或许你可以将它改成这样:
<Invoice>
<InvoiceId>T609881</InvoiceId>
<InvoiceDate>2018-12-31T00:00:00+01:00</InvoiceDate>
<DocumentType>IN</DocumentType>
<RefDocId>FT39339</RefDocId>
</Invoice>
这会起作用,或者您可以转到 Liquid reference 检查是否有任何方法可以匹配这些属性。
注意:你现在想要的,绑定到Xml属性目前还没有supported.You可以参考这个answer.
如果您还有其他问题,请告诉我。
更新:您仍然可以使用逻辑应用程序来做到这一点。 例如,我使用 FTP 连接器来获取 xml 文件内容,然后创建一个 json 和 "json(xml(body('Get_file_content')))" 表达式。
这就是结果。