--- alias: user-guide-automation-task-core-getconfigurations tags: - automation tasks description: "This task retrieves configuration entry values, utilizing configurable settings and dynamic path replacements" --- # Get Configurations :iot-configuration-lg:{style="font-size:100px"} The `Get Configurations` Task allows retrieving configuration entries values. ![getconfigurations_parameters][getconfigurations_parameters] ## Details | Fields | Details | | ----------------- | ---------------------------------------------------------------------------------- | | Scope | Connect IoT
Data Platform
Enterprise Integration
Factory Automation | | Workflow | Data flow
Control flow | | `IsProtocol` flag | :material-close:{style="color:#EF5350"} | ## Inputs | Name | Data Type | Description | |----------|-----------|--------------------| | Activate | `any` | Activates the task | ## Outputs | Name | Data Type | Description | |---------|-----------|--------------------------------------------------| | Success | `Boolean` | Triggered when the task is executed with success | | Error | `Error` | Triggered when the task failed for some reason | ## Settings On the `General` Tab, there are the following settings: | Name | Data Type | Default | Description | |----------------------------------|-----------|-------|--------------------------------------------------------------------------------------------------| | Rule for Secure Strings | **Rule** | | Selected rule for decrypting SecureString Configs | | Number of Retries | `Integer` | 30 | Number of retries until a good answer is received from System | | Sleep Time Between Retries: (ms) | `Integer` | 1000 | Number of milliseconds to wait between retries. It only applies when the previous call fails. | | Reset inputs on activate | `Boolean` | `true` | Resets the inputs after being triggered | {% include-markdown 'includes/pages/iot_tasks_retries_settings.md' %} ![Get Configurations task settings](../images/get_configurations_settings.png) ## Behavior Set an output for each configuration entry to retrieve using the field fullPath to reference it. It is possible to define tokens in the path to be replaced by input values. The name of the input should match the name of the token. As an example: * fullPath: `/Cmf/System/Configuration/FactoryAutomation/OIB/${line}/LinesToHandle` !!! note An input with name "line" would replace the token `${line}` in the path before retrieving the config. !!! note For deciphering configs of type SecureString it's necessary to provide a Rule/DeeAction. You can see an example of one such DEE below: ```csharp UseReference("System.Data.dll", "System.Data"); UseReference("%MicrosoftNetPath%System.Xml.dll", ""); UseReference("", "System.Threading"); UseReference("", "Cmf.Foundation.Common"); UseReference("Cmf.Navigo.BusinessObjects.dll", "Cmf.Navigo.BusinessObjects"); var output = new Dictionary(); foreach (var (configName, configObject) in Input) { if (configObject is IConfig config && config.ValueType == "System.Security.SecureString") { var decryptedValue = config.GetDecryptedConfigValue(); output.Add(configName, decryptedValue); } } return output; ``` [getconfigurations_parameters]: ../images/getconfigurations_parameters.png