Azure / LogicAppsUX

https://learn.microsoft.com/azure/logic-apps
MIT License
75 stars 81 forks source link

Unable to drag existing actions into do-untils or condition action. #2481

Closed john-long2 closed 1 year ago

john-long2 commented 1 year ago

Describe the Bug with repro steps

I have tried to move existing actions into a do-until the designer does not allow this. I had to recreate them within the the do-until.

I then added a condition action within the do until, I cannot add the actions into the condition.

This makes development very slow as we cannot build up the logic without recreating the actions which is tedious.

Screenshot 2023-05-22 223340

What type of Logic App Is this happening in?

Standard (Portal)

Are you using Preview Designer or GA Designer

Preview

Workflow JSON

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "Catch": {
                "actions": {
                    "Set_variable_HasApplicationRunSucceeded_False": {
                        "inputs": {
                            "name": "HasApplicationRunSucceeded",
                            "value": false
                        },
                        "type": "SetVariable"
                    }
                },
                "runAfter": {
                    "Try": [
                        "TIMEDOUT",
                        "SKIPPED",
                        "FAILED"
                    ]
                },
                "type": "Scope"
            },
            "FInally": {
                "actions": {
                    "Compose_Logs": {
                        "inputs": {
                            "Actions": "@body('Transform_Results')",
                            "ApplicationId": "@variables('ApplicationId')",
                            "ArtefactName": "@workflow().name",
                            "AzureArtefact": "@appsetting('WEBSITE_SITE_NAME')",
                            "AzureSubscriptionId": "@{parameters('AzureSubscriptionId')}",
                            "AzureSubscriptionName": "@{parameters('AzureSubscriptionName')}",
                            "BusinessKeys": "@variables('BusinessKeys')",
                            "DateTime": "@{utcNow('yyyy-MM-ddTHH:mm:ssZ')}",
                            "IntegrationId": "@{variables('IntegrationId')}",
                            "ResourceGroup": "@{parameters('ResourceGroup')}",
                            "TraceLogs": "@variables('TraceLogs')",
                            "TrackingId": "@variables('TrackingId')"
                        },
                        "runAfter": {
                            "Transform_Results": [
                                "Succeeded"
                            ]
                        },
                        "type": "Compose"
                    },
                    "For_each_Existing_Business_Key": {
                        "actions": {
                            "Append_to_array_variable_Business_Keys": {
                                "inputs": {
                                    "name": "BusinessKeys",
                                    "value": {
                                        "BusinessKeyName": "@items('For_each_Existing_Business_Key')['BusinessKeyName']",
                                        "BusinessKeyValue": "@items('For_each_Existing_Business_Key')['BusinessKeyValue']"
                                    }
                                },
                                "type": "AppendToArrayVariable"
                            }
                        },
                        "foreach": "@union(variables('BusinessKeys'),body('Parse_Existing_BusinessKeys'))",
                        "runAfter": {
                            "Parse_Existing_BusinessKeys": [
                                "Succeeded"
                            ]
                        },
                        "type": "Foreach"
                    },
                    "HasApplicationRunSucceeded": {
                        "actions": {
                            "Has_Any_Data_Processed": {
                                "actions": {},
                                "else": {
                                    "actions": {
                                        "Cancel_Run": {
                                            "inputs": {
                                                "runStatus": "Cancelled"
                                            },
                                            "type": "Terminate"
                                        }
                                    }
                                },
                                "expression": {
                                    "and": [
                                        {
                                            "equals": [
                                                "@variables('HasData')",
                                                true
                                            ]
                                        }
                                    ]
                                },
                                "type": "If"
                            }
                        },
                        "else": {
                            "actions": {
                                "Terminate": {
                                    "inputs": {
                                        "runStatus": "Failed"
                                    },
                                    "type": "Terminate"
                                }
                            }
                        },
                        "expression": {
                            "and": [
                                {
                                    "equals": [
                                        "@variables('HasApplicationRunSucceeded')",
                                        true
                                    ]
                                }
                            ]
                        },
                        "runAfter": {
                            "Uploads_a_Blob_to_Azure_Storage": [
                                "Succeeded"
                            ]
                        },
                        "type": "If"
                    },
                    "Parse_Existing_BusinessKeys": {
                        "inputs": {
                            "content": "@coalesce(triggerOutputs()?['headers']?['BusinessKeys'],variables('BusinessKeys'))",
                            "schema": {
                                "items": {
                                    "properties": {
                                        "BusinessKeyName": {
                                            "type": "string"
                                        },
                                        "BusinessKeyValue": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "BusinessKeyName",
                                        "BusinessKeyValue"
                                    ],
                                    "type": "object"
                                },
                                "type": "array"
                            }
                        },
                        "type": "ParseJson"
                    },
                    "Transform_Results": {
                        "inputs": {
                            "content": "@union(result('Try'),result('Catch'))",
                            "map": {
                                "name": "filterlogs.liquid",
                                "source": "LogicApp"
                            }
                        },
                        "kind": "JsonToJson",
                        "runAfter": {
                            "For_each_Existing_Business_Key": [
                                "Succeeded"
                            ]
                        },
                        "type": "Liquid"
                    },
                    "Uploads_a_Blob_to_Azure_Storage": {
                        "inputs": {
                            "parameters": {
                                "blobName": "@{variables('IntegrationId')}/@{variables('TrackingId')}/@{variables('ApplicationId')}",
                                "containerName": "logging",
                                "content": "@outputs('Compose_Logs')"
                            },
                            "serviceProviderConfiguration": {
                                "connectionName": "AzureBlob",
                                "operationId": "uploadBlob",
                                "serviceProviderId": "/serviceProviders/AzureBlob"
                            }
                        },
                        "runAfter": {
                            "Compose_Logs": [
                                "Succeeded"
                            ]
                        },
                        "type": "ServiceProvider"
                    }
                },
                "runAfter": {
                    "Catch": [
                        "Succeeded",
                        "TIMEDOUT",
                        "SKIPPED",
                        "FAILED"
                    ]
                },
                "type": "Scope"
            },
            "Initialize_ApplicationId": {
                "inputs": {
                    "variables": [
                        {
                            "name": "ApplicationId",
                            "type": "string",
                            "value": "@{workflow()['run']['name']}"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_TraceLogs": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_Blob_Path": {
                "inputs": {
                    "variables": [
                        {
                            "name": "BlobPath",
                            "type": "string"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_ApplicationId": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_BusinessKeys": {
                "inputs": {
                    "variables": [
                        {
                            "name": "BusinessKeys",
                            "type": "array",
                            "value": []
                        }
                    ]
                },
                "runAfter": {
                    "Initialize__IntegrationId": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_DataFound": {
                "inputs": {
                    "variables": [
                        {
                            "name": "DataFound",
                            "type": "integer",
                            "value": 0
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_RetryNumber": [
                        "SUCCEEDED"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_HasApplicationRunSucceeded": {
                "inputs": {
                    "variables": [
                        {
                            "name": "HasApplicationRunSucceeded",
                            "type": "boolean",
                            "value": true
                        }
                    ]
                },
                "runAfter": {},
                "type": "InitializeVariable"
            },
            "Initialize_HasData": {
                "inputs": {
                    "variables": [
                        {
                            "name": "HasData",
                            "type": "boolean",
                            "value": true
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_HasApplicationRunSucceeded": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_RetryCount": {
                "description": "This needs to be used along side RetryIntervalMins to try and find the file for 1 hour",
                "inputs": {
                    "variables": [
                        {
                            "name": "RetryCount",
                            "type": "integer",
                            "value": 0
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_RetryIntervalMins": [
                        "SUCCEEDED"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_RetryIntervalMins": {
                "description": "This needs to be used along side RetryCount to try and find the file for 1 hour",
                "inputs": {
                    "variables": [
                        {
                            "name": "Initialize RetryIntervalMins",
                            "type": "integer",
                            "value": 5
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_Blob_Path": [
                        "SUCCEEDED"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_RetryNumber": {
                "inputs": {
                    "variables": [
                        {
                            "name": "RetryNumber",
                            "type": "integer",
                            "value": 19
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_RetryCount": [
                        "SUCCEEDED"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_TraceLogs": {
                "inputs": {
                    "variables": [
                        {
                            "name": "TraceLogs",
                            "type": "array",
                            "value": []
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_BusinessKeys": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_TrackingId": {
                "inputs": {
                    "variables": [
                        {
                            "name": "TrackingId",
                            "type": "string",
                            "value": "@{workflow()['run']['name']}"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_HasData": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize__IntegrationId": {
                "inputs": {
                    "variables": [
                        {
                            "name": "IntegrationId",
                            "type": "string",
                            "value": "INT000"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_TrackingId": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Try": {
                "actions": {
                    "Until_Data_Found": {
                        "actions": {
                            "Condition": {
                                "actions": {},
                                "else": {
                                    "actions": {}
                                },
                                "expression": {
                                    "and": [
                                        {
                                            "equals": [
                                                1,
                                                1
                                            ]
                                        }
                                    ]
                                },
                                "type": "If"
                            },
                            "Message": {
                                "inputs": {
                                    "a": "b"
                                },
                                "runAfter": {
                                    "Condition": [
                                        "SUCCEEDED"
                                    ]
                                },
                                "type": "Compose"
                            },
                            "Send_blob_metadata_topic_to_trigger_orchestrator_workflow": {
                                "inputs": {
                                    "parameters": {
                                        "entityName": "selenity-files-topic",
                                        "message": {
                                            "contentData": {
                                                "Container": "selenity",
                                                "Path": "@{variables('BlobPath')}"
                                            },
                                            "userProperties": {
                                                "IntegrationId": "@{variables('IntegrationId')}",
                                                "MsgType": "approved-expenses",
                                                "TrackingId": "@{variables('TrackingId')}"
                                            }
                                        }
                                    },
                                    "serviceProviderConfiguration": {
                                        "connectionName": "serviceBus",
                                        "operationId": "sendMessage",
                                        "serviceProviderId": "/serviceProviders/serviceBus"
                                    }
                                },
                                "runAfter": {
                                    "Upload_blob_to_storage_container": [
                                        "SUCCEEDED"
                                    ]
                                },
                                "type": "ServiceProvider"
                            },
                            "Set_DataFound": {
                                "inputs": {
                                    "name": "DataFound",
                                    "value": 1
                                },
                                "runAfter": {
                                    "Send_blob_metadata_topic_to_trigger_orchestrator_workflow": [
                                        "SUCCEEDED"
                                    ]
                                },
                                "type": "SetVariable"
                            },
                            "Set_variable_BlobPath": {
                                "inputs": {
                                    "name": "BlobPath",
                                    "value": "inbound/approved-expenses/@{variables('TrackingId')}/approved-expenses-@{formatDateTime(utcNow(), 'yyyyMMddHHmmss')}.csv"
                                },
                                "runAfter": {
                                    "Message": [
                                        "SUCCEEDED"
                                    ]
                                },
                                "type": "SetVariable"
                            },
                            "Upload_blob_to_storage_container": {
                                "inputs": {
                                    "parameters": {
                                        "blobName": "@variables('BlobPath')",
                                        "containerName": "selenity",
                                        "content": "@outputs('Message')"
                                    },
                                    "serviceProviderConfiguration": {
                                        "connectionName": "AzureBlob",
                                        "operationId": "uploadBlob",
                                        "serviceProviderId": "/serviceProviders/AzureBlob"
                                    }
                                },
                                "runAfter": {
                                    "Set_variable_BlobPath": [
                                        "SUCCEEDED"
                                    ]
                                },
                                "type": "ServiceProvider"
                            }
                        },
                        "expression": "@equals(variables('DataFound'),variables('DataFound'))",
                        "limit": {
                            "count": 60,
                            "timeout": "PT1H"
                        },
                        "type": "Until"
                    }
                },
                "runAfter": {
                    "Initialize_DataFound": [
                        "SUCCEEDED"
                    ]
                },
                "type": "Scope"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "triggers": {
            "Recurrence": {
                "recurrence": {
                    "frequency": "Day",
                    "interval": 1,
                    "schedule": {
                        "hours": [
                            "1"
                        ],
                        "minutes": [
                            30
                        ]
                    },
                    "timeZone": "GMT Standard Time"
                },
                "type": "Recurrence"
            }
        }
    },
    "kind": "Stateful"
}

Screenshots or Videos

No response

Browser

Edge

Additional context

No response

hartra344 commented 1 year ago

This is a known issue here #2481 . Thanks for reporting, we should have a fix out very soon.