Azure 逻辑应用程序 HTTP 操作步骤 - 动态获取 endOfDate 日期
Azure Logic App HTTP Action step - dynamically get endOfDate date
我有一个定期调用 api 端点的 azure logic 应用程序,我在我的请求正文中传递了两个日期属性,其中包括一天的开始和一天的结束。
Logic 应用程序有表达式 startOfDay(),但它们没有 endOfDay(),我如何才能像 startOfDay() 那样以 UTC 格式动态获取一天的结束时间?
谢谢
这是我的请求正文的样子,但它也抱怨@startOfDay()
{
"organizationId": 'f41186b0-7f09-42c5-8a9d-81a2ad2b0e61',
"attemptedDeliveries": true,
"cancelDateStart": @{startOfDay()},
"cancelDateEnd": ""
}
没有 endOfDay 的直接表达式,但解决方法之一是从 startOfDay addToTime
和 'subtractFromTime' 获取 endOfDay。假设我将时间戳设为 UtcNow()
并使用以下表达式计算 endOfDay。
subtractFromTime(addToTime(outputs('startOfDay'),1,'Day','o'),1,'Second','yyyy-MM-ddTHH:mm:ss')
我正在使用 Parse Json 来检索内部 Json 详细信息以供将来使用。通过这样做,您可以使用 Compose()
连接器创建自定义 JSON。
结果:-
Codeview
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"Compose": {
"inputs": {
"attemptedDeliveries": "@body('Parse_JSON')?['attemptedDeliveries']",
"cancelDateEnd": "@{outputs('endOfDay')}",
"cancelDateStart": "@{outputs('startOfDay')}",
"organizationId": "@{body('Parse_JSON')?['organizationId']}"
},
"runAfter": {
"endOfDay": [
"Succeeded"
]
},
"type": "Compose"
},
"Parse_JSON": {
"inputs": {
"content": "@triggerBody()",
"schema": {
"properties": {
"attemptedDeliveries": {
"type": "boolean"
},
"cancelDateEnd": {
"type": "string"
},
"cancelDateStart": {
"type": "string"
},
"organizationId": {
"type": "string"
}
},
"type": "object"
}
},
"runAfter": {},
"type": "ParseJson"
},
"endOfDay": {
"inputs": "@subtractFromTime(addToTime(startOfDay(utcNow()),1,'Day','o'),1,'Second','yyyy-MM-ddTHH:mm:ss')",
"runAfter": {
"startOfDay": [
"Succeeded"
]
},
"type": "Compose"
},
"startOfDay": {
"inputs": "@startOfDay(utcNow(),'yyyy-MM-ddTHH:mm:ss')",
"runAfter": {
"Parse_JSON": [
"Succeeded"
]
},
"type": "Compose"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {}
}
这是我从我的 Http 触发器主体接收到的 json
{
"organizationId": "f41186b0-7f09-42c5-8a9d-81a2ad2b0e61",
"attemptedDeliveries": true,
"cancelDateStart": "",
"cancelDateEnd": ""
}
更新答案
在这里跟进之后我的逻辑应用程序
结果:
Codeview
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"endOfDay": {
"inputs": "@subtractFromTime(addToTime(startOfDay(utcNow()),1,'Day','o'),1,'Second','yyyy-MM-ddTHH:mm:ss')",
"runAfter": {
"startOfDay": [
"Succeeded"
]
},
"type": "Compose"
},
"startOfDay": {
"inputs": "@startOfDay(utcNow(),'yyyy-MM-ddTHH:mm:ss')",
"runAfter": {},
"type": "Compose"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"Recurrence": {
"evaluatedRecurrence": {
"frequency": "Second",
"interval": 30
},
"recurrence": {
"frequency": "Second",
"interval": 30
},
"type": "Recurrence"
}
}
},
"parameters": {}
}
在 endOfDay 连接器之后,您可以添加 4 个并行 HTTP 触发器并向其添加逻辑。
参考资料: Reference guide to workflow expression functions in Azure Logic Apps and Power Automate
我有一个定期调用 api 端点的 azure logic 应用程序,我在我的请求正文中传递了两个日期属性,其中包括一天的开始和一天的结束。
Logic 应用程序有表达式 startOfDay(),但它们没有 endOfDay(),我如何才能像 startOfDay() 那样以 UTC 格式动态获取一天的结束时间? 谢谢
这是我的请求正文的样子,但它也抱怨@startOfDay()
{
"organizationId": 'f41186b0-7f09-42c5-8a9d-81a2ad2b0e61',
"attemptedDeliveries": true,
"cancelDateStart": @{startOfDay()},
"cancelDateEnd": ""
}
没有 endOfDay 的直接表达式,但解决方法之一是从 startOfDay addToTime
和 'subtractFromTime' 获取 endOfDay。假设我将时间戳设为 UtcNow()
并使用以下表达式计算 endOfDay。
subtractFromTime(addToTime(outputs('startOfDay'),1,'Day','o'),1,'Second','yyyy-MM-ddTHH:mm:ss')
我正在使用 Parse Json 来检索内部 Json 详细信息以供将来使用。通过这样做,您可以使用 Compose()
连接器创建自定义 JSON。
结果:-
Codeview
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"Compose": {
"inputs": {
"attemptedDeliveries": "@body('Parse_JSON')?['attemptedDeliveries']",
"cancelDateEnd": "@{outputs('endOfDay')}",
"cancelDateStart": "@{outputs('startOfDay')}",
"organizationId": "@{body('Parse_JSON')?['organizationId']}"
},
"runAfter": {
"endOfDay": [
"Succeeded"
]
},
"type": "Compose"
},
"Parse_JSON": {
"inputs": {
"content": "@triggerBody()",
"schema": {
"properties": {
"attemptedDeliveries": {
"type": "boolean"
},
"cancelDateEnd": {
"type": "string"
},
"cancelDateStart": {
"type": "string"
},
"organizationId": {
"type": "string"
}
},
"type": "object"
}
},
"runAfter": {},
"type": "ParseJson"
},
"endOfDay": {
"inputs": "@subtractFromTime(addToTime(startOfDay(utcNow()),1,'Day','o'),1,'Second','yyyy-MM-ddTHH:mm:ss')",
"runAfter": {
"startOfDay": [
"Succeeded"
]
},
"type": "Compose"
},
"startOfDay": {
"inputs": "@startOfDay(utcNow(),'yyyy-MM-ddTHH:mm:ss')",
"runAfter": {
"Parse_JSON": [
"Succeeded"
]
},
"type": "Compose"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {}
}
这是我从我的 Http 触发器主体接收到的 json
{
"organizationId": "f41186b0-7f09-42c5-8a9d-81a2ad2b0e61",
"attemptedDeliveries": true,
"cancelDateStart": "",
"cancelDateEnd": ""
}
更新答案
在这里跟进之后我的逻辑应用程序
结果:
Codeview
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"endOfDay": {
"inputs": "@subtractFromTime(addToTime(startOfDay(utcNow()),1,'Day','o'),1,'Second','yyyy-MM-ddTHH:mm:ss')",
"runAfter": {
"startOfDay": [
"Succeeded"
]
},
"type": "Compose"
},
"startOfDay": {
"inputs": "@startOfDay(utcNow(),'yyyy-MM-ddTHH:mm:ss')",
"runAfter": {},
"type": "Compose"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"Recurrence": {
"evaluatedRecurrence": {
"frequency": "Second",
"interval": 30
},
"recurrence": {
"frequency": "Second",
"interval": 30
},
"type": "Recurrence"
}
}
},
"parameters": {}
}
在 endOfDay 连接器之后,您可以添加 4 个并行 HTTP 触发器并向其添加逻辑。
参考资料: Reference guide to workflow expression functions in Azure Logic Apps and Power Automate