In PP/DS we have been introduced with a Production Planning Optimization (PPO) functionality for a while. In this blog series we are investigating this tool.
This blog is the last part of my PPO blog series, successor of "Production Planning Optimization (PPO) - Part III" (Production Planning Optimization (PPO) - Part III - SAP Community).
In this part, we are investigating how to execute PPO, what to consider before execution, where to check results, how to evaluate the logs.
PPO execution has its own transaction to run: /N/SAPAPO/PPO_OPT - Production Planning Optimizer Run.
There is a specific heuristic that can be copied as a template to execute PPO within production planning run: SAP_PP_PPO - PP Optimizer.
To make PPO part of production planning run as a step; copy SAP_PP_PPO heuristic, change parameters accordingly, use the new heuristic within one of the steps of production planning run.
Note: In below sections, PPO will be executed via /N/SAPAPO/PPO_OPT transaction.
First remember the selection parameters:
We have:
Note: You can ignore "Settings for DS Optimizer", but keep in mind that you can automatically trigger DS Optimizer right after PP Optimizer; which I am not planning to use or tell. For further investigation please check: Integrating DS Optimizer and PP Optimizer | SAP Help Portal
Set as 000.
Set as SAPALL.
As we know, MRP considers entire time horizon starting from big-bang up to PP/DS horizon. PP/DS horizon is set within the planning version via /N/SAPAPO/MVM transaction or defined separately for each material on material master Advanced Planning tab.
On the other hand; PP Optimizer works within a time window defined.
Then; PPO will consider all requirements before "Planning Start Date" as customer orders on first bucket, and PPO will consider all receipts before "Planning Start Date" as initial stock on first bucket.
Moreover, PPO will not consider any requirement or receipt after "Planning End Date". In other words, PPO is blind beyond the end date.
Note: Do not maintain Planning Start and End dates in the past, since PPO does not perform in the past. But don't worry, since it will consider backlogs anyway, as mentioned above.
Note: Although technically possible, avoid having half periods. If you have daily buckets, start PPO from at least tomorrow; if weekly buckets, start PPO from at least next Monday; if monthly buckets, start PPO from next 1st day of next month. Accordingly, planning end date of PPO should be the last day of related bucket.
Note: PPO can work in sub-daily buckets (shifts) as well; however, I doubt to use it, because customer orders or planned independent requirements are all timed to 00:00:00, which does not reflect exact sub-daily bucket. Therefore; I prefer using daily bucket minimum.
How Should Planning Horizon Be Determined?
In long term; MRP is executed to ensure every material is procured or produced regardless from any constraint, so that long-lead raw materials can be delivered anyway and capacity/production reports can be utilized.
In mid-term; PPO is executed to ensure feasible (constrained) production plan for the preparation of detailed scheduling and stable short-lead time raw materials procurement.
In short-term; detailed scheduling is carried out, production plans are fixed, and finally converted into manufacturing orders. We can call short-term as fixed schedule horizon as well. If there is no fixed schedule, still it is assumed to be 1 day (current day), since the production planner should already have created today's manufacturing orders in advance. Short-term is mainly processed by Gantt Chart (transaction /N/SAPAPO/CDPS0).
The definition of short-term and mid-term varies depending on industry, company process, and design. But in any case, PPO should cover mid-term horizon; which means it should start just 1 day after short-term.
Let's discuss over an example. As a production planner, assume we are working in weekly buckets. Current week was already scheduled and converted into manufacturing orders, last week. This week, we will schedule and fix next week. Except long-lead time raw materials, we have raw materials with planned delivery time up to 3 weeks.
In this case; short-term is week 0 (current week), mid-term is between week 1 (next week) and week 3 (3 weeks later), then comes long-term that starts from week 4 (4 weeks later). Therefore; PPO start date should be next Monday, and end date should be Sunday of 3 weeks later.
How to Segregate PPO and MRP
In order to avoid MRP affect PPO horizon; I suggest defining "Fixing Interval" for each related resource via SAP_DS_03 heuristic, that creates fixing interval for related resources up to end of PPO horizon, so MRP cannot create planned orders interfering PPO horizon.
Before next PPO run, you can delete existing fixing intervals again via SAP_DS_03 heuristic.
Here, the location-products that will subject to PPO is determined. Unincluded location-products will be ignored, so their stock availability or other constraints will not be taken into account.
Here, the profiles defined earlier in customizing is given.
Note: Be aware that PPO only considers ATP categories that are defined in Category Profile. If there is any requirement or receipt, whose ATP category is not defined in the Category Profile, it will be ignored by PPO.
On selection screen of transaction /N/SAPAPO/PPO_OPT, press F8 and execute. Then you will see a log, that lists messages and shows that optimization run ended.
Now you can check Product View (transaction /N/SAPAPO/RRP3) or Receipts View (transaction /N/SAPAPO/RRP4) and see the planned orders created within PPO planning horizon. Based on our customizing setting of PPO Optimization Profile, within PPO horizon, unfirmed planned orders are deleted and replaced with newly created planned orders when needed.
Note: Planned Orders which have setup group/key defined on any operation are created as deallocated.
Since PPO is a periodical planning tool, best way to evaluate the results and work on them is to use Product Planning Table (transaction /N/SAPAPO/PPT1).
Before using Product Planning Table, I suggest maintaining user settings as below.
On selection screen of Product Planning Table (transaction /N/SAPAPO/PPT1), choose menu Settings->User Settings.
Define user settings as seen on screenshots and save:
Mark "Active" checkbox for Receipts as well, on Product 1 tab.
Save the settings.
Call transaction /N/SAPAPO/PPT1 (Product Planning Table).
Maintain selection screen as below:
Execute and you will see a screen with 2 panes:
On the upper pane, you will see the list of resources related to products selected, and each resources capacity utilization for each period.
Select the resource you want to work on, to see relevant products and their production plans loading the resource; then press the "Show Products for Resource" button to fill lower pane.
In the lower pane (Product View Periodic), you can see a periodical representation of each relevant product's requirements, receipts, and available quantities. You can change the quantities in each period below and see the effect on resource utilization above. You can revise production plans like working on an excel sheet.
Note: When double clicked on a cell with quantity, detailed order list will show up, both on Resource View Periodic and Product View Periodic.
Note: Notice that both panes have periods as defined in PPO Time Profile.
If changes are made, save (CTRL+S) the results.
Receipts ending sharp at midnight (00:00:00) or similarly requirements at midnight, all are seen on the former period.
This logic makes sense for receipts, but requirements should belong to latter period.
In order to satisfy this behavior in Product Planning Table, I suggest defining shift/days 1 minute shorter (e.g. 23:59:00 instead of 24:00:00 or 15:59:00 instead of 16:00:00). In order to compensate missing 1 minute, you can shorten on of the breaks 1 minute as well; thus, you will not lose any capacity.
However, this definition is not enough; in addition, you must implement BAdI /SAPAPO/PPT_FLEX_PER, and set EV_ADJUST_SHIFT parameter as 'X' within BUILD_PERIODS method.
Sometimes it may be required to check PPO logs to understand the effects of master data changes, or consistency of master data, or PPO scope, etc.
In such times, a certain PPO Logs transaction can be checked via transaction /N/SAPAPO/PPO_LOG - Production Planning Optimizer Log.
Call the transaction and see the list of PPO runs logged.
Double click on the PPO run to check the logs.
On the left pane you can see the log files. You can double click any item of the list, and you can see the detailed list on the right pane.
The primary log files you need to know are:
In PDS related log files (ET_PRORES and ET_PROMAT) includes capacity consumptions and material quantities based on a quantity called "Typical Lot Size".
Typical Lot Size is calculated for each PDS following below queries:
Typical Lot Size of a PDS can be seen in ET_PROMAT log file, as quantity of header material.
Having all these written and read, hereby, we conclude our PPO series.
I hope you enjoy and benefit from this series.
It was a pleasure for me to share all this content of 4 consecutive blogs covering such a great topic; which have taken almost 1 month to organize entire experience and information, including simultaneous testing.
I cannot wait to meet you with other blogs. Take care.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
9 | |
2 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |