--- alias: user-guide-uipages-converters description: "UI Page Converters transform data between UI widgets, offering flexible value handling and conversion options" --- # UI Page Converters A converter provides an effective way of transforming available fields on a UI Page widget into other types of values or value structures through the use of variable Links in UI Pages. Converters allow you to retrieve a value that is available in the system and adapting it to a data structure that can be delivered to another widget for display or as an input for another operation you want to perform. In order to allow extra flexibility, a converter may additionally receive a parameter that can further help expand the conversion. This means that when you define a link with a converter, the value that the output variable will receive is returned by the converter. ## Adding Converters You can add one or more converters to a link through either the Links tab of a UI Page widget or the Links Diagram. ### Links tab 1. Select the Settings button. ![Screenshot showing the Entity List in the Links tab, with a filename hint indicating "converters settings".](images/converters_settings.png) 2. Navigate to the Links tab of the widget. ![Screenshot showing the Links tab of a widget with various settings and options.](images/converters_links_tab.png) 3. Select the :material-plus: button, choose Link, and add a link between two widgets. ![Screenshot showing the Links tab with SEO settings.](images/converters_add_links_tab.png) 4. Select the :material-plus: button again and choose Converter. ![Screenshot showing a UI with an "Add Converters" tab, likely related to adding conversion functionality.](images/converters_add_converters_tab.png) ### Links Diagram 1. Navigate to the Links Diagram. ![Diagram showing a Links Diagram with corner terms labeled as "=".](images/converters_links_diagram.png) 2. Connect both widgets. ![Screenshot showing a diagram illustrating how to connect two widgets in a Links Diagram.](images/converters_connect_widgets_links_diagram.png) 3. Select the :material-plus: button to add one or more converters. ![Screenshot showing a diagram illustrating the addition of multiple converters in a Links Diagram.](images/converters_add_multiple_converters_links_diagram.png) 4. Hover over the converter icon in the Links Diagram to view the converters already configured. ![Screenshot showing a Links Diagram with hover-over converter icon and configured converters listed.](images/converters_multiple_converters_view.png) ## Available Converters The converters are categorized to help you find the right one for your needs. Categories include Transformation, Object Handling, Logical, Entity, Material, Resource, Production Order, Protocol, Employee, and Area. Each table below provides a list of available converters, along with descriptions to assist in selecting the appropriate converter for your scenario ### Transformation |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Any To Any Property | Generic | Returns a value from an object based on a property path. | | Any To Empty Array | Generic | Returns an empty array, which can be useful for clearing inputs when necessary. | | Any To Null | Generic | Returns null to reset other inputs when it receives a value. | | Any To Object Array | Generic | Returns an array containing a single element: the provided object. | | Any To String Property | Generic | Converts an object property to a string based on a property path. | | Deep Clone On Success | Generic | Emits a new copy of an entity (input by parameter) when a transaction is completed. | | Null Or | Generic | This converter is used in the OEE, Process KPI and Resource KPI UI Pages. Returns the value if it is not null; otherwise, performs an OR operation.| | Null To Empty String | Generic | Returns an empty string if the object is null; otherwise, returns the object. | | Null When Params Null | Generic | This converter is used in the OEE, Process KPI and Resource KPI UI Pages. Returns null if the input parameter is null, forcing a data source query refresh.| | Param To Output | Generic | Emits a new copy of an argument (input by parameter) when a transaction is completed.| | Selected Items To Text | Generic | Given an array, it returns a string indicating the number of selected items based on the array's length. If the array is empty or null, it will display an empty string unless a converter parameter is provided, in which case it returns the parameter's content. | | String To Boolean | Generic | Converts a string into a boolean. Returns `false` if the string doesn't represent a valid boolean value. | | String To Integer | Generic | Converts a string into an integer. Returns `NaN` if the string doesn't represent a valid integer. | Table: Transformation Converters ### Object Handling |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Array Length | Generic | Returns a length of an array. | | Filter Value | Generic | Retrieves a value based on a filter collection and property name. | | Map To Array | Generic | Converts all elements of a map into an array. | | Map Value Of Array | Generic | Given a map sets the given key with the value given. | | NgpDataSet To Object Array | Generic | Given an `NgpDataSet` returns an array of objects. | | Set In Array | Generic | Sets a value in an array. As an optional key, the array index (parsable to integer) may be provided. If not, the value is pushed to the end of the array. | | Set In FIFO | Generic | Sets a value in a FIFO with a maximum size of elements. | | Set Map Value | Generic | Given a map sets the given key with the value given. | | Set Property Of | Generic | Given an object sets the given path value as object on the target. | | Sort | Generic | Sorts an array based on specified attributes and order. Important note for the arguments: The argument is a string that will say which attribute will be used to filter and it's sort type separated by `,`. Example: `name:ASC,id:desc` the argument will sort the array firstly by name in ascendent order and then by id in descendent order. | Table: Object Handling Converters ### Logical |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Is Defined | Generic | Checks if the input value is defined. | | Is Equal | Generic | Checks if the value and the supplied parameter are strictly equal. | | Is False | Generic | Checks if the input value is false. | | Is Not Defined | Generic | Checks if the input value is defined. | | Is Not Null | Generic | Checks if the object is null; if not, returns `true`. | | Is Null Or Empty | Generic | Checks if a list is null or empty and returns a boolean according to the result. | | Is Positive | Generic | Checks if the input value is a number and if its value is positive. | | Is True | Generic | Checks if the input value is `true` or not. | | NAND | Generic | Outputs `false` only if all inputs are `true`. | | Set If All Properties Are Equal | Generic | Checks if all properties are equal and if they are, returns their value. | Table: Logical Converters ### Entity |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Entity Additional Info | Generic | Creates additional information for an entity based on the returned badges of the `entityTileCreator` function of entities. Used in the UI page header. | | Entity Name | Generic | Builds a name for entities based in their current state. | | Entity Subtitle | Generic | Builds a subtitle for entities based in their current state. | | Evaluate Workflow | ChangeSet | Evaluates if the **ChangeSet** has a workflow and if its current state is final (`true`) or not (`false`). | | Filter Change Sets | ChangeSet | Filters the **ChangeSets**. | | Filter Collection Search Term | ChangeSet | Converts the filter collection to a search term (string). | | Filters To Remove From Non Scheduling | Generic | Removes filters from the filter bar when the input is `Scheduling`. | | Filters To Remove From Non Scheduling Step | Generic | Removes filters from the filter bar when the input is `false`. | | Instance To Entity Type Name | Generic | Converts an entity to its Entity Type Name as a string. | | Load Entities | Generic | Loads all entities of an array by its Id. (Parameter: levels to load). | | Load Entity | Generic | Loads a given entity by its Id. (Parameter: levels to load). | | Load Entity Attributes | Generic | Loads a given entity attributes and custom properties. | | Load Entity For Entity UI Page | Generic | Loads a given entity by its id given the passed **UIPage** entity type. (Parameter: levels to load).| | Load Object By Name | Generic | Loads a given entity by its name. Parameter: levels to load (default is 0). | | MaintenanceActivity To RequestMaintenanceActivityOrderInput | Maintenance | Converts an array of **Maintenance Activities** in to an array of `RequestMaintenanceActivityOrderInput`. | | Query To Object Array | Generic | Given a query object returns an array of objects, based on the output of the query. | | Relation To Entity | Generic | Extracts the source or target of a given relation. Works with collections as well. | | Set Entity Name | Generic | Given an `Entity Name`, get the respective translation. | Table: Entity Converters ### Material |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Format Recipe Parameters | Material | Converts recipe parameters values according to the service `FormatParameterValue`. | | Get Split GUIElementDefaultValue| Material | Used for **Material** Split operation. Get a default value from the [[operation-guide-guidefaultvalues]] generic table. The `value` holds the data of the generic table, the `args[0]` is the key to get the default value. Example: `copyFutureHolds = true` will force the value in the GUI to be true.| | Material Hold Reason Column View Name | Material | According to any given **Material** Hold Reason, this converter will find the name, description of the **Reason** and a special field to show the desired information to be displayed on the column view widget. | | Material Hold Reason Role Disable | Material | According to any given **Material** Hold Reason, this converter will return a boolean to set if the role reason field is disabled or not.| | Material Hold Reasons Merge | Material | According to any given **Material** Hold Reason, this converter will show the appropriated icon according to the Release Code and Release Role definition on the column view widget.| | Material Hold Reason Value | Material | According to any given **Material** Hold Reason, this converter will show the appropriated icon according to the Release Code and Release Role definition on the column view widget.| | Material Merge Duplicate | Material | Used for **Material** Merge operation. Duplicates a material object given a material list (array). | | Material Merge FabExplorer Duplicate | Material | Used for **Material** Merge operation. Duplicates a material object given a material list (array) within the context of the [[fab-explorer-index]].| | Material Merge FabExplorer Final Quantity | Material | Mainly used within the `Final Quantity` field of the filter widget for the Merge Wizard within the context of the [[fab-explorer-index]].| | Material Merge FabExplorer Has Submaterial | Material | Checks if the **Material** has Submaterials. | | Material Merge Final Quantity | Material | Converts the final quantity of materials selection (Merge **Material** wizard). | | Material Merge Has Container | Material | Checks if the **Material** is associated to a **Container**. | | Material Merge Has Submaterial | Material | Checks if **Material** has Submaterials. | | Material Merge Header Instance | Material | Mainly used within the "MaterialsMerge" ([fabExplorer](../../manufacturing/fabexplorer.md)/). | | Material Merge Input | Material | Converts the **Materials** for merge an specific data set (`MergeInput`). | | Material Merge Title | Material | Gets title description. | | Material Record Loss | Material | Prepare data for the Record Loss operation. It uses a map with the **Material** and Loss Bonus Affected Quantity Collection.| | Material Record Loss Bonus Step Valid | Material | Verify if the given **Step** is valid for the record loss bonus operation. The **Step** must have **Step** **Reasons** of type `Loss` applicable to record loss and/or **Reasons** of type bonus to be valid.| | Material Record Loss Set Step If Not | Material | Set **Step** in **Material** if a condition is met. | | Material Split Footer | Material | Used on the Split **Material** wizard. Used to show correctly to the user the remaining primary and secondary quantities. Used in the footer of the column view and shown in red if negative (negative values are not allowed). | | Material Split Header Instance | Material | Used on the Split **Material** wizard. On the instance information of the wizard we want the quantity with units associated. | | Material Split Input | Material | Set the input object for the **Material** split operation. | | Material Split Is Property Bigger Than Zero | Material | Verify if a given property of a given object is bigger than `0`. | | Material Split Mode | Material | Used in Split **Material** wizard. The converter return settings about the split mode. | | Material Split Name | Material | Used in the widget in the Split **Material** wizard. It return the name of the return leaf of the column view widget. | | Material Split New Material Name | Material | Used in the widget in the Split **Material** wizard. It return the name (with the number of SubMaterials in brackets) of the returned leaf of the column view widget. | | Material Split New Material Step Valid | Material | Used in the Split **Material** wizard. The total remaining quantities must be positive. | | Material Split Set First Material | Material | Returns a default new **Material** for the Split wizard. | | Material Split Show Submaterial Container Step | Material | Used in Split **Material** wizard. Returns `true` if the **Material** has Submaterials, `false` otherwise. Used to show or hide steps of the wizard. | | Material Split Transfer | Material | Used for the Transfer widget in the Split **Material** wizard. It sets the **Material** **Container** of the Submaterials based on the default Submaterial chosen in the first Step. | | Material Split Transfer Data | Material | Used for the Transfer widget in the Split **Material** wizard. | | Material Split Value | Material | Used in the dynamic split wizard. Formats the value of the quantities to show in the column view leaf. Negative quantities are shown in red. | | Material Step Property Check | Material | Evaluates a property of the step material in an array of **Materials**. Table: Material Converters ### Resource |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Set Planned Unplanned Count in Resource | Resource | Sets the planned and unplanned count in the target **Resource**. | | Build CheckoutEmployeeInput Map | Resource | Converts employee and resource data into a map for service output. | | Build CheckoutEmployeeInput Map From Resources | Resource | Converts an array of resources and the current **Employee** into a map for service output.| | Steps And Resources To Matrix | Generic | Converts `Step Resources ForAreaCollection` into a Tiles Matrix display. | | Workgroup Entity Name | Generic | Returns the name of a entity - with the prefix `Resource` or `Step`. | | Workgroup Entity State | Generic | Returns the current main state name of a entity - in brackets. | Table: Resource Converters ### Production Order |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Set Production Orders Colors | Production Order | This converter is used on the **Production Orders** page under [[planning-and-logistics]]. It injects four properties on each **Production Order** for a custom Kendo template. Since Angular pipes are not available, it adds a calculated TimeDate for due dates and planned end dates, while applying different colors based on the specified filter arguments. This is, it formats the Due Date of each **Production Order** with the browser's current culture and sets its color based on the current date: green if the Due Date has not yet passed, and red if the Due Date has passed. | Table: Production Order Converters ### Protocol |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Is Protocol Null | Protocol | Given a **Protocol**, checks if it is null in order to ask for one in Open Protocol Instance wizard.| | Set Employee In Filter | Protocol | Given an object, sets the current **Employee** value as object on the target. | | Set Protocol Instances State Name | Protocol | Given an array of **Protocol** path, returns the array with new property `StateName`.| | Set Protocol Instances Date Difference | Protocol | Given a DateTime, calculates the time difference between current date (now) and the given DateTime.| Table: Protocol Converters ### Employee |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | EmployeeCertifications to Employees | Generic | Creates an array of **Employees** from a EmployeeCertification array. | | Load Certification Owner Role | Generic | Loads the entity Owner Role and returns a **Certification** with the Owner Role entity loaded.| | Load Employee Certifications Owner Role | Generic | Loads the entity Owner Role and returns a EmployeeCertification with the Owner Role entity loaded.| Table: Employee Converters ### Area |Converter | Applicable Entity | Description | |---------------------------------|--------------------|-------------------------------------------------------------------------------------| | Set Area Id From Step List | Generic | This converter is meant to be used in "My Workgroup". When a Step is selected, its necessary to retrieve the **Area** Id from the original list. This converter finds the Id from selected step in the list (provided in args) and returns it if found, otherwise will return null. | Table: Area Converters