Wie ist es möglich?
Zuerst einmal ist das nicht per Designer möglich, sondern nur per CodeView, da der Designer das nicht unterstützt.
Wir starten mit einem HTTP-Trigger.
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {}
}
Laut Dokumentation (1) sind bis zu 10 Trigger möglich, also fügen wir per CodeView einen Recurrence-Trigger hinzu.
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"Recurrence": {
"recurrence": {
"frequency": "Minute",
"interval": 1
},
"type": "Recurrence"
},
"manual": {
"inputs": {},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {}
}
Zum anderen braucht man zusätzliche Logik, wenn man auf den Input der Trigger angewiesen ist.
Wie kann man das besser lösen?
Meine präferierte Lösung in dem Fall ist bisher einfach eine LogicApp mit der Businesslogik und jeweils eine weitere LogicApp pro Triggertyp. In der Tigger LogicApp ruft man dann entweder direkt die Business-LogicApp auf oder indirekt unter Zuhilfenahme eines ServiceBuses, welches so fern möglich weitere Vorteile bietet.
Seit Single-Tenant (Standard) LogicApps ist der direkte LogicApp Aufruf auch viel Komfortabler geworden, wodurch wir nun auch manchmal dieses Feature einsetzen um Funktionalitäten wiederzuverwenden oder aber einfach das Verschachtelungtiefenlimit von 8 zu umgehen.
Links:
- Grenzwert- und Konfigurationsreferenz für Azure Logic Apps
https://docs.microsoft.com/de-de/azure/logic-apps/logic-apps-limits-and-config?tabs=azure-portal#workflow-definition-limits
Dieser quiTeq-Tipp kommt von QUIBIQ Berlin.