Product Lifecycle Management Blogs by SAP
Dive into product lifecycle management news, learn about digitalizing PLM for the digital supply chain, and stay informed with product updates from SAP.
Showing results for 
Search instead for 
Did you mean: 

This blog belongs to a series of blogs regrouped on the SCN page “SAP PLM Recipe Development for Beginners”.


In a previous blog we compared the Recipe Consistency Check and the Recipe Compliance Check functions: SAP PLM Recipe Development – Recipe Consistency Check vs. Recipe Compliance Check



In this blog, we would like to take a look at the Recipe Compliance Check (CCK) to understand how it actually works. Here is the proposed structure of this blog:

  • Maintaining CCK Constraints

  • Executing the Compliance Check

  • CCK Configuration Options



Before we can run the compliance check we need:

  • An (almost) finalized recipe for which we trigger the check

  • A set of constrains corresponding to a specific regulation and applications area



Maintaining CCK Constraints


Let’s take a look how we can maintain those constraints in the system. There are basically two ways of maintaining constraints:

1st option: There is central list for a specific regulation and application area. All specifications which are banned (according to this regulation) or which can only appear in the finished product up to a certain level are assigned to this list.


2nd option: Or, for each specification (somewhere in the property tree) there is a field where we assign the list (regulation and application area) which is banning the specification or limiting its usage up to a certain degree in the finished product.


In SAP both options are possible. Let’s take a look how we can assign a “regulation and application area” to a specification.

A specification can have one or several property trees assigned. We are now changing the displayed property tree to the “RM Compliance Check Property Tree”. There a several value assignments available in this tree. Let’s take a look at:

  • Constraint that excludes substance

  • Restrictive constraint for listed subs



If we want to add this substance to our list of banned substances (which shall not be used in any finished product) according to a specific regulation and application area, we simply need to add the Regulation and Application Area in this chapter. We can select the Regulation and Application Area from a drop down list (which we are able to maintain and enhance ourselves in the form of phrases – transaction CG12 and CG1B).


As you can see, we can add several Application Areas and Regulations (e.g. if the substance is banned not only for usage in food in Europe but also in the USA). To do this, we simply create a second instance.


Finally, we can also think about “positive” and “negative” statements. Instead of the system simply stating “compliant” and “not compliant”, we can add phrases which correspond to official statements banning or limiting certain substances (e.g. prohibited ingredient according to FDA …).


On the screenshot below, we see how restrictive constraint has been maintained. In this case this substance can only appear with a concentration up to 10% in the finished product.




Remark: in the property tree it says “Restrictive constraint for listed substance”. In the EHS standard data model, we would rather refer to pure substances for the actual chemical substance which is banned or regulated. Companies often have to be compliant which regulations which limit or ban the usage of certain chemical substance. In this case we maintain this constrain in the CCK-property tree of a pure substance (here corresponding to listed substance).


If a company however wants to avoid that a certain material (linked to a real_sub) is used in its finished products (certain customers might for example insist that certain materials manufactured in Asia are not to be used), then we can maintain this constrain directly on the real substance level (with value assignment “constraint that excludes substance”).


Let’s now take a look at the above mentioned 1st option – a central list for maintaining all constraints for a specific regulation and application area.

In the Recipe Development Menu, we have the menu entry “Compliance Check” – “Fast Constraint Maintenance”.



Here, we first have to specify the Regulation and Application Area (by selecting the corresponding phrase from the drop-down list).



Then we maintain all substances which are either banned or limited (with corresponding limit) in this list.



If a substance is added to this list (for a previously selected application area and regulation), then in the background the same steps happen as described in the 2nd option (the corresponding value assignments are maintained in the CCK-property tree of the specification). It therefore technically does not matter if you chose the 1st or the 2nd option for maintaining the constraints.



Executing the Compliance Check


To actually trigger the compliance check from a recipe, you need to click “Additional Function” – “Start Compliance Check”. If you have saved check parameters previously in a variant, then you can also “Start Compliance Check with Variants”.



As we have not loaded a variant, we need to maintain all parameters on the following screen. In the previous chapter we saw that we can maintain constraints on pure substances and real substances. But actually we can also maintain constraints on allergens, nutrients, ...


Here we need to select which of those “composition types” shall be considered. Then we select the Application Area and Regulation and finally the usage (e.g. public region world).



If we click now on the “next” button the actual check is executed and we see an overview with green and red traffic lights per substance.



You might be a bit confused as you can see some substances in this list which are not even included in our recipe. In fact, the compliance check list and checks all substances which are in the list composed of this particular application area and regulation (even if they are not contained in the recipe).


You can now click on the specification to navigate to the property tree where the constraint is maintained, you can try to change your recipe and replace banned substances and / or you can print or save the compliance check result.


CCK Configuration Options


In the SAP-GUI with transaction CGAC you can see which value assignments are assigned to a property tree.


If you click on the value assignments for the Compliance Check Property Tree, you can find the phrase sets.



So if you want to maintain your own drop list of regulations, application areas, … you simply need to access the phrase set with transaction CG1B and add new phrases to those drop-down lists.




Just a quick last remarks concerning the CCK IMG configuration:


  • In IMG you have to define if you want to use:

    • The compliance check with EH&S Expert Server

    • Or the compliance check without EH&S Expert Server

In the past (with EH&S Expert Server), the compliance check was based on a EH&S rule set and the Expert Server was mandatory. Now, the same logic has been reproduced in ABAP also works without the EH&S Expert Server.