Register Login

Migration Steps from Recipe Management (RM) to Recipe Development (RD)

Updated Mar 17, 2020

How to transfer the data in the existing recipes and independent formulas to Recipe Development (RD)?

An option to migrate data is provided to enable the data from Recipe Management (PLM-RM) in Recipe Development (PLM-WUI-RCP) to be used.

To create recipes in Recipe Development in the migration, use the data from Recipe Management. By the migration and remains in the system for reference the data in Recipe Management is not changed. During the migration process and after the migration lock the data for changes.

The migration of recipes and their dependent objects, and the independent formulas are included in the solution provided. Refrain from migrating independent process elements or equipment requirements.

The data cannot be completely migrated and if changed can only be migrated since the Recipe Management from Recipe Development has a different scope of functions. For example, these independent formulas, which are not in Recipe Development, can be applied to.

In the standard system deliver BAdIs that allow for extensive control during the migration to influence the assignment of data as required.
Steps in the migration

The migration steps are as follows:

  • Recipe Development and dependent objects are customized and master data is created. The BAdI implementation /PLMI/IM_EX_RCPMIG_VISITOR_OBJ and the values that are used should be noted.
  • To the recipe type from Recipe Development, the recipe type and formula type in Recipe Management should be assigned.
  • To carry out a customer-specific adjustment the delivered BAdI definitions (if required) should be implemented. The delivered implementation may be copied in this case.
  • Determining the recipes and independent formulas that are to be migrated.
  • Simulating the migration.s
  • Migration

(Note that you must prefix the transaction with "/n" when you start it via the command field; therefore, you enter "/n/PLMI/RCP_MIGRATION").


For the migration the following authorizations are required:


The Recipe Management recipes and independent formulas should be read and the Recipe Development recipes should be created.

The authorization for the migration in addition (for the comparison authorization object PLM_RCPMIG, the roles SAP_PLMWUI_RECIPE_MIGRATION and SAP_PLMWUI_RECIPE_MIGR_DISPLAY).
During the migration to read the application log that is written the authorization object S_APPL_LOG with ALG_OBJECT = /PLMI/RCP_MIG and ACTVT = 03 is required.

Application log

To the application log messages are written by the migration and the additional tools; for this, use the subobjects RCP (recipe), the object /PLMI/RCP_MIG and PPM (process parameter master data) and SETUP_CHECK (Customizing/check master data check).

The migration is adjusted: delivered implementations and BAdI definitions

Read here FAQ about Migration Recipe Management to Recipe Development

Two BAdI definitions in the standard system are provided:


In Recipe Development or assign substructures (for example recipe classification) the methods for this BAdI definition can return values for the creation of the recipes which are required. In the ABAP interface /PLMI/IF_RCP_MIG_VISITOR_OBJ the general documentation for the methods is provided.

In the standard system deliver the implementation /PLMI/IM_EX_RCPMIG_VISITOR_OBJ (described below).


Using the "Visitor" template the migration was implemented. Using the key date in this case the recipe is first read (for example) and as a tree with nodes it is set up internally for the recipe header, the stages, the recipe classification, the operations, the recipe formula, the actions, the stage formulas, the process parameters, the document links, and the equipment requirements. In a predefined sequence the nodes of the tree are then visited. Call the node type with the method of the BAdI definition /PLMI/EX_RCP_MIG_VISITOR when a node is visited. The relevant part of the RD recipe method is then created and adjusted.

In the documentation for the BAdI definition /PLMI/EX_RCP_MIG_VISITOR and for the interface /PLMI/IF_RCP_MIG_VISITOR provide the sequence of the method calls and the documentation of the methods.

During the migration if the option to create a recipe version is selected, then the recipe is read by the system internally for every change state and key date and for the migration in each case the "Visitor" is started.

For the migration of independent formulas the implementation /PLMI/IM_EX_RCPMIG_VISITOR_FRM is done and for the migration of recipes are delivered in the standard system the implementation /PLMI/IM_EX_RCPMIG_VISITOR_RCP is done.

Use values set by BAdI for migration

During the migration the values that are used (such as component type or recipe type) by means of the implementation /PLMI/IM_EX_RCPMIG_VISITOR_OBJ are set that is delivered for the BAdI definition /PLMI/EX_RCP_MIG_VISITOR_OBJ. Listed below are the details for this

