Compliance Definition Creation Using the Default Configuration File

Materials Compliance Management provides configuration files for compliance definitions. You can use these files as the starting point to create your own compliance definitions. Each data management option has a configuration file. For example, EU RoHS has a file named EURoHSComplianceConfiguration.xml.

The compliance configuration XML file contains elements for creating the following objects or relations in Materials Compliance Management:

  • ComplianceType
  • Compliance Application
  • Substance Application
  • Material Classification
  • Substance Classification
  • Compliance Definition

There are also relationships, which are defined on the substance application level. These relationships express rules for when particular compliance applications can be referenced in component substances of materials.

This page discusses:

Configuration Objects

Below are descriptions of the configuration objects and their relationships.

Configuration ObjectDescription
Compliance TypesRepresent an industry or regulation category such as ELV (for automotive) or Packaging. If a site uses Materials Compliance Management for an industry or regulation category not currently supported, create a new compliance type. Also create material classifications, compliance applications and compliance definitions that reference the new compliance type.
Compliance Applications and Substance ApplicationsDefine how parts or materials are used. Compliance definitions can reference these compliance applications in thresholds and exemptions.

For example, a new regulation might restrict the amount of lead compounds in electric vehicle batteries to some amount. In this case, a new compliance application is needed called "Electric Vehicle Batteries" that Materials Compliance Management can reference in a compliance definition threshold. A customer might also want to restrict the use of this compliance application to lead compound substances, in which case a set of substance application relationships would be created to enforce this rule.

Material ClassificationsThese are groupings of materials. For example, cast iron or thermoplastic might be a material classification. Unlike substance classifications, different sets of classifications are supported for each compliance type. These are not used with compliance definitions. They are primarily used to just organize materials and to report the type of material to customers in reports and exports.
Substance ClassificationsThese are groupings of substances that are referenced in compliance definitions thresholds. For example, Materials Compliance Management comes with substance classifications lead compounds, mercury compounds, cadmium compounds, and chromium VI compounds. Materials Compliance Management also comes with a substance classification called Heavy Metals which consists of these other four substance classifications. This particular Heavy Metals substance classification is used in Packaging compliance definitions.
Note: Early versions of Materials Compliance Management supported a different set of substance classifications for each compliance type. As of version V6R2012, only set is used for any compliance type.
Compliance DefinitionThe compliance definition is the object that comprises the other compliance objects described above.

Examples

If you create your own compliance definition files, you should re-use the compliance type, substance classifications, and compliance definitions that are already in Materials Compliance Management (created when EURoHSComplianceConfiguration.xml file is loaded during the install).

Below is an example of a compliance definition in this file:

<ComplianceDefinition name="RoHS" complianceType="EU RoHS" description="This compliance definition represents the list of restricted, reportable or prohibited substances and their allowable thresholds as mandated by the European Union's EU RoHS directive." thresholdType="Maximum Allowed" enterprise="Yes" rollup="Yes" active="Yes" key="cdef_rohs">
<CThreshold ref="cls_cadmium" quantity=".01" category="Prohibited" iaZeroThreshold="Yes"/>
<CThreshold ref="cls_lead" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<CThreshold ref="cls_lead_pvc_cables" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<CThreshold ref="cls_hex_chromium" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<CThreshold ref="cls_mercury" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<CThreshold ref="cls_pbb" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<CThreshold ref="cls_pbde" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<Exemption ref="app_mercury_1"/>
<Exemption ref="app_mercury_2a"/>
<Exemption ref="app_mercury_2b"/>
<Exemption ref="app_mercury_2c"/>
<Exemption ref="app_mercury_3"/>
<Exemption ref="app_mercury_4"/>
<Exemption ref="app_lead_5"/>
<Exemption ref="app_lead_6a"/>
<Exemption ref="app_lead_6b"/>
<Exemption ref="app_lead_6c"/>
<Exemption ref="app_lead_7a"/>
<Exemption ref="app_lead_7b"/>
<Exemption ref="app_lead_7c"/>
<Exemption ref="app_cadmium_8"/>
<Exemption ref="app_hex_chromium_9"/>
<Exemption ref="app_pbde_10a"/>
<Exemption ref="app_lead_10b"/>
<Exemption ref="app_lead_11"/>
<Exemption ref="app_lead_13a"/>
<Exemption ref="app_cadmium_13b"/>
<Exemption ref="app_lead_14"/>
<Exemption ref="app_lead_15"/>
<Exemption ref="app_lead_16"/>
<Exemption ref="app_lead_17"/>
<Exemption ref="app_lead_18"/>
<Exemption ref="app_lead_19"/>
<Exemption ref="app_lead_20"/>    
<Exemption ref="app_lead_21"/>
<Exemption ref="app_lead_22"/>
<Exemption ref="app_lead_23"/>
<Exemption ref="app_lead_24"/>
<Exemption ref="app_lead_25"/>
<Exemption ref="app_lead_26"/>
<Exemption ref="app_lead_27"/>
<Exemption ref="app_hex_chromium_28"/>
<Exemption ref="app_lead_29"/>
</ComplianceDefinition>

