Services#
ValidatePlacementList#
A BOM is Valid if:
- All the Reference Designators match MES BOM's Designators;
- All Products or a subset of them exist in the MES BOM.
The configuration entry, /SMT/PreBomCheck/UseCaseSensitive, determines whether case sensitivity is enforced when comparing the Product Name and Reference Designator lists from the equipment with those defined in the BOM. By default, this setting is set to false.
ValidatePlacementList service signature
The input object ValidatePlacementListInput contains the following information:
| Name | Type | Description |
|---|---|---|
| ResourceName | String | Resource where the validation should take place |
| MaterialName | String | The panel code to be validated |
| PlacementLists | List of ComponentPlacements | Components list grouped by ReferenceDesignators, containing the ReferenceDesignators and a list of ComponentNames |
The output object ValidatePlacementListOutput contains the following information:
| Name | Type | Description |
|---|---|---|
| BomValid | Boolean | Comparison result |
| ProductName | String | Material product name |
| ProductBomName | String | Resolved BOM name |
Error Translations#
The localized messages used by the service are:
- IoTValidatePlacementListDuplicateComponentName
- Component list of reference has a duplicate component name
- IoTValidatePlacementListDuplicateReferenceDesignator
- Placement list has a duplicate reference designator
- IoTValidatePlacementListSubstituteBOMEntryMismatch
- The reference designators of the substitute BOM entry don't match the parent BOM entry's reference designators.
Pre Conditions:#
- Material must exist in system;
- Resource must exist in system;
- PlacementLists cannot be empty;
- BOMContext SmartTable must be correctly configured for the current Step and BOM material product;
- Designators are unique and the Substitutes have the same designator or empty.
At MES, similar BOM items should be grouped by Designator field. Check this example:
If you have Substitute Products configured they must not have Designator filled or have the same Designator as parent Product:
BOM Context smart table should be correctly defined, for example:
SearchMaterials#
The SearchMaterials service retrieves a list of Materials based on the provided filters and relations.
This service is responsible for dynamically constructing and executing search queries that filter out irrelevant or invalid Materials - such as Templates or Terminated ones - while supporting pagination and query customization.
The service underpins the Search Materials functionality in SMT, providing flexibility for various search contexts such as by Product, Area, Resource, or Hold status.
-
Base Filters Applied Automatically:
- Excludes Template Materials;
- Excludes Terminated Materials.
-
Pagination:
- Supports configurable
PageNumberandPageSizefor large datasets.
- Supports configurable
-
Dynamic Query Behavior:
- Additional filters and relations can be appended dynamically from the UI or process layer.
- The query results are enriched by resolving Material relations (Resources, Containers, Lines, etc.) into a single structured dataset.
SearchMaterials service signature
The input object SearchMaterialsInput contains the following information:
| Name | Type | Description |
|---|---|---|
| PageNumber | Integer | Current page number in the result set (default = 1) |
| PageSize | Integer | Number of records to return per page (default = 25) |
| FilterCollection | FilterCollection | Collection of filters to apply when searching for Materials |
| RelationCollection | RelationCollection | Collection of relations to apply when retrieving related entities |
The output object SearchMaterialsOutput contains the following information:
| Name | Type | Description |
|---|---|---|
| PageNumber | Integer | Current page number returned |
| PageSize | Integer | Number of records returned per page |
| NgpDataSetResult | INgpDataSet | The dataset containing the resulting Materials and their related entities |
Pre Conditions#
- The FilterCollection or RelationCollection must be properly constructed and valid;
- The Material entity type and related entity definitions must exist in the MES;
- The Material objects should be accessible for read operations;
- Pagination parameters (
PageNumber,PageSize) should be within valid limits.
IoTMaterialOperation#
IoTMaterialOperation service signature
The input object IoTMaterialOperationInput contains the following information:
| Name | Type | Description |
|---|---|---|
| Operation | String | MES operation to be performed on the current Material. |
| Resource | Resource | Resource where the validation should take place |
| Material | Material | Material to which perform the Tracking operation |
| Materials | MaterialCollection | Collection of Materials to which perform the Tracking operation |
The output object IoTMaterialOperationOutput contains the following information:
| Name | Type | Description |
|---|---|---|
| MaterialName | String | Material name |
Error Translations#
The localized messages used by the service are:
- IoTMaterialNotDispQueuedAtResource
- Material '{Material Name}' is not Dispatched/Queued at Resource '{Resource Name}' on Operation '{Operation}'
- IoTNoMaterialsDispQueuedAtResource
- No Materials Dispatched/Queued at Resource '{Resource Name}' on Operation '{Operation}'
- IoTMaterialNotInProcess
- Material '{Material Name}' is not InProcess on Operation '{Operation}'
- IoTNoMaterialsInProcess
- No Materials InProcess on Operation '{Operation}'
- IoTMaterialNotInProcess
- Material '{Material Name}' is not InProcess on Operation '{Operation}'
- InvalidMaterialOperation
- Material Operation is invalid

