Engineering BOM Management ─ Deployment and Administration
Set custom rules to validate engineering BOM data
By default, Teamcenter provides a few rules to validate engineering BOM data, that is authored and updated in the context of an active change notice. After the data is validated, it can be released. You can also create additional custom validation rules.
Default validation rules
Part related business rules
| Rule | Information |
|---|---|
| PMA0_validate_part_and_aligned_design_maturity | The maturity of the part cannot be higher than the maturity of the aligned design. By default, the maturity property of a design is not considered for the validation checks. This must be done by setting the Pma0IsMaturitySupportedForDesign preference to True. |
| PMA0_validate_parent_child_maturity | The maturity of the parent part cannot be higher than the maturity of the child part. |
| PMA0_validate_part_design_material | The part cannot be released if the material associated with it is different than the material of the aligned design. To set this validation rule, ensure that you have set up Integrated Material Management. |
Part usage related business rules
| Rule | Information |
|---|---|
| Ebm0_validate_usage_maturity_with_part_maturity | The maturity of the part usage cannot be higher than the maturity of its part. |
| Ebm0_validate_usage_release_if_part_is_not_released | The part usage cannot be released if the corresponding part is not released. You can specify the maturity value from which this rule must be enabled on usages by using the preference Ebm0UsageMaturityToCheckPartMaturityBeforeRelease. This preference can have any value from the LOV Fnd0MaturityLOV. By default, this rule is enabled on usages having a maturity value greater than or equal to 20 (Pilot). For invalid values, the maturity value is considered as 20 (Pilot). The business object constant MaturityStatuses for any Item Revision subtype (for example, Part) holds custom release status names you define. If the object that is being validated has a status included in this list, it is considered as Released. This rule is evaluated for any such custom release status. |
| Ebm0_validate_usage_release_if_occurrence_not_aligned | The part usage cannot be released if it is not aligned to a design occurrence. You can specify the maturity value from which this rule must be enabled on usages by using the preference Ebm0UsageMaturityToCheckOccAlignmentBeforeRelease. This preference can have any value from the LOV Fnd0MaturityLOV. By default, this rule is enabled on usages having a maturity value greater than or equal to 20 (Pilot). For invalid values, the maturity value is considered as 20 (Pilot). This rule is not applied if design required flag is false. |
| CM_rule_to_validate_eff_on_related_occs | The usage of a part cannot be released if another logically related usage, created as a result of effectivity split, is released in another change notice where the release effectivity overlaps with that in the current change notice. To enable this validation, you can add this rule to the preference Pma0ChangePackageOOTBValidationRules in the format libcm:CM_rule_to_validate_eff_on_related_occs and then add this rule to the business object constant Pma0ChangePackageValidationConditions for the usage business object. For example, usage business object called Ebm0AbstractPartOccRevision. |
Procedure
To create a custom validation rule, create a new BMIDE template project, and add
pma0automationas the dependent template. Additionally, if you are using Usage BOM, addebm0enterprisebomas a dependent template.Expand the template project, and under Extensions, add the new extension (schema) file that contains the custom parts. Next, set this file as the active extension file.
Author a new BMIDE condition within this template.
The Signature of the condition must have the following 3 parameters:
Parameter Description Part Revision This can be any business object that is qualified to be tracked under an active engineering change notice for the engineering BOM (Usage BOM or Assembly BOM). Examples include Part Revision, Usage Revision (EBM0AbstractPartOccRevision sub-types) or Design Revision. You can also use business objects of the type ItemRevision and its child types which are qualified as engineering parts and designs. WorkspaceObject This must be an engineering change notice. UserSession This is a user session object that controls the access-related checks in the code. The Expression can be direct logic written on a property of the business object (used in parameter 1, Part Revision), or it can be an operation written on the business object.
- Write the logic in Expression using a property of the business object: for example,
(p.fnd0Maturity > 30) AND (p.pma0LessFinish != "None") - Author an operation on the business object (used in parameter 1, Part Revision), and add the operation in the Expression field. Now, you can generate the C++ classes to implement the operation with the custom logic.
- Write the logic in Expression using a property of the business object: for example,
Append the custom validation rule to the
Pma0ChangePackageValidationConditionsconstant of the respective business object.- Locate the required business object (for example, Part Revision).
- In the Business Object Constants tab, locate
Pma0ChangePackageValidationConditions, and click Edit. - In the Modify Business Object Constant dialog box, add the custom rule that you created as a comma-separated value. Here, you can choose to remove any default validation rules from the list.
Save and deploy the template.
Source: https://docs.sw.siemens.com/en-US/doc/282219420/PL20251212545240207.ebom_admin/xid2060065 · retrieved 2026-07-11