This is the compliance definition for RoHS. The CThreshold elements reference substance applications. The Exemption elements reference compliance applications.

Let's say you want to create a separate import file that contains a simple compliance definition called "RoHS Mercury," which is a subset of RoHS. The definition would look like this:

<ComplianceDefinition name="RoHS Mercury" complianceType="EU RoHS" description="This compliance definition represents RoHS Mercury only." thresholdType="Maximum Allowed" enterprise="Yes" rollup="Yes" active="Yes" key="cdef_rohs">
<CThreshold ref="cls_mercury" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<Exemption ref="app_mercury_1"/>
<Exemption ref="app_mercury_2a"/>
<Exemption ref="app_mercury_2b"/>
<Exemption ref="app_mercury_2c"/>
<Exemption ref="app_mercury_3"/>
<Exemption ref="app_mercury_4"/>
</ComplianceDefinition>

Even though these substance classifications and compliance applications already exist in Materials Compliance Management (because they were loaded when installing the RoHS data management option), you still need to put XML elements in the file to identify them. You would need to add the following lines ahead of this compliance definition:

<ComplianceType name="EU RoHS" applicationRequired="No" materialClassificationRequired="No" substanceClassificationRequired="No" referenceOnly="Yes"/>
<SubstanceClassification name="Mercury/Mercury Compounds" complianceType="EU RoHS" code="A10" key="cls_mercury" referenceOnly="Yes"/>
<ComplianceApplication name="1 Mercury in compact fluorescent lamps not exceeding 5 mg per lamp" code="1" complianceType="EU RoHS" key="app_mercury_1" referenceOnly="Yes"/>
<ComplianceApplication name="2a Mercury in straight fluorescent lamps for general purposes not exceeding 10 mg. in halophosphate lamps" code="2a" complianceType="EU RoHS" key="app_mercury_2a" referenceOnly="Yes"/>
<ComplianceApplication name="2b Mercury in straight fluorescent lamps for general purposes not exceeding 5 mg. in triphosphate lamps with a normal lifetime" code="2b" complianceType="EU RoHS" key="app_mercury_2b" referenceOnly="Yes"/>
<ComplianceApplication name="2c Mercury in straight fluorescent lamps for general purposes not exceeding 8 mg. in triphosphate lamps with long lifetime" code="2c" complianceType="EU RoHS" key="app_mercury_2c" referenceOnly="Yes"/>
<ComplianceApplication name="3 Mercury in straight fluorescent lamps for special purposes" code="3" complianceType="EU RoHS" key="app_mercury_3" referenceOnly="Yes"/>
<ComplianceApplication name="4 Mercury in other lamps not specifically mentioned in this list" code="4" complianceType="EU RoHS" key="app_mercury_4” referenceOnly="Yes"/>

An important point here is the addition of the referenceOnly="Yes" attribute, which tells the importer that these items already exist in Materials Compliance Management and should just be referenced. The entire file would look like this:

<bom:ComplianceConfiguration xmlns:bom="http://www.matrixone.com/schemas/mcc/BillOfMaterials" xmlns="http://www.matrixone.com/schemas/mcc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.matrixone.com/schemas/mcc/BillOfMaterials
D:\matrix-dev\java\src\com\studio\apps\materialcompliance\xmlschema\XSD\MCC_BillOfMaterials.xsd">
<ReportInfo/>
 <ComplianceType name="EU RoHS" applicationRequired="No" materialClassificationRequired="No" substanceClassificationRequired="No" referenceOnly="Yes"/>
