For the QPPD-PP functionalities to be linked in SAP Standard, dependencies must be created and assigned to the routing or BOM. One selection condition and one function each, i.e. a total of 4 objects:

1 - Selection condition on the operation (determines whether the operation is relevant or not)

2 - Function on the operation (writes back the QPPD data)

3 - Selection condition on the parts list component (determines whether the component is relevant or not)

4 - Function on the parts list component (writes back the QPPD data)

In addition to the dependencies, 4 function modules must also be created in the customer namespace. An example implementation is supplied in the function group /SCT/QP_PP.

The function modules or function groups must be created in the customer namespace. The name is user-defined.

1. Create function modules

  1. Transaction SE80

  2. Create function group Z_QPPD_BZW

  3. Create function module Z_QP_PP_CHECK_PLPO

  4. The function modules for dependencies are subject to a predefined signature:

image-20240606-092635.png
  1. For the implementation, see examples in the function group /SCT/QP_PP

This creates the body of the function module for the selection condition in the operation.

Repeat these steps for:

  1. Function at the operation (e.g. Z_QP_PP_SET_PLPO)

  2. Selection condition on the BOM component (Z_QP_PP_CHECK_STPO)

  3. Function on the BOM component (Z_QP_PP_SET_STPO)

2. Create function

  1. Transaction CU65

  2. The function must have the same name as the function module in the previous step

  3. Assign characteristics (the characteristics must be created in advance in transaction CT04)

  4. Enable function (status = 1)

image-20240606-092647.pngimage-20240606-092657.pngimage-20240606-092707.png

Repeat these steps for the 3 remaining functions.

3. Maintaining the relationship:

  1. Transaction CU01

  2. relation:  Z_QPPD_CHECK_PLPO

  3. <Enter>

  4. Description: Selection on the plan

  5. Relationship type: Selection condition

  6. Click on the Dependency editor

  7. The following is entered in the Dependency Editor for the relationship Z_QPPD_CHECK_PLPO:

    PFUNCTION Z_QP_PP_CHECK_PLPO( )

This links the relationship and the function (or the function module).
The code for the other relationships could look as follows (characteristics from CT04 are addressed here, characteristic names are given as examples):

Z_QPPD_SET_PLPO

PFUNCTION Z_QP_PP_SET_PLPO(
plpo_plnkn = MDATA $self.plpo_plnkn,
plpo_vgw01 = $self.plpo_vgw01,
plpo_vge01 = $self.plpo_vge01,
plpo_vgw02 = $self.plpo_vgw02,
plpo_vge02 = $self.plpo_vge02,
plpo_steus = $self.plpo_steus,
plpo_arbid = $self.plpo_arbid,
plpo_vnr = $self.plpo_vnr
)

Z_QPPD_CHECK_STPO

PFUNCTION Z_QP_PP_CHECK_STPO(
stpo_posnr = MDATA $self.stpo_posnr
)

Z_QPPD_SET_STPO

PFUNCTION Z_QP_PP_SET_STPO(
stpo_stlkn = MDATA $self.stpo_stlkn,
stpo_idnrk = $self.stpo_idnrk,
stpo_menge = $self.stpo_menge
)
  1. Enable relationship (status=1)

image-20240606-092718.pngimage-20240606-092727.pngimage-20240606-092735.png

4. Assign relationships

The relationships Z_QPPD_CHECK_PLPO and Z_QP_PP_SET_PLPO must be assigned to all relevant operations of routing using transaction CA02.

The relationships Z_QPPD_CHECK_STPO and Z_QP_PP_SET_STPO must be assigned to all relevant components of a BOM using transaction CS02.

5. Create BADI implementation

Double-click on the newly created enhancement implementation to open the creation dialog for a BADI implementation:

BAdI Implementation

Description

Implementing Class

/SCT/QP_BADI_PP

description

/SCT/ZQP_CL_BADI_PP

image-20240606-092746.png

6. SAP Enhancement is created

image-20240606-092755.png