Integrating Low-Code workflow in Coded automation
In this tutorial, you can learn how to incorporate a low-code workflow inside a coded automation. This example is similar to the Using Coded automation in Low-Code workflow tutorial, but the other way around. The tutorial shows how to invoke the ResetAssetValue.xaml low-code workflow into the CodedAutomationUsingWorkflow.cs coded automation.
The ResetAssetValue.xaml workflow performs the following steps:
-
Retrieves the current value of a specific asset from Orchestrator.
-
Compares the retrieved asset value with the input value provided as an argument.
-
If the previous asset value does not match the input value, it updates the asset value in Orchestrator.
-
Logs messages that indicate the status of the asset value, whether it was updated or remained unchanged.
-
Create a low-code workflow. For this example, name it
ResetAssetValue.noteLeave the value of all variables and arguments you create empty. These variables and arguments will be populated with data when you invoke the low-code workflow within a coded automation. You will pass the required values for these arguments when you invoke the workflow.
- Add a Get Asset activity, and save the name of the asset in a variable named
assetName. - Create arguments for the following values:
assetValue- the In/Out argument that you use to retrieve and update the value of the asset.assetName- the In argument that you use to input the name of the asset.assetValueWasChanged- the Out argument that you use to print in the console if the asset value remained the same or was changed.
- Create a variable to pass the previous value of the asset:
previousAssetValue. - Add an If activity to check if the previous asset value has changed. Set the Condition as
previousAssetValue.Equals(assetValue). - In the Else body, add a Set Asset activity, to update the asset in Orchestrator with the
assetValuethat is different from thepreviousAssetValue. - Add an Assign activity and update the previous asset value with the new one.
- Add a Get Asset activity, and save the name of the asset in a variable named
assetValue = previousAssetValue
7. Add another Assign activity to set the variable that lets you know if the asset value has changed to True.
assetValueWasChanged = True
2. Create a new coded workflow. For this example, name it CodedAutomationUsingWorkflow.
- Use the
RunWorkflowmethod to invoke theResetAssetValue.xamlworkflow. - Provide the necessary arguments as a
Dictionary<string, object>to specify theassetNameandassetValue.
For this example, we set MyAsset as the assetName and "hello world" as the assetValue.
3. Store the result of the RunWorkflow method in a variable named result.
var result = RunWorkflow("BusinessProcess\\ResetAssetValue.xaml", new Dictionary<string, object>() { {"assetName", "MyAsset"}, {"assetValue", "hello world"} });
4. Check if the assetValueWasChanged property in the dictionary is true or false.
1. If it's true, log a message that indicates the asset MyAsset was reset and include the previous value it had.
2. If it is false, log a message specifying that no reset was required on the asset MyAsset because it had the expected value.
if ((bool)result["assetValueWasChanged"]) { Log("Reset asset MyAsset, but it had a different value, previous value was " + result["assetValue"]); } else { Log("No reset was required on asset MyAsset, which had the expected value."); }