Skip to Content

apo ppds block planning with PDS - non-configurable products - pds does not get bp class

Nov 03, 2016 at 12:54 PM


avatar image


we use PDS and non-configurable products.

I created the characteristic and assigned to class of class type 18, assigned to organizational area with class 18, followed By classification of the operations in the routings.

then I ciffed the characteristics with another organizational area in the integration model and the characteristic have been ciffed to apo. In apo I created a class of type 400 and assigned these characteristics from r3.all ok.

then created the blocks on the ressources.

and finally I reciffed the pds to apo. but the bp class is not propagated in the PDS. I checked in se18 if the BADI CUSLNTRTO_ADDIN, methode USE_OPERATION_CLASSIFICATION if it is active. there is the parameter EV_TRUE with X. see pics below. is this correct? the method seems to be active. what else might be not ok?

thanks for any hints!

badi.png (20.0 kB)
10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

4 Answers

Best Answer
Pilvi Hyoedynmaa Nov 11, 2016 at 12:09 PM

Hi Tiago,

thanks again for your help!

I do not use classification of work center, according to sap it is not needed for Block Planning.

We reactivated the BADI with the method USE_OPERATION_CLASSIFICATION with parameter EV_TRUE='x'

and now I get the class into PDS in APO.

But now I face the issue that while creating planned orders in product view, the block definitions/intervals are not considered. system places all pl orders on the first pds with the highest prio, even though according to block definition the pl orders should not be created on that pds in that period of time. eg. 15-30.11. pds b (prio 2) with characteristic 10 can run, but pds c (highest prio) with characteristic 20 can run 1-20.12.

according to the block definition the system should place the pl orders on PDS B in the period 15-30.11. and in the period 1-20.12. on the PDS C. Also when I run the ppds optimizer / scheduling heuristic by start time the planned orders are scheduled irrespectively the block intervals.... what could be wrong?

best regards,



Hi Thiago,

thank you.

the issue was that the method USE_OPERATION_CLASSIFICATION was active itself but the badi implementation was we did activate the badi implementation and get the class into pds.

I did not classified the work center in R3!!as you mention in your blog as I did not find it necessary according to sap for block planning setup.

Now I get the BP class into PDS.

But the next issue is that when creating pl orders for a product with all pds classified with the BP class (class type 400 in APO) the system does not consider the block definitions / block periods. Also when I run scheduling heuristic in the graphical planning board, the system does not consider the blocks... despite the blocks defined for the resources and the strategy settings - take BP into account.

I honestly do not what is the reason. In customizing in apo we have CDP. the materials are not configured. so I classified the operations in routing with class type 018, which is assigned to an organizational area. same org area is in apo assigned to class type 400. the characteristics are ciffed to apo using a different org area in integration model and were ciffed to apo, no problem. then class created in apo with class type 400 and the ciffed characteristics. then pb class assigned to ressources, no problem. block definitions created with the characteristics assigned. eg. I say product with pds1 with characteristic B should run 15-30.11. on resource and pds with characteristic C should run on the same resource 1.12-20.12. When I run product heurisctic in product view (heuristic sap_pp_002) all pl orders are placed on a pds with the highest priority. the blocks are not considered. similar case with graphical planning board (both optimizer and heuristic- by start time). the planned orders are created and scheduled without consideration of the blocks. I honestly don't know why.

10 |10000 characters needed characters left characters exceeded
Pilvi Hyoedynmaa Nov 03, 2016 at 04:53 PM

how can I check myself (I have no abap skills) if the method USE_OPERATION_CLASSIFICATION is active with the the parameter EV_TRUE set with X? I asked a colleague/developer to check and he said it is active...(but I am not 100% sure if he really has checked (he is quite busy )

everything else seems to be fine. The class with class type 018 is assigned to the operations in routing along with the characteristics (organizational area is in the class). then I ciffed the characteristics to apo giving another organizational area (which does not contain the class type 018) and the characteristics have been ciffed to apo. then created a new class in apo of class type 400 and added the ciffed characteristics. then assigned the class to a resource (model independent) and defined blocks with characteristics. Followed by block schedule on the resource, in the active version 000. then I tried to cif the pds: integration model only for PDS (I tried cfm1/cfm2/ curto_create and even rimodini) but the PDS were not updated with the BP class... I am not sure where to look. Have the impression that when ciffing the pds cif is not considering the classification of the routings....

I appreciate any hint!

10 |10000 characters needed characters left characters exceeded
Pilvi Hyoedynmaa Nov 04, 2016 at 10:49 AM

I checked if there is BADI implemented using the method USE_OPERATION_CLASSIFICATION and if yes it the parameter EV_TRUE is set with X. I went to se18, entered the BADI CUSLNTRTO_ADDIN and looked where it is used (classes,programes, transactions, BADIs). I found only one BADI implementation (active) CURTO_CLASS_BLOCKPL:

METHOD if_ex_cuslntrto_addin~use_operation_classification . ev_true = 'X'. ENDMETHOD.

but I could not find any program, (any cif program) using this BADI. I checked the program cuslntrto_cif_report (=curto_create) which uses the BADI CUSLNTRTO_ADDIN with method USE_OPERATION_CLASSIFICATION, but there is no parameter EV_TRUE. So I am trying to figure out what has to be done that any of the CIF programs like curto_create or cfm1/cfm2 or rimodini, would read the BADI

CURTO_CLASS_BLOCKPL containing the method USE_OPERATION_CLASSIFICATION with parameter EV_TRUE='x'. Can someone help? thank you in advance!!

10 |10000 characters needed characters left characters exceeded
Tiago Furlanetto
Nov 04, 2016 at 07:23 PM

Hi Pilvi,

Please, make sure that the Valid From date of the Work Center class is earlier than or equal to the Valid From date of the classified operation in the Routing.

I described in this blog post an issue where alternative modes are not integrated to APO due to this. The same behavior also affects transferrence of the block planning class to the PDS.


10 |10000 characters needed characters left characters exceeded