我有一个逻辑应用程序,只要在Salesforce CRM中创建记录就会触发,之后我会有SQL服务器插入操作,它会将salesforce CRM记录插入到azure SQL数据库中。
我的问题是,如果我的Azure SQL数据库已关闭或无法连接。失败的记录会发生什么?逻辑应用程序是否会重试再次插入失败的记录?
答案 0 :(得分:2)
默认不是。
但是您有Do-Until Loops,您可以在其中定义重复操作的条件。在您的情况下,您可以简单地评估SQL插入的结果。
我使用例如以下表达式来对REST API进行可靠的调用:
"GetBerlinDataReliable": {
"actions": {
"GetBerlinData": {
"inputs": {
"method": "GET",
"uri": "http://my.rest.api/path?query"
},
"runAfter": {},
"type": "Http"
}
},
"expression": "@and(equals(outputs('GetBerlinData').statusCode, 200),greaterOrEquals(body('GetBerlinData').query?.count, 1))",
"limit": {
"count": 100,
"timeout": "PT30M"
},
"runAfter": {},
"type": "Until"
},
答案 1 :(得分:2)
这取决于来自此API的HTTP代码是否可重试。如果是,我们将默认重试4次,间隔30秒(您也可以在给定动作的设置中更改)。如果不是,则不会重试。
有多种方法可以处理错误,具体取决于您希望错误发生的方式和方式:do-until如上所述是一种方式,或者您考虑尝试(插入)-catch(保存到blob)和有另一个Logic Apps来检查blob并重试插入。