Agile Product Lifecycle Management Product Governance and Compliance User Guide Release 9.3.6 E71139-01 |
|
![]() Previous |
![]() Next |
The internal business logic described below is provided for those compliance managers who want to analyze precisely how the system arrived at calculated or result compliance states.
Compliance rollups can be managed by logic built into the Agile PG&C application; we use the shorthand "internal engine" for this approach to compliance management. The internal engine determines compliance at the lowest level within the top level object (part or top level assembly) such that it compares the amount of a substance within each sub-object (part or subpart) against the weight/mass of that sub-object. The rollup is then the worst case scenario of the compliance statuses of the individual sub-objects.
Examples:
Compliance status of subparts rolls up to set compliance of a part.
Compliance status of parts rolls up to set compliance of top level assembly.
Alternatively, compliance rollups can be managed by customer-originating systems; we use the shorthand "external engine" for this approach to compliance management. The external engine determines compliance for the top level object (part or top level assembly) such that it rolls up the amount of a substance from all of the sub-objects in the top level object and compares it to the weight/mass of that entire top level object.
Examples:
Compliance status of a part is the total weight/mass of a substance in all the subparts compared to the weight/mass of the part.
Compliance status of a top level assembly is the total weight/mass of a substance in all the BOM parts compared to the weight/mass of the top level assembly.
As mentioned earlier in the guide, the internal rollup engine does not handle rollup for REACH; only the external rollup engine does. A specification's attribute of Internal or External qualifies it for the related rollup.
For internal specifications, if no information is found in 'calculated compliance' or 'declared compliance' attribute, logic treats this as 'missing info'. The engine rolls up the status to make the bubble red on the Compliance tab header by updating the summary compliance to 'Missing Info'.
If the rollup engine finds no specifications with rollup set to Internal, the internal rollup engine task is stopped, and instead a rollup of the calculated compliance statuses of the specifications occurs and the summary compliance attribute is set accordingly.
A user cannot run 'Calculate Compliance' on a specification that is marked as 'External'. An error message is issued to the user if this occurs: 'The selected specification is marked as external. External specifications cannot be rolled up using calculate compliance'.
Be sure you have read "Composition Rollup on Bill Of Substances," the following information is supplemental to that section. This summarizes how the rollup works for BOS tree with various substance objects.
If there is a value in the Declared Compliance attribute, the rollup uses this value. If there is no value in the Declared Compliance, the system looks for Declared PPM and uses it for the rollup. If there is no value in Declared PPM attribute, the system looks for substance mass and part mass. If both values are available, the system calculates the PPM, compares it with threshold PPM, and sets the proper value in the Calculated Compliance attribute.
In a Fully Disclosed composition, if the substances or substance groups in the spec are missing in the composition, they become compliant automatically.
In a Partially Disclosed composition, the system checks compliance against the Unreported substance for all the spec substances or substance groups that are missing in the composition. Only when all the specifications' substances or substance groups that are missing in the composition are compliant against the Unreported substance, the composition is considered as compliant for that spec.
If the "Unreported (System)" substance PPM is higher than on the specifications' substances or substance groups that are missing in the composition, then the calculated compliance for that composition or parent of the substances will be Missing Info because the missing substance could be that substance or substance group from the spec, so the system cannot determine the compliance.
If there is a value in the Declared Compliance attribute at the substance group level, the rollup uses this value. If there is no value in the Declared Compliance attribute at the substance group level, it looks for Declared PPM or Declared Mass at the substance group level and uses it for the rollup. If there is no value in the Declared PPM or Declared Mass at the substance group level, it looks for substance mass and conversion factor for all the substances in the substance group (the system does not calculate the compliance for substances within substance group, even if user provided Declared Compliance attribute value, it is ignored), then it calculates the base substance mass for each of the substances (substance mass multiplied by conversion factor), and it updates the calculated mass at the substance group level. If user provided the mass for immediate parent of substance group (it could be part or part group, subpart or material), the system calculates the PPM, compares it with threshold PPM for the substance group (it reads the threshold PPM from spec), and sets the appropriate value in the Calculated Compliance attribute.
If there is a value in the Declared Compliance attribute at the material level, the rollup uses this value. If there is no value in the Declared Compliance attribute, it looks at the children of the BOS tree under the material (it ignores the value in the declared PPM at the material level). If the BOS tree contains a substance group or substances, it uses the logic above to calculate the compliance. If there are multiple substance groups, the material is compliant, providing all the substance groups are compliant. If any one of the substance groups is missing info or not compliant, it affects the Calculated Compliance of the material.
If there is a value in the Declared Compliance attribute at the subpart level, the rollup uses this value. If there is no value in the Declared Compliance attribute, it looks at the children of the BOS tree of the subpart (it ignores the value in the declared PPM at the subpart level). If the BOS tree contains materials, substance groups or substances, it uses the logic above to calculate the compliance. If there are multiple materials, the subpart is compliant, providing all the materials are compliant. If any one of the materials is missing info or not compliant, it affects the Calculated Compliance at the subpart level.
If there is a Declared Compliance, the rollup uses this value. If there is no value in the Declared Compliance attribute, it looks at the BOS tree for that part. If the BOS tree contains subparts, materials, substance groups and substances, it uses the logic above to calculate the compliance. If there are multiple subparts, the part is compliant, providing all the subparts are compliant. If any one of the subparts is missing info or not compliant, it affects the Calculated Compliance at the part level.
Let there be five substances in a substance group; two of them do not have a conversion factor. The system calculates the substance group mass based on the other three substances, calculates the PPM, and compares it with the threshold PPM from the specification. (Actually, this is only true if the substance has mass, but no conversion factor: if the substance doesn't have mass, the system just ignores it.) If it is not compliant, it sets the Calculated Compliance to Not Compliant. If it is compliant, then it sets the Calculated Compliance to Missing Info, because the other two substances do not have a conversion factor.
Here are some other potential use cases where Missing Info can be returned as Calculated Compliance.
The parent mass is not provided to calculate Calculated PPM, so the rollup has nothing to compare with Threshold PPM from the specification, so it results in Missing Info.
If some of the mandatory substances from the specification are missing in the declaration, even if all the existing substances are compliant, the parent - either material or subpart or part - is marked as Missing Info.
As of Rel. 9.2.2, this depends on the Mass Disclosure Type. The initial statement is true for Undisclosed compositions. For Partially Disclosed compositions, the system attempts to access compliance of missing substances against the "Unreported (System)" substance added by the system. For Fully Disclosed compositions, the missing substances are automatically Compliant.
If the Conversion Factor for a substance under a substance group is missing, but the substance has value in the Mass field, the system flags Missing Info at the substance group level.
In 9.2.2, if the same substance exists in the substance group during import, the system attempts to copy over the Conversion Factor from the substance group.
If the specification does not have any substances (or only "optional" substances), Calculated Compliance is Missing Info.
Declared PPM values at the material level and subpart level are not considered by the rollup.
The Calculated PPM is set at the leaf substance and substance group level only (the Calculated PPM for substances within substance group are not calculated).
Declared Compliance values for substances within substance group are not considered by the rollup.
The Calculated Compliance and Result Compliance for substances within substance group and for all Optional substances (either Reporting set to Optional in the spec or substances do not even exist in the spec) are not calculated. In 9.2.2, the system calculates compliance for Optional substances as well, but these results are ignored when calculating the compliance of the parent of substances.
In cases where the system uses the value in Declared Compliance field, it still updates the Calculated Compliance, but the Result Compliance is set to the value in Declared Compliance field.
In cases where the system uses declared PPM, it still calculates the calculated PPM if all the values (mass and parent mass) are available.
If the user provided declared PPM for substances within a substance group, the system calculates the substance mass based on the PPM and mass of the parent of the substance group (material, subpart or part), then it uses the same logic for substance group to calculate the compliance. If the parent mass is missing, then it uses the declared mass (if its available) to calculate the mass at substance group level.
Be sure you have read "Compliance Rollup on BOM/Items, Mfr.Parts, and Part Groups," the information below is supplemental to that section.
Compliance Validation is a very taxing operation within Agile PLM. It is currently impossible for the system to catch up in a split second (like Excel) with all changes a user makes in the system that might impact compliance, although this is clearly the goal. The problem is clearly exponential. A compliance change to a manufacturer part will impact all items that have this manufacturer part in their AML. This in turn will impact all top level assemblies and all intermediary assembly levels that have that item in their BOM. In the worst of cases, a small change may require the calculation of the whole system.
Excel has the same problem when spreadsheets get too big. Therefore Excel has introduced the ability to turn automatic calculation off and to use a manual calculation.
PG&C has the same type of a user launched manual calculation option. On top of that PG&C has a timer-based automatic calculation that recalculates the compliance state of everything in the system based on some rules.
The system performs a compliance rollup automatically in these cases:
Per the schedule set by the administrator using Compliance Rollup rules;
For all items flagged as Shippable Items, all Latest released revs and Pending revs (previously released revs of shippable items are not rolled up again);
Every part which has Need Compliance Check to Yes for at least one spec.
Compliance calculation does not happen automatically for an item or manufacturer part upon publishing data from a declaration to the part. When a composition is published, all the specifications for that part are flagged with Need Compliance Check, because the new composition could be Fully Disclosed and it may influence the compliance of existing specs that do no't have matching spec compositions; it is set on the corresponding part's Compliance tab > Specifications table (again, it is not visible on items, but it is present and the system responds to it). Its compliance is evaluated either when the user launches the calculation or the next time the automatic compliance validation runs.
When there are changes in an assembly (that is, an ECO changes a BOM or an MCO changes a manufacturer part), there is no trigger to recalculate the compliance. If the item is marked as Shippable Item, the scheduled rollup recalculates the compliance; otherwise, you have to manually run the rollup to calculate compliance.
When importing specifications directly into an item or manufacturer part, after the Import procedure is completed, the system does a composition rollup and updates the Calculated Compliance and Result Compliance on the Composition table; however, it does not recalculate the compliance of all the specifications in the item or manufacturer part. It adds the specifications from the compositions being imported to the item or manufacturer part's Specifications table and sets the Need Compliance Check to Yes.
Note that if the composition being imported does not have a specification, the system does not do a composition rollup after the import. However, as of 9.2.2, it still calculates the PPM for substances and substance groups in the composition, identifies the Mass Disclosure type, and sets Need Compliance Check on all existing specs to Yes.