<SubstanceClassification name="Mercury/Mercury Compounds" complianceType="EU RoHS" code="A10" key="cls_mercury" referenceOnly="Yes"/>
<ComplianceApplication name="1 Mercury in compact fluorescent lamps not exceeding 5 mg per lamp" code="1" complianceType="EU RoHS" key="app_mercury_1" referenceOnly="Yes"/>
<ComplianceApplication name="2a Mercury in straight fluorescent lamps for general purposes not exceeding 10 mg. in halophosphate lamps" code="2a" complianceType="EU RoHS" key="app_mercury_2a" referenceOnly="Yes"/>
<ComplianceApplication name="2b Mercury in straight fluorescent lamps for general purposes not exceeding 5 mg. in triphosphate lamps with a normal lifetime" code="2b" complianceType="EU RoHS" key="app_mercury_2b" referenceOnly="Yes"/>
<ComplianceApplication name="2c Mercury in straight fluorescent lamps for general purposes not exceeding 8 mg. in triphosphate lamps with long lifetime" code="2c" complianceType="EU RoHS" key="app_mercury_2c" referenceOnly="Yes"/>
<ComplianceApplication name="3 Mercury in straight fluorescent lamps for special purposes" code="3" complianceType="EU RoHS" key="app_mercury_3" referenceOnly="Yes"/>
<ComplianceApplication name="4 Mercury in other lamps not specifically mentioned in this list" code="4" complianceType="EU RoHS" key="app_mercury_4" referenceOnly="Yes"/>

 <ComplianceDefinition name="RoHS Mercury" complianceType="EU RoHS" description="This compliance definition represents RoHS Mercury only." thresholdType="Maximum Allowed" enterprise="Yes" rollup="Yes" active="Yes" key="cdef_rohs">

<CThreshold ref="cls_mercury" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<Exemption ref="app_mercury_1"/>
<Exemption ref="app_mercury_2a"/>
<Exemption ref="app_mercury_2b"/>
<Exemption ref="app_mercury_2c"/>
<Exemption ref="app_mercury_3"/>
<Exemption ref="app_mercury_4"/>
</ComplianceDefinition>
</bom:ComplianceConfiguration>

Notes

There are a number of attributes on the compliance definition element that can be set that configure the compliance definition:

  • thresholdType is "Maximum Allowed" or "Minimum Rejected". This tells Materials Compliance Management whether a threshold is exceeded when the amount of substance is greater than the threshold or greater than or equal to the threshold. The default is Maximum Allowed, which is the same as saying "greater than" the threshold
  • enterprise is "Yes" or "No". Only Compliance Administrators can set this to Yes. If Yes, the compliance definition is visible to every user. If No, it is visible only to the originator.
  • rollup is "Yes" or "No". Only Compliance Administrators can set this to Yes and only if enterprise="Yes". If Yes, then Materials Compliance Management will calculate, store, and display this compliance value on various pages.
  • Active="Yes", which only applies to enterprise="Yes" Compliance Definitions. This sets the state to Active. For enteprise="No" Compliance Definitions the only state is Active. The rollup only goes into effect when the compliance definition is active.

A compliance definition can also reference a substance threshold (SThreshold element) instead of a substance classification threshold (CThreshold element). Just as for substance classifications, a substance element has to be present in the file ahead of the SThreshold element. Below is an example of a substance element:

<Substance CAS="26628-22-8" name="Sodium azide" key="cas_26628-22-8"/>

If the substance already exists in Materials Compliance Management, you need to add referenceOnly="Yes" to the element:

<Substance CAS="26628-22-8" name="Sodium azide" key="cas_26628-22-8" referenceOnly="Yes"/>

If you want to include this substance in the RoHS Mercury Compliance Definition, you would need to add an SThreshold element:

<ComplianceDefinition name="RoHS Mercury" complianceType="EU RoHS" description="This compliance definition represents RoHS Mercury only." thresholdType="Maximum Allowed" enterprise="Yes" rollup="Yes" active="Yes" key="cdef_rohs">
<CThreshold ref="cls_mercury" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<SThreshold ref="cas_26628-22-8" quantity=".1" category="Prohibited" iaZeroThreshold="Yes"/>
<Exemption ref="app_mercury_1"/>
<Exemption ref="app_mercury_2a"/>
<Exemption ref="app_mercury_2b"/>
<Exemption ref="app_mercury_2c"/>
<Exemption ref="app_mercury_3"/>
<Exemption ref="app_mercury_4"/>
</ComplianceDefinition>

Here are some attributes of the CThreshold and SThreshold elements that configure them:

  • quantity. The amount of the threshold in percent units
  • category. An indication of how restricted the substance is. Choices are Prohibited, Restricted, Reportable, and Unrestricted
  • iaZeroThreshold. When a substance is used in a material in Materials Compliance Management the user can specify whether it is intentionally added. When set to Yes, the attribute says that if the substance is intentionally added consider its threshold to be 0%. If it is not intentionally added consider the threshold to be the value in the quantity field. If No, then the quantity threshold is always used regardless of whether the substance was intentionally added or not.