我正在尝试使用Logic Apps来完成我过去与Pentaho所做的事情。我想构建一个带有重复触发器的逻辑应用程序,它启动HTTP步骤以发布到Web服务并接收XML回复。我想解析XML回复(已知格式)并将结果存储在Azure SQL Server数据库中。
我已经成功测试了HTTP步骤并收到了回复XML。我在SQL数据库中完成了目标表。我不知道如何使用Logic Apps将XML回复解析为CSV格式,我可以将其传递给SQL查询以输入新的表格行。
我已经浏览了几个教程和其他线程,但这些步骤要么承担比我拥有的更高级别的经验,要么是Logic Apps的基本介绍。
我认为听到以下内容会很有帮助:
提前感谢任何帮助入门。
如果在解析之后将XML转换为JSON对象,则会更加简单。这两个都可以通过使用xml
和json
函数来完成。
此外,由于您了解XML的格式,因此您将了解转换后的JSON的格式,并允许您使用Parse JSON
操作来获取在逻辑应用程序的其余部分中使用的简单令牌。
然后,您可以直接在SQL查询中使用这些令牌。
这是一个逻辑应用程序,显示这种情况(没有SQL和HTTP步骤)
及其定义要清楚
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"CSV_Data": {
"inputs": {
"variables": [
{
"name": "random_data_csv",
"type": "String",
"value": "@{body('Parse_JSON')?['data']?['name']},@{body('Parse_JSON')?['data']?['awesome']}"
}
]
},
"runAfter": {
"Parse_JSON": [
"Succeeded"
]
},
"type": "InitializeVariable"
},
"Parse_JSON": {
"inputs": {
"content": "@json(xml(variables('random_data_xml')))",
"schema": {
"properties": {
"data": {
"properties": {
"awesome": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
}
},
"runAfter": {
"XML_Data": [
"Succeeded"
]
},
"type": "ParseJson"
},
"XML_Data": {
"inputs": {
"variables": [
{
"name": "random_data_xml",
"type": "String",
"value": "<data>\n<name>Azure Logic Apps</name>\n<awesome>true</awesome>\n</data>"
}
]
},
"runAfter": {},
"type": "InitializeVariable"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
}
}