# Taking advantage of Orchestration Extra Parameters

**URL:** <https://community.criticalmanufacturing.com/t/taking-advantage-of-orchestration-extra-parameters/725>\
**Category:** Blog\
**Created:** [June 26, 2024, 12:00am UTC](https://community.criticalmanufacturing.com/t/taking-advantage-of-orchestration-extra-parameters/725 "2024-06-26T00:00:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cesar\_Meira](https://avatars.discourse-cdn.com/v4/letter/c/54ee81/32.png) [@Cesar\_Meira](https://community.criticalmanufacturing.com/u/Cesar_Meira)\
**Post date:** [June 26, 2024, 12:00am UTC](https://community.criticalmanufacturing.com/t/taking-advantage-of-orchestration-extra-parameters/725/1 "2024-06-26T00:00:00Z")

</div>

We are going to do a walkthrough on how to take advantage of the Orchestration Extra Parameters, to avoid creating customized orchestrations to perform out-of-the-box actions. This is not focused on any specific process, but rather it focuses on showing how to build the blocks.

## Overview and Motivation

Some out-of-the-box orchestrations require complex objects and structures that are not easy to be built in Low Code implementations, e.g. UI Pages, IoT workflows. Which forced us to build customized orchestrations that receive simple inputs, and invoked OOTB orchestrations.

In recent MES versions, all MES Orchestrations have a new property called `ExtraParameters` of type `Dictionary` this allows the projects to re-use the OOTB Orchestrations, and have custom logic based on those extra parameters by having before (Pre) or after (Post) DEE’s on the MES Orchestration.

## Examples

### UI Page example

 ![UI Page example](https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/6fcd3d0873aca5e46b0b6d72f94028ed3a3c6fff.png)

In this example, the UI Page Step provides to the user a form to input some information as `Name`, `Description`, `Type` and provides that information as `ExtraParameters` to the service _(in this case CreateFacility)_. A DEE Action can be created to be triggered on the `Pre` action group of the service, that would be responsible for reading the `ExtraParameters` and defining the required properties of the `Input` of the service _(in this case, the Facility instance)_.

#### Building the ExtraParameters

By using the converter `setMapValue` it is possible to set any `key` into a `Dictionary`, this converter can be used multiple times to the same `Dictionary`. The converter requires a parameter, that must be defined as a property in the page.

### IoT Workflow

 ![IoT Workflow example](https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/2c1bed3d3e19a72d51d80e471c3f2a8bf111746c.png)

In this example, an IoT command is expected to perform a Track-In of the Material, but from the command response it is not possible to identify the MES Material, as only the Batch is provided. So, it is possible to provide the Batch as `ExtraParameters`, and retrieve the Material within a DEE in the `Pre` of the `TrackIn` service.

#### Building the ExtraParameters

In this example, the `Code` task is used to build a `Dictionary` with the required information to be provided to the `ExtraParameters` service.

* * *

## Author

### Hello, my name is César Meira 👋

I’ve been working for some years at Critical Manufacturing. I am working in Deployment Services for M1 Team. You can check me at [LinkedIn](https://www.linkedin.com/in/cesarmeira/)

![César Meira](https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/5c070fa7736c56b1a86705ac9b073ae7982bcdd1.jpeg "M1 Tech Architect")
_M1 Tech Architect_

* * *
This is a companion discussion topic for the original entry at [https://devblog.criticalmanufacturing.com/blog/20240626\_ui\_taking\_advantage\_of\_extra\_parameters/](https://devblog.criticalmanufacturing.com/blog/20240626_ui_taking_advantage_of_extra_parameters/)
