1

我正在构建一个逻辑应用程序来从我的本地 SQL 数据库中提取数据 -> 将其转换为 XML -> 将其发送到 SOAP API。

这是我从本地数据库进入 Logic App 的示例数据:

{
    "ResultSets": {
        "Table1": [
            {
                "ID": "VM001",
                "FirstName": "TestFirstName",
                "LastName": "TestLastName",
                "Email": "test1@company.com",
                "DOB": "1990-05-05"
            },
            {
                "ID": "VM002",
                "FirstName": "TestFirstName2",
                "LastName": "TestLastName2",
                "Email": "test2@company.com",
                "DOB": "1990-06-06"
            }
        ]
    },
    "OutputParameters": {}
}

...然后我的计划是调用内部 API 并应用某种策略(我相信我们可以在入站/出站策略中使用 Liquid 模板,而无需使用集成帐户或 Azure 函数)将上述数据转换为以下 XML,但我与之斗争:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header/>
   <soapenv:Body>
      <userRequest>
         <extMessageId>12345</extMessageId>
         <users>
            <!--1 or more repetitions:-->
            <user>
               <ID> ID from JSON data </ID>
               <!--Optional:-->
               <FirstName> FirstName from JSON data </FirstName>
               <LastName> Lastname from JSON data </LastName>
               <Email> Email from JSON data </Email>
               <DOB> DOB from JSON data </DOB>
            </user>
         </users>
      </userRequest>
   </soapenv:Body>
</soapenv:Envelope>

有人可以帮忙吗。

4

1 回答 1

4

为此,我创建了一个 APIM 并编辑其策略,如下所示供您参考:

在此处输入图像描述

正如您提到的领域<FirstName><LastName>...是可选的。如果您仍然希望<FirstName>标签显示为空值,则无需执行任何其他操作。如果您不想在<FirstName>标签没有值时显示标签,则需要编辑液体模板,如下所示:

在此处输入图像描述

希望有帮助~

于 2020-07-01T03:00:04.020 回答