The following values (ABAP class /PLMI/CL_IM_RCPMIG_VISITOR_OBJ) are provided by the implementation:

1. For the BAdI definition /PLMI/EX_RCP_MIG_VISITOR the BAdI implementation is determined, which in the migration (method DETERMINE_FILTER) used to exist. To control the use of a customer-defined implementation this method for the migration can be used.

For the recipe (recipe object RCP) the BAdI filter value RCP_BADI_VISITOR_FILTER is returned, the selection of the BAdI implementation /PLMI/IM_EX_RCPMIG_VISITOR_RCP is the result of this.

For the independent formula (recipe object FRML) the BAdI filter value FRML_BADI_VISITOR_FILTER is returned, the selection of the BAdI implementation /PLMI/IM_EX_RCPMIG_VISITOR_FRM is the result of this.

2. The recipe type is determined

To create the recipe in Recipe Development the recipe type is required and using the method DETERMINE_RECIPE_TYPE it should be set.

For the RD recipe type in the standard system, use a previously maintained assignment of RM formula type or recipe type. To maintain the assignment (from the menu, choose Migration -> Mapping of Specification Type) the transaction /PLMI/RCP_MIGRATION can be used

Depending on the source recipe or source formula the use of process elements, streams, and change documents recipe type should be allowed in Recipe Development. The recipe type must allow the use of the change number if a change state and the assignment for the change number are migrated. The recipe type and the change number can no longer be changed after the creation.

3. The dummy change number is determined

Using the method DETERMINE_OBLIGATORY_CHG_NUM a change number is determined if for the key date the formula or recipe does not have a change number and if the recipe type in Recipe Development allows for a change number. Use the dummy change number of Recipe Management in the standard system, by using the function RCP899_DUMMY_AENNR_READ this can be read. Note that for the object type "Recipe Development", the change number that is used must be active.

4. The recipe key determination

Using the method DETERMINE_RECIPE_KEY determine the recipe key, and determine only the number of the alternative recipe. The key of the recipe can no longer be changed after it has been created. The next free alternative number is used after the implementation is provided.

To set the version number note that one cannot use the method. By using the method GET_NEW_VERSION_NO of the BAdI definition /PLMB/RCP_NUMBERING this can only be done.

If recipe versions are migrated, an assignment of recipe names can be stored in Recipe Development in a customer-defined table in Recipe Management for alternative or version numbers and during the migration it can be used.

The assignment of an external identifier for the alternative recipe should be allowed which should be noted in the recipe type.

5. The recipe status determination

The method DETERMINE_RECIPE_STATUS can be used to migrate the recipe status and to determine a status in Recipe Development that can be set in a change state at the start and end of the migration. Note when the change states of a recipe or independent formula are migrated, several times the method is called. The status is set in the implementation provided as follows:

One change state for each recipe or independent formula is migrated and the change state is in the future:

  • Before the change: In work (100)
  • After the change: Set according to the status assignment below.

The first change state of a recipe or an independent formula:

  • Before the change: In work (100)
  • After the change: In work (100)

The intermediate change state of a recipe or an independent formula:

  • Before the change: In work (100)
  • After the change: In work (100)

The last change state of a recipe or an independent formula (the change state that is valid on the day of the migration):

  • Before the change: In work (100)
  • After the change: Set according to the status assignment below.

Status assignment (the key of the status is provided in brackets)

  • Recipe Management status -> Recipe Development status
  • In process (I6000) -> In work (100)
  • Processing closed (I6001) -> In work (100)
  • Rejected (I6002) -> Obsolete (400)
  • Released (I6003) -> Released (300)
  • Released for Scope (I6004) -> Released (300)
  • Inactive (I6005) -> Obsolete (400)
  • Obsolete (I6006) -> Obsolete (400) and deletion indicator

6. The recipe class determination

Using classes of the class type "053" in Recipe Management the recipes are classified. The class type "104"is used by recipes in Recipe Development.

Using the method DETERMINE_CLASS determine the characteristic value assignment of the recipe header which is copied in order to migrate both the name and the class type of the class, the recipe classification data. The classes of the class type "104" that exist correspond to the classes of the class type "053" that are used which is ensured by the implementation provided that is, for both the class type "053" and the class type "104", the assignment for the characteristics and the name of the class is the same.

