在逻辑应用程序中将相同结构的多个 XML 文件合并为单个 xml
Merge multiple XML files of same structure into single xml in logic apps
从 FTP 服务器位置我的逻辑应用程序正在获取 zip 文件夹,其中容器 包含 "N" 没有。 xml 个样本结构文件
我可以在 for-each 循环中读取 xml 文件的内容,方法是将它们解析为 JSON
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>
由于你想合并多个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"用来判断是否是for each的第一个循环)。
然后我连接到 ftp 并将 xml 文件从 ftp 解析为 json 格式。
接下来,我将变量值设置为"order_id"(在这一步中,您可能需要设置一些其他变量,例如"username"、"user_first_name".......)
下一步,我创建一个 "if" 条件来完成不同的工作。
在"For each" 循环的底部,我们需要将变量"isFirstTime" 设置为false。
完成"For each"循环后,我们还有最后两步。
"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"
}
}
]
}
}
对了,我们在使用"For each"循环之前最好做一些设置,点击"For each"动作旁边的“…”图标-->点击"Settings"然后启用 "Concurrency Control" 并将 "Degree of Parallelism" 更改为 1。
从 FTP 服务器位置我的逻辑应用程序正在获取 zip 文件夹,其中容器 包含 "N" 没有。 xml 个样本结构文件
我可以在 for-each 循环中读取 xml 文件的内容,方法是将它们解析为 JSON
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>
由于你想合并多个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"用来判断是否是for each的第一个循环)。
然后我连接到 ftp 并将 xml 文件从 ftp 解析为 json 格式。
接下来,我将变量值设置为"order_id"(在这一步中,您可能需要设置一些其他变量,例如"username"、"user_first_name".......)
下一步,我创建一个 "if" 条件来完成不同的工作。
在"For each" 循环的底部,我们需要将变量"isFirstTime" 设置为false。
完成"For each"循环后,我们还有最后两步。
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"
}
}
]
}
}
对了,我们在使用"For each"循环之前最好做一些设置,点击"For each"动作旁边的“…”图标-->点击"Settings"然后启用 "Concurrency Control" 并将 "Degree of Parallelism" 更改为 1。