我的Logic App从FTP服务器位置正在获取zip文件夹,该文件夹可以包含号。样本结构的xml文件
通过将它们解析为JSON,我可以在for-each循环中读取xml文件的内容
3。现在,我希望逻辑应用程序将JSON中的多个xml文件合并为单个xml文件
请建议我如何实现上述第3点。 我具有集成帐户来存储映射文件。
输入文件1:-
<?xml version="1.0"?>
<orderQuote>
<order_id>AZS000001</order_id>
<user_request>
<app_user>
<username>varunxxxxxxxxxxxx</username>
<user_first_name>Varun</user_first_name>
<user_last_name>Thakur</user_last_name>
<user_email>varunthakur84@hotmail.com</user_email>
</app_user>
</user_request>
<quote_id>345678</quote_id>
<rate_id>ABC001</rate_id>
<contract_id>SR_ABC_XYZ</contract_id>
<amendment_id>2019062401</amendment_id>
<price> 10</price>
<rate_effective_date>01-Jul-2019</rate_effective_date>
<rate_expiration_date>30-Sep-2019</rate_expiration_date>
<origin_trade></origin_trade>
<destination_trade></destination_trade>
<origin_city>Haiphong</origin_city>
<origin_country>VIETNAM</origin_country>
<destination_city>Atlanta</destination_city>
<destination_country>USA</destination_country>
<ordermentType>XYZ</ordermentType>
<ordermentSize>XYZ</ordermentSize>
<ordermentSizeType>DC</ordermentSizeType>
<currency>USD</currency>
<order_dt>17-Sep-2019</order_dt>
<customer>CompanyName RM Team</customer>
<quote_creation_dt>17-Sep-2019</quote_creation_dt>
</orderQuote>
输入文件2:-
<?xml version="1.0"?>
<orderQuote>
<order_id>AZS000001</order_id>
<user_request>
<app_user>
<username>varunxxxxxxxxxxxx</username>
<user_first_name>Varun</user_first_name>
<user_last_name>Thakur</user_last_name>
<user_email>varunthakur84@hotmail.com</user_email>
</app_user>
</user_request>
<quote_id>8975545</quote_id>
<rate_id>ABC002</rate_id>
<contract_id>SR_A83Z</contract_id>
<amendment_id>20134362401</amendment_id>
<price>60</price>
<rate_effective_date>01-JAJ-2019</rate_effective_date>
<rate_expiration_date>30-DEC-2019</rate_expiration_date>
<origin_trade></origin_trade>
<destination_trade></destination_trade>
<origin_city>Haiphong</origin_city>
<origin_country>VIETNAM</origin_country>
<destination_city>Atlanta</destination_city>
<destination_country>USA</destination_country>
<ordermentType>XYZ</ordermentType>
<ordermentSize>XYZ</ordermentSize>
<ordermentSizeType>DC</ordermentSizeType>
<currency>USD</currency>
<order_dt>17-Sep-2019</order_dt>
<customer>CompanyName RM Team</customer>
<quote_creation_dt>17-Sep-2019</quote_creation_dt>
</orderQuote>
预期的输出文件
<?xml version="1.0"?>
<orderQuote>
<order_id>AZS000001</order_id>
<user_request>
<app_user>
<username>varunxxxxxxxxxxxx</username>
<user_first_name>Varun</user_first_name>
<user_last_name>Thakur</user_last_name>
<user_email>varunthakur84@hotmail.com</user_email>
</app_user>
</user_request>
<quotationCollection>
<quotation>
<quote_id>8975545</quote_id>
<rate_id>ABC002</rate_id>
<contract_id>SR_A83Z</contract_id>
<amendment_id>20134362401</amendment_id>
<price>60</price>
<rate_effective_date>01-JAJ-2019</rate_effective_date>
<rate_expiration_date>30-DEC-2019</rate_expiration_date>
<origin_trade></origin_trade>
<destination_trade></destination_trade>
<origin_city>Haiphong</origin_city>
<origin_country>VIETNAM</origin_country>
<destination_city>Atlanta</destination_city>
<destination_country>USA</destination_country>
<ordermentType>XYZ</ordermentType>
<ordermentSize>XYZ</ordermentSize>
<ordermentSizeType>DC</ordermentSizeType>
<currency>USD</currency>
<order_dt>17-Sep-2019</order_dt>
<customer>CompanyName RM Team</customer>
<quote_creation_dt>17-Sep-2019</quote_creation_dt>
</quotation>
<quotation>
<quote_id>345678</quote_id>
<rate_id>ABC001</rate_id>
<contract_id>SR_ABC_XYZ</contract_id>
<amendment_id>2019062401</amendment_id>
<price> 10</price>
<rate_effective_date>01-Jul-2019</rate_effective_date>
<rate_expiration_date>30-Sep-2019</rate_expiration_date>
<origin_trade></origin_trade>
<destination_trade></destination_trade>
<origin_city>Haiphong</origin_city>
<origin_country>VIETNAM</origin_country>
<destination_city>Atlanta</destination_city>
<destination_country>USA</destination_country>
<ordermentType>XYZ</ordermentType>
<ordermentSize>XYZ</ordermentSize>
<ordermentSizeType>DC</ordermentSizeType>
<currency>USD</currency>
<order_dt>17-Sep-2019</order_dt>
<customer>CompanyName RM Team</customer>
<quote_creation_dt>17-Sep-2019</quote_creation_dt>
</quotation>
</quotationCollection>
</orderQuote>
答案 0 :(得分:0)
由于您要合并多个xml(json)文件的部分内容,并且您的示例很复杂,因此我简化了它们。
您的要求等同于合并xml文件
<orderQuote>
<order_id>AZS000001</order_id>
<quote_id>345678</quote_id>
<rate_id>ABC001</rate_id>
</orderQuote>
和
<orderQuote>
<order_id>AZS000001</order_id>
<quote_id>8975545</quote_id>
<rate_id>ABC002</rate_id>
</orderQuote>
到
<orderQuote>
<order_id>AZS000001</order_id>
<quotationCollection>
<quotation>
<quote_id>8975545</quote_id>
<rate_id>ABC002</rate_id>
</quotation>
<quotation>
<quote_id>345678</quote_id>
<rate_id>ABC001</rate_id>
</quotation>
</quotationCollection>
</orderQuote>
为此,我首先初始化了四个变量(变量“ isFirstTime”用于判断每个变量是否是第一个循环)。
然后我连接到ftp并将xml文件从ftp解析为json格式。
接下来,我用“ order_id”设置变量值(在这一步中,您可能需要设置其他一些变量,例如“ username”,“ user_first_name” .....)
在“对于每个”循环的底部,我们需要将变量“ isFirstTime”设置为false。
完成“对于每个”循环之后,我们有最后两个步骤。
“ fx concat(...)”的表达式是
concat(concat(concat(concat('{"orderQuote":{"order_id":"', variables('order_id')), '","quotationCollection":['), variables('jsonstring')), ']}}')
之后,我们可以获取json格式的结果文件。
{
"orderQuote": {
"order_id": "AZS000001",
"quotationCollection": [
{
"quotation": {
"quote_id": "345678",
"rate_id": "ABC001"
}
},
{
"quotation": {
"quote_id": "8975545",
"rate_id": "ABC002"
}
}
]
}
}
顺便说一句,我们最好先做一些设置,然后再使用“对于每个”循环,单击“对于每个”操作旁边的“ ...”图标->单击“设置”,然后启用“并发控制” ”,并将“并行度”更改为1。