Skip to Content
Author's profile photo Simon Paul Zhang

SAP PLM Recipe Development – the Recipe Compliance Check

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


cck 001.jpg


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”.

check 3.png



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


check 4.jpg


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).


execute 2.jpg


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.


excetute cck 3.png


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.


config cck 1.png

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


config cck 2.png


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.


config cck 3.png



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.


config cck img.png



Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Christoph Bergemann
      Christoph Bergemann

      Dear Simon

      once again: Fantastic document. Can you provide more input on your statement:

      "Or the compliance check without EH&S Expert Server" => with which SAP release is this functionality delivered? Any specific OSS note on that? for EHS classic years ago SAP decided to go the other way around. At that point in time a "secondary datadetermination" solution was delivered to calculate the "Status if Regsitration." It is new for me that SAP is now delivering some solution for SAP Recipe are withput using EHS expert. Addditional informaiotn on this would be very interesting.. Thanks


      Author's profile photo Simon Zhang
      Simon Zhang
      Blog Post Author

      Hello Christoph,

      there is a rule set "CCK_RM" which was used in the past to execute the "compliance check". It was also possible to run this rule set directly from the specification workbench in earlier releases before EHP5. Then with EHP5, recipe mangement was replaced with recipe development. With EHP6 the compliance check rule set could be exectued for recipes (recipe compliance check with expert server). With EHP7 it is now possible to run the compliance check in ABAP without the expert server.

      By the way, the earlier versions of the old recipe management (SAP RM) also needed the expert server in the background for recipe calculcations. This was then replaced with ABAP with EHP3. So from an SAP product strategy, I think it makes sense to "get rid of the expert server" for recipe development purposes. Installing the expert server and expecially trying to change rule sets are complex tasks and require very special EHS expertise.

      S/4HANA is by the way also not supporing the EHS Expert for Recipe Compliance Check any more. Please read: S4HANA (1511 on premise) simplification list - chapter SAP PLM Recipe Development.

      Kind regards,

      Author's profile photo Christoph Bergemann
      Christoph Bergemann

      Dear Simon

      this is really very helpful information collected by you. I am very interested to see the roadmap of SAP for SAH EHS classic wiht S/4 HANA. If they follow the "approach" as with Recipe Development I would assume that (that means: do not ! support EHS Expert any more) then I would assume that they will get quite negative feedback. The same willl be trure if WWi wouldn'T be supported any more.

      Therefore I am a kind of surprised to read hat EHS Expert is not on the "simplification list" for Recipe part of SAP..

      We will see.


      PS: do you have an e.g. link to SAP online help? (context: With EHP7 it is now possible to run the compliance check in ABAP without the expert server; this would be bvery intersting how they (SAP)  are delivering now the rule set using "ABAP".) ? do you have a specific OSS note to check ? or is this part of the EnhPAck documentation of the solution in SAP marketplace?

      Author's profile photo Hector Velazco
      Hector Velazco


      Below find the link for the SAP online help, you will not find much details but in any case take a look

      Compliance Check in Recipe Development - Recipe Development (PLM-WUI-RCP) - SAP Library

      Good luck,


      Author's profile photo Christoph Bergemann
      Christoph Bergemann

      Dear Hector

      thanks for sharing link


      Author's profile photo Rakesh Nair
      Rakesh Nair

      Hello Simon

      I have one question

      related to compliance check. Looks like SAP RD also has a compliance check functionality

      by which one can restrict, prohibit composition substances etc based on various Compliance/Regulations.

      I know there is another product called SAP SPRC, which also does similar compliance check.

      What is the difference between the two products (SAP RD Compliance check and Compliance

      Check through SPRC).and which to use when ??. Thanks Rakesh