7. The characteristics determination

Using the method DETERMINE_CHARACTERISTIC the characteristic and characteristic value is determined in order to migrate the characteristic values of the recipe classification. The classes have the same characteristics is ensured by the implementation.

8. For formulas marked as reactions the component type is determined

Via a component type the explosion stop is set for a reaction during the migration. Using the method DETERMINE_REACTION_COMP_TYPE this component type can be set. In the item of the primary output and the item of the output stream enter the component type.
The component type "PACKAGE" is set by the implementation provided.

9. For absorption or evaporation the component type is determined

Add the specification for evaporation (environment parameter FRML_DEF_EVAPO_SUBID if for a formula item this does not already exist for formulas with absorption or evaporation. Using the method DETERMINE_EVAP_COMP_TYPE a component type can be specified if a secondary output is added.

The component type "PRODUCT"is set here by the implementation provided.

Using Recipe Development Customizing determine the component type if an input item is added.

If a component type is not returned by the method DETERMINE_EVAP_COMP_TYPE, then ignore the absorption or evaporation and do not adjust the formula accordingly.

10. The component type for input streams is determined

During the migration the assignment for the stages remains and the items of recipe formulas that have an assignment for dependent process elements (formulas that are assigned directly to the recipe). In this case however, using an output/input stream relationship the stages must be connected to each other. Using the assignment of a formula item create the output stream is automatically for a stage and by an input stream item counterbalance during the migration.

Using the method DETERMINE_INP_STREAM_COMP_TYPE a component type is set for this input stream.

The component type "ACT_AGENT" is set by the implementation provided.

By the system the component type of the output stream is set.

11. The specification name, specification type, authorization group, identifier, group, and entry of the inheritance template is determined

Create a new specification of the substance specification category and to the Recipe Development output stream assign it during the migration of reaction formulas with output streams. In this case, to the specification, copy the formula property tree data.

Using the method a name, the specification type, and the authorization group is assigned DETERMINE_SPEC_TYPE_OUT_STREAM. In addition, to copy the property data set the inheritance template that is used. From the internal number range the name is derived if a specification name is not entered.

The internal number range, the specification type "STREAM", and the authorization group "ALL" is used by the implementation provided. As the inheritance template the template "ALL" from the group "EMPTY" is used. In addition, as the identifier use the formula name.

12. For the formula item the assignment of customer-specific fields

The method MAP_RM2RD_CUST_FIELDS can be used for the formula item to transfer values of customer-specific fields.

13. During the migration skip change states that occurred in the past

During the migration if the "Create One Recipe Version" option is selected, from the past up to the day of the migration to a recipe version the system writes the change states during which as change documents the changes between the change states are mapped. To separated recipe versions that lie in the future are written which is stated by the change.

For the relevant amount of change states this may be time intensive, and by using a generic report the change documents are visible only. Use the method SKIP_PAST_CHANGE_STATES because of this, that only the change state is stipulated that is valid on migration day and migrate all future change states.

For the option "Create One Recipe Version”, the implementation provided ensures that migrate all change states

14. The data of the process parameters are converted

  • Within the method CONVERT_PROCESS_PARAM_VALUES transfer the process parameter data and the assignment to the process parameter types.

    The minimum value is transferred by the implementation provided, using the relevant unit, the maximum value, and the target value.
  • With the same ID in Recipe Management and Recipe Development the process parameter type exists which is ensured by the provided implementation.
  • If for the process parameter additional data needs to be stored, the provided implementation of the BAdI should be adjusted and using the classification the data should be saved.
  • Note that in the standard system provide the report /PLMI/RCP_MIGRATION_PPM so that the process parameter master data is migrated.
  • Independent formulas migration
  • From the data of the independent formula a recipe is created during the migration. If independent formulas to recipes have been assigned, with the recipes migrate these, at which point the Recipe Development recipe is a part of the formula data.
  • Use for the BAdI definition /PLMI/EX_RCP_MIG_VISITOR the provided implementation /PLMI/CL_IM_RCPMIG_VISITOR_FRM for the independent formula migration.

The independent formulas data and views are treated as follows:

  • Directly transfer the data of the "Input and Output" view (as much as possible).
  • Listed below is the note the assignment of the formula item fields.
  • If only proportional units (percentages, for example) are used by the formula, with the corresponding unit the quantity of the primary output to the input target quantity is set.
  • Groups are mapped as groups with alternative items with alternative items and material group items.
  • Transfer the alternatives for primary output.

Combine the data of the "I/O Materials" and "I/O Substances" views, at which point which view is the main view can be specified.

For the tab page for basic data the data of the "Header" and "Quantities" views are used, where transfer the authorization groups and the lot size (both from and to).

Set the component type of the output accordingly for reaction formulas (explosion stop).

With the corresponding quantity for evaporation or absorption, add the evaporation specification to the recipe. Accordingly adjust the quantity if in the formula the evaporation specification exists already.

  • As a scrap percentage of the primary output assign other losses.
  • As a logistic quantity of the primary output assign the base quantity.
  • Do not transfer the "Consistent" indicator.

Transfer NAM and the identification type FRML as the description the identifiers for the identification category

The formula and Environment, Health and Safety (EH&S) data of the property tree data such as to a newly created specification copy the scope of application and as a property specification assign to the recipe. For the scope of application entries the first status is set.

Enter the compositions in the formula manually, such as do not migrate composition, ingredients, nutrients, and the data for the key figures view.

The formula item fields assigns

Input items (in brackets the fields of the structure FRMLS_IOT_SCR exist)

Transfer the quantity (COMPTGT), the exception value (EXCVAL), the unit (UNIT), the overrun factor (OVR_FACTOR), and the component type (ROLE).

Transfer the lower limit (COMPLOW) value and the upper limit (COMPUPP) value if the value of the lower limit is smaller than the value of the upper limit. Transfer the operators for the limit values.  Note that negative is the quantity of the secondary output and adjust its limit values accordingly.

Transfer the item number (POSNR) if the value "0001" is not there. Number all the input items again if an input item has the item number "0001. In addition, if an item number is assigned to two different item categories number the items again (for example, secondary output and input substances).

Output item

In the following way the fields assignment and the input item assignment may differ:

  • Set the item number to "0001" of the primary output or of the output stream.
  • Adjust the component type (for example, during reactions).

A recipe is migrated

For the migration of recipes use the implementation /PLMI/CL_IM_RCPMIG_VISITOR_RCP for the BAdI definition /PLMI/EX_RCP_MIG_VISITOR. From the Recipe Management recipe data during the migration, create Recipe Development recipes.

Transfer the description, long text, and the recipe classification.

Transfer the recipe status, the authorization group, the lot size (both from and to), the validity date (both from and to), and for a work breakdown structure (WBS) the assignment element.

Do not transfer the reference language, the responsibility, the reference quantity, and the indicators "Confidential", "Consistent", and "Preferred Recipe". Do not transfer the reason for creation.

  • Transfer as a document assignment the assigned documents (after the release includes documents).
  • Do not transfer the data of the "Replacement" and "Hierarchy" views and the assignment for labels. Refrain from transferring change documents.
  • Copy the property tree data of the recipe and the view data for the scope of application to a specification that the system has created newly and as a property specification assign to the recipe. For the entry for the scope of application set the first status.
  • With item numbers, descriptions, and long texts transfer stages, operations, and actions.

Add a description in the logon language (for example, stage 0010) if a stage, operation, or action does not have a description.

Do not transfer connections between the process elements.

  • With the minimum, maximum, and the target value and the assignment transfer process parameters for the process element. Do not transfer the data of other fields. To an equipment requirement, if a process parameter is assigned; to the parent object of the equipment requirement assign this process parameter. Again provide the item number here.
  • With the long text, description, assignment migrate equipment requirements for the process element, the classification data, and documents.

Copy the item number of the equipment requirement.

Recipe formulas

Migrate the recipe formulas data that are not synchronized like the independent formulas. The process element assignment remains. Using output/input streams the stages are connected since an output item must be there in a Recipe Development stage. By the number of the formula item determine the sequence of these connections.

Do not migrate the synchronized recipe formula data.

Stage formulas

  • Like the independent formulas the stage formula data is migrated.
  • Migrate stream items as such.
  • Convert the output item to an output stream and enter the assignment for the substance and material if a stage formula has a primary output that is not the primary output of the recipe.
  • Convert to a corresponding input stream item if this output is used as an input in a stage.
  • A new specification is created by the system and the data of the property tree is copied if a stage formula is a reaction and has an output stream. In the item of the output stream enter the newly created specifications.

Note that the Recipe Management recipe has either only stage formulas (possibly with synchronized recipe formulas) or only one non-synchronized recipe formula during the migration.

For the option "Create One Recipe Version" documents are changed

During the migration if the option "Create One Recipe Version" is used, the changes between using change documents map the change states. Note that during the migration, for performance reasons the changes may be only broadly understood and because of the data complexity. Therefore, delete the formula items completely at first and add to the empty formula the formula items that are valid on the key date, for example. As a result, create more change documents than are actually necessary.

In Recipe Management lock the RM recipe or independent formula

In Recipe Management if stimulate the migration of a change state of a recipe or of an independent formula, then one cannot change the recipe or independent formula. Set the migration status to "Rejected" or "Start" beforehand if you need to make a change.
As a part of a recipe if migration occurs with independent formulas, because they may be used several times in recipes they are not locked against changes.
Note that if the Recipe Management recipe or the Recipe Management independent formula was migrated the migration status can no longer be changed.

Versions of Migrating recipe

The option "Create One Recipe Version" should be used if the recipe versions need to be migrated. In this case, from the recipe header derive the validity period. See the section "For migration using values set by BAdI" point 4.

Migration additional tools

In the standard system, using the menu for transaction /PLMI/RCP_MIGRATION one can access the additional tools that are provided. A check of the master data, the Customizing, and the migration of the process parameter master data tools are provided. In the system the documentation for these tools can be found.

Note that based on the premise these tools were developed which are used for the BAdIs /PLMI/EX_RCP_MIG_VISITOR and /PLMI/EX_RCP_MIG_VISITOR_OBJ, by the provided implementations and within the master data and within the Customizing check that only subarea.

Note that for all of the recipes and independent formulas the settings are checked by the tools.

Migration technical details

Using the records in the table /PLMI/RCP_MIGRAT, control the migration of a recipe or independent formula. In the table several records for each recipe or independent formula may exist depending on the option that you select to handle the change states. During the migration create these records or adjust and process in chronological order.

Using the parameter IS_MIG_ADMIN of the method INIT_MIGRATION transfer the data of a record to the implementation of the "Visitor" (interface /PLMI/IF_RCP_MIG_VISITOR). The type structure /PLMI/S_RCP_MIG_ADMIN is of the parameter and the listed values for the following fields are transferred:

CHANGE_STATE_TYPE: The following values can exist in the field (constants in the class /PLMI/CL_RCP_MIG_CNTR):
"S": In a sequence of change states, change state first. Set the option "Create One Recipe Version".
"E": In a sequence of change states, change state last. Set the option "Create One Recipe Version".
"M": In a sequence of change states, A change state, which is not the first and not even the last change state. Set the option "Create One Recipe Version".
"O": Only one change state is there. Set the option "Create One Recipe Version".
'': For the migration, use the option "Use Data of Key Date".
PNGUID: Of the recipe Integrated Product and Process Engineering (iPPE) nodes GUID or migrate the independent formula.
AENNR: The number of the change state of the recipe or of the independent formula is changed (may be initial).
FRML_LEVEL: Migrate the view. The following values can be present in the field:
GENERAL_IO: Migrate the "Input and Output" view.
LORS: Migrate the "I/O Substances" view.
LOM: Migrate the "I/O Materials" view.
MADDLOM: In addition to the "I/O Substances" view, migrate the "I/O Materials" view.
For transaction /PLMI/RCP_MIGRATION the value is dependent on the settings on the initial screen.

PNTYPE: Of the migrated object this contains the iPPE node type.
MIG_KEY_DATE: During the migration if the option "Use Data of Key Date" was set which is contained in the key date.
SUBRECN: Of the primary output Internal EH&S key
STATUS: To start the migration, use the migration status. By the domain /PLMI/RCP_MIG_STATUS define the possible values.

Note that the value may exist temporarily only during the simulation of the migration. In this case, for example, only for the actual migration, set the final GUID of the Recipe Development recipe.

To the alternative number and version number of the Recipe Development recipe this behavior also applies, for completed migrations which have final values only of the Recipe Management independent formula or of the Recipe Management recipe.