{ "name": "ProcoreWebhook_Process_ChangeOrderRequest_Update", "properties": { "activities": [ { "name": "ForEach Prime Contract", "type": "ForEach", "dependsOn": [], "userProperties": [], "typeProperties": { "items": { "value": "@pipeline().parameters.contractIds", "type": "Expression" }, "isSequential": true, "activities": [ { "name": "Get ChangeOrderRequest", "type": "WebActivity", "dependsOn": [ { "activity": "Get Access Token", "dependencyConditions": [ "Succeeded" ] } ], "policy": { "timeout": "0.01:10:00", "retry": 2, "retryIntervalInSeconds": 40, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "method": "GET", "headers": { "Authorization": { "value": "@concat('Bearer ', activity('Get Access Token').output.value)", "type": "Expression" }, "Procore-Company-Id": "4128" }, "url": { "value": "@concat(pipeline().parameters.procoreBaseUrl,'/rest/v1.0/change_order_requests/',pipeline().parameters.changeOrderRequestId,'?project_id=',pipeline().parameters.projectId,'&contract_id=',item()['id'])", "type": "Expression" } } }, { "name": "Set exit message", "type": "SetVariable", "dependsOn": [ { "activity": "Get ChangeOrderRequest", "dependencyConditions": [ "Failed" ] } ], "policy": { "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "variableName": "ExitMessage", "value": { "value": "@activity('Get ChangeOrderRequest').output.message", "type": "Expression" } } }, { "name": "Execute Webhooks Process Exit Message", "type": "ExecutePipeline", "dependsOn": [ { "activity": "Set exit message", "dependencyConditions": [ "Succeeded" ] } ], "policy": { "secureInput": false }, "userProperties": [], "typeProperties": { "pipeline": { "referenceName": "ProcoreWebhook_Process_ExitMessage", "type": "PipelineReference" }, "waitOnCompletion": true, "parameters": { "ExitMessage": { "value": "@variables('exitMessage')", "type": "Expression" }, "ResourceName": "Change Order Request", "ResourceId": { "value": "@pipeline().parameters.changeOrderRequestId", "type": "Expression" } } } }, { "name": "Get Access Token", "type": "WebActivity", "dependsOn": [], "policy": { "timeout": "7.00:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "method": "GET", "url": { "value": "@pipeline().parameters.vaultSecretUrl", "type": "Expression" }, "authentication": { "type": "MSI", "resource": "https://vault.azure.net" } } }, { "name": "If not deleted", "type": "IfCondition", "dependsOn": [ { "activity": "Set exit message", "dependencyConditions": [ "Skipped" ] } ], "userProperties": [], "typeProperties": { "expression": { "value": "@not(contains(activity('Get ChangeOrderRequest').output,'deleted_at'))", "type": "Expression" }, "ifFalseActivities": [ { "name": "Set IsProcessed Delete", "type": "SqlServerStoredProcedure", "dependsOn": [], "policy": { "timeout": "0.01:10:00", "retry": 1, "retryIntervalInSeconds": 40, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "storedProcedureName": "[procore].[sp_WebhookDelivery_IsProcessed_Update]", "storedProcedureParameters": { "id": { "value": { "value": "@pipeline().parameters.event_delivery_id", "type": "Expression" }, "type": "Int64" }, "isProcessed": { "value": "true", "type": "Boolean" } } }, "linkedServiceName": { "referenceName": "AzureSqlDatabase1", "type": "LinkedServiceReference" } } ], "ifTrueActivities": [ { "name": "Stored procedure Webhook ChangeOrderRequest", "type": "SqlServerStoredProcedure", "dependsOn": [], "policy": { "timeout": "0.01:10:00", "retry": 0, "retryIntervalInSeconds": 50, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "storedProcedureName": "[procore].[usp_Webhooks_Upsert_ChangeOrderRequests]", "storedProcedureParameters": { "json": { "value": { "value": "@string(concat('[',string(activity('Get ChangeOrderRequest').output),']'))", "type": "Expression" }, "type": "String" } } }, "linkedServiceName": { "referenceName": "AzureSqlDatabase1", "type": "LinkedServiceReference" } }, { "name": "Stored procedure EDW_Procore_PrimeContracts", "type": "SqlServerStoredProcedure", "dependsOn": [ { "activity": "Stored procedure Webhook ChangeOrderRequest", "dependencyConditions": [ "Succeeded" ] } ], "policy": { "timeout": "0.12:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "storedProcedureName": "[edw].[usp_EDW_Procore_PrimeContracts_Upsert]", "storedProcedureParameters": { "primecontractid": { "value": { "value": "@item()['id']", "type": "Expression" }, "type": "Int32" }, "projectid": { "value": { "value": "@pipeline().parameters.projectId", "type": "Expression" }, "type": "Int32" } } }, "linkedServiceName": { "referenceName": "AzureSqlDatabase1", "type": "LinkedServiceReference" } }, { "name": "Set IsProcessed", "type": "SqlServerStoredProcedure", "dependsOn": [ { "activity": "Stored procedure EDW_Procore_PrimeContracts", "dependencyConditions": [ "Succeeded" ] }, { "activity": "Stored procedure EDW Procore ChangeOrders Upsert", "dependencyConditions": [ "Succeeded" ] } ], "policy": { "timeout": "0.01:10:00", "retry": 1, "retryIntervalInSeconds": 40, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "storedProcedureName": "[procore].[sp_WebhookDelivery_IsProcessed_Update]", "storedProcedureParameters": { "id": { "value": { "value": "@pipeline().parameters.event_delivery_id", "type": "Expression" }, "type": "Int64" }, "isProcessed": { "value": "true", "type": "Boolean" } } }, "linkedServiceName": { "referenceName": "AzureSqlDatabase1", "type": "LinkedServiceReference" } }, { "name": "Stored procedure EDW Procore ChangeOrders Upsert", "type": "SqlServerStoredProcedure", "dependsOn": [ { "activity": "Stored procedure Webhook ChangeOrderRequest", "dependencyConditions": [ "Succeeded" ] } ], "policy": { "timeout": "0.12:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "storedProcedureName": "[edw].[usp_EDW_Procore_ChangeOrders_Upsert]" }, "linkedServiceName": { "referenceName": "AzureSqlDatabase1", "type": "LinkedServiceReference" } } ] } } ] } } ], "parameters": { "procoreBaseUrl": { "type": "string" }, "eventType": { "type": "string" }, "changeOrderRequestId": { "type": "string" }, "projectId": { "type": "string" }, "event_delivery_id": { "type": "string" }, "vaultSecretUrl": { "type": "string" }, "contractIds": { "type": "array" } }, "variables": { "ExitMessage": { "type": "String" }, "PrimeContracts": { "type": "Array" } }, "folder": { "name": "Procore Webhooks" }, "annotations": [] } }