RRP
RRP

Reputation: 45

Run dynamic stored procedure from azure logic app

I want to run multiple stored procedures from logic app for Azure SQL database. I want names of the stored procedure to be calculated based on a variable name.

I have a variable with values (API_test1_SP1, API_test2_SP1, API_test3_SP1).

In a for loop, I want to run these stored procedures API_test1, API_test2 and API_test3.

I want to remove _SPI from the variable names and run the stored procedures (API_test1, API_test2, API_test3) for Azure SQL database.

I tried following expression without luck

@{concat(API_,slice(@{variables('variable_name')},1,lastIndexOf('_')))} 

Is it possible to run stored procedure like this in logic app?

Upvotes: 0

Views: 865

Answers (1)

SwethaKandikonda
SwethaKandikonda

Reputation: 8252

You can use the below expression to achieve your requirement.

first(split(variables('Array')?[iterationIndexes('Until')],'_SP1'))

To reproduce the issue, I have used the below flow in my logic app.

enter image description here enter image description here

RESULTS:

enter image description here

Below is the codeview of my logic app

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "Initialize_variable_-_array": {
                "inputs": {
                    "variables": [
                        {
                            "name": "Array",
                            "type": "array",
                            "value": [
                                "API_test1_SP1",
                                "API_test2_SP1",
                                "API_test3_SP1"
                            ]
                        }
                    ]
                },
                "runAfter": {},
                "type": "InitializeVariable"
            },
            "Initialize_variable_-_loop": {
                "inputs": {
                    "variables": [
                        {
                            "name": "loop",
                            "type": "integer",
                            "value": 0
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_variable_-_array": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Until": {
                "actions": {
                    "Compose": {
                        "inputs": "@first(split(variables('Array')?[iterationIndexes('Until')],'_SP1'))",
                        "runAfter": {},
                        "type": "Compose"
                    },
                    "Increment_variable": {
                        "inputs": {
                            "name": "loop",
                            "value": 1
                        },
                        "runAfter": {
                            "Compose": [
                                "Succeeded"
                            ]
                        },
                        "type": "IncrementVariable"
                    }
                },
                "expression": "@equals(variables('loop'), length(variables('Array')))",
                "limit": {
                    "count": 60,
                    "timeout": "PT1H"
                },
                "runAfter": {
                    "Initialize_variable_-_loop": [
                        "Succeeded"
                    ]
                },
                "type": "Until"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "manual": {
                "inputs": {
                    "schema": {}
                },
                "kind": "Http",
                "type": "Request"
            }
        }
    },
    "parameters": {}
}

Upvotes: 0

Related Questions