Uploaded by MrRoys2010

1-sp-pp-gold-model-design1-2 compress (1)

advertisement
APO SP/PP Gold
Model
Business Requirements &
Technical Setup
Steven Hoffman / Vincent De Soomer
Table of Contents
0.
Document History & Update rules ............................................................................................... 13
1.
Introduction, overview & goals .................................................................................................... 14
2.
General Business Requirements & SAP Integration ..................................................................... 15
3.
2.1.
SAP Landscape ....................................................................................................................... 15
2.2.
Planning scope....................................................................................................................... 15
2.3.
Time Horizon & buckets ........................................................................................................ 16
2.4.
Units of Measure ................................................................................................................... 16
2.5.
Weekly cycle .......................................................................................................................... 16
PP Business requirements ............................................................................................................ 17
3.1 Category/HUB Planning .............................................................................................................. 18
3.2 Factory Scheduling ...................................................................................................................... 18
3.3. PP Weekly Planning Cycle .......................................................................................................... 19
Housekeeping & Requirement Validation .................................................................................... 19
Plan/Schedule Reconciliation ....................................................................................................... 19
Generate Plan ............................................................................................................................... 20
Plan Evaluation ............................................................................................................................. 20
Capacity Modification ................................................................................................................... 21
Conversion & Scheduling .............................................................................................................. 21
4.
SP Business requirements & Global Customizing settings ........................................................... 23
4.1.
SP Overview ........................................................................................................................... 23
4.2.
Country Fulfilment (CFF) ....................................................................................................... 23
4.3.
Weekly Planning Cycle........................................................................................................... 24
Distribution requirements planning ............................................................................................. 24
Deployment .................................................................................................................................. 26
2
Transport Load Building (TLB)....................................................................................................... 27
5.
4.4.
External Procurement ........................................................................................................... 29
4.5.
Exception Management ........................................................................................................ 29
4.6.
Global Customizing settings .................................................................................................. 29
SP/PP Planning tools ..................................................................................................................... 34
5.1.
Master Planning Object Structures ....................................................................................... 34
9ASNPBAS ..................................................................................................................................... 34
Z9ASNPBS ..................................................................................................................................... 34
5.2.
Planning Areas ....................................................................................................................... 35
Z9ASNP****_GM.......................................................................................................................... 36
Z9ASNP04TS.................................................................................................................................. 38
ZGLOBALSTK ................................................................................................................................. 38
5.3.
Periodicity for Planning Area ................................................................................................. 39
5.4.
Time Bucket Profiles .............................................................................................................. 39
5.5.
Planning Books, Data Views & Macros .................................................................................. 40
Introduction .................................................................................................................................. 40
Navigation, selection management & locking .............................................................................. 43
Key figure explanation & calculation ............................................................................................ 44
Macros: general setup and recommendations ............................................................................ 48
Macros for Product Location views .............................................................................................. 51
Macros for Product/Location Aggregation views ......................................................................... 64
Macros for Capacity Views ........................................................................................................... 76
Macros for Global Stock View....................................................................................................... 79
GM_AGG_CSE/KG/PAL ................................................................................................................. 83
GM_CAPACITY .............................................................................................................................. 85
GM_DEPLOY.................................................................................................................................. 87
GM_DETAIL ................................................................................................................................... 89
3
GM_EXTERNAL.............................................................................................................................. 91
GM_GLOBAL_STK ......................................................................................................................... 92
GM_MANUAL ............................................................................................................................... 93
GM_PP_BJ ..................................................................................................................................... 93
GM_PP_BJ_CSE ............................................................................................................................. 95
GM_SP_BJ ..................................................................................................................................... 96
GM_STK_BAL .............................................................................................................................. 101
GM_TLB_CSE/KG/PAL ................................................................................................................. 103
5.6.
Alert Monitor ....................................................................................................................... 104
5.7.
Flat File Management.......................................................................................................... 107
5.8.
End user access, parameters & initial setup ....................................................................... 108
5.9.
Note Management .............................................................................................................. 109
5.10.
SP background activities .................................................................................................. 111
Background Jobs for Macro Execution ....................................................................................... 111
Copy planning version data ........................................................................................................ 118
Global Stock Update Structure ................................................................................................... 121
Location heuristics ...................................................................................................................... 125
Deployment ................................................................................................................................ 125
Transport Load Building .............................................................................................................. 125
Consistency checks & Creation of Time Series ........................................................................... 126
Use of dynamic & TVAR variables ............................................................................................... 127
User selections in batch jobs ...................................................................................................... 128
5.11.
Release to SNP process ................................................................................................... 128
5.12.
Set up of user background jobs ....................................................................................... 130
5.13.
Events .............................................................................................................................. 131
5.14.
Graphical Scheduling Board ............................................................................................ 132
Overall Configuration.................................................................................................................. 132
4
Time Profile................................................................................................................................. 135
Strategy Profiles.......................................................................................................................... 135
Heuristic Profiles ......................................................................................................................... 136
5.15.
Product Planning Table.................................................................................................... 136
Overall Profile ............................................................................................................................. 136
6.
Interfaces .................................................................................................................................... 138
6.1.
Set up CIF and Dependencies via APO BI ............................................................................ 138
6.2.
CIF Integration Models ........................................................................................................ 142
6.3.
S700 White Space Process................................................................................................... 143
White Space BU Demands .......................................................................................................... 144
Ideal Delivery Offer ..................................................................................................................... 144
Allocation .................................................................................................................................... 144
6.4.
SCORE .................................................................................................................................. 145
Inbound files & processes........................................................................................................... 146
Outbound files & processes........................................................................................................ 146
6.5.
External Demand Configuration .......................................................................................... 147
MPOS & CVC ............................................................................................................................... 147
Planning Area .............................................................................................................................. 148
Planning book ............................................................................................................................. 149
Inbound Data Flow ..................................................................................................................... 150
Process Chain .............................................................................................................................. 152
Local Requirements .................................................................................................................... 154
6.6.
PP GI Chain .......................................................................................................................... 154
6.7.
Outbound to BI .................................................................................................................... 155
Stock projection calculation ....................................................................................................... 156
6.8.
7.
Outbound to ECC table S716 ............................................................................................... 158
Master Data ................................................................................................................................ 160
5
7.1.
Model & Planning versions.................................................................................................. 160
7.2.
Locations ............................................................................................................................. 161
7.3.
Holiday & Factory Calendar ................................................................................................. 162
7.4.
Time Stream ........................................................................................................................ 163
7.5.
Products............................................................................................................................... 164
On ECC side ................................................................................................................................. 165
Product Default Value................................................................................................................. 165
Most important fields & Manual update of master data ........................................................... 167
7.6.
Resources ............................................................................................................................ 172
On ECC Side................................................................................................................................. 172
Most important fields & Manual update of master data in APO ............................................... 174
7.7.
Transportation Lanes........................................................................................................... 174
7.8.
TLB Profile............................................................................................................................ 176
7.9.
Quota Arrangements ........................................................................................................... 177
7.10.
PDS................................................................................................................................... 177
On ECC Side................................................................................................................................. 177
8.
9.
7.11.
APO master data Reporting transactions ........................................................................ 179
7.12.
Queries ............................................................................................................................ 179
Job schedule & logic of sequence ............................................................................................... 180
8.1.
Job Schedule ........................................................................................................................ 180
8.2.
Process Chain setup & purpose ........................................................................................... 180
Developments............................................................................................................................. 185
9.1.
Transactions ............................................................................................................................ 1
ZAPO_BATCHJOB ........................................................................................................................ 185
ZAPO_BATCHJOB_LTD ................................................................................................................ 185
ZAPO_DP_SEL ............................................................................................................................. 185
ZAPO_FCST_DEST ....................................................................................................................... 185
6
ZAPO_JOBREPORT ...................................................................................................................... 185
ZCORCBC01 ................................................................................................................................. 185
ZTLANES ...................................................................................................................................... 185
ZPRODLOC................................................................................................................................... 186
ZOTC_SCHEDDEP ........................................................................................................................ 186
ZAPO_RRP_SNP2PPDS2 .............................................................................................................. 186
ZMTI_APOKG2HR........................................................................................................................ 186
ZAPCBO_SDPOPTLOG ................................................................................................................. 186
ZAPOVENDOR_MD ..................................................................................................................... 186
ZAPO_COPY_PLAN ...................................................................................................................... 187
ZAPO_LOC_PLANNER.................................................................................................................. 187
ZAPO_MULTIMIXRES .................................................................................................................. 187
ZAPO_STOCKUPLOAD ................................................................................................................. 187
ZAPO_STOCK_BALANCING ......................................................................................................... 187
ZAPO_VARIANT_MOD ................................................................................................................ 187
ZAPO_VARIANT_UPD .................................................................................................................. 188
ZAPO_VMIEDI ............................................................................................................................. 188
ZCORSC03390 ............................................................................................................................. 188
ZCORSC03461 ............................................................................................................................. 188
ZIF_CONVERSION........................................................................................................................ 188
ZOTC_APO_IF_IN_OUT ............................................................................................................... 188
ZMM_MAT_MASTER .................................................................................................................. 189
9.2
Tables ...................................................................................................................................... 1
ZAPOCONVERT............................................................................................................................ 189
ZAPOSCHED_DEP ........................................................................................................................ 189
ZAPOVENDOR_MD ..................................................................................................................... 189
ZAPO_CHGPOINT_SL .................................................................................................................. 189
7
ZAPO_LOC_PLANNER.................................................................................................................. 189
ZAPO_MULTIMIXRES .................................................................................................................. 189
ZAP_PA_UOM ............................................................................................................................. 189
ZAP_SDPOPTLOG ........................................................................................................................ 190
ZIF_CONVERSION........................................................................................................................ 190
ZIF_PLANNER .............................................................................................................................. 190
ZIRQREDUCT ............................................................................................................................... 190
ZAPO_DP_SEL ............................................................................................................................. 190
ZBC_CONST ................................................................................................................................. 190
ZCORSC02733_ACT ..................................................................................................................... 190
ZCORSC02733_AUT .................................................................................................................... 190
ZCORSC02733_DEF ..................................................................................................................... 190
ZCORSC02733_HDEF................................................................................................................... 190
ZCORSC02733_TXT ..................................................................................................................... 190
ZCORSC02733_VDEF ................................................................................................................... 191
ZAPO_S700 ................................................................................................................................. 191
9.3
Function Modules................................................................................................................ 191
ZOTC_SCHED_DEP ...................................................................................................................... 191
ZAPO_GET_REDUCED_FCST........................................................................................................ 191
ZAPO_POSRVAPS ........................................................................................................................ 191
Z_APO_BAPI_RESULT_S .............................................................................................................. 192
Z_APO_BAPI_SELECT_GET_ORDID ............................................................................................. 192
Z_BAPI_POSRVAPS_GETLIST3 ..................................................................................................... 192
Z_BAPI_SLSRVAPS_GETLIST2 ...................................................................................................... 192
Z_OTC_COVER_CALC .................................................................................................................. 192
9.4
Reports ................................................................................................................................ 192
ZAPCBOSDPOPTLOG_U............................................................................................................... 192
8
ZAPO_COPYPLAN ........................................................................................................................ 192
ZAPO_MULTIMIXRES_U .............................................................................................................. 193
ZAPO_RRP_SNP2PPDS2 .............................................................................................................. 193
ZAPO_STOCKUPLOAD_U ............................................................................................................ 193
ZAPO_STOCK_BALANCING_R ..................................................................................................... 194
ZAPO_VARIANT_MOD_U ............................................................................................................ 194
ZAPO_VARIANT_UPD_U ............................................................................................................. 194
ZCORSC03390R01 ....................................................................................................................... 194
ZCORSC03461R01 ....................................................................................................................... 195
ZIRQREDUCT_DEL ....................................................................................................................... 195
ZMTI_APOKG2HR_U ................................................................................................................... 195
ZOTC_APO_IF_APO2APO ............................................................................................................ 195
ZOTC_APO_IF_IN_OUT_U........................................................................................................... 196

Score ........................................................................................................................................ 196

S700 (Whitespace)............................................................................................................... 196

Interco Tool ............................................................................................................................. 196

Bertha ...................................................................................................................................... 196
ZOTC_APO_MERGE_DEMERGE_U .............................................................................................. 199
ZOTC_ORDER_PRIORITY_U ......................................................................................................... 199
ZPPDS_MAXCAPA ....................................................................................................................... 199
ZPPDS_MAX_CAPA ..................................................................................................................... 199
ZSLO_ANALYSIS_APO.................................................................................................................. 199
ZXCDPSUSERU02......................................................................................................................... 199
ZXCIFPUB1U15 ............................................................................................................................ 199
ZXCIFUSERU05 ............................................................................................................................ 199
ZXCIFUSERU08 ............................................................................................................................ 199
ZXCIFUSERU09 ............................................................................................................................ 199
9
ZXCIFUSERU15 ............................................................................................................................ 199
ZXCIFUSERU43 ............................................................................................................................ 199
ZAPO_DP_SELECTION_U............................................................................................................. 199
ZAPO_FCST_DESTINATION ......................................................................................................... 200
ZCORCBC001 / ZCORCBC01 ........................................................................................................ 200
ZCORSC02733 ............................................................................................................................. 200
ZCORSC03413O01A .................................................................................................................... 200
9.5
BADI’s .................................................................................................................................. 200
ZAPAPO_PPT_SELECT ................................................................................................................. 200
ZAPAPO_PPT_SELRES ................................................................................................................. 200
ZAPCBO_CUST_VEND ................................................................................................................. 200
ZAPCBO_PROD_DEFAULT ........................................................................................................... 200
ZAPCBO_SDPOPTLOG ................................................................................................................. 200
ZAPO_AM_ALERTLIST ................................................................................................................. 201
ZAPO_CIF_DELTA3 ...................................................................................................................... 201
ZAPO_CRESCIF ............................................................................................................................ 201
ZAPO_PPT_SORT_MAT ............................................................................................................... 201
ZAPO_SAPAPO_CL_EX_CI ........................................................................................................... 201
ZAPO_SDP_INTERACT ................................................................................................................. 201
ZAPO_SDP_SELECTOR ................................................................................................................. 201
ZAPO_SNP_CONV ....................................................................................................................... 202
ZAPO_TLB_DISP_CHG ................................................................................................................. 202
ZBUCKET_RESOURCES ................................................................................................................ 202
ZCDPS_ORDDATA........................................................................................................................ 202
ZCORSC1478 ............................................................................................................................... 203
ZPDS_PPT_MATTEXT .................................................................................................................. 203
ZRECEIPTVIEW_STFAC ................................................................................................................ 203
10
ZSAPAPO_PWB_SOS ................................................................................................................... 203
ZSAPAPO_RRP_SRC_EXIT............................................................................................................ 203
9.6
User exits ............................................................................................................................. 203
ZAPCFO11 ................................................................................................................................... 203
ZAPOCDPS ................................................................................................................................... 203
ZAPOCF03 ................................................................................................................................... 203
ZCFEPI ......................................................................................................................................... 203
ZCFPEP ........................................................................................................................................ 204
ZCIF_INT ...................................................................................................................................... 204
9.7.
10.
Extra fields product master ................................................................................................. 204
SP rollout projects & support topics ....................................................................................... 206
10.1.
Example cutover plan SP ................................................................................................. 206
10.2.
Example system test/health check SP ............................................................................. 206
10.3.
Transition to new GM* Planning books .......................................................................... 206
User Setup Modifications ........................................................................................................... 206
SP Adjustments ........................................................................................................................... 207
PP Adjustments........................................................................................................................... 211
10.4.
Naming conventions for configuration objects ............................................................... 216
10.5.
Transport Guidelines ....................................................................................................... 216
10.6.
Support topics ................................................................................................................. 218
Forecast release errors ............................................................................................................... 218
Network/Location changes......................................................................................................... 219
Batch monitoring: Convert failed steps to successful in process chains .................................... 219
Performance: Process Chain runtime analysis ........................................................................... 220
11
12
0. Document History & Update rules
Content
APO SP/PP Gold Model – Business Requirements & Technical Set up
Update rules
Every time a change is made to SP/PP, it should be documented in this
document. This includes any changes made through the support landscape
or changes due to new rollouts that are modifications to the gold model or
discrepancies with the logic for existing countries, locations or business
processes.
When a change is documented, the important references to related
chapters in the document should be updated. One change might mean
several chapters need updating to keep the document consistent, so it is
recommended to find any existing references to the subject being changed
and make adaptations to all of them.
Created by:
Steven Hoffman
Date:
Vincent De Soomer
Changed by:
Content
updated:
Date:
Changed by:
Content
updated:
Date:
13
10.05.2013
1. Introduction, overview & goals
Mondelez has implemented SAP APO SNP (Supply Network Planning) & PP/DS (Production
Planning/Detailed Scheduling) as general planning tool. Long term goal is to be integrated with SAP
ECC (or R3) and SAP APO DP worldwide. The SP/PP gold model used by Mondelez permits the
planners to fulfil all their activities in this integrated network.
This document describes how the gold model for module SP/PP of SAP planning tool APO is set up. It
explains in detail and logical set up order the different steps that have to be followed and completed
to do the setup. Moreover it also contains the details of differences between the different countries
in case these exist. This has two main goals:
1) Give the support team a well-documented overview of the overall and detailed set up of
SP/PP in general and more specific about the different countries. The basis for the
document is the gold model, but always when needed, the differences in between
different countries are explained in detail. This document therefore provides the support
team all the information they need to easily identify the sources of issues and help and
guide them in finding ways to solve them.
2) Allow the project team to add on new countries easily following the steps as they are
explained in this document. The document provides the necessary information to apply a
“copy-paste” way of working in adding on new countries. If desirable, it is of course
technically perfectly possible to deviate from the core model as it was designed to cover
country specific topics and functionality, in case this change in the process has been
approved by a business decision.
Whenever adaptations or changes are made to the gold model or to the country specific
peculiarities, the responsible persons for the changes should update this document and date the
changes. The same applies to addition to new countries or businesses that are based on this SP/PP
core model. This document will explain in detail the whole set up that is done for the forecasters in
order
to
fulfil
their
daily
processes.
14
2. General Business Requirements & SAP Integration
2.1.
SAP Landscape
The main objective of the integration of SAP ECC with SAP APO is to take advantage of the strong link
between both systems on an operational point of view and the stronger functionality of the APO tool
to fulfil the different processes of supply chain management. To make the integration technically
possible, there’s a need of a well-defined integration of SAP systems in order to ensure a correct and
complete set up of the whole organisation. Mondelez therefore set up a range of development,
testing and production systems interacting with each other:
As well on the APO side as on the ECC side we have a double flow: one for the Project route where
new developments are made and one for the support route. We always have a 1-to-1 connection
between APO and ECC. The related RFC connections exist as well in the BW part of APO as for the
CIF.
2.2.
Planning scope
All finished goods will be in scope for planning in APO. Also, any semi-finished goods that are
transferred between locations planned for in APO will be considered in scope so that we have a
consistent supply planning process. Similarly any WIP that exists for MU to MU relationships is
planned in APO.
15
2.3.
Time Horizon & buckets
In order to optimally use the planning tool we distinguish between planning in the short and long
term. The short term, generally 10 weeks, is made available in days for the first three weeks to be
able to work at a very detailed level. For the long term, which would usually be 104 weeks or 2 years
we stay in weekly buckets as a more granular detail is not needed for proper planning. Secondly
we’re restricted by the impact on performance that would be highly affected by having daily buckets
for the full two years. A lot more storage space would be needed for example. As well the batch run
times would be significantly higher. Neither SP nor PP works with data in the past, so we don’t keep
track of what has happened for time buckets that are over. Snapshots are sent to BI where this
information can be gathered in reports. So generally we will always have two years of data available,
which is a rolling 2 years which means that every week we will cut off the past week and add on a
new week at the end of the horizon.
2.4.
Units of Measure
Generally the base unit of measure used in Mondelez is KG, but there are exceptions. Different
planning areas have been set up, in cases, pallets and kilograms, to allow for planning in different
units of measure. In any case, in any of the planning books it is possible to change the unit of
measure to any other measure that is maintained in the product master data. Storage of
transactional data however is always done in the unit of the planning area being used.
2.5.
Weekly cycle
Mondelez works with a weekly planning cycle in which SP and PP activities are aligned. This cycle
contains the following main steps:
1)
2)
3)
4)
5)
Release forecast: DP activity, see below.
Run Distribution requirements planning: SP activity.
Create production plan: PP activity.
Run deployment: SP activity.
Transport Load Building: SP activity.
A more detailed view of the weekly cycle:
16
Forecast Release
Once a week all forecast is refreshed from DP by deleting the previous forecasted volumes and
releasing the new or updated values. This is done at the start of the weekly cycle on Sunday and
Monday. On Sunday a snapshot is taken of the domestic forecast in DP and this is the forecast that is
sent downstream to SNP for planning as well as to BI for reporting purposes.
On Monday additionally the external or non-domestic demand is refreshed within DP and released in
the afternoon to SNP. This is for technical reasons done together with a new release of the domestic
forecast. End result is a fresh demand ready to be used by SP and PP by Monday late afternoon.
As the smallest granularity in DP is weeks, we somehow need to break down the volumes to days
during the release. It was decided for the first three weeks to have a split of 20% per working day, so
the demands are split out equally over Monday to Friday. When a bank holiday would exist, the
quantity for that day would be assigned proportionally to the other days of that week. A 5-day week
was chosen as Mondelez usually delivers to customers within this window. For all other future
weeks, the forecast is forced to be put on Friday.
3. PP Business requirements
The production planning module used by Mondelez consists of two key aspects: Medium to Long
Term Production Planning and Short Term Finite Scheduling. The medium to long term planning is
generally executed by the Category Planner or HUB Planner, whereas the Factory Scheduler at the
MU executes the Short Term Scheduling function.
17
3.1 Category/HUB Planning
The Category or HUB planner will execute their planning using SNP functionality. This is a cost-based,
MU location planning method that takes into account constraints (available capacity, min run and
incremental runs and materials) during the planning run. The algorithm that is used for this planning
run is the SNP Optimizer. The key aspects of the medium to long term planner are:








Planning is done every week for 104 weeks in weekly buckets.
SNP Planning Books and functionality
SNP Optimizer used to plan production
Local and Network data seen in SNP planning book
Line modeling uses ECC master data
o Constraint Model consists of resources/capacities and family products
o See master data section below for further details
Scheduling horizon flexible
Focus always on MU Demands
Simulation Versions offer “What-If” scenario planning
Key tools used by the Medium to Long Term Production Planner are:





SNP Planning Books with SNP Optimizer to generate plan
General Transactions to check stock, receipt and requirement elements
Alert Monitor to check issues
APO Resources to maintain capacity
Analysis and graphical features to check planning results
3.2 Factory Scheduling
Once the medium to long term plan is created, the feasibility of receipts is checked against factory
constraints and the most cost-effective solution is then scheduled by the factory scheduler using
PPDS functionality.







Short term is scheduled by the factory planner but the total volume is defined by the
category planner.
Short term scheduling manual
Minimum two weeks of orders to be scheduled in system at any time
Quantities converted from the SNP optimizer results and scheduled
Manual solution, no automation nor unique configuration involved
No difference between SNP master data and PPDS master data; both come from ECC via
production versions
Simplistic solution for implementation with ability to add complexity
Key tools used by the Short Term Schedulers are:



Detailed Planning Scheduling Board
Product Planning Table
Alert Monitor and analytical tools
18
3.3. PP Weekly Planning Cycle
Housekeeping & Requirement Validation
o Validation and modification of transactional input parameters
 Description
o Category Planner verifies stock levels
o Adjustments and modifications are made to STRs
o Multi-sourcing decisions, stock transfers and removal of obsolete elements
o Planner uses multi-location planning book to analyse current situation
 Key decision, rational, other options considered
o Use of multi-location planning book replacing the PPT
o Medium to long term production planner able to execute DRP activities
 Input and Output:
o Input
 Stock
 DRP elements calculated by batch job
 Sales orders
o Output
 Accurate stock and requirement elements for Category Planner
Plan/Schedule Reconciliation
o Communication between Finite Scheduler and
 Category Planner
 Description
o Category Planner verifies short term plan with finite scheduler
o Adjustments and modifications are executed as required
o Priorities communicated to Finite Scheduler
o Sign-off to Finite Scheduler also takes place
 Key decision, rational, other options considered
19

o Category planner to decide on quantity values in SNP planning books
o Finite Scheduler will use PPT and planning board to schedule
Input and Output:
o Input
 SNP planned orders
 PPDS scheduled orders for the short term
o Output
 Signed off SNP planned order to be scheduled
 Adjusted short term PPDS communicated to Category Planner
Generate Plan
o Medium to Long term production plan generated
 Description
o Category Planner launches optimizer to generate new plan
o Constraints modelled must be taken into consideration on finished and key semifinished levels
o Costs assigned to products to give prioritization to products
o Products grouped via family products
 Key decision, rational, other options considered
o Optimizer launched from SNP planning books
o Global data analysed in SNP planning books
o Semi-finished goods to be planned if seen as bottleneck and required
o Use of PDSs not PPMs, simulated outputs executed via alternative production
versions
 Input and Output:
o Input
 Transactional requirement objects (STRs, STOs, Sales orders, etc.)
 Short term scheduled PPDS orders
o Output
 Capacity constrained production plan for +4 to +104 weeks
Plan Evaluation
o Medium to Long term production plan evaluated
 Description
o Category Planner analyzes production plan according to parameters
o Modifications/adjustments made to results of plan via manual order creation
o Modifications/adjustments to the input parameters can be made
 Capacity, costs, stock targets or allowed violations
 Key decision, rational, other options considered
o Plan analyzed from SNP planning books not PPT
o Global data analysed
 Input and Output:
o Input
 Capacity constrained production plan for +4 to +104 weeks
20
 Planning parameters
 Available capacity
o Output
 Finalized capacity constrained production plan for +4 to +104 weeks
Capacity Modification
o Medium to Long term capacity adjustments
 Description
o Category Planner allowed to modify the capacity outside of frozen horizon
o Modifications to be made to avoid overstock, meeting network requirements
o Changes made via shift sequences
o Must be communicated and verified with factory scheduler
 Key decision, rational, other options considered
o Capaplan removed for rough cut capacity planning
o Capaplan can be used only in simulation verisons
o Capacity to be maintained in APO
o Shift sequences to be used for medium to long term
o Downtimes used by finite scheduler
 Input and Output:
o Input
 Capacity constrained production plan for +4 to +104 weeks
 Planning parameters
 Available capacity
o Output
 Finalized capacity constrained production plan for +4 to +104 weeks
 Signed off capacity plan for medium to long term
Conversion & Scheduling
o Finite planner SNP order into PPDS orders and schedules
 Description
o Signed off production plan is converted by finite scheduler so scheduling can take
place
o Order split happens if required before conversion
o Daily / Weekly Process Orders (Local Decision)
o Scheduling takes place in Graphical Scheduling Board or PPT in APO
o Sequencing only done by finite scheduler, quantities given by Category Planner
 Key decision, rational, other options considered
o Scheduling carried out in APO, not ECC
 Removes possible production timing conflicts between systems and is
recommended by SAP
 Current functionality
 Possible automation of this process via setup matrixes
 Input and Output:
o Input
21
 Signed off SNP planned orders
o Output
 Scheduled PPDS orders
22
4. SP Business requirements & Global Customizing settings
4.1.
SP Overview
4.2.
Country Fulfilment (CFF)
The CFF planner will execute their planning using SNP functionality. These planners take care of the
flows of goods within the network from the central DC towards satellite DC and customers, in most
cases within a country. They are not responsible for the flow of goods from the MU first leg out,
which is done by the HUB planners. The key aspects for CFF planners are:




Planning is done every week for 104 weeks in weekly buckets and in days in the first 3 weeks.
SNP Planning Books and functionality
Local and Network data seen in SNP planning book
Focus always on Demands inside the network
Key tools used are:



SNP Planning Books with Heuristics and Deployment functionality
General Transactions to check stock, receipt and requirement elements
Alert Monitor to check issues
23

Analysis and graphical features to check planning results
4.3.
Weekly Planning Cycle
The following are the main activities that are repeated on a weekly basis.
Distribution requirements planning
Functionality
APO offers several methods of planning the supply network: a DRP/Deployment model, a cost-based
optimization or order-based CTM logic. It was decided to go for the first option, which is a lot easier
to set up, understand and run. DRP runs a calculation called a heuristic which is a relatively simple
calculation and cannot take account of things like capacity constraints. Therefore at this stage it is
not possible to automatically determine the use of one particular source until available capacity is
used, and then push the overflow to a second source. The SNP optimizer would be required to do
this.
Distribution Requirements Planning (DRP) is the process whereby the product requirements to
satisfy forecast demand at each planned location are calculated, determining the source of supply for
the products, and forwarding the demand to the source location taking account of specified
replenishment parameters. The basic process will take forecast demand at the product-location as
the starting point. It will calculate the net requirements taking account of on-hand stock and
planned receipts, any safety stock or maximum stock parameters, and calculate projected
requirements. These requirements are then aggregated taking any lot sizing rules into consideration
and a requisition is planned to the source location. It will also calculate any dependent demand from
demand supplied using sub-contract process with vendors.
The source of supply is determined via the Purchase Information Records (PIR) in ECC that are
transferred via the CIF and converted into transportation lanes on the APO side. Optionally
procurement priority or quota arrangements can be used where multiple sources are to be used.
The output of the DRP process is either stock transfer requisitions (where product is sourced from
another Mondelez location) or purchase requisitions (where sourced externally) between the
destination and source locations. These outputs lead onto production planning, either internal or
external, to meet the distribution requirements. These STR documents are NOT replicated back to
ECC through the CIF since they do not provide a consistent view of stock projection. They represent
demand requirements and not the agreed supply and as such could present a misleading view of
receipts that could lead to an order being confirmed that cannot later be fulfilled when the
deployment provides the real picture.
The main DRP run will use the SNP heuristic to calculate distribution requirements. However there
will also be a specific run to calculate sub-contract requirements and resulting dependent demand.
This will use the PPDS heuristic in order to create sub-contract purchase requisitions with reference
to contracts (as a requirement of the European EOC model).
The DRP will generally be run as a scheduled background job that has no user involvement. This is
partly due to run times and process timing and partly because the processing of locations needs to
24
be run in specific sequences to calculate the correct results as the DRP is repeated for each location.
Manual planning would be by exception only and can only be done in specific planning books.
Sales orders in a location will consume the forecast. If sales quantity exceeds forecast then sales is
taken as demand. Consumption will be applied 5 days backwards then 4 days forwards. The
intention being to consume forecast in current week. If and when SAP provides functionality to limit
consumption to within a time bucket this will be tested and might be applied at a weekly level to
maintain alignment with the forecast.
The DRP calculation will place demand on external vendor locations where product is sourced from a
3rd party. The requirements will be available for download from these locations to send to the
vendor. 4 planning scenarios will be covered
-
-
-
-
Full service outsource (Product is bought as a traded good from the vendor. All planning
is done by the vendor and materials purchased by the vendor, either from Mondelez or
from other vendors specified by Mondelez)
Simple sub-contract process (some or all materials are provided to the vendor and the
vendor is paid a service charge to convert to finished goods. Infinite capacity and fixed
lead time is assumed)
Sub-contract process with receipt of shipment plan (as above but vendors shipment plan
is loaded back into APO, overwriting the purchase requisitions, so that Mondelez
supplied component planning can be aligned with the vendor’s production plan)
Sub-contract process with full capacity planning (all capacity planning and potentially
material management is done by Mondelez. Vendor is paid a service charge for
conversion.)
After the DRP run we will run a stock balancing report. The report can be run in update mode to
automatically plan transfers, or simulation mode where the planner reviews the log and selects the
transfers to be auctioned. The second is recommended and would be run after the DRP calculation.
The planner can then decide whether to execute the planned DRP or change to a recommended
balancing transfer. The report compares confirmed demands with confirmed receipts and checks if
anything is left to balance and shift to another location if needed.
Stock coverage is always calculated using a 7 day week to ensure that the calculation is consistent for
all locations to avoid any communication errors or wrong assumptions.
It is also possible to specify whether new products being introduced are interchangeable with old
ones being removed, and how these products should interact with each other, for example in how
existing stocks of the old product should be treated, can they be used up or must new stock be
made.
In case forecast is placed directly on the MU, which could be the case if there are direct plant
shipments from a plant to a customer, this forecast would be taken into account on top of the
distribution demands.
This process runs first of all on a daily basis for the short term only (the first three weeks, but this
might differ from business to business and regarding frozen production horizons), to take into
account possible short term changes required in just-in-time supply chain with big volumes of sales
orders. A stock transfer horizon from 1 day might be set to avoid stock transfers to be planned for
25
the current day. On Monday and Tuesday evening we run the same process for the long term, the full
104 weeks. This will allow production planning to see the long term requirements.
Process
1) Forecast has been released, dependent demands are calculated and stock levels are up to
date.
2) The relevant product master data and transportation lanes are maintained. Safety stock rules
are set and quota arrangements defined where needed.
3) The calculation of the net requirements is done through the heuristics.
4) The planner performs exception management where needed manually.
5) The output is a set of planned Stock Transfer Requisitions. These are not sent to ECC as they
are not a real picture of what will be transferred. If volumes are sourced externally, we will
see Purchase Requisitions. On a MU planned in APO we will see Planned Orders.
Stock Balancing
Stock balancing may be used in countries that have multiple DC’s storing the same products. It does
not run across countries. Stock balancing can run in simulation or update mode but simulation mode
will be the default so that it is the planner who decides whether the movement takes place. It is run
after the DRP in order to recommend movements that DRP cannot satisfy from the MU, or to replace
movements from a source location by transfer of excess stock from another DC.
Deployment
Functionality
APO offers two methods of planning the supply network – a DRP/Deployment model or cost-based
optimization. It was decided to go for the first option, which is a lot easier to set up, understand and
run. Deployment is the process whereby the available stock and (if included) the planned receipts at
a location are distributed to other locations so as to best meet the distribution demand calculated in
the DRP run. Once deployment has run the planner will analyse any exceptions requiring attention
that are highlighted by alerts. Some exceptions may require escalation in order to resolve them. Any
resulting changes will be manually made by the planner.
The output of the deployment process is confirmed stock transfer requisitions between the
destination and source locations. These requisitions are replicated back to ECC through the CIF so
that a consistent view of stock projection is available in the stock requirements list.
The deployment will generally be run as a scheduled background job that has no user involvement.
This is partly due to run times and process timing and partly because the processing of locations
needs to be run in specific sequences to calculate the correct results as the deployment is repeated
for each location. Manual planning would be by exception only and can only be done in specific
planning books. As the deployment results replace the original heuristics results, we distinguish
between a short and long term deployment process, where the long term process is not performed
in the version with live data. Reason for this is to allow Production Planning to always work with the
long term heuristics results during all week. Another advantage rather than using simulation versions
for deployment or production planning only is that both live and long term deployment version
26
contain the full set of transactional data. The short term deployment runs on a daily basis and is
logically linked to the daily DRP.
The company policy is to push all manufactured stock from a manufacturing unit to the BU’s that use
the stock. Where the BU has multiple DC’s serviced from a central DC the satellite DC’s will pull stock
from the central DC. Whilst this is the general policy, exceptions to this rule are allowed where there
are good business reasons to do so. Where the stock to be deployed needs to be allocated across
DC’s this will be done based on a fair share rule. The fair share will be done proportionally based on
the distribution demand. The results of this can be manually overwritten if wanted, or steered by
setting up quota arrangements. The quantity that is available to be deployed is the combination of
Unrestricted Stock and Production Receipts. As well it can include Quality Inspection Stock if it can be
assumed that this stock will pass the inspection at the appropriate time.
It is possible to specify whether new products being introduced are interchangeable with old ones
being removed, and how these products should interact with each other, for example in how existing
stocks of the old product should be treated, can they be used up or must new stock be made.
A stock transfer horizon of 1 day could be set so that the system does not schedule Planned STRs on
current day but only as of Day+1. Depending on the businesses we might want to be able to ship the
same day D0, in this case a master data change (Stock Transfer Horizon) will be enough to allow the
system to automatically generate shipments the same day. There is also “Deployment by Shift”
functionality available which allows considering a part of today’s production for today’s deployment
and the rest for tomorrow, without changing the Stock Transfer Horizon.
Process
6) Distribution Demands were calculated by the Heuristics, production is planned and stock
figures are available.
7) The relevant product master data and transportation lanes are maintained
8) The calculation of the deployment volumes is done, fair share rules are applied if needed
9) The planner performs exception management where needed manually.
10) The output is a set of confirmed Stock Transfer Requisitions. These are sent to ECC for stock
projection purposes.
Transport Load Building (TLB)
Functionality
TLB works with the output of deployment (confirmed stock transfer requisitions) and groups them
appropriately in order to create stock transfer orders. The SAP document types used for the transfer
can be different, depending on legal assignments of sending and receiving Location. The correct
document type is determined when the STO is published back to ECC. This will create an STO
between plants that are on the ECC system or sales orders if to an external party.
The Transport Load Builder (TLB) is used to group transport loads for each means of transport whilst
ensuring that the capacity of the means of transport is utilized as much as possible. The main aim of
TLB planning is the building of transport loads that are within the parameter limits defined by the
user. The way in which the loads are created is governed by the TLB profiles that are created by the
27
user, where you can define upper and lower limits for the standard parameters weight, volume &
pallet positions.
There are some limitations with the standard TLB functionality in APO. The TLB profile will allow you
to state how many pallets of the same product can be stacked on top of each other. However, it
cannot determine when one product may be stacked on top of another in a truck so it cannot
optimize truck usage with multiple products on a delivery. As well, it cannot plan multiple deliveries
for a single truck.
Process
1) A relevant TLB Profile must have been setup.
2) TLB is run in the background or manually in the planning book. Even if it is run in the
background, the user should interactively check the results.
3) The planner must select the orders that are to be sent to ECC and trigger the publishing of
the TLB results manually from the planning book. Up until the point that it is published to
ECC the STO can be changed in APO. After this point it can only be changed in ECC.
Customizing settings
1) TLB Basic Settings: This can be found under SPRO->Advanced Planning and Optimization>Supply Chain Planning-> Supply Network Planning->Make TLB Basic Settings. Here we can
define different profiles related to the TLB run. Currently just one profile is setup and used.
2) Display of parameters in interactive TLB: This can be found under SPRO->Advanced Planning
and Optimization->Supply Chain Planning-> Supply Network Planning->Change Display of
Parameters in Interactive TLB. Here we define which fields are displayed in interactive TLB
planning in addition to the standard parameters defined in the TLB profile.
28
4.4.
External Procurement
In case stock transfers resulting from DRP or deployment that are requested from vendors are
created as purchase requisitions which in some cases are followed by a BOM explosion on the
Vendor creating dependent demand as sub-contract requirements on the supplying plant which
might again be planned in APO.
Two main scenarios exist:
1) Co-packing: This is the packing or reconfiguration of consumer units or SKU’s into new
finished products, where the co-packer has no direct contact with the “exposed” product.
Mondelez owned finished goods components are provided to the co-packer who is buying
and calling-off packaging material.
2) Co-manufacturing: This is the manufacturing of Mondelez branded finished products in a
location outside of its manufacturing network, where the supplier has direct contact with the
“exposed” product. All external manufacturers are working under a “full service” agreement,
buying all raw, semi-finished and packaging materials used for the production.
Technically in APO there is no difference between both options, it will depend on the specific
configuration and business set up of how this will be modeled in each case.
4.5.
Exception Management
The planner will review alerts generated from the planning process and will review the plan for the
product locations concerned. Queries may need to be referred to the HUB planner. Manual
adjustments can be made to improve the plan or to implement allocation guidelines specified by the
HUB planner. Existing alerts check for situations of too low/high coverage, stock outs or fair share
deployment alerts.
4.6.
Global Customizing settings
A few settings in customizing are needed for the system to work and decide how specific data is
treated. Here we give a short overview of these settings, of what they do and where they can be
found.
Global SNP Settings
This can be found under SPRO->Advanced Planning and Optimization->Supply Chain Planning->
Supply Network Planning->Basic Settings->Maintain Global SNP Settings. Here we can define
29
different profiles of which one is always active interactively and the others can potentially be used in
batch. However, we currently just use one profile for both cases: “KF1”.
Transfer to OLTP systems
This can be found under SPRO->Advanced Planning and Optimization->Supply Chain Planning->
Supply Network Planning->Basic Settings->Configure Transfer to OLTP systems. Here we decide how
orders are created, changed and transferred to OLTP systems, like ECC. The distinction is made
between VMI and non-VMI processes.
30
Requirement Strategy Z4
This can be found under SPRO->Advanced Planning and Optimization->Supply Chain Planning->
Demand Planning->Basic Settings->Consumption->Specify Requirements Strategies. Strategy Z4 was
created which maps the same one in ECC.
Use of Number Range
This can be found under SPRO->Advanced Planning and Optimization->Supply Chain Planning->
Supply Network Planning->Basic Settings->Set Use of Number Ranges for SNP. This is left as standard.
Number range for orders
This can be found under SPRO->Advanced Planning and Optimization->Supply Chain Planning->
Supply Network Planning->Basic Settings->Maintain Number Ranges for Orders. Range 01 is used for
SNP, whereas range 02 is used for PPDS.
31
Activate Extended Scheduling
This can be found under SPRO->Advanced Planning and Optimization->Supply Chain Planning->
Supply Network Planning->Vendor-Managed Inventory->Activate Extended Scheduling. If this flag
would be set, ECC would not be rescheduling the Sales orders generated by APO.
Suppress Rescheduling of Stock Transport Orders in Target System
This can be found under SPRO->Integration with SAP Components->Integration via APO Core
Interface-> Application-Specific Settings and Enhancements->Settings and Enhancements for External
Procurement->Purchase Orders, Purchase Requisitions, Schedule Lines, Shipping Not->Outbound
processing-> Suppress Rescheduling of Stock Transport Orders in Target System. When flagged, the
target system does not reschedule the stock transport orders transferred from the source system,
but instead adopts the dates/times from the source system. In this way, the source and target
systems contain consistent dates/times.
Dimensions for Units of Measure
This can be found under SPRO->SAP NetWeaver->General Settings->Check Units of Measure. Under
Dimensions, ZPAL was maintained which was required to be able to make a standard conversion
from PAL to 33P and 66P without having to create and maintain these UOM in the product master.
32
33
5. SP/PP Planning tools
This chapter will guide us through the different steps that have to be taken to set up the Gold model
for SP. It explains all these steps in a logic and chronological order. Moreover it covers not only how
to set it up but also the reasons why specific options or functionality is used or not used. As there are
a lot of interdependencies in the system, we have always tried to make references to other chapters
or other subtitles in this chapter in order to keep a complete overview. Important remarks are made
where needed. They have to be taken into account during the building of SP or when using the
system. On top of that we always indicate the different naming and details of objects, jobs and
variants.
5.1.
Master Planning Object Structures
9ASNPBAS
The master planning object structure (MPOS) contains all the characteristics for a planning area
where you can plan and save data for (/SAPAPO/MSDP_ADMIN). For the module of SNP, SAP
provided a standard MPOS that should be always be used and never be changed: 9ASNPBAS. Inside
we can distinguish 6 characteristics:
Apart from the characteristics, we have a few standard navigational attributes which can be used
during planning, navigation and selection. They are listed here and indicate the characteristic they
are depending on. Other than the characteristics they don’t have to be filled and/or used.
Z9ASNPBS
This MPOS is used specifically by the ZGLOBALSTK planning area for the Global Stock Planning Books.
As the objective of this planning area is to see an aggregated location data for multiple products,
there is only one single characteristic that the MPOS contains: ZPPMAT
34
Along with the characteristic we use two main navigational characteristics in the planning book:
ZPPFAM and ZPPXPLNT. The update of these navigational attributes to the ZPPMAT characteristics as
well as the CVC generation of this MPOS is executed via the MD APO PP CVC GEN process chain (see
Process Chain explanation below for further details).
5.2.
Planning Areas
Where the Master Planning Object Structure defines the planning levels, the planning area is the
collection of key figures that will be used in planning. A planning area is always linked to one MPOS,
in the case of SP this is 9ASNPBAS for the different planning areas set up, and 1 storage bucket
profile which is always 9ASNP. Key figures are created as Info Objects in BW, just as the
characteristics in the MPOS. These usually are standard objects that generally start with 9A*. If we
have customized objects they would starts with Z* or C_*.
Note: When creating key figures you will need to take a few decisions. If the Info Object is created from scratch
the system asks you if you want to set it up as a BW or APO Info Object. You should usually choose APO (this
impacts fixing for example, see further). Then make sure you select the right data type, a volume is not the
same as a percentage for example.
Key figures in the SNP planning areas have the ability to both store data in the so-called time series,
which can be thought off as cells containing information at the lowest CVC level, or alternatively
present data from ATP categories that exist in liveCache.
ATP category key figures or liveCache key figures are defined in the planning area and will present
the data according to the category groups assigned to them. The category groups can contain single
or multiple ATP categories which represent specific transactional elements that exist in liveCache.
These transactional elements can come from APO generated elements such as forecast (FA), SNP
Planned Orders (EE) or Planned Distribution Receipts (AG) and also from ECC transactional elements
via the CIF, such as Unrestricted Stock (CC), Sales Orders (BM), or a Purchase Order (BH).
Time series key figures are dependent on the storage bucket profile to define the granularity of the
data stored. In the planning area we store the so-called time series which can be thought of as cells
containing information at the lowest CVC level, the storage bucket profile and every key figure. These
time series have to be updated according to changes in one of these three fields and are stored in
liveCache.
The third tab allows you to pull in key figures from the available existing set of key figures in BW. It
also lets you specify a whole bunch of key figure settings of which the following the most important
ones for SNP:
-
-
-
Technical names & descriptions (see planning books for their individual use).
Semantics - 001 = Time series quantity; 000 = liveCache Quantity
Key figure function – This defines how the key figure is to be used in the internal programing of
the APO algorithms and coding. For example the Safety Day's Supply (9ASVTTY) key figure has the
Function 3005 which then allows the key figure to be used in the Safety Stock calculation macros
and inputs into other APO functions.
Category Group – defines which elements are seen in the key figure. The group allows for display
of specific elements against a particular key figure
Category – defines which element is created when a value is entered manually.
Decimal places – the number of decimals that are allowed for a key figure when shown
Unit of Measure - if this is set key figures are automatically shown in their base unit of measure as
defined in the product master. Time series are still saved in the unit of measure of the planning
area though.
Z9ASNP****_GM
When managing the Planning Area in (/SAPAPO/MSDP_ADMIN), apart from the MPOS and storage
bucket profile, we need to indicate a base unit of measure, for SNP we have three basic units of
measure that can be
used; KG, PAL, and CSE.
This means that all data
will always be stored in
one of these Units of
Measure
with
3
decimals, also when
you’re working with
other units of measure
in the planning screen.
As DB Connection we
standard use LCA, this
refers to the liveCache
connection.
In the embedded excel
you will find the complete list of key figures for each of the three Gold Model
Planning Areas along with their details into how they have been configured. The
unique difference in the configuration of all three of the
planning areas is in the PAL planning area, where the
Distribution Demand planned key figure (9ADMDDI) has
been assigned the ZD1 category group to prevent the
inclusion of Distribution Demand MRP Area from being
36
GM_PA_FINAL.xlsx
included. This was retained as a change to this configuration would result in an extensive rework of
the deployment macro which is run in this planning area.
Another feature of the SNP
Planning areas is the
Aggregates that are used to
present the data. Each
aggregate will allow specific
objects from being loaded
into the data views. For
each key figure that is to be
checked against a particular
object it is crucial to ensure
that it has been assigned to
one of the planning area
aggregates, otherwise when loading an object into the data view and error will occur.
In the embedded excel above which contains the planning area key figure definition you will notice
that each key figure has its unique definition according to the aggregate to which it has been
assigned. This configuration is the core structure to the way data is presented against the objects
that have been loaded into the data views.
A last important part defined
in the planning area is the way
key figure data is aggregated
and disaggregated on a
structural basis and on a time
basis. Every time series key
figure receives a particular set
of rules that are automatically
taken into account when
working with time series key
figures in the SNP planning
books. These rules are key to
the correct behaviour of the
system and allow data
maintenance at different levels. Time disaggregation refers to the way data is broken down when
entered or changed in aggregated time buckets (like months) to the storage buckets. Structural
disaggregation defines the rules for the break-down to CVC level from any other level or grouping of
CVC.
Note: The SNP planning areas are updated and initialized every night. We will always have 35 days in the past
and 850 days in the future. Therefore they have a rolling horizon.
To be able to create time series, we need to use a planning version (/SAPAPO/MVM). For SNP we
will always use version 000, which is the active version. In order to allow for users to test scenarios
and check previous data that was in the system we also activate the planning areas for the DAILY and
37
WEEKLY planning versions. The DAILY version copy is taken every morning and is immediately
followed by the planning area activation steps. The WEEKLY copy starts immediately after the
Monday night heuristics job finishes which sends the start trigger BI_IDO for the WEEKLY job to start.
Job details: The time series initialization runs in job EU_AP-APO_SEUXAP0116 for the DAILY copy and
initialization. EU_AP-APO_SEUXAP0107 runs for the WEEKLY copy and initialization. EU_APAPO_SEUXAP0085 is for legacy CS planning area and EU_AP-APO_SEUXAP0087 is for the legacy KG
planning area.
Linked planning books:
-
Z9ASNP04CS_GM : GM_AGG_CSE, GM_PP_BJ_CSE, GM_TLB_CSE
Z9ASNP04KG_GM: GM_AGG_KG, GM_CAPACITY, GM_DETAIL, GM_MANUAL,
GM_TLB_KG
Z9ASNP04PAL_GM: GM_AGG_PAL, GM_DEPLOY, GM_EXTERNAL, GM_SP_BJ,
GM_STK_BAL, GM_TLB_PAL, ZZ_ROOT
Z9ASNP04TS
The Time Series planning area is designed to
mitigate locking issues and allow for simpler
support for the Global Stock planning area as
we copy data from liveCache key figures into
Time Series key figures. Once the liveCache
key figures have been copied into the Time
Series key figures a TSCOPY can be executed
to copy the data at each product location
level into the ZGLOBALSTK planning area,
which only contains a single product
characteristic. This allows for aggregated
location data to be analysed for multiple products without excess macros resulting in a higher
performance.
The time series planning area contains the same basic structure as the Z9ASNP04KG_GM structure
however there are many additional key figures and as well the data storage definition is different.
The Z_9ASNP_BI storage bucket profile that is assigned only allows for data storage in weekly
buckets.
The additional time series key figures that exist in the TS Planning area can
also be used for future BI extracts to allow for clear data extracts and
reconciliations between BI and APO, however currently there is no BI extract
that is using the TS planning areas. For the complete configuration of the TS
planning area please check the embedded excel object.
Linked planning books: GM_PP_BJ
ZGLOBALSTK
38
GM_TS_PA_FINAL.xl
sx
The Global Stock Planning area is directly dependent on the
above mentioned TS planning area from which the data is copied.
This planning area only contains the product characteristic and
therefore shows aggregated location data once the TSCOPY
program populates this planning area. The MPOS that is used in
this planning area is Z9ASNPBS. Data that is populated in this
planning area can only be seen in weeks as the storage bucket
profile only allows for data to be saved in weeks. Changes to
months or days in the data views is not possible as days are not
allowed in the storage bucket profile.
All key figures that exist in this planning area are time series key figures and in
general this planning area is seen as a demand planning type planning area. None
of the time series key figures can be directly populated in any of the planning GM_GS_PA_FINAL.xl
sx
books of this planning area and data can only come from TSCOPY jobs that source
the data from the Z9ASNP04TS planning area. As no data can be directly maintained in this planning
area and as there is only one single characteristic that is contained in the MPOS, aggregation
configuration is not required. The embedded excel shows the details of the key figures that exist in
this planning area.
Linked planning books: GM_GLOBAL_STK
5.3.
Periodicity for Planning Area
The periodicity of a planning area defines the storage bucket profile. Based on a specific time stream
(with working days and holidays), and depending on what time characteristics you choose, the
system creates buckets to save the data in (/SAPAPO/TR32). In SP we use the standard profile that
allows saving time series and liveCache elements in days and weeks.
Note: It is not possible to define a data view in a planning book using this storage bucket profile, so if required
a time bucket profile with the same settings would need to be created to achieve this (see next paragraph).
Note: If days are not defined in the storage bucket profile it will not be possible to covert the period settings in
the planning books to months, days or yearly buckets.
5.4.
Time Bucket Profiles
39
To be able to show data in the planning books, we need to define time bucket profiles
(/SAPAPO/TR30). These profiles gather the saved data from the storage bucket profile and group the
data into the defined time buckets and are necessary to be able to create data views. Three
examples are displayed to show how the time buckets work.
The basis for using a 21 day short term daily horizon is
due to the demand planning demand being released in
daily buckets in the short term. For this reason we need
to have the most accurate results from heuristics and
deployment
using
this
daily
granularity.

C_104_WEEKS – used in all LT books as well as
the global stock view books. The presentation
of the data will be all in weeks and for the full 104 weeks.

Z_21_DAYS_10_WEEKS – for most ST books this view is used. Shows the first three weeks in
days and then 10 weeks in weekly buckets

Z_21_DAYS_101_WEEKS – this is specific for the
heuristics based planning views ST PRODLOC and
for the background job data views. This will allow
for a
full
hori
zon to be planned properly using daily buckets
in the short term and weekly in the longer
term.
 Z_84_DAYS_92_WEEKS – this definition of
periodicities is unique to the Chinese optimizer requirement to run the first twelve weeks in
days and the remaining horizon in weeks. This is assigned only to the GM_PP_BJ_CSE - 01 ST
PRODLOC planning book.
5.5.
Planning Books, Data Views & Macros
Introduction
The planners will spend most of their time in APO in the planning books & data views. A planning
book defines the content and the layout of a screen in interactive planning and is based on a
planning area. In the planning book you indicate which characteristics & key figures will be available
(tab 2 and 3) and if it’s possible to activate SNP specific processes like Deployment for example. (tab
1) (/SAPAPO/SDP8B).
40
41
Furthermore you will be able to indicate and change specific key figure descriptions and attributes
(tab 4). In addition to this the possibility exists to create auxiliary key figures. These can be displayed
in the screens and will have to be populated by macros. In general they are used for displaying and
ergonomic purposes. Their content won’t be saved though, in contrary to the key figures defined in
the planning area.
The last two tabs define the data views. There can be more than one data view per planning book. A
data view narrows down the information available in the planning book by specifying for which
horizon the data will be displayed, from when the data will be modifiable and what type of time
bucket will be used.
Apart from that you define which ones from the available key figures in the planning book will be
shown and in which order in the last tab. Moreover, if you go to Edit in transaction /SAPAPO/SDP8B
for a specific data view, you will be able to set up the whole layout: grouping or hiding of rows,
background and foreground colours, the sizing of the length and width of columns and rows, the
number of decimal places, the showing of specific icons, making rows available for input, or only for
output…
Note: It is important to firstly indicate which rows are available only for output (as we don’t want the
user to touch any line in the screen). Once this is done, we can continue with the further layout. If we
would select the background colour first, sometimes the system doesn’t take into account are
changes for input and output.
Navigation, selection management & locking
We will give a short overview of the most used general functionality of the interactive planning
screen (/SAPAPO/SDP94) as it is the most important transaction for the forecasters.
1) General options:
-
: switch the selection pane on or off to be able to show more data on the screen
-
: you are working in change mode, clicking this icon will lead you to display mode
-
: you are working in display mode, clicking this icon will lead you to change mode
-
: switch on TLB view (only available in specific views)
-
: switch header for navigation after loading a selection on or off

: Change time buckets (not for SNP planning areas)

: Modify set up of header
: refresh data
-
: go to user settings: Here you can specify per selection to hide key figures, specify another unit of
measure than the standard KG, use a specific drilldown or pivot sorting (of key figures and/or
characteristics), plus some more attributes. The option to load selection data automatically is often
used and will load whenever you select the specific selection. If you don’t select this, you will still need
to select a selection first and afterwards load it. Also useful is the option to display notes as quick info,
which will display the description of a note if you hold your mouse on the cell of the note.
2) Selection options (see below):
-
-
: open selection window


3)
4)
5)
6)
: save selection. This will make your own specific selection available in the future.
Show = if you select “APO Location Product”, the selection will show all Location
Products for the selection criteria you give
 Conditions = here you specify for any characteristic the limitations you want to see
 Example: show = APO Location Products / Condition = APO Product = 32115 => This will
show all Location Products for 32115.
 No real naming convention for selections exist, except that any background Job
selections should start with ZZBATCH_XX_Y* (where XX is the country code & the
optional value Y, the digit used for the specified product category in case the selection is
specific to the category. This should be the same digit as the one used in the SNP Planner
setup).
Selection profile: The popup allows you to drag and drop the selection you want to use to your user
ID.
Planning book: Select the planning book and data view to be used.
Macros: Here you can see and launch the different macros specified in the data view. As well which
macros are default, level change, start or exit.
Planning screen options:
-
: load data
: switch to design of the layout of the data view
: switch from table to graphic
: save changes made to the graph
43
-
: switch on/off graph settings
-
: Distribution function to make massive changes to key figures
-
: download screen to Excel
-
: upload screen from Excel
-
: display/ refresh alerts
-
/
-
: alert monitor on and off
: change from absolute values to percentages
: key figure selection
-
: Location Heuristics (only available in specific views)
-
: Deployment (only available in specific views)
-
: Optimizer (only available in specific views)
: Deployment settings (only available in specific views)
7) Right click cell on the top left of the table:
switch columns/rows, pivot sorting & change of unit measure
8) Right click range of cells:
calculate total or average
display and create notes (see 3.9)
9) Menus
Go to -> Lock entries: This will show who is in what selection of the planning area (same as SM12,
in SM04 you could kick out users if needed)
Settings -> Row totals: Gives several options to calculate totals
Key figure explanation & calculation
The key figures specified in the planning area will be used in one or more planning books. Moreover
auxiliary key figures will be created in the planning books as stated before. Below you can find an
overview of the key figures used explaining their general meaning and purpose. In case a calculation
or use needs more specific explanation, you can find it in the explanation of the planning book where
it is used or calculated. Only few of the key figures are editable in the planning books, if they are it is
specified below. To know in which planning books they are used, please check per planning book.
Any key figures in the planning area but not in this list are not available in any planning book. Some
of them are used in background jobs however; in that case it is explained in the related business
process. If not, they are not used at all currently.
Key figure
Technical name
Content
Total Demand
DMDTO
Sum of all dynamic
demand elements
Sum of all dynamic
demand elements
except results from
heuristics
DEP
Total
(Confirmed)
demand
Planning book KF
Used by
44
Calculation/
Source
Macro
Macro
Editable
by users?
Key figure
Technical name
Content
Used by
Calculation/
Source
Forecast
9ADFCST
Forecasted Volumes
Released
weekly from
DP
Forecast (additional)
9AAFCST
Additional positive
forecast volume
Sales Order
9ADMDP1
Sales, Quotations, Free
Del & Contracts
Heuristics,
Deployment,
Optimizer, Global
Demands
Heuristics,
Deployment,
Optimizer, Global
Demands
Heuristics,
Deployment,
Optimizer, Global
Demands
Demand (Forecast/Sales
Order
DMDCON
Dependent Demand
9ADMDSE
Substitution
(Confirmed)
Substitution
(Planned)
Distribution
(Total)
Distribution
(MRP Area)
DistrDemand
Confirmed)
Demand
9AFSUBAB
Demand
9APSUBAB
Demand
DMDDITO
Demand
9ADMDDIMRP
(TLB-
9ADMDDT
Sum of Sales Orders
and not yet consumed
forecast
Demand for
Component from
Production
Deployment Demand
from Interchangeability
Heuristics Demand
from Interchangeability
Sum of Distribution
Demand Elements
Component Demand
from Vendor
TLB/PO Demand
Demand
9ADMDDF
Deployment Demand
Demand
9ADMDDI
Heuristics Demand
Distribution
Demand
(Subcontracting)
Total Receipts
9ADMDDISBC
DEP Total Receipts
Planning book KF
Substitution
Receipt
(Confirmed)
Substitution
Receipt
(Planned)
Production (Total)
9AFSUBZU
Production (Confirmed)
9AFPROD
Production (Planned)
9APPROD
Heuristics Demand at
Vendor for FG
Sum of all dynamic
receipt elements
Total Receipts without
Heuristics Elements
Heuristics Receipts
from Interchangeability
Deployment Receipts
from Interchangeability
Sum of all production
elements
Prcs Orders, PPDS Plnd
Orders & Insp. Lots
SNP Planned Orders a
Production
(Subcontracting
Planned)
Manufacture of CoProducts
Total
Production
(Available to Ship)
9APPRODSBC
SNP Planned Orders at
Vendor
9AKPROD
Secondary Outputs
from PDSs
Sum of all production
shifts
Distribution
(Confirmed)
Distribution
(Planned)
RECTO
9APSUBZU
PPRODTO
C_PRODSH (Time
Series)
45
Entered
Manually
Editable
by users?
Y
CIF
Macro
Heuristics,
Optimizer, Global
Demands
Determined
via PDS
Deployment
Deployment
Heuristics
Macro
Heuristics
Heuristics
Heuristics,
Deployment,
Optimizer
Optimizer
CIF or TLB
Heuristics,
Deployment,
Optimizer
Heuristics
Heuristics
Deployment
Stock, projections
Macro
Deployment
Subcontractin
g Tlane & PDS
Macro
Deployment
Deployment
Heuristics
Macro
Optimizer,
Deployment
Optimizer,
Heuristics,
Deployment
CIF & PDS
Optimizer,
Heuristics
Subcontractin
g Tlane & PDS
Optimizer
SNP PDS
Macro
Y
Key figure
Technical name
Content
Used by
Calculation/
Source
Deployment
ZOTC_SCHED
DEP
Deployment
ZOTC_SCHED
DEP
Deployment
ZOTC_SCHED
DEP
Production
Shift
(Available to Ship)
1
Planning book KF
Distribution
Receipt
(TLB-Confirmed)
Distribution
Receipt
(Confirmed)
Receipt External
9ATSHIP
1st Shift Production
with ZOTC_SCHEDDEP
offset
2nd Shift Production
with ZOTC_SCHEDDEP
offset
3nd Shift Production
with ZOTC_SCHEDDEP
offset
Sum of all Distribution
Receipts
Distribution Receipts
without Heuristics
Elements
Heuristics Receipts for
components from
Vendor
TLB/PO Receipts
Production
Shift
(Available to Ship)
2
Planning book KF
Production
Shift
(Available to Ship)
3
Planning book KF
9AFSHIP
Deployment Receipts
Planning book KF
Distribution
Receipt
(Planned)
Distribution
Receipt
(Subcontracting
Planned)
In Transit
9APSHIP
Stock In Transfer
Planning book KF
Distribution
Receipt
(Total)
DEP Distribution Receipt
(Total)
PSHIPTO
Distribution
(MRP Area)
9APSHIPMRP
Receipt
Planning book KF
DEP Closing Stock
DEP
Closing
(Confirmed)
Deployment
Deployment
Master Data
Flag / Macro
Heuristics
9APSHIPSBC
Heuristics Receipts for
Subcontract FGs at DC
Deployment,
Optimizer
Heuristics,
Optimizer
9AITRAN
Intercompany Stock
Movements
Intra company transfer
stock
Current stock (in
LOCAGG and Global
Stock View Actual Stock
includes TLB Receipt –
TLB Demand which
represents in transfer
stock)
Closing stock without
Planned Receipts
Closing stock without
Planned Receipts NOR
Planned Demands
Closing stock on hand
projected
Closing stock on hand
projected
Opening stock without
Planned Receipts
Opening Stock without
Planned Receipts NOR
Planned Demands
Opening Stock on hand
projected
Stock in blocked status
Stock in quality
inspection status
Heuristics
CIF
Planning book KF
STOCKD
DEP
Opening
(Confirmed)
Planning book KF
Opening Stock on Hand
(Projected)
Stock Blocked
Stock Inspection
Heuristics
External Receipts for
location
Heuristics Receipts
Closing Stock on Hand
(Projected)
Stock
on
Hand
(Projected)
DEP Opening Stock
Stock
Macro
CIF & TLB
Planning book KF
Stock
Macro
Heuristics,
Deployment
TLB
Actual Stock
STOCK
Planning book KF
OSTOCK
Planning book KF
Planning book KF
46
Editable
by users?
Deployment
Macro
Macro
Macro
Macro
Macro
Macro
Macro
Macro
Macro
Macro
Y
Y
Key figure
Technical name
Content
Stock at Vendor
Planning book KF
Supply Shortage
Days' Supply
BACKL
COVER
Safety Stock
SAFTY
Stock located at vendor
location
Out of stock quantities
Days covered
according to Total
Demand and Closing
Stock in that bucket
Safety stock quantity
required at location
Safety Days' Supply
9ASVTTY
Safety Stock (Planned)
9ASAFETY
Storage Upper Bound
9AUBSTOR
Max Cover
C_TSMAXD (Time
Series)
Shipping Calendar Days
Planning book KF
ATD Issues
9AATDAB
ATD Issues
Planning book KF
ATD Receipts
9AATDZU
ATD Receipts
Planning book KF
Allocated ATR (Hidden)
C_TSATR (Time
Series)
LAGRZ
Target
Stock
Level
(Hidden)
Net Demand (Hidden)
Target Days' Supply
(Hidden)
SCTARGETDAYS (Hidden)
Unrestricted less sales
Bucket Days (Hidden)
Network Max Cover
Network Max Stock
Network Min Cover
Network Min Stock
Agg Max Days
Used by
Calculation/
Source
Macro
Macro
Macro
Heuristics,
Optimizer
MZ Dynamic Safety
Days' Supply or value
from product master
data
MB Dynamic Safety
Stock quantities
Safety stock
calculation
Maximum Stock
allowed at location
Maximum Days
coverage allowed at
location
Optimizer
Number of working
days for bucket
Allocated Demands for
Deployment
Allocated Demands for
Deployment
Receipts available for
Deployment allocation
Receipts available for
Deployment allocation
Heuristics,
Deployment
Deployment
Safety stock
calculation
Storage Upper
Bound
Product /
Location
Master Data
Product /
Location
Master Data
Product /
Location
Master Data
Product /
Location
Master Data
& Macro
Macro
Macro
Deployment
Macro
Deployment
Macro
Deployment
Macro
Deployment
Macro
NETDEM
SVTTY
Planning book KF
Planning book KF
Planning book KF
Unrestricted stock
minus sales orders
Number of days for a
bucket
Global maximum
coverage value from
product master data
Global maximum stock
value
Global minimum
coverage value from
product master data
Global minimum stock
value
Days cover of
aggregated storage
upper bound
47
Macro
Macro
Coverages &
Colour
Management
Network Max
Stock
Macro
Network Min
Stock
Product
Master Data
& Macro
Macro
Product
Master Data
& Macro
Macro
Macro
Editable
by users?
Key figure
Agg Safety Days
Technical name
Content
Used by
Days cover of
aggregated safety stock
Calculation/
Source
Editable
by users?
Macro
Macros: general setup and recommendations
For every data view, a macro book will be created. In here we build all macros that populate or
change info in the key figures used in the data view. This will therefore affect the data saved in the
time series once a forecaster saves the values during planning (/SAPAPO/ADVM). On the left hand
side we can see all active or inactive macros, the middle of the screen shows the macro details and
on the right hand side we define which macros are default, level change, start or exit macros. When
loading data the system executes the start macros followed by the default macros. When changing
level of the characteristics loaded, the level change macros are executed followed by the default
ones. When saving data the system executes the default ones, the exit ones, the start macros and
again the default ones. The same counts for saving and leaving the screens except that we do not
launch the start macros again, nor the default ones for the second time. When pressing enter the
system will execute only the default ones. The execution of these macros is always done in the
sequence as set up in the macro book. It is therefore important to keep in mind dependencies of
calculations between macros.
A macro consists of different layers. First is the header of the macro where you specify its name &
whether it can be executed directly in the planning book. We usually don’t allow this unless it is
macros that can be used via buttons, which are to be chosen in this step as well. Other important
settings is the level at which the macro should run. Usually we have the standard “Details only”
setting. When creating a macro you can also choose to create a collective one which would then
contain several other macros and execute these one by one.
48
Next is usually a step which allows you to
specify how many iterations are needed and
over which time buckets these iterations
should operate. Also the operation direction
(forward or backward) can sometimes be
useful to play with. An Alternative to using a
step is using IF functions. In that case the IF is
executed only once. If you place it in the step
it will be executed in every iteration of that
step. It is recommended to reduce the
number of iterations and of calculations to a
strict minimum for performance reasons.
One level further down you would either place an action box to use functions and update for
example variables. Or you would place key figure rows, cells or areas to update values.
Important feature for calculations is as well the use of the time bucket to phase calculations. For
example to retrieve the History from last year and put it in a key figure for the same month this year.
When changing values of for example a key figure you have again several options. An important one
is the Change Mode field. Value change is just going to change the value. Re-disaggregation is not
changing the value but will force the system to re-disaggregate based on the planning area settings.
Attribute Change is needed if you want to change things like the colour of a row or if it is open for
input or not. If a key figure is fixable, more options will be available regarding this property.
49
Further other possibilities exist to work with standard formulas, create auxiliary rows or update
alerts.
Note: A great way to reduce iterations is the use of vectors.
Note: To be able to use developed functions we need to set them up so they can be read by a macro. To do this
go to the menu Tools in /SAPAPO/ADVM and from there to Edit User Function and introduce the wanted
function. Here you can specify the fields you need.
50
A limited number of macros were setup that are replicated to all planning books used by the
planners. Generally the logic of the macros will always be the same, but depending on the data view,
some functionality might be slightly different. Below we will explain these macros, show in which
data views they appear and highlight these differences where needed. If you look for a macro that is
not in this list, it will be mentioned separately in the planning book you find the macro for.
Planning book ZZ_ROOT
To keep the system clean we have created planning book ZZ_ROOT with all possible views and the
macros that should be in those views. If we then come to the GM* planning books we can import the
right macros according to the view. If a change needs to be made, it should be done in ZZ_ROOT and
then imported to the GM* books.
Macros for Product Location views
The first section of macros is set up for views that are targeted to be loaded with a product location.
So no aggregates should be loaded here, as the calculations will not be necessarily show the right
info. Generally this explanation will cover the macros used in these planning books and data view:
-
ZZ_ROOT: 01 ST PRODLOC, 02 LT PRODLOC, 07 ST DEP, 08 LT DEP, 11 PRODLOC GRAPHICAL & 22
ST DEP CONFIRMED
GM_DEPLOY: 01 ST DEP, 02 LT DEP, 03 ST DEP CONFIRMED
GM_DETAIL: 01 ST PRODLOC, 02 LT PRODLOC, 03 PRODLOC GRAPHICAL
GM_MANUAL: 01 ST PRODLOC, 02 LT PRODLOC
GM_PP_BJ_CSE: 01 ST PRODLOC
GM_SP_BJ: 01 LT DEP, 02 LT HEUR, 03 ST DEP, 04 ST HEUR, 05 ST DEP OFFSET1, 06 ST DEP
OFFSET2, 07 ST DEP OFFSET3, 08 ST DEP OFFSET4
GM_STK_BAL: 1 STK BAL
I0 - Init Prod - MD set
First start macro. Its goal is to prepare some variables according to the master data of the Product
Location that was loaded to the planning book. These variables will affect the content of the key
figures, as will be explained in the different macros. Secondly it also retrieves the production
volumes as planned on the MU through production shifts.
Step 1 sets 4 variables, set up as auxiliary cells, to 0 to initialize them.
Step 2 populates these 4 auxiliary cells depending on the product location master data. The values
given to these variables will then be used in the following macros. First variable is set to 1 if field
ZZQISTOCKFOR is flagged in the Product-Location master. This field can be found in tab Extra in
/SAPAPO/MAT1 under description “QI Stock for Dep.”.
-
By default Quality Inspection Stock is not taken into account as available stock to deploy.
However, when the user does want to assume this stock will be available, he or she can achieve
this by flagging this field (see macro D2)
Second variable is set to 1 if field ZZSHELFLIFEI is flagged in the Product-Location master. This field
can be found in tab Extra under description “Shelf Life in DRP”.
51
-
This step is currently greyed out everywhere as we currently do not work with the shelf life
option.
Third variable is set to 1 if field ZZDRPTOTARGE is flagged in the Product-Location master. This field
can be found in tab Extra under description “DRP to Target”. Secondly, if the field is flagged we
update row SCTARGETDAY for the initial column with the value that is found in field ZZTARGETCOVE.
This field as well can be found in tab Extra under description “Target Cover”.
-
This field should be set in case heuristics should be driven by a target value rather than by the
Safety Stock/ Safety Days’ Supply. (see macro D2)
Fourth variable is set to 1 if field ZZPLNDDISTRR is flagged in the Product-Location master. This field
can be found in tab Extra under description “Plnd. Distr. Rec as”.
-
This field should be set in case a planner wants to include the results of the heuristics into the
receipts in order for it to be available to deploy. (see macro D0 & D2)
Note: Variable 1 and 4 are only active for planning book ZZ_ROOT views 07 ST DEP, 08 LT DEP & 22 ST DEP
CONFIRMED and for planning book GM_STK_BAL, GM_DEPLOY & GM_SP_BJ. The other planning books don’t
use the related logic, neither in the subsequent macros where the variables are used.
Step 3 calculates the content of key figures Production Shift 1/2/3 (Available to Ship). These key
figures depend on function module ZOTC_SCHED_DEP. It runs for all future buckets, meaning it
ignores the initial column, but stops as soon as the begin date of a bucket is not equal to the end
date of a bucket (so as soon as we move from daily buckets to weekly buckets). This is to avoid
needless running of the function module which has proven to slow down the calculation significantly.
The function module allows postponing the availability of production shifts to 1 day or more days
later. For example, if production is done late in the day, it will only be available to be deployed the
next (see 8.3 for more info)
Production Shift 1 is calculated before the condition is checked which causes it to be updated for all
daily + the first weekly bucket. Production Shift 2 & 3 are inside the condition, so these will only be
updated for the daily buckets.
-
-
The function module for Shift 3 needs as input ZOTC_SCHED_DEP( ‘Y’ ; ‘ZF1’ ; ACT_VERSION ; ‘3’ ;
BUCKET_BDATE( ACT_COLUMN ) ; BUCKET_EDATE( ACT_COLUMN ) ; ACT_LOCATION ;
ACT_PRODUCT )
For Shifts 1 or 2, the single value ‘3’ needs to be replaced with the respective Shift number.
This step is currently greyed out
Note: This step is not active in weekly views as the production shift calculation is only useful to see in daily
buckets. Furthermore it’s only active in planning book ZZ_ROOT views 07 ST DEP, 08 LT DEP & 22 ST DEP
CONFIRMED and planning book GM_DEPLOY & GM_STK_BAL as the Production shift key figure detail is only
available here. As well it’s active for views 03, 05, 06, 07 & 08 of planning book GM_SP_BJ.
I1 - Get strategy for consuming stock
This as well is a start macro suggested by OSS note 823362 and can be found in standard macro book
9ASNP_PS view PROD_SUBST. It calculates a variable “Validity Date” that depends on if for that
product location a supersession chain for interchangeability exists (/INCMD/UI) and if the stock for
52
the product can be fully used up or restricted to a date or quantity. Currently nothing is done with
the content of that variable.
D0 - Stock - Safety Logic
First default macro. This macro is all about taking into account all relevant receipts & demands for
the loaded Product Location and calculating the stock projection or supply shortage resulting from
these figures.
Step 1 is about preparing the right key figures that will need to be used in Safety Stock planning,
depending on how the master data settings are for the considered Product Location. It runs for 1
iteration only, being the first bucket ignoring the initial column. First it checks the Safety Stock
Method in the Product-Location Master, which is field MSDP_SB_METHOD “Safety Stock Method”
which can be found under tab Lot Size in /SAPAPO/MAT1.
If this field is SZ, we want to use the Safety Days’ Supply value from the Product Master, field SVTTY
on same tab, as Safety Stock. We have to divide this value by 240000 to get the same number of days
in the planning book. Next we check if the field ZZMAXCOVER (“Max cover” under tab Extra) is
populated. If so, we use it to populate key figure Max cover; if not, we populate Max cover by taking
the value in Safety Days’ Supply + 1.
If the field is MZ, we use a time-based (so a non-fixed) Safety Day’s Supply. Therefore this row will be
opened for input, just as the Max Cover. At the same time rows Storage Upper Bound & Safety Stock
(Planned) are closed.
We do the opposite of the logic of MZ of closing and opening rows in case the field is equal to MB. In
that case we want to base the Safety Stock logic on volumes instead of days and want the user to be
able to enter a value in Safety Stock (Planned) and Storage Upper Bound.
Note: This step is inactive for planning book GM_STK_BAL as we don’t need the Safety Stock calculation for
stock balancing.
Step 2 copies forward the Safety Days’ Supply and Max cover populated for Method SZ in the first
bucket to all following buckets as we want to use fixed values for the whole data view.
Note: In the background job planning book GM_SP_BJ, row Max cover is not available wherefore the
calculation for this key figure is not performed, except for views 03, 05, 06, 07 & 08. As well this step is inactive
for planning book GM_STK_BAL.
Step 3 checks the fourth variable calculated in macro I0. If the variable is 1 (so the master data field is
flagged), we said we want to take into account results from the heuristics in the receipts. To do this
we use a planning book key figure called Receipt External that is the sum of Distribution Receipt
(Planned) & Distribution Receipt (Subcontracting Planned). So, this key figure is only filled when the
master data field is populated.
Note: This step is only active for ZZ_ROOT, views 07 ST DEP, 08 LT DEP & 22 ST DEP CONFIRMED &
GM_DEPLOY, views 01 ST DEP, 02 LT DEP & 03 ST DEP CONFIRMED as well as for planning book GM_SP_BJ. The
relevant calculated key figures are not available in the other planning books.
53
Step 4 populates the initial columns of a few informational planning book key figures by checking
specific categories or category groups to show the current stock information in more detail.
-
Stock in Transfer = Category CA (function PHYSICAL_STOCK())
Stock at Vendor = Category group ZCE (function PHY_STOCK_LOCPRODS())
Stock Inspection = Category group ZCF (function PHY_STOCK_LOCPRODS())
Stock Blocked = Category group ZCI (function PHY_STOCK_LOCPRODS())
Note: This step is only active for ZZ_ROOT, views 07 ST DEP, 08 LT DEP & 22 ST DEP CONFIRMED &
GM_DEPLOY, views 01 ST DEP, 02 LT DEP & 03 ST DEP CONFIRMED and planning book GM_STK_BAL. The
relevant calculated key figures are not available in the other planning books where this macro runs. For the
views in planning book GM_SP_BJ, we only calculate Stock Inspection, as the other key figures are not available
in these views.
D2 - Demand - Supply – Stock
Second default macro. Depending on the planning book, the macro is quite different, wherefore
below we will explain it twice.
We start with the logic applied in planning book ZZ_ROOT views 01 ST PRODLOC, 02 LT PRODLOC and
11 PRODLOC GRAPHICAL and planning books GM_PP_BJ_CSE,GM_MANUAL and GM_DETAIL.
Step 1 calculates row Demand (Forecast/Sales Order) for the whole Data View by using function
DEMAND_CALC which checks the Requirement strategy for the Location Product and consumes
forecast with sales orders according to these settings. This result is not shown in the books, but used
further down in Step 4.
Step 2 fills in the number of days of a bucket (Bucket Days) by calculating the difference between the
end and start date of a bucket + 1. This step does not need to run for the initial column. The row is
used for the coverage calculations below.
Step 3 calculates several key figures and runs for the whole horizon. However, first a check runs to
avoid the Shipping Calendar Days to be populated for all except the initial column. We update this
key figure with the number of working days for the considered bucket. These days are found by
checking the Shipping Calendar for the Location loaded.
Next a few key figures are summed up:
-
-
Distribution Demand (Total) = sum of Dist.Dem (TLB-Confirmed), Dist.Dem (Confirmed), Dist.Dem
(Planned), Dist.Dem (Subcontracting)
Total Demand = sum of same elements as above + Dependent Demand, Forecast (additional),
Demand (Forecast/Sales Order), Substitution Demand (Planned), Substitution Demand
(Confirmed)
Production (Total) = sum of Prod (Planned), Prod (Confirmed), Prod (Subcontracting Planned),
Manufacture of Co-Products
Distribution Receipt (Total) = Dist.Rec (TLB-Confirmed), Dist.Rec (Confirmed), In Transit, Dist.Rec
(Planned), Dist.Rec (Subcontracting Planned)
Total Receipts = sum of same elements as for Dist.Rec (Total) + sum of same elements of
Production (Total) + Subst.Rec (Planned), Subst.Rec (Confirmed), Dist.Rec (Subcontracting
Planned)
54
Step 4 populates key figure Stock on Hand (Projected) for the initial column by calculating with
STOCK_CALC what remains from the initial stock after summing the Total Receipts and subtracting
the Total Demands.
Step 5 does exactly the same for the remaining buckets, but in this case doesn’t use the initial stock,
but the Stock on Hand (Projected) from the previous bucket. So, Stock on Hand = Stock on Hand
previous bucket + receipts – demands.
Step 6 runs for all buckets and checks for negative Stock on Hand. In case a negative is fond, row
Supply Shortage is set to the absolute value of the shortage for the respective bucket, being the
negative of the value in Stock on Hand. If it is a positive value, Supply Shortage = 0. In both cases,
negative or positive, the Stock on Hand is copied to row Closing Stock on Hand (Projected).
Next we explain the logic for planning book ZZ_ROOT views 07 ST DEP, 08 LT DEP and 22 ST DEP
CONFIRMED and planning books GM_SP_BJ & GM_DEPLOY.
Note: For the view 22 ST DEP in ZZ_ROOT and 03 ST DEP CONFIRMED in GM_DEPLOY, there’s some different
key figure names used:
-
DEP Opening Stock is called DEP Opening Stock Confirmed, there is however no difference in
calculation
DEP Closing Stock is called DEP Closing Stock Confirmed, there is however no difference in
calculation
Total Demand is called DEP Total Demand Confirmed, moreover the calculation is slightly
different, see Step 4.
Step 1 & 2 are exactly the same as in the logic above.
Step 3 runs for the future columns only and sums up the volumes in the three Production Shift rows
and puts the total in Total Production (Available to Ship). At the end of every iteration the system
checks if the current bucket is in days or weeks, as soon as it’s in weeks we put in a STEP_CALC_STOP
function to avoid having the key figure populated further as the Shift rows will not be populated
anyhow (see macro I0). So, only the daily buckets and the first full week will be filled.
Note: This step is grey for views in weeks, as the Production Shifts are not calculated in these views. In planning
book GM_SP_BJ it is grey for views 01 LT DEP, 02 LT HEUR and 04 ST HEUR.
Step 4 is very similar to Step 3 mentioned in the logic above on the other planning books. There is
however a bit of a difference in the summed key figures:
-
Distribution Demand (Total) = same as above with additionally included Dist.Dem (MRP Area)
Total Demand = same as above with additionally included Dist.Dem (MRP Area)
Production (Total) = same as above
-
DEP Distribution Receipt (Total) = same as Distribution Receipt (Total) above
DEP Total Receipts: The calculation for the initial and weekly buckets is the same as for key figure
Total Receipts above, but for the daily buckets it’s slightly different. Here we replace the sum of
the elements of Production (Total) with row Total Production (Available to Ship) as we want to
use the detailed Production Shift information.
-
55
Note: In weekly views, the logic for daily buckets is greyed out. Same reason as above, the details of production
shifts are not available in weekly buckets. For the same reason the same applies to views 01 LT DEP, 02 LT
HEUR and 04 ST HEUR of planning book GM_SP_BJ.
Note: key figure DEP Total Demand Confirmed is calculated in the same way as the Total Demand but it doesn’t
include the planned elements Dist.Dem (Planned) & Substitution Dem (Planned).
Step 5 is just calculated for the initial bucket and sets the Opening Stock on Hand (Projected) by
using function INITIAL_STOCK for the loaded Product Location. In case the QI Stock should not be
available as specified in the Product Location Master Data and retrieved via a variable in macro I0,
the QI quantity is subtracted. The stock is read from the category group specified in the Product
Location master.
Note: This logic is greyed out in planning book GM_SP_BJ for views 02 LT HEUR and 04 ST HEUR.
Step 6 runs for the same bucket and populates Stock on Hand by using function STOCK_CALC and
using the Total Demand & DEP Total receipts from step 4 and the Opening Stock from step 5 as the
initial stock on hand = opening stock + receipts – demands.
Step 7 runs for the future buckets and does exactly the same as Step 6 but using the Stock on Hand
from the previous bucket rather than the Opening Stock. So, stock on hand = stock on hand previous
+ receipts – demands.
Step 8 runs for the same horizon and updates the Opening Stock on Hand (Projected). As the opening
today is the same as the ending stock from yesterday, we can use the results from Step 7 and shift
them one bucket.
Step 9 runs for all buckets and checks for negative Stock on Hand. In case a negative is fond, row DEP
Closing Stock is set to 0 and row Supply Shortage to the absolute value of the shortage for the
respective bucket. If it is a positive value, DEP Closing Stock will be the stock projection itself and
Supply Shortage = 0.
Step 10 is similar to Step 9, but checks for negative Opening Stock on Hand (Projected) and updates
row DEP Opening Stock in the same way as DEP Closing Stock in Step 9.
Step 11 calculates planning book key figure Unrestricted less sales for the initial column by
substracting the Sales Orders from the stock found in category CC (by using function
PHYSICAL_STOCK).
Note: This step is not available in GM_SP_BJ or GM_STK_BAL as we don’t need this information in any batch
jobs.
Step 12 updates the remaining buckets for the same key figure by projecting it forward. So,
Unrestricted less sales = Unrestricted less sales from the previous bucket - sales orders. So, as we
move from bucket to bucket, the quantity will be reduced by the sales orders of each bucket.
Note: This step is not available in GM_SP_BJ or GM_STK_BAL as we don’t need this information in any batch
jobs.
56
D3 - Safety/Max Stock Calc
Third default macro which calculates coverage and safety stock values.
Note: In several steps the key figure Total Demand is used. In planning book ZZ_ROOT view 22 ST DEP
CONFIRMED and planning book GM_DEPLOY view 03 ST DEP CONFIRMED this key figure is replaced by DEP
Total Demand Confirmed (see macro D2).
Step 1 calculates key figure Storage Upper Bound for the whole horizon. It converts the value found
in Max Cover in days into a volume by checking the Total Demand and Bucket Days key figures by
using function COVERAGE_SUM. For example, if Max Cover is 10 days for a particular bucket and the
Bucket Days of the two following buckets are 5, we know the Storage Upper Bound should be equal
to the sum of Total Demand for these two buckets as like this we have sufficient volume to cover
demand for the next ten days.
Note: This step in planning book GM_SP_BJ runs only for views 03, 05, 06, 07 & 08.
Step 2 runs for the future buckets only and takes care of the Safety Stock calculation, ignoring the
initial column only. Function SAFETY_CALC is used which checks the relevant master data settings,
key figures Safety Days’ Supply & Safety Stock (Planned) and applies these to the Total Demand and
Bucket Days rows to come up with the relevant Safety Stock value.
Step 3. If Stock on Hand (Projected) as calculated in D2 is positive, row Days’ Supply is calculated with
COVER_CALC. This function uses the Total Demand and Bucket Days to find for how many days the
available Closing Stock on Hand (Projected) can cover the upcoming demands. The step runs for the
full horizon.
Note: If Stock on Hand (Projected) is negative, it depends on the planning book on what is shown. In planning
book ZZ_ROOT views 01 ST PRODLOC, 02 LT PRODLOC and 11 PRODLOC GRAPHICAL and in planning books
GM_PP_BJ_CSE, GM_MANUAL and GM_DETAIL, we calculate a negative coverage with the same function but
in this case by checking row Supply Shortage instead of the Closing Stock. This provides a negative number of
days of coverage or shows for how many days there will be a supply shortage. For ZZ_ROOT views 07 ST DEP,
08 LT DEP and 22 ST DEP CONFIRMED, all views except 01, 02 & 04 of GM_SP_BJ and for planning book
GM_DEPLOY, the row is kept blank to represent there are no days that can be covered with the available stock.
For GM_SP_BJ, views 02 & 04, the condition logic is greyed out, which implies we always calculate the
coverage, no matter if Stock on Hand (Projected) is positive or negative. This step is not active in planning book
GM_SP_BJ for view 01.
Note: For ZZ_ROOT views 07 ST DEP and 08 LT DEP and planning book GM_DEPLOY views 01 ST DEP and 02 LT
DEP, the cover is not calculated based on key figure Closing Stock on Hand (Projected) but on key figure DEP
Closing Stock (see macro D2).
Note: For ZZ_ROOT view 22 ST DEP CONFIRMED and planning book GM_DEPLOY view 03 ST DEP CONFIRMED,
it is based on key figure DEP Closing Stock Confirmed (see macro D2).
Step 4 runs for the same horizon and calculates first of all the remaining number of days in the
planning book as it is found by summing up the value in Bucket Days for bucket + 1 until the last
bucket. Now if the value in row Days’ Supply, calculated in the previous step is bigger than the
number found by this sum, we change Days’ Supply to 999.
57
Note: This step in planning book GM_SP_BJ runs only for views 03, 05, 06, 07 & 08.
Step 5 again runs for the future buckets only. It checks if the DRP to Target variable was set to “1” in
macro I0 and if so it updates row SCTARGETDAYS with the value that was populated for it in the
initial column, as well done in macro I0. In case the variable is still “0”, row Target Stock Level is
populated by copying the values in row Safety Stock.
D4 - Hybrid Deployment
Fourth default macro. Its goal is to calculate the ATR and ATI key figures which are used when
running deployment. We update them via a macro rather than populating them with liveCache order
categories. An Excel tool was built to simulate the macro:
Kraft Deployment
Macro Simulation V1.xlsm
Note: This macro is only active in planning book ZZ_ROOT views 07 ST DEP, 08 LT DEP & 22 ST DEP CONFIRMED
and planning book GM_DEPLOY. As well it’s active in planning book GM_SP_BJ in all views except 02 LT HEUR.
Step 1 simply initializes a set of variables that are used in the subsequent steps.
Step 2 runs for all buckets and basically calculates the stock projection once again; similar to how it
was calculated in macro D2, but using variables and auxiliary rows instead. For the initial bucket (=
COLUMN_FROM), we first of all set the Ending stock and supply shortage variables to 0 as
initialization. We calculate the variable for stock on hand with standard function INITIAL_STOCK.
Depending on if the QI Stock field is flagged in master data, we subtract it from this ONHAND
variable or leave it in. Then for that same initial bucket we calculate variable PROJ, the projected
ending stock as the sum of all receipts + the value in ONHAND - the sum of all demands, except the
distribution demand (Planned), which is not a confirmed element.
For all other buckets we now overwrite variable ONHAND in each iteration by the value in variable
ENDING, which is calculated later in the same step. So iteration 2 will copy the value from ENDING
calculated in iteration 1. We as well continue with the stock projection by overwriting PROJ as the
previous PROJ value + again all receipts – again all demands, except distribution demand (Planned).
Depending on if PROJ is positive or not, we update some more variables. If so, variable ENDING =
PROJ and SUP_SHT (supply shortage) = 0. Variable FC is set to be the sum of rows Forecast and
Forecast (additional). If not, ENDING will be set to 0 and SUP_SHT to the absolute value of PROJ.
Variable FC = 0.
Y having this step, we now have ENDING calculated, which as stated above will be used in the
subsequent iterations to continue with the stock projection.
At the end of the step we copy the values from variables FC and SUP_SHT in auxiliary rows FC and
ATR_LD. Like this we don’t lose the variable value in each iteration. For the other variable we don’t
need the single values in further steps, wherefore there is no need to temporarily store them in an
auxiliary key figure.
58
Step 3 calculates variable ENDWEEK as the start week, or current week + 5. It runs for several
iterations, which is redundant as it just needs to run once.
Step 4 now uses ENDWEEK to check for each bucket if the week the iteration is running for is before
the week in ENDWEEK. For these buckets we calculate row Allocated ATR as the sum of sales orders,
Distribution Demand (MRP Area) and Dependent Demand. See step 6 to see how this is used further.
Step 5 runs for all future buckets and calculates variable SUP_PULL as the sum of the values in
auxiliary rows ATR_LD and FC from the previous bucket and puts the resulting value in auxiliary row
SUP_SHT1. For example, SUP_SHT1 for bucket 3 will be the sum of the values found in ATR_LD and
FC for bucket 2.
These values were calculated in Step 2 and basically either contain the supply shortage in case the
stock projection was negative or the forecasted volume in case it was not.
Step 6 runs again for all buckets. For bucket 1, the initial bucket, it sets variable ATR_INIT as the sum
of rows DEP Total Receipts and Opening Stock on Hand (Projected), which indicates what is available
or confirmed to be available for deployment. For all the other buckets ATR_INIT is just equal to DEP
Total Receipts. We cannot take the opening stock into consideration any more as that is only
available as from today (bucket 1).
For all buckets we as well calculate variable ATI_INIT as the sum of Distribution Demand (Confirmed),
Substitution Demand (Confirmed), Distribution Demand (TLB-Confirmed) & Allocated ATR. This
basically is our total demand, excluding the planned elements and unconsumed forecasts. As the
allocated ATR is only calculated for the first 5 weeks, this also implies we don’t consider any sales
orders, MRP Area demand or dependent demand as confirmed in this logic, for the weeks as from
week 5.
Both variables are updated into auxiliary rows with the same name.
Step 7 runs for all buckets as well but backwards, meaning that it starts at the last bucket of the
planning book and works its way back towards the first bucket.
First of all we retrieve variables ATR_INIT and ATI_INIT from the auxiliary rows with same name,
calculated in Step 6. Then we calculate two new variables by comparing both:
-
-
ATI_OV = ATI_INIT – ATR_INIT. If this difference is smaller than 0, we put it to 0. So we
will not end up with a negative value. Basically this will show a positive volume when the
calculated ATI (or confirmed demands) is bigger than the calculated ATR (or confirmed
receipts) for each bucket. So it shows the shortage of supply for that bucket
ATR_AV = ATR_INIT – ATI_INIT. Here as well we avoid negatives by putting them to 0.
Here we show positive volumes if the receipts are bigger than the demands. It shows the
excess of supply for that bucket.
Next we calculate the cumulative values of these variables:
-
CUM_ATI_OV = previous CUM_ATI_OV + ATI_OV. So in the last bucket, which is
processed first this will be equal to ATI_OV. But by going back in time we will add up any
59
-
other ATI_OV volumes to this. Like this we end up in each bucket with the sum of all
confirmed demands from the bucket forward until the end of the planning book. It shows
the cumulative shortage of supply from the considered bucket forward until the end of
the horizon.
CUM_ATR_AV = previous CUM_ATR_AV + ATR_AV. Similarly, we calculate like this the
sum of all confirmed receipts from the considered bucket forward until the end of the
planning book. It shows the cumulative excess of supply from the considered bucket
forward until the end of the horizon
Two more variables are calculated in this step. First of all we set ATR_PC as CUM_ATR_AV –
CUM_ATI_OV – CUM_ATR_PC. If this results in a negative value, we change it to 0. This calculation
takes all confirmed receipts you have from the considered bucket forward in time, subtracts for the
same range of buckets the confirmed demands and subtracts as well CUM_ATR_PC which is
calculated next. As this is is only calculated next, it means that we use the value resulting from the
previous iteration. So in iteration 1 CUM_ATR_PC = 0 when ATR_PC is calculated. In iteration 2
ATR_PC is calculated again, this time with the value in CUM_ATR_PC that was calculated at the end
of this Step 7 in iteration 1. CUM_ATR_PC is calculated as the cumulative value of ATR_PC, so similar
to how the other cumulative variables are calculated.
At the end of the step we copy the ATR_PC values to an auxiliary row with the same name.
By using ATR_PC, we “allocate” confirmed receipts to future confirmed demands. This is easier when
illustrated with an example. Let’s say in the last bucket we got confirmed demands of 500 and no
confirmed receipts. In that case:
-
ATI_INIT = 500 & ATR_INIT = 0
ATI_OV = 500 – 0 = 500 & ATR_AV = 0 – 500 = -500, but this is set to 0 by the logic where
we avoid negatives.
CUM_ATI_OV = 500 & CUM_ATR_AV = 0
ATR_PC = 0 – 500 = -500, but as well here change it to 0. CUM_ATR_PC is calculated
afterwards and obviously 0 as well.
In the second last bucket, which is used for the next iteration we have confirmed receipts of 800 and
no confirmed demands. In that case:
-
ATI_INIT = 0 & ATR_INIT = 800
ATI_OV = 0 (-800) & ATR_AV = 800
CUM_ATI_OV = 500 + 0 = 500 & CUM_ATR_AV = 0 + 800 = 800
ATR_PC = 800 – 500 – 0 = 300. CUM_ATR_PC will now as well be 300.
You can consider these 300 as what is available to allocate or deploy. You have 800 as receipts, but
as 500 is already confirmed demands in the last buckets, you actually only have 300 left without
assignation to a target.
Let’s say in the third last bucket we now again have 500 confirmed demands and no confirmed
receipts:
60
-
ATI_INIT = 500 & ATR_INIT = 0
ATI_OV = 500 & ATR_AV = 0 (-500)
CUM_ATI_OV = 500 + 500 = 1000 & CUM_ATR_AV = 800 + 0 = 800
ATR_PC = 800 – 1000 – 300 = -500, which is changed to 0. CUM_ATR_PC will therefore
still be 300, as we have the 300 from last iteration + 0 from the calculation of ATR_PC
during this one.
This can be interpret as follows, you have demand before you get receipts. So the receipts you get
later are not available in time to cover these demands, even if in the next bucket you will have excess
receipts.
We move one bucket further back in the past and have receipts of 1000 and demands of 300:
-
ATI_INIT = 300 & ATR_INIT = 1000
ATI_OV = 0 (-700) & ATR_AV = 700
CUM_ATI_OV = 1000 & CUM_ATR_AV = 1500
ATR_PC = 1500 – 1000 – 300 = 200. CUM_ATR_PC = 300 + 200 = 500.
Again we have an excess and for this bucket it’s 200. You could expect 700, but 500 of demand in the
next bucket still needs to be covered, wherefore only 200 is left to allocate. The cumulative excess =
500.
Next steps. Before we continue with the next steps we built in an IF condition to check the product
master data. Depending on the deployment strategy, another approach is taken to come up with the
final ATD Receipts and ATD Issues that then will be used during the deployment run.
Step 8 only runs if the deployment strategy is set to push by demands and runs for all buckets. We
update 4 key figures:
-
-
ATD Receipts (planning area key figure) = value from auxiliary row ATR_PC – variable
SUP_PUSH which we get by reading auxiliary row SUP_SHT1. If this results in a negative
number, we change it to 0.
ATD Receipts (planning book key figure) = same calculation
ATD Issues (planning area key figure) = 0
ATD Issues (planning book key figure) = value from auxiliary row ATI_INIT
Step 9 only runs if the deployment strategy is set to push by quota and runs for all buckets. We
update the same four key figures:
-
ATD Receipts (planning area key figure) = value from auxiliary row ATR_PC
ATD Receipts (planning book key figure) = same calculation
ATD Issues (planning area key figure) = 0
ATD Issues (planning book key figure) = value from auxiliary row ATI_INIT
Step 10 runs for any other deployment strategies, again for all buckets and again updating the same
key figures, albeit with a more complex logic.
61
As in step 8 we retrieve the values in auxiliary row SUP_SHT1 and put them in SUP_PUSH. Next we
calculate variable ATR_PC. For the first bucket this is simply going to be the value from auxiliary row
ATR_PC as it was calculated previously. For the remaining buckets it is this same value from the
auxiliary row – variable SUP_PUL1 – variable ATR_DD. If this results in a negative value, we change
the result into 0.
Next we calculate a few more variables, which generally contain different subsets of the demand key
figures.
-
-
-
PDD = Distribution Demand (Planned) + variable TOT_DD_ROLL
FDD = Distribution Demand (TLB-Confirmed)
CDD = Distribution Demand (Confirmed)
TOT_LD = Demand (Forecast/Sales Order) + Forecast additional + Dependent Demand +
Distribution Demand (MRP Area). This last variable is set to 0 if the total would result into
a negative.
TOT_DD = Distribution Demand (TLB-Confirmed) + Distribution Demand (Confirmed) +
Distribution Demand (Planned) + TOT_DD_ROLL
TOT_DEM = Demand (Forecast/Sales Order) + Forecast additional + Dependent Demand
+ Distribution Demand (MRP Area) + Distribution Demand (TLB-Confirmed) + Distribution
Demand (Confirmed) + Distribution Demand (Planned) + TOT_DD_ROLL
ATI_INIT = value from auxiliary row ATI_INIT
Next step is the calculation of variable OP2 as the sum of three variables: CUM_ATR_PC – TOT_DEM
– VAR_LAGRZ (where this last variable is actually never calculated).
If now the resulting value < 0, we set variable FS (fair share) to 1. This is a fair share situation as we
have fewer receipts than demands to fulfill. We as well calculate FS_RATIO as TOT_DD / (TOT_DEM +
VAR_LAGRZ). If > 0, we set FS and FS_RATIO to 0.
Next check looks at CUM_ATR_PC. If these are positive we check the recently calculated FS variable.
If it is equal to 1, the fair share situation we set:
-
ATR_LD = (1-FS_RATIO) * CUM_ATR_PC
ATR_DD = FS_RATIO * CUM_ATR_PC
For the case where FS = 0:
-
ATR_LD = TOT_LD
ATR_DD = PDD
This, as said, runs when CUM_ATR_PC is positive. In the other case, we set variables ATR_LD &
ATR_DD to 0.
In any case we as well calculate variable TOT_DD_ROLL as PDD – ATR_DD and put variable ATR_LD in
auxiliary row ATR_LD.
Once all of this is done we can now update the key figures:
62
-
ATD Receipts (planning area key figure) = ATI_INIT + ATR_DD
ATD Receipts (planning book key figure) = ATR_DD
ATD Issues (planning area key figure) = ATI_INIT
ATD Issues (planning book key figure) = ATI_INIT
Allocated ATR = ATR_LD
D5- Color Management
This is the last default macro. Its goal is to help the planners by working with colour coding to
highlight issues or possible risk situations regarding out of stock situations or lack or excess of
coverage, which will help to focus first of all on resolving these situations.
Note: In several steps there is a change in key figure names for planning book ZZ_ROOT view 22 ST DEP
CONFIRMED and planning book GM_DEPLOY view 03 ST DEP CONFIRMED (see macro D2):
-
Total Demand => DEP Total Demand Confirmed
DEP Closing Stock => DEP Closing Stock Confirmed
Note: This macro does not exist in planning book GM_SP_BJ as we don’t need color management when
running batch jobs, it only slows down the jobs.
Step 1 colours the cells of the following rows grey for the future buckets where row Shipping
Calendar Days is empty and therefore no activity will be performed for that bucket on the loaded
location. As well, a tooltip will be shown when you locate your cursor on such a cell, stating
“NO_SHIPPING”. Affected rows are Total Demand, DEP Total Receipts, Production (Total), DEP
Distribution Receipts (Total), Shipping Calendar Days, Total Production (Available to Ship).
Note: This last key figure is only available in planning book ZZ_ROOT, views 07 ST DEP, 08 LT DEP and 22 ST DEP
CONFIRMED and planning book GM_DEPLOY.
Note: This step is greyed out in planning books ZZ_ROOT, GM_MANUAL and GM_DETAIL for view 02 LT
PRODLOC as this step is not really needed for views with weekly buckets only.
Step 2 first of all checks if there is a Supply Shortage and if so it adds the icon for alerts to row DEP
Closing Stock, adds a tooltip “Stockout” and changes the colour of row Days’ Supply to red. Next we
calculate a Min value (= 0,99 * Safety Stock) and a Max value (= 1,01 * Storage Upper Bound). As the
values of these rows can be different from bucket to bucket, the calculation is repeated for each
iteration. This interval is now used to highlight where we have (possible) coverage issues.
Note: For the remainder of this step we use the closing stock (see macro D2 as well):
-
In planning book ZZ_ROOT, views 07 ST DEP and 08 LT DEP and in planning book GM_DEPLOY
views 01 ST DEP and 02 LT DEP this key figure is called DEP Closing Stock.
In planning book ZZ_ROOT view 22 ST DEP CONFIRMED and planning book GM_DEPLOY view 03
ST DEP CONFIRMED it’s called DEP Closing Stock Confirmed.
In planning book ZZ_ROOT views 01 ST PRODLOC, 02 LT PRODLOC and 11 PRODLOC GRAPHICAL
and planning books GM_PP_BJ_CSE, GM_MANUAL and GM_DETAIL it’s called Closing Stock on
Hand (Projected).
63
We start by checking if DEP Closing Stock > the Max value & Max Cover > 0. If so we assign the colour
blue to row Days’ Supply and add a tooltip “Above_Maximum_Cover”.
Next we check if DEP Closing Stock lies in between the Min and Max value & Stock on Hand
(Projected) > 0. In this case the tooltip will show nothing, the colour of Days’ Supply will be green,
stating everything is fine.
Third check is to see if DEP Closing Stock < Min value & Stock on Hand (Projected) > 0. Tooltip =
“Below_Minimum_Cover” & colour = yellow, as sign of warning.
In case none of the three scenarios above occur, it means we have an out of stock situation. In this
case the tooltip shows “No_Minimum_Stock” and the colour is red to highlight the critical situation.
This full macro step runs for all buckets.
Step 3 runs as well for all buckets and colours the values of row Supply Shortage red in case these are
bigger than 0.
Note: Step is not available in planning book ZZ_ROOT view 22 ST DEP CONFIRMED and planning book
GM_DEPLOY view 03 ST DEP CONFIRMED.
Step 4 runs for all buckets and compares Stock on Hand (Projected) with Safety Stock. If Stock on
Hand is smaller, we are below the minimum stock. We now colour the values in Safety Stock red to
highlight these buckets.
Note: Step is not available in planning book ZZ_ROOT view 22 ST DEP CONFIRMED and planning book
GM_DEPLOY view 03 ST DEP CONFIRMED.
Step 5 runs again for the future buckets and compares Stock on Hand (Projected) with Storage Upper
Bound. If Stock on Hand is bigger, we exceed the maximum stock. We now colour the values in
Storage Upper Bound red to highlight these buckets.
Note: Step is not available in planning book ZZ_ROOT view 22 ST DEP CONFIRMED and planning book
GM_DEPLOY view 03 ST DEP CONFIRMED.
Macros for Product/Location Aggregation views
The second section of macros is set up for views where product aggregation at one location can be
done. So in this base either loading just a product location or loading all products for a specific
location is possible. Generally this explanation will cover the macros used in these planning books
and data view:
-
ZZ_ROOT: 03 ST PRODAGG, 04 LT PRODAGG, 05 ST LOCAGG, 06 LT LOCAGG, 09 DEP ST PRODAGG,
10 DEP LT PRODAGG, 12 LOCAGG GRAPHICAL & 13 DEP PRODAGG GRAPH.
GM_AGG_CSE/KG/PAL: all views
Start 1 => Process at Start
First start macro. This macro is intended to prepare some variables that are used further in the
processing of the other macros. If the planner loaded data at aggregated level, a drill down is
performed to product and/or location to allow calculation at detailed level and aggregated level at
64
the same time. This is the only way we can guarantee that the values at aggregated level are shown
correctly for all key figures.
Step 1. First of all variable ‘START_INDICATOR’ is set to ‘X’.
Step 2 sums Distribution Demand (Planned) for the full horizon and does the same for Distribution
Receipt (Planned). In case the second term is bigger than the first we set variable ‘3P_REQ_EXIST’ to
‘X’.
Note: This step only runs for the LOCAGG views.
Step 3 sums Distribution Demand (TLB-Confirmed) for the full horizon and does the same for
Distribution Receipt (TLB-Confirmed). In case the second term is bigger than the first we set variable
‘3P_REQ_EXIST’ to ‘X’.
Note: This step only runs for the LOCAGG views.
Next we check if AGG_LEVEL( ‘9AMATNR’ ) = 1. This means that we check if we’re currently at
aggregated product level, cause when value 1 is returned from this function, that is actually the case.
In this case, variable ‘DRILLED_9AMATNR’ is set to ‘X’, ‘DEFAULT_CALCS’ as well and a drill down is
performed to product. If we’re not at aggregated level, only DEFAULT_CALCS is updated with value
‘X’.
Next step repeats exactly the same for location, logically in this case we used variable
‘DRILLED_9ALOCNO’ instead of ‘DRILLED_9AMATNR’. By having these variables set to ‘X’, we know
we have performed a drill down and can perform a drill up again back to the original level after all
detailed calculations of all key figures are done. Important to know is that at this time where the drill
down is performed, the default macros will be executed.
Next two steps do again the drill up for the same two characteristics if previously we have done a
drill down. If we do perform a drill up we set variable DRILLED_9ALOCNO/9AMATNR back to ‘_’. In
the last step we also change ‘START_INDICATOR’ to ‘_’. This last variable is just there to identify if we
have just loaded data and therefore the start macro runs or if we’re doing a level change or hitting
enter, in which case the start macro would not be executed.
Get strategy for consuming stock
This as well is a start macro suggested by OSS note 823362 and can be found in standard macro book
9ASNP_PS view PROD_SUBST. It calculates a variable “Validity Date” that depends on if for that
product location a supersession chain for interchangeability exists (/INCMD/UI) and if the stock for
the product can be fully used up or restricted to a date or quantity. Currently nothing is done with
the content of that variable.
Key Figure Attributes
Third start & first default macro. This macro takes care of hiding or showing key figures that are
needed at detailed (= product location) or aggregated level. If the user is at product location level,
rows Max Cover, Safety Stock (Planned) & Safety Days’ Supply are shown, whereas rows Agg Max
Days and Agg Safety Days’ are hidden. If the user is at aggregated level, we show and hide exactly the
other way round.
65
The macro is set to run at all levels, this will make sure that the macro is always ran and the right
level is always determined.
Level Chg 1 => Initialize Drill Ind
First level change macro, which runs at aggregated level only. It checks if variable
‘START_INDICATOR’ is not equal to ‘X’ and then updates 3 variables (it basically resets their values):
-
DEFAULT_CALCS = ‘_’
LOCNO_INDICATOR = ‘_’
MATNR_INIDCATOR = ‘_’
Level Chg 2 => Drilldown Check
Second level change macro uses again these 2 last variables. First check is done if to see if we’re at
aggregated product level with function AGG_LEVEL, ‘START_INDICATOR’ is not ‘X’ &
‘DRILLUP_INDICATOR’ is not ‘X’. In that case we also set ‘MATNR_INDICATOR’ to ‘X’. Second check is
similar, but has as difference that the check in this case is to see if we’re at aggregated location level
and it updates ‘LOCNO_INDICATOR’ = ‘X’.
This macro runs at level 1, which would be the first level that has been drilled down to. Like this we
identify to which characteristic we might still need to drill down to recalculate the detailed and
aggregated key figure information, similarly to the way we drill down in the first start macro.
Level Chg 3 => Execute Drilldown
Third level change macro then takes care of the drill down. Therefore we need to check if
‘MATNR/LOCNO_INDICATOR’ is equal to ‘X’ (and again ‘START_INDICATOR’ is not ‘X’). If so, we
perform the drill down to 9AMATNR and 9ALOCNO respectively. At the end of the macro, we set in
any case variable ‘DEFAULT_CALCS’ to ‘X’.
This macro again runs at aggregated level, as like this it only runs once and is not repeated
unnecessarily. Similarly as for macro Start 1, after the drill down, the default macros are executed
automatically.
Level Chg 4 => Flag drilldown complete
Fourth change level macro which starts off with checking if function PLOBS_FOR_LEVEL( 1 ) returns a
value bigger than 0. This function returns the number of objects found at the level of the first drill
down that was done. So as soon as a drill down is done we would find more than 0 values for the
characteristic. We then set ‘DRILLUP_INDICATOR’ to ‘X’. If not, we set this variable to ‘_’.
Secondly we also check if ‘START_INDICATOR’ is not ‘X’ and ‘DEFAULT_CALCS’ is not ‘Z’ and then set
‘DEFAULT_CALCS’ to ‘X’.
Default 0=> Detail level 3rd party calcs
Second default macro, but runs only for LOCAGG views. It runs at detailed level only, so it does affect
the drilled down level and not the totalled figures. It performs an additional to check if
‘DEFAULT_CALCS’ = ‘X’ and we’re at product and location level.
It now first checks if ‘3P_REQ_EXIST’ = ‘X’, which means we have 3rd Party PReq receipts in the
network. Via function module ZAPO_POSRVAPS (see 8.3) it calculates for the full horizon and for the
66
actual product location the sum of all Distribution Receipts (Planned) from 3rd Parties and puts this in
variable ‘ALL_3P_PREQ_REC’. If now this value > 0 it means we have PReq receipts more particularly
at this location.
If so, we then check if this sum is equal to the total sum of Distribution Receipts (Planned), so if all
planned receipts are 3rd Party receipts. If this is the case we copy Distribution Receipts (Planned) to
3rd Party PReq Receipts. If not, we check for every bucket if the Distribution Receipts (Planned) are
bigger than 0. In that case we again run the same function module as above but this time for every
bucket and we put the result in 3rd Party PReq Receipts. The intention of this is to reduce the number
of times the function module needs to run.
Next we check if ‘3P_PO_EXIST’ = ‘X’, which means there are PO receipts in the network. The logic we
follow here is exactly the same as above, but now for key figure 3rd Party PO Receipts & Distribution
Receipts (TLB-Confirmed).
Last check is looking if the sum of all in transits for the full horizon > 0. In that case we populate row
3rd Party Delivery Receipts (for just 7 iterations) with once again the same function module, which
will find the detailed in transits for 3rd Parties.
Note: This macro only exists in the LOCAGG views.
Default 1 => Detailed Calcs
Second default macro which runs at detailed level only, so it does affect the drilled down level and
not the totalled figures. It performs an additional to check if ‘DEFAULT_CALCS’ = ‘X’ and we’re at
product and location level. It basically calculates all detailed info: any sums, coverages, Safety Stock,
or forecast consumption.
Step 1 sets 4 variables, set up as auxiliary cells, to 0 to initialize them.
Step 2 retrieves information from the product master data and puts the content of field ATT05 in
variable ‘MAX_DAYS’ and of ATT04 in ‘MIN_DAYS’.
Note: This step only runs for the LOCAGG views.
Step 3 populates 3 of these 4 auxiliary cells depending on the product location master data (the
other 2 variables are not used any further). The values given to these variables will then be used in
the following steps. First variable is set to 1 if field ZZQISTOCKFOR is flagged in the Product-Location
master. This field can be found in tab Extra in /SAPAPO/MAT1 under description “QI Stock for Dep.”.
-
By default Quality Inspection Stock is not taken into account as available stock to deploy.
However, when the user does want to assume this stock will be available, he or she can achieve
this by flagging this field (see below)
Third variable is set to 1 if field ZZDRPTOTARGE is flagged in the Product-Location master. This field
can be found in tab Extra under description “DRP to Target”. Secondly, if the field is flagged we
update row SCTARGETDAYs for the initial column with the value that is found in field
ZZTARGETCOVE. This field as well can be found in tab Extra under description “Target Cover”.
67
-
This field should be set in case heuristics should be driven by a target value rather than by the
Safety Stock/ Safety Days’ Supply. (see below)
Note: this part is inactive in the LOCAGG views.
Fourth variable is set to 1 if field ZZPLNDDISTRR is flagged in the Product-Location master. This field
can be found in tab Extra under description “Plnd. Distr. Rec as”.
-
This field should be set in case a planner wants to include the results of the heuristics into the
receipts in order for it to be available to deploy. (see below)
Note: This part is only active for the “DEP” views
Step 4 fills in the number of days of a bucket (Bucket Days) by calculating the difference between the
end and start date of a bucket + 1. This step does not need to run for the initial column. The row is
used for the coverage calculations below.
Step 5 runs for the future buckets and populates row Shipping calendar Days with the number of
working days that can be found in the shipping calendar specified for the regarded product location.
Note: for the LOCAGG view, there’s an additional statement which shows this row as it’s hidden by default. So,
being at this detailed level, the line will be shown.
Step 6 calculates row Demand (Forecast/Sales Order) for the whole Data View by using function
DEMAND_CALC which checks the Requirement strategy for the Location Product and consumes
forecast with sales orders according to these settings. This result is not shown in the books, but used
further down in Step 4.
Step 7 is about preparing the right key figures that will need to be used in Safety Stock planning,
depending on how the master data settings are for the considered Product Location. It runs for 1
iteration only, being the first bucket ignoring the initial column. First it checks the Safety Stock
Method in the Product-Location Master, which is field MSDP_SB_METHOD “Safety Stock Method”
which can be found under tab Lot Size in /SAPAPO/MAT1.
If this field is SZ, we want to use the Safety Days’ Supply value from the Product Master, field SVTTY
on same tab, as Safety Stock. We have to divide this value by 240000 to get the same number of days
in the planning book. Next we check if the field ZZMAXCOVER (“Max cover” under tab Extra) is
populated. If so, we use it to populate key figure Max cover; if not, we populate Max cover by taking
the value in Safety Days’ Supply + 1.
If the field is MZ, we use a time-based (so a non-fixed) Safety Day’s Supply. Therefore this row will be
opened for input, just as the Max Cover. At the same time rows Storage Upper Bound & Safety Stock
(Planned) are closed.
We do the opposite of the logic of MZ of closing and opening rows in case the field is equal to MB. In
that case we want to base the Safety Stock logic on volumes instead of days and want the user to be
able to enter a value in Safety Stock (Planned) and Storage Upper Bound.
Step 8 copies forward the Safety Days’ Supply and Max cover populated for Method SZ in the first
bucket to all following buckets as we want to use fixed values for the whole data view.
68
Step 9 calculates Distribution Demand (Total) for the full horizon as the sum of Dist.Dem (TLBConfirmed), Dist.Dem (Confirmed), Dist.Dem (Planned) & Dist.Dem (Subcontracting)
Note: in the LOCAGG views we also include Distribution Demand(MRP Area)
Step 10 calculates Total Demand for the full horizon as the sum of the Distribution Demand (Total)
which was just calculated & Dependent Demand, Forecast (additional), Demand (Forecast/Sales
Order), Substitution Demand (Planned) & Substitution Demand (Confirmed).
Step 11 calculates Production (Total) for the full horizon as the sum of Prod (Planned), Prod
(Confirmed), Prod (Subcontracting Planned) & Manufacture of Co-Products.
Step 12 calculates Total 3rd Party Receipts as the sum of 3rd Party Delivery Receipts, 3rd Party PO
Receipts and 3rd Party Preq Receipts for the full horizon.
Step 13 checks the fourth variable calculated in Step 2. If the variable is 1 (so the master data field is
flagged), we said we want to take into account results from the heuristics in the receipts. To do this
we use a planning book key figure called Receipt External that is the sum of Distribution Receipt
(Planned) & Distribution Receipt (Subcontracting Planned). So, this key figure is only filled when the
master data field is populated.
Note: Step is only active for the “DEP” views.
Step 14 calculates (DEP) Distribution Receipts (Total) for the full horizon as the sum of Dist.Rec (TLBConfirmed), Dist.Rec (Confirmed), In Transit, Dist.Rec (Planned) & Dist.Rec (Subcontracting Planned).
Note: In the “DEP” views, the row Dist.Rec (MRP Area) is included as well, just as in the LOCAGG views.
Step 15 calculates (DEP) Total Receipts for the full horizon as the sum of Production (Total), (DEP)
Distribution Receipts (Total), Substitution Receipt (Planned) & Substitution Receipt (Confirmed).
Note: In the LOCAGG views we also include row Total 3rd Party Receipts.
Step 16 populates the initial columns of a few informational planning book key figures by checking
specific categories or category groups to show the current stock information in more detail.
-
Stock in Transfer = Category CA (function PHYSICAL_STOCK())
Stock at Vendor = Category group ZCE (function PHY_STOCK_LOCPRODS())
Stock Inspection = Category group ZCF (function PHY_STOCK_LOCPRODS())
Stock Blocked = Category group ZCI (function PHY_STOCK_LOCPRODS())
As well it calculates the initial bucket of Opening Stock on Hand (Projected) with function
INITIAL_STOCK. In case the master data flag for QI stock is not set (see higher up), the QI Stock
quantity is subtracted from this initial stock.
Note: This step only runs for the “DEP” views. For the LOCAGG views it runs, but only determines the Stock
Inspection quantity.
Step 17 copies row Opening Stock on Hand (Projected) to row DEP Opening stock for just the initial
bucket.
69
Note: This step only runs for the “DEP” views.
Note: in the LOCAGG views, the logic is a bit different as here we determine key figure Actual Stock with
function INITIAL_STOCK for the current product location.
Step 18 populates key figure Stock on Hand (Projected) for the initial column by calculating with
STOCK_CALC what remains from the initial stock after summing the Total Receipts and subtracting
the Total Demands.
Note: the calculation is slightly different for the “DEP” views where Stock on Hand (Projected) for the initial
column is calculated by taking the previously calculated value of Opening Stock on Hand (Projected) + DEP
Total Receipts – Total Demand.
Step 19 does exactly the same for the remaining buckets, but in this case doesn’t use the initial stock,
but the Stock on Hand (Projected) from the previous bucket. So, Stock on Hand = Stock on Hand
previous bucket + receipts – demands.
Step 20 runs for all buckets and checks for negative Stock on Hand. In case a negative is fond, row
Supply Shortage is set to the absolute value of the shortage for the respective bucket, being the
negative of the value in Stock on Hand. As well row Closing Stock on Hand (Projected)/DEP Closing
Stock is set to 0. If it is a positive value, Supply Shortage = 0 and Stock on Hand is copied to row
Closing Stock on Hand (Projected)/DEP Closing Stock.
Note: For the graphical views Closing Stock is always equal to Stock on Hand (Projected), no matter if this is
negative or positive. The logic for the Supply Shortage is not changed however.
Step 21 runs for all buckets and checks for negative Stock on Hand. In case a negative is found DEP
Opening Stock is set to 0. If it is a positive value, Stock on Hand is copied to row DEP Opening Stock
of the next bucket.
Note: This step only runs for the “DEP” views.
Note: For the graphical views DEP Opening Stock is always equal to Stock on Hand (Projected) from the
previous bucket, no matter if this is negative or positive.
Step 22 calculates key figure Storage Upper Bound for the whole horizon. It converts the value found
in Max Cover in days into a volume by checking the Total Demand and Bucket Days key figures by
using function COVERAGE_SUM. For example, if Max Cover is 10 days for a particular bucket and the
Bucket Days of the two following buckets are 5, we know the Storage Upper Bound should be equal
to the sum of Total Demand for these two buckets as like this we have sufficient volume to cover
demand for the next ten days.
Note: This step does not run for the LOCAGG views, but is replaced by a more complex logic as we need to
check if the loaded location is an MU (Location type = 1001) or not. If so, Storage Upper Bound is put to 0 as we
do not expect stock at the MU. Else, we perform another check to see if there is any value in row Max Cover. If
so, Storage Upper bound is calculated as in the other views (and as explained higher up for this step). If no Max
Cover is found, we check if ‘TARGET_DAYS’ > 0. If so, Storage Upper Bound is calculated in the same way as
before but with the value in ‘TARGET_DAYS’ instead of the value in Max Cover.
70
Step 23 runs for the future buckets only and takes care of the Safety Stock calculation, ignoring the
initial column only. Function SAFETY_CALC is used which checks the relevant master data settings,
key figures Safety Days’ Supply & Safety Stock (Planned) and applies these to the Total Demand and
Bucket Days rows to come up with the relevant Safety Stock value.
Step 24 in reality consists of four steps.
First we calculate Network Min Stock for all future buckets by using FORWARD_CALC and using the
value found in ‘MIN_DAYS’, row Total Demand and row Bucket Days. This basically determines the
equivalent in volume for the minimum days value by using the demand and bucket days.
Similarly we calculate Network Max Stock, but now with variable ‘MAX_DAYS’. Then we set for all
buckets Network Max Cover = ‘MAX_DAYS’ & Network Min Cover = ‘MIN_DAYS’.
Note: This 4 steps only run for the LOCAGG view.
Step 25 again runs for the future buckets only. The Target Stock Level is populated by copying the
values in row Safety Stock.
Step 26 If Stock on Hand (Projected) as calculated before is positive, row Days’ Supply is calculated
with COVER_CALC. This function uses the Total Demand and Bucket Days to find for how many days
the available Closing Stock on Hand (Projected) can cover the upcoming demands. The step runs for
the full horizon. If Stock on Hand (Projected) is negative, we calculate a negative coverage with the
same function but in this case by checking row Supply Shortage instead of the Closing Stock.
Note: for the “DEP” views we always calculate the cover with the Stock on hand, no matter if stock is positive
or negative.
Step 27 runs for the same horizon and calculates first of all the remaining number of days in the
planning book as it is found by summing up the value in Bucket Days for bucket + 1 until the last
bucket. Now if the value in row Days’ Supply, calculated in the previous step is bigger than the
number found by this sum, we change Days’ Supply to 999.
Default 3 => Aggregate Level 0 Calcs
Third default macro which runs at aggregated level only, so it does not affect the drilled down level,
but just the totalled figures. It therefore does a similar thing than the previous macro, but for
another level of detail. Default 1 moreover needs to run before this macro for it to be able to display
correctly the aggregated totals.
Generally we can distinguish three cases; any exceptions to this are explained in more detail below:
-
We sum up the details of the key figure itself
We calculate the key figure by using the totals of the key figures we need (this would be the same
logic as in macro Default 1)
For non-calculated key figures we don’t need to calculate the totals, as the system will do this by
default
Starting point is a check to see if ‘DEFAULT_CALCS’ is equal to ‘X’. It was set to ‘X’ in the start or level
change macros and basically avoids the default macro from running at the wrong time. As well we
71
state that PLOBS_FOR_LEVEL( 1 ) should be bigger than 0. This function returns the number of
objects found at the level of the first drill down that was done. So as soon as a drill down is done we
would find more than 0 values for the characteristic. If both checks generate a positive answer we
continue with the macro logic.
Step 1 = Step 2 of default 1 macro.
Step 2 = Step 3 of default 1 macro.
Step 3 = Step 4 of default 1 macro.
Step 4 calculates Demand (Forecast/sales) as the sum of the content in the details of row Demand
(Forecast/sales) for all buckets.
Step 5 calculates Distribution Demand (Total) as the sum of the content in the details of row
Distribution Demand (Total) for all buckets.
Step 6 calculates Total Demand as the sum of the content in the details of row Total Demand for all
buckets.
Step 7 calculates 3rd Party PReq Receipts as the sum of the content in the details of row 3rd Party
PReq Receipts for all buckets.
Note: this step only runs for the LOCAGG views.
Step 8 calculates 3rd Party PO Receipts as the sum of the content in the details of row 3rd Party PO
Receipts for all buckets.
Note: this step only runs for the LOCAGG views.
Step 9 calculates 3rd Party Delivery Receipts as the sum of the content in the details of row 3rd Party
Delivery Receipts for all buckets.
Note: this step only runs for the LOCAGG views.
Step 10 calculates Total 3rd Party Receipts as the sum of the content in the details of row Total 3rd
Party Receipts for all buckets.
Note: this step only runs for the LOCAGG views.
Step 11 calculates Production (Total) as the sum of the content in the totals of rows Prod (Planned),
Prod (Confirmed), Prod (Subcontracting Planned) & Manufacture of Co-Products for all buckets.
Step 12 calculates Receipt External as the sum of the content in the details of Receipt External for all
buckets.
Note: this step only runs for the DEP views.
Step 13 calculates Distribution Receipt (Total) as the sum of the content in the totals of rows Dist.Rec
(TLB-Confirmed), Dist.Rec (Confirmed), In Transit, Dist.Rec (Planned) & Dist.Rec (Subcontracting
Planned) for all buckets.
72
Note: In the “DEP” views a slightly different logic leads to the same result. It calculates DEP Distribution Receipt
(Total) as the sum of the content in the details of DEP Distribution Receipt (Total).
Note: This step is not active for the LOCAGG views.
Step 14 calculates (DEP) Total Receipts as the sum of the content in the totals of rows Production
(Total), (DEP) Distribution Receipts (Total), Substitution Receipt (Planned) & Substitution Receipt
(Confirmed) for all buckets.
Note: for the LOCAGG views, key figure Distribution Receipts (Total) is replaced with In Transit, 3 rd Party PReq
Receipts & 3rd Party PO Receipts.
Step 15 calculates Opening Stock on Hand (Projected) as the sum of the content in the details of
Opening Stock on Hand (Projected) for the initial bucket.
Note: Step is only active for the “DEP” views.
Step 16 sets variable ‘INTRANSIT’ to 0.
Note: step only runs for LOCAGG views.
Step 17 runs for 8 iterations and adds the sum of the content in the details of Distribution Receipt
(TLB-Confirmed) – the sum of the content in the details of Distribution Demand (TLB-Confirmed) –
the sum of the content in the details of 3rd Party PO Receipts.
Note: step only runs for LOCAGG views.
Step 18 sets Actual Stock for the initial column to the sum of the content in the details of Actual
Stock and the resulting ‘INTRANSIT’ variable from the previous steps.
Note: step only runs for LOCAGG views.
Step 19 calculates Stock on Hand (Projected) as the sum of the content in the details of Stock on
Hand (Projected) for the initial bucket.
Note: for the LOCAGG view we get to the same result in a slightly different way by taking the value in Actual
Stock + Total Receipts – Total Demands.
Step 20 calculates Stock in Transfer as the sum of the content in the details of Stock in Transfer for all
buckets.
Note: Step is only active for the “DEP” views.
Step 21 calculates Stock Inspection as the sum of the content in the details of Stock Inspection for all
buckets.
Note: Step is only active for the “DEP” and LOCAGG views, except for the LOCAGG graphical view.
Step 22 calculates Stock Blocked as the sum of the content in the details of Stock Blocked for all
buckets.
Note: not in ZZ 3/4
73
Step 23 calculates Stock at Vendor as the sum of the content in the details of Stock at Vendor for all
buckets.
Note: Step is only active for the “DEP” views.
Step 24 populates key figure Stock on Hand (Projected) for all other columns by calculating with
STOCK_CALC what remains from previous Stock on Hand (Projected) summing the Total Receipts and
subtracting the Total Demands or by simply making the sum. So, Stock on Hand = Stock on Hand
previous bucket + receipts – demands.
Step 25 populates Opening Stock on Hand (Projected) by copying the value in Stock on Hand
(Projected) from the previous bucket and it does this for all future buckets.
Step 26 runs for all buckets and checks for negative Stock on Hand. In case a negative is fond, row
Supply Shortage is set to the absolute value of the shortage for the respective bucket, being the
negative of the value in Stock on Hand. As well row Closing Stock on Hand (Projected)/DEP Closing
Stock is set to 0. If it is a positive value, Supply Shortage = 0 and Stock on Hand is copied to row
Closing Stock on Hand (Projected)/DEP Closing Stock.
Step 27 runs for all buckets and checks for negative Opening Stock on Hand (Projected). In case a
negative is fond, row DEP Opening Stock is put to 0. Otherwise it is populated by copying the value in
Opening Stock on Hand (Projected).
Note: Step is only active for the “DEP” views.
Note: For the graphical views, the check on positive or negative is not done. We by default copy Opening Stock
on Hand (Projected) to DEP Opening Stock.
Step 28 calculates Safety Stock as the sum of the content in the details of Safety Stock for all future
buckets.
Step 29 calculates Storage Upper Bound as the sum of the content in the details of Storage Upper
Bound for all future buckets.
Step 30 in reality consists of four steps, the same four as indicated by Step 24 in macro Default 1.
Step 31 = Step 26 of Default 1 macro
Note: For the graphical views the logic is different in the sense that we have just 1 iteration and use vector logic
to populate Days’ Supply. (see as well below on step 25).
Step 32 = Step 27 of Default 1 macro
Step 33 calculates Area Agg Safety Days with function VEC_COVER_CALC. This function uses the
areas covering the whole horizon for Total Demand and Bucket Days to find for how many days the
sum of the Safety Stock can cover the upcoming demands. Only one iteration is needed, which
through the areas will populate the key figure for the whole horizon.
Step 34 calculates Area Agg Max Days in a similar way but by checking the Storage Upper Bound
instead of the Safety Stock.
74
Default 4 => Aggreg Level 0 Highlights
Fourth default macro, which runs at all level, meaning it will affect drilled down and total lines. Its
goal is to help the planners by working with colour coding to highlight issues or possible risk
situations regarding out of stock situations or lack or excess of coverage, which will help to focus first
of all on resolving these situations.
Note: in some views the steps are interchanged, but still doing the same. So check which step in the macro
matches to which step mentioned here.
Step 1 colours the cells of the following rows grey for the future buckets where row Shipping
Calendar Days is empty and therefore no activity will be performed for that bucket on the loaded
location. As well, a tooltip will be shown when you locate your cursor on such a cell, stating
“NO_SHIPPING”. Affected rows are Total Demand, (DEP) Total Receipts, Production (Total), (DEP)
Distribution Receipts (Total), Shipping Calendar Days, Total Production (Available to Ship).
Note: this step in only active for the ST data views, so the view with daily buckets, as it’s days we expect to be
greyed out and not weeks.
Note: in the LOCAGG views we additionally do the same for rows Total 3rd Party Receipts.
Step 2 first of all checks if there is a Supply Shortage and if so it adds the icon for alerts to row DEP
Closing Stock, adds a tooltip “Stockout” and changes the colour of row Days’ Supply to red. Next we
calculate a Min value (= 0,99 * Safety Stock) and a Max value (= 1,01 * Storage Upper Bound). As the
values of these rows can be different from bucket to bucket, the calculation is repeated for each
iteration. This interval is now used to highlight where we have (possible) coverage issues.
Note: for the LOCAGG views instead of the Safety Stock we use the Network Min Stock and instead of the
Storage Upper Bound we use the Network Max Stock.
We start by checking if DEP Closing Stock > the Max value & Max Cover > 0. If so we assign the colour
blue to row Days’ Supply and add a tooltip “Above_Maximum_Cover”.
Next we check if DEP Closing Stock lies in between the Min and Max value & Stock on Hand
(Projected) > 0. In this case the tooltip will show nothing, the colour of Days’ Supply will be green,
stating everything is fine.
Third check is to see if DEP Closing Stock < Min value & Stock on Hand (Projected) > 0. Tooltip =
“Below_Minimum_Cover” & colour = yellow, as sign of warning.
In case none of the three scenarios above occur, it means we have an out of stock situation. In this
case the tooltip shows “No_Minimum_Stock” and the colour is red to highlight the critical situation.
This full macro step runs for all buckets.
Step 3 runs as well for all buckets and colours the values of row Supply Shortage red in case these are
bigger than 0.
Step 4 runs for all buckets and compares Closing Stock on Hand (Projected) with Safety Stock. If Stock
on Hand is smaller, we are below the minimum stock. We now colour the values in Safety Stock red
to highlight these buckets.
75
Step 5 runs again for the future buckets and compares Stock on Hand (Projected) with Storage Upper
Bound. If Stock on Hand is bigger, we exceed the maximum stock. We now colour the values in
Storage Upper Bound red to highlight these buckets.
Macros for Capacity Views
Resource Capacity Level
This macro is used to populate the capacity level in % key figure in the capacity planning books. This
also highlights the colour of the key figure if the percentage is higher than 100%.
Step 1 If the planning object is at the correct level for the data to be analysed, then the following
steps are executed.
Step 2 Checks if there is available capacity, if there is then the percentage key figure is populated
with the division of the available capacity from the capacity consumed. If there is no available and no
capacity consumed, then the percentage key figure is populated with 99999
Step 3 The previous step is again repeated but will populate the percentage key figure with 0
Colouring planned production
This macro has a single step to ensure that planned production is available for input.
Resource Capacity Level (PROBE)
This macro is used to populate the key figures in the capacity planning data view as well as colour the
key figures when required. This is the default macro of the capacity planning book.
Step 1 If the planning object that has been loaded is at the right level then the following steps can be
calculated. The object cannot be a PDS, a Transportation Lane nor a material.
Step 2 Checks if there is available capacity, if there is then the percentage key figure is populated
with the division of the available capacity from the capacity consumed. If there is no available and no
capacity consumed, then the percentage key figure is populated with 99999
Step 3 Checks to see if the resource is under-loaded, if so the resource capacity in percentage is
colour coded. If there is no under-load then it checks if there is an overload and if so, it will then
colour code the resource capacity in percentage. If there is no under nor over-load then the resource
capacity percentage is left as grey.
Step 4 Begins the cumulative capacity calculation by populating the first bucket of the cumulative
capacity key figure with the available capacity quantity.
Step 5 The cumulative capacity then uses the quantity from the previous bucket and continues to
add the available capacity quantity from the current bucket.
Step 6 Using the same logic of the cumulative capacity calculation the cumulative capacity consumed
is populated from the first bucket of the capacity consumed bucket.
Step 7 the cumulative capacity consumed bucket adds the previous bucket of the cumulative
capacity consumed key figure to the capacity consumed key figure to calculate a cumulative quantity
76
Step 8 the net cumulative capacity consumption is then calculated which subtracts the cumulated
capacity consumed from the cumulative available capacity
Step 9 if the net cumulative capacity is then negative it is coloured red, otherwise it is left as the
default colour.
Resource Capacity Variant (Capacity Planning)
This is a composite macro that contains the Resource Capacity Variant 1 and Resource Capacity
Variant 2 macros, in that order. This is the only default macro that exists in the Capacity Planning
data view
Resource Capacity Variant 1
This macro has a single step that will populate the Normal Available Capacity. There is a condition to
populate this information which is the planning object that is loaded, if the object is a resource then
the Normal Capacity Variant is populated according to the Resource Variant function with a
parameter of 01
Resource Capacity Variant 2
This macro has a single step that will populate the Normal Available Capacity. There is a condition to
populate this information which is the planning object that is loaded, if the object is a resource then
the Normal Capacity Variant is populated according to the Resource Variant function with a
parameter of 02
Layout Attributes for RES_TYPE
This standard macro is used to determine which key figures are available to be edited and seen
according to the resource type. This macro can be found in the level change event.
Step 1 checks if the data is locked for the resource that is being loaded. If the data is not locked then
the available capacity key figure can be modified.
Step 2 checks that a production resource is being loaded, if so then it makes production key figures
visible in the data view.
Layout Attributes for Planning Objects
This is a composite macro that contains the two layout attribute macros: Layout Attributes for
PLOBs, level 1 & Layout Attributes for Plng Objs, Level 2. This macro can be found in the level change
event.
Layout Attributes for PLOBs, level 1
This macro can only be executed at the Level 1 planning level. It basically will allow for certain key
figures to be editable.
Step 1 checks to see if the data is locked, if it is not then it will check the object that is to be loaded
into the data view. If the object is okay then it will allow for the production planned to be edited.
Step 2 will hide capacity rows if the planning object being loaded is incorrect.
77
Layout Attributes for Plng Objs, Level 2
This macro can only be executed at the Level 2 planning level and is identical to the previous macro
for level 1. It basically will allow for certain key figures to be editable.
Step 1 checks to see if the data is locked, if it is not then it will check the object that is to be loaded
into the data view. If the object is okay then it will allow for the production planned to be edited.
Step 2 will hide capacity rows if the planning object being loaded is incorrect.
Fill Bucket Information
This is a basic macro with a single step to populate an auxiliary row for the BUCKET BDATE and
another for the BUCKET EDATE.
Collective drill down, set loc, drill up
This composite macro contains the three below macros with the objective to set the location layout
variable used later by other macros in the planning book. This macro is used only in the LOCATION
PLANNING data view.
Drill up 9ALOCNO
This is a basic macro used to drill back up to the aggregated location level.
Location Set
This macro sets the LOCATION layout variable that is used later in other calculations for demands,
receipts and stocks.
Drill down 9ALOCNO
This macro is used to drill down to the detailed level in order to set the LOCATION layout variable
Total Production Grid 1
This macro uses the ORDER_DATA_LOCPRODS function to find all ZF1 category group elements for
the LOCATION layout variable and all products that have been loaded into the data view.
Total Production Grid 2
This macro simply ensures the data is refreshed for the Total Production.
Demand calc
This macro uses the ORDER_DATA_LOCPRODS function to find all ZDM category group elements for
the LOCATION layout variable and all products that have been loaded into the data view.
Stock Calc
This will calculate the stock projection for the LOCATION PLANNING data view.
Step 1 first calculates the actual stock key figure which uses the PHYS_STOCK_LOCPRODS which looks
for the ZST. For the initial bucket of the closing stock on hand projected key figure
Step 2 executes the STOCK CALC function for the initial closing stock on hand projected key figure
Step 3 calculates the stock projection going forward using the previously calculated Total Demand
and Total Production key figures.
78
Days' Supply
This macro calculates a Supply Shortage as well as the days’ supply value in the LOCATION PLANNING
data view
Step 1 Populates the bucket work days using the standard calculation found in all macro work books
Step 2 Calculates the supply shortage to an auxiliary key figure which is later used in the day’ supply
calculation
Step 3 if the stock is positive the days’ supply will be calculated using the stock projection key figure.
If the stock is negative, the days’ cover will be calculated with the supply shortage key figure and a
negative will be placed ahead of the number
Step 4 the negative days’ cover will continue to decrease according to the bucket days quantity
Step 5 the quantity of the bucket days’ is summed and maintained in the HORIZON layout variable. If
that variable is greater than the days’ coverage then the value is put to 999
Colour negative stock
A single step macro that will colour the days’ supply key figure depending on whether the stock is
positive or negative.
Macros for Global Stock View
This section will cover both the TSCOPY data view macro as well as the Global Stock View macros as
they are both required for the Global Stock View update.
TSCOPY Macro
This macro is used to populate the time series data in the Z9ASNP04KGTS planning area from the
liveCache key figures. This data is calculated at the product/location level and then updated into
ZGLOBALSTK via the TSCOPY job step. The execution of this initial step is crucial to ensuring the data
is properly populated to the ZGLOBALSTK planning area.
Step 1 fills in the number of days of a bucket (Bucket Days) by calculating the difference between the
end and start date of a bucket + 1. This step does not need to run for the initial column. The row is
used for the coverage calculations below.
Step 2 calculates row Demand (Forecast/Sales Order) for the whole Data View by using function
DEMAND_CALC which checks the Requirement strategy for the Location Product and consumes
forecast with sales orders according to these settings. This result is not shown in the books, but used
further down in Step 4.
Step 3 calculates the Time Series Total Demand for the full horizon as the sum of the Distribution
Demand (MRP Area), Dependent Demand, Forecast (additional), Demand (Forecast/Sales Order),
Substitution Demand (Planned) & Substitution Demand (Confirmed).
Step 4 calculates Ref. Min Stock Value to be used for later calculations for the full horizon as the sum
of the Distribution Demand (MRP Area), Dependent Demand, Forecast (additional), Demand
(Forecast/Sales Order), Substitution Demand (Planned) & Substitution Demand (Confirmed).
79
Step 5 Populates layout variables which are later used to calculate the storage upper bound, global
min and global max stock volumes.
Step 6 Calculates the Total Distribution demand volumes excluding the Distribution Demand (MRP
Area) demands.
Step 7 calculates the Total Demand for the full horizon as the sum of the Distribution Demand (MRP
Area), Dependent Demand, Forecast (additional), Demand (Forecast/Sales Order), Substitution
Demand (Planned) & Substitution Demand (Confirmed).
Step 8 Calculates the Total Distribution Receipt volumes excluding the Distribution Demand (MRP
Area) demands.
Step 9 Calculates the Total Production quantity summing all of the production elements.
Step 10 Calculates the Total Receipts by summing In Transit, Total Production, and the substitution
receipt elements.
Step 11 Populates the Time Series Global Supply key figure by summing all production and
substitution elements
Step 12 Resets the INTRANSIT layout variable to 0
Step 13 Adds the previous INTRANSIT value to the TLB Receipts and then subtracts the TLB Demand
elements for eight iterations
Step 14 Populates the Actual Stock value with the INITIAL_STOCK macro plus the INTRANSIT layout
variable value.
Step 15 Copies the Actual stock from the initial bucket into the first bucket for the Time Series Actual
Stock Key figure
Step 16 Calculates the Stock on Hand Projected for the Initial bucket using the STOCK_CALC logic and
the Total Demand, Total Receipts and Actual Stock key figures
Step 17 Calculates the Stock on Hand Projected going forward using the initial column then adding
receipts and subtracting demands from the first bucket.
Step 18 Copies the stock on hand projected into the Time Series Stock on Hand Projected key figure
offsetting the data by one bucket.
Step 19 Calculates the Global Maximum Stock using the ref. min demand key figure and the
MAX_DAYS variable from the product master.
Step 20 Calculates the Global Minimum Stock using the ref. min demand key figure and the
MAX_DAYS variable from the product master.
Step 21 Calculates the Total Demand with the Distribution elements included.
80
Step 22 Calculates the Safety Stock directly in the Time series Safety Stock key figure using the Total
Demand, standard safety stock key figures and the bucket days.
Step 23&24 checks if the loaded location is an MU (Location type = 1001) or not. If so, Storage Upper
Bound is put to 0 as we do not expect stock at the MU. Else, we perform another check to see if
there is any value in row Max Cover. If so, Storage Upper bound is calculated as in the other views
(and as explained higher up for this step). If no Max Cover is found, we check if ‘TARGET_DAYS’ > 0. If
so, Storage Upper Bound is calculated in the same way as before but with the value in
‘TARGET_DAYS’ instead of the value in Max Cover.
Step 25 Copies the dependent demand into the time series dependent demand key figure with an
offset of one bucket
Step 26 Copies the sales orders into the time series sales order key figure with an offset of one
bucket
Step 27 Copies both the forecast and the forecast additional key figure into the time series forecast
key figure with an offset of one bucket.
Global Alerts
For the Global Stock View there are two basic macros that are executed by Default. The first macro is
to do calculations as well as generate alerts. The second macro is for the basic attributes of the key
figures in the view.
The global alerts macros not only creates the database alerts, but is also used to populate the data
for the calculated key figures. In the new Gold Model Planning Book you will see additional steps to
reset the data in the key figures in order to populate the initial column in the data view
Step 1 fills in the number of days of a bucket (Bucket Days) by calculating the difference between the
end and start date of a bucket + 1. This step does not need to run for the initial column. The row is
used for the coverage calculations below.
Step 2-8 (Gold Model Data View) Demand, Forecast, Sales orders, Dependent Demand, Production,
Actual Stock, and Stock is all reset back to populate the initial column. As in the source data view
(GM_PP_BJ -> TSCOPY ) the key figures are copied from the initial column into the first bucket
available (a 1 bucket offset in the macros) and later copied into the Global Stock Planning Area we
need to reset the data back to the initial column.
Step 9 Days’ Supply is calculated with COVER_CALC. This function uses the Total Demand and Bucket
Days to find for how many days the available Stock on Hand (Projected) can cover the upcoming
demands. The step runs for the full horizon.
Step 10 runs for the same horizon and calculates first of all the remaining number of days in the
planning book as it is found by summing up the value in Bucket Days for bucket + 1 until the last
bucket. Now if the value in row Days’ Supply, calculated in the previous step is bigger than the
number found by this sum, we change Days’ Supply to 999.
Step 11 resets the Unfulfilled Demand key figure back to 0 before recalculation begins
81
Step 12 resets the Lowestock variable to zero before calculation
Step 13 calculates the unfulfilled demand key figure. The macro logic first checks when the stock
goes below zero and then populates the Unfulfilled Demand key figure with that quantity as well as
sets the lowestock variable with that quantity as well. Going forward it will then only populate the
unfulfilled quantity with the delta between the lowestock variable and the unfulfilled demands to
ensure that there is not an excess amount of alerts for continued out of stock values.
Step 14 alerts are then deleted before new alerts are generated
Step 15 alerts are generated when there is an unfulfilled demand quantity
Step 16 resets the minimum stock violation key figure back to 0 before recalculation begins
Step 17 resets the TOTSFTYVIOL variable to zero before recalculation
Step 18 calculates the difference between the stock on hand (projected) key figure and the minimum
stock key figure. The difference is then populated into an auxiliary key figure to be used later for the
alert generation
Step 19 if the value of the auxiliary row is greater than 0 then it will populate both the minimum
stock violation key figure with that value as well as populate the TOTSFTYVIOL variable with that
value. The TOTSFTYVIOL is then used to check the delta between that variable and the quantity in the
auxiliary key figure to ensure that excess alerts are not generated, only where a delta exists between
the initial violation and subsequent violations that are larger than the initial violation
Step 20 alerts are then deleted before new alerts are generated
Step 21 Alerts are generated where there is a quantity populated in the minimum stock violation key
figure. The alert uses the Stock on Hand (Projected) and the Minimum Stock value to populate the
percentage and quantity difference in the alert monitor.
Step 22 resets the maximum stock violation key figure back to 0 before recalculation begins
Step 23 resets the TOTMAXVIOL variable to zero before recalculation
Step 24 calculates the difference between the stock on hand (projected) key figure and the
maximum stock key figure. The difference is then populated into an auxiliary key figure to be used
later for the alert generation
Step 25 if the value of the auxiliary row is greater than 0 then it will populate both the maximum
stock violation key figure with that value as well as populate the TOTMAXVIOL variable with that
value. The TOTMAXVIOL is then used to check the delta between that variable and the quantity in
the auxiliary key figure to ensure that excess alerts are not generated, only where a delta exists
between the initial violation and subsequent violations that are larger than the initial violation
Step 26 alerts are then deleted before new alerts are generated
82
Step 27 Alerts are generated where there is a quantity populated in the maximum stock violation key
figure. The alert uses the Stock on Hand (Projected) and the Maximum Stock value to populate the
percentage and quantity difference in the alert monitor.
Set Colour code for Coverage
This macro checks the global min and max cover values and colour codes the violation of these
voundaries.
Step 1 populates the MINCOVER and MAXCOVER variables with the product master data for the
Global Min and Max Cover values.
Step 2 uses the variables to populate auxiliary rows which are used in the following step
Step 3 The Days’ Supply is then compared against these two auxiliary rows to determine the color
coding for the violation of the boundaries.
GM_AGG_CSE/KG/PAL
Business logic
These views are generally used by the HUB planners and are quite flexible in the sense that they
allow analysis at product location or at aggregate level. Depending on the data view you are able to
load all products for a location or load all locations for a product and analyse the aggregate data
which are calculated by macros. The books are linked to the different planning areas with different
unit of measures, but in essence show the same thing.
Loading Level
As stated above, depending on the view you can load a different type of information. You can always
load a single Product Location, but depending on the view you can either load all locations for a
particular product (LOCAGG), or all products for a specific location (PRODAGG).
Data view layout
For the three planning books exactly the same set of data views exist which can be divided in views
for location aggregation and product aggregation. The views for short term show 10 weeks of which
the first 3 in days. The long term or graphical views show 104 weekly buckets.
-
01 ST PRODAGG
-
02 LT PRODAGG
-
03 ST LOCAGG
-
04 LT LOCAGG
-
05 DEP ST PRODAGG
-
06 DEP LT PRODAGG
-
07 LOCAGG GRAPHICAL
-
08 DEP PRODAGG GRAPHICAL
Key figure
Total Demand
Technical name
Views
DMDTO
All
83
Calculated
in Macro
Def1/Def3
Open for input
Key figure
Time Series Demand
Forecast (additional)
Forecast
Sales Order
Demand (Forecast/Sales Order)
(Hidden)
Dependent Demand
Substitution Demand (Confirmed)
(Hidden in CFD view)
Substitution Demand (Planned)
(Hidden in CFD view)
Distribution Demand (Total)
Distribution Demand (MRP Area)
DistrDemand (TLB-Confirmed)
Distribution Demand (Confirmed)
Distribution Demand (Planned)
Distribution
Demand
(Subcontracting)
Total Receipts
DEP Total Receipts
Substitution Receipt (Confirmed)
Substitution Receipt (Planned)
Production (Total)
Production (Confirmed)
Production (Planned)
Production
(Subcontracting
Planned)
Manufacture of Co-Products
Total 3rd Party Receipts
3rd Party Delivery Receipts
3rd Party PO Receipts
3rd Party PReq Receipts
Distribution Receipt (Total)
DEP Distribution Receipt (Total)
Receipt External
Distribution Receipt (MRP Area)
Distribution
Receipt
(TLBConfirmed)
Distribution Receipt (Confirmed)
Distribution Receipt (Planned)
Distribution
Receipt
(Subcontracting Planned)
In Transit
Stock In Transfer
Closing Stock on Hand (Projected)
DEP Closing Stock
Actual Stock
Stock on Hand (Projected)
STOCK (Hidden)
Opening
Stock
on
Hand
(Projected) (Hidden)
DEP Opening Stock
Stock From Shelf Life (Hidden)
Stock Exp for DRP (Hidden)
Stock Blocked
Stock Inspection
Stock at Vendor
Technical name
Views
C_TSDMND (Time
Series)
9AAFCST
9ADFCST
9ADMDP1
DMDCON
01/02/03/04/07
9ADMDSE
9AFSUBAB
All
All
9APSUBAB
All
DMDDITO
9ADMDDIMRP
9ADMDDT
9ADMDDF
9ADMDDI
9ADMDDISBC
All
All
All
All
All
All
Def1/Def3
RECTO
Planning book KF
9AFSUBZU
9APSUBZU
PPRODTO
9AFPROD
9APPROD
9APPRODSBC
All
05/06/08
All
All
All
All
All
All
Def1/Def3
Def1/Def3
9AKPROD
Planning book KF
Planning book KF
Planning book KF
Planning book KF
PSHIPTO
Planning book KF
Planning book KF
9APSHIPMRP
9ATSHIP
All
03/04/07
03/04/07
03/04/07
03/04/07
01/02/03/04/07
05/06/08
05/06/08
All
All
9AFSHIP
9APSHIP
9APSHIPSBC
All
All
All
9AITRAN
Planning book KF
STOCKD
Planning book KF
Planning book KF
STOCK
All
05/06/08
All
05/06/08
03/04/07
All
Def1/Def3
Def1/Def3
Def1/Def3
Def1/Def3
Def1/Def3
OSTOCK
05/06/08
Def1/Def3
Planning book KF
C_SLSTCK (Time
Series)
Planning book KF
Planning book KF
Planning book KF
Planning book KF
05/06/08
03/04/05/06/07/08
Def1/Def3
All
All
All
All
05/06/08
05/06/08
03/04/05/06/07/08
05/06/08
84
Calculated
in Macro
Open for input
Y
Def1/Def3
Def1/Def3
Y
Def1/Def3
Def0
Def0
Def0
Def1/Def3
Def1/Def3
Def1/Def3
Y
Y
Def1/Def3
Def1/Def3
Def1/Def3
Key figure
Supply Shortage
Days' Supply
Safety Stock
Agg Safety Days
Safety Days' Supply
Safety Stock (Planned)
Storage Upper Bound
Agg Max Days
Max Cover
Network Min Stock
Network Min Cover
Network Max Stock
Network Max Cover
Target Stock Level (Hidden)
Bucket Days (Hidden)
Shipping Calendar Days
Target Days' Supply (Hidden)
VMI Demand (Planned) (Hidden)
VMI Receipt (Planned) (Hidden)
SCTARGETDAYS (Hidden)
Technical name
Views
BACKL
COVER
SAFTY
Planning book KF
9ASVTTY
9ASAFETY
9AUBSTOR
Planning book KF
C_TSMAXD (Time
Series)
Planning book KF
Planning book KF
Planning book KF
Planning book KF
LAGRZ
Planning book KF
Planning book KF
SVTTY
9ADMDDIVMI
9APSHIPVMI
Planning book KF
All
All
All
All
All
All
All
All
All
03/04/07
03/04/07
03/04/07
03/04/07
All
All
All
01/02/05/06/08
01/02/05/06/08
01/02/05/06/08
01/02/05/06/08
Calculated
in Macro
Def1/Def3
Def1/Def3
Def1/Def3
Def3
Def1/Def3
Open for input
Def3
Def3
Def1/Def3
Def1/Def3
Def1/Def3
Def1/Def3
Def1/Def3
Def1
Def1/Def3
Def1/Def3
Def1/Def3
Sequence Macros
See above in paragraph “Macros for Product/Location Aggregation views”.
GM_CAPACITY
Business logic
These views are generally used by HUB planners to assess the capacity load of their resource. If there
is a overload of the capacity or if adjustments to the production plan are required, the plane can
then either adjust the plan by changing the order quantity/date or change the capacity variant
directly from the planning book.
Another key feature that is given is the ability to assess the cumulated delta capacity of the resource
in order to give the planner an idea of the amount of capacity that will need to be adjusted to
achieve a better saturated production line.
Loading Level
The loading of all of the data views in the Capacity Planning books must be done with a resource. No
other object can be loaded into these books.
Data view layout
The data views in this planning book are quite different; therefore they will be handled in groups.
The first 4 views show 2 grids with key figures instead of one. The first two views show a more
limited set of key figures and differ only in the horizon, where 01 ST CAPACITY shows 10 weeks
where the first 3 weeks are in daily buckets. View 02 LT CAPACITY shows 104 weeks. The next two
views have exactly the same difference between them, but differ from views 1 and 2 in the detail of
key figures they show. This applies to views 03 ST CAPACITY PLAN and 04 LT CAPACITY PLAN. We can
also add view 08 LT CAPA GRAPHICAL to this part of the overview as it essentially shows the same
information (over 104 weeks) but additionally offers the option to show the data graphically.
85
Grid 1:
Key figure
Technical name
Views
Available Capacity
Normal Available Capacity
Maximum Available Capacity
Cumulative available capacity
Capacity Consumption
Cumulative capacity consumed
Net Cumulative capacity
Resource Capacity Level in %
9ACASUP
Planning book KF
Planning book KF
Planning book KF
9ACACON
Planning book KF
Planning book KF
USAGE
01-04/08
03/04/08
03/04/08
03/04/08
01-04/08
03/04/08
03/04/08
01-04/08
Technical name
Views
9ASPROD
9APPROD
9AFPROD
9AKPROD
9APPRODSBC
01-04
01-04/08
01-04/08
03/04
03/04/08
9ACACON
01-04/08
Calculated
in Macro
Open for input
Resource
Capacity
Level
Grid 2:
Key figure
Production (Total)
Production (Planned)
Production (Confirmed)
Manufacture of Co-Products
Production
(Subcontracting
Planned)
Capacity Consumption
Calculated
in Macro
Open for input
Next 2 views again only differ in the horizon they are showing: 05 ST TRANSPORT shows 21 days
whereas 06 LT TRANSPORT shows 10 weeks of which the first 3 in days.
Key figure
Technical name
Views
Number of Truck 66P
Capacity time Series
Planning book KF
C_TSCAPA (Time
Series)
Planning book KF
Planning book KF
Planning book KF
Planning book KF
Planning book KF
Planning book KF
05/06
05/06
Floorspot Capacity
Floorspot Consumption
Floorspot Usage
Truck Capacity
Total Consumption
Total Capacity
Calculated
in Macro
Open for input
05/06
05/06
05/06
05/06
05/06
05/06
Lastly, view 07 ST LOCATION PLAN shows 2 grids and has a relatively short horizon of 20 weeks.
Grid 1:
Key figure
Available Capacity
Capacity Consumption
Resource Capacity Level in %
Technical name
Views
9ACASUP
9ACACON
USAGE
07
07
07
Technical name
Views
Calculated
in Macro
Open for input
Calculated
in Macro
Open for input
Grid 2:
Key figure
86
Key figure
Technical name
Views
Net Demand
Production (Planned)
Production (Confirmed)
ZTOTPROD
Stock on Hand (Projected)
Stock on Hand
Days' Supply
Capacity Consumption
BUCKETDAYS
9ASPROD
9APPROD
9AFPROD
Planning book KF
STOCK
STOCKD
COVER
9ACACON
Planning book KF
07
07
07
07
07
07
07
07
07
Calculated
in Macro
Open for input
Sequence Macros
See Macros for Capacity views.
GM_DEPLOY
Business logic
The goal of this view, which is usually looked at by CFF planners, is first of all to allow the user to
check the deployment result and if needed make manual modifications. A more detailed (daily) short
term and a long term view exist that show the same set of key figures. The users will go into this
book after deployment has run to check for situations that need to be solved manually and to keep
an eye on the stock level and projection of products. Short term deployment will run on a daily basis
and be available all week in version 000, whereas the long term deployment runs in planning version
LTD only on Thursday, Friday and Saturday morning.
A third view is a copy of the short term view, but its logic is slightly different as in this view we are
ignoring planned elements. The receipts are therefore only considering confirmed elements, like
confirmed STR, STO or SO. Like this the stock projection is just showing the stock position after
receiving confirmed elements only, which might be useful in the analysis of live products.
Loading Level
Only loading at product location level makes sense for this book. Aggregated data will not necessarily
show the right results.
Data view layout
Three views exist: the first one shows the first three weeks in days and switches to weeks afterwards
for an additional ten weeks. The second view shows exactly the same information, but contains no
daily buckets. It shows 104 weekly buckets instead. The third and last view covers the same horizon
as the first view, but the logic of some key figures is different as planned elements are not taken into
account in the receipts and therefore neither in the stock projection. Both the first and the third view
have the button to run location heuristics and deployment available.
Key figure
Technical name
Views
Total Demand
DEP Total demand (Confirmed)
Forecast
Forecast (additional)
Sales Order
DMDTO
Planning book KF
9ADFCST
9AAFCST
9ADMDP1
ST/LT
CFD
All
All
All
87
Calculated
in Macro
D2
D2
Open for input
Y
Key figure
Demand (Forecast/Sales Order)
(Hidden)
Dependent Demand
Substitution Demand (Confirmed)
(Hidden in CFD view)
Substitution Demand (Planned)
(Hidden in CFD view)
Distribution Demand (Total)
Distribution Demand (MRP Area)
DistrDemand (TLB-Confirmed)
Distribution Demand (Confirmed)
Distribution Demand (Planned)
Distribution
Demand
(Subcontracting)
DEP Total Receipts
Substitution Receipt (Confirmed)
(Hidden in CFD view)
Substitution Receipt (Planned)
(Hidden in CFD view)
Production (Total)
Production (Confirmed)
Production (Planned)
Production
(Subcontracting
Planned)
Manufacture of Co-Products
Total Production (Available to
Ship)
Production Shift 1 (Available to
Ship)
Production Shift 2 (Available to
Ship)
Production Shift 3 (Available to
Ship)
DEP Distribution Receipt (Total)
Distribution Receipt (MRP Area)
Distribution
Receipt
(TLBConfirmed)
Distribution Receipt (Confirmed)
Receipt External
Distribution Receipt (Planned)
Distribution
Receipt
(Subcontracting Planned)
In Transit
Stock In Transfer
DEP Closing Stock
DEP Closing Stock (Confirmed)
Stock on Hand (Projected)
STOCK (Hidden)
DEP Opening Stock
DEP Opening Stock (Confirmed)
Opening
Stock
on
Hand
(Projected) (Hidden)
Stock Blocked
Stock Inspection
Stock at Vendor
Supply Shortage
Days' Supply
Safety Stock
Safety Days' Supply
Technical name
Views
DMDCON
All
9ADMDSE
9AFSUBAB
All
All
9APSUBAB
All
DMDDITO
9ADMDDIMRP
9ADMDDT
9ADMDDF
9ADMDDI
9ADMDDISBC
All
All
All
All
All
All
D2
Planning book KF
9AFSUBZU
All
All
D2
9APSUBZU
All
PPRODTO
9AFPROD
9APPROD
9APPRODSBC
All
All
All
All
9AKPROD
C_PRODSH (Time
Series)
Planning book KF
All
All
D2
All
I0
Planning book KF
All
I0
Planning book KF
All
I0
Planning book KF
9APSHIPMRP
9ATSHIP
All
All
All
D2
9AFSHIP
Planning book KF
9APSHIP
9APSHIPSBC
All
All
All
All
9AITRAN
Planning book KF
Planning book KF
Planning book KF
STOCK
All
All
ST/LT
CFD
All
D0
D2
D2
D2
Planning book KF
Planning book KF
OSTOCK
ST/LT
CFD
All
D2
D2
D2
Planning book KF
Planning book KF
Planning book KF
BACKL
COVER
SAFTY
9ASVTTY
All
All
All
All
All
All
All
D0
D0
D0
D2
D3
D3
D0
88
Calculated
in Macro
D2
Open for input
Y
D2
D0
Y
Y
Key figure
Safety Stock (Planned)
Storage Upper Bound
Max Cover
Shipping Calendar Days
ATD Issues (Hidden)
ATD Issues
ATD Receipts (Hidden)
ATD Receipts
Allocated ATR (Hidden)
Target Stock Level (Hidden)
Net Demand (Hidden)
Target Days' Supply (Hidden)
VMI
Demand
(Confirmed)
(Hidden)
VMI Demand (Planned) (Hidden)
VMI Demand (TLB-Confirmed)
(Hidden)
VMI Receipt (Confirmed) (Hidden)
VMI Receipt (Planned) (Hidden)
VMI Receipt (TLB-Confirmed)
(Hidden)
SCTARGETDAYS (Hidden)
Unrestricted less sales
Bucket Days (Hidden)
Technical name
Views
Calculated
in Macro
9ASAFETY
9AUBSTOR
C_TSMAXD (Time
Series)
Planning book KF
9AATDAB
Planning book KF
9AATDZU
Planning book KF
C_TSATR (Time
Series)
LAGRZ
NETDEM
SVTTY
9ADMDDFVMI
All
All
All
D3
D0
All
All
All
All
All
All
D2
D4
D4
D4
D4
D4
All
All
LT
All
D3
9ADMDDIVMI
9ADMDDTVMI
All
All
9AFSHIPVMI
9APSHIPVMI
9ATSHIPVMI
All
All
All
Planning book KF
Planning book KF
Planning book KF
All
All
All
Open for input
I0/D3
D2
D2
Sequence Macros
See above in paragraph “Macros for Product Locations views”.
GM_DETAIL
Business logic
Generally this book is used by CFF planners and HUB planners to check the results of heuristics run,
being the Planned Distribution Demands or Ideal Delivery Offer. They are then allowed to make
manual changes in case they think this is needed. Similarly, the HUB planners can check and change
the production plan if needed. As usual we have a short and long term view available. As well there is
a graphical view of the long term and lastly
Loading Level
Only loading at product location level makes sense for this book. Aggregated data will not necessarily
show the right results.
Data view layout
Four views exist: the first one shows the first three weeks in days and switches to weeks afterwards
for an additional ten weeks. The second view shows exactly the same information, but contains no
daily buckets. It shows 104 weekly buckets instead. The location heuristics and optimizer buttons are
available in both views
The third view is a graphical view, meaning by default it opens a graph and table, whereas the first
two views only show the table. Running the optimizer or heuristics is not activated in this view.
89
View number four is called “Plan to Forecast” where as well the Optimizer and Location Heuristics
button are available. This view has a 104 week horizon and runs on a different set of macros than the
others, as mentioned below.
Key figure
Technical name
Views
Total Demand
Time Series Demand
Forecast (additional)
Forecast (Delivery Date)
Forecast
Sales Order
Demand (Forecast/Sales Order)
(Hidden)
Dependent Demand
Substitution Demand (Confirmed)
Substitution Demand (Planned)
Distribution Demand (Total)
Distribution Demand (MRP Area)
DistrDemand (TLB-Confirmed)
Distribution Demand (Confirmed)
Distribution Demand (Planned)
Distribution
Demand
(Subcontracting)
Total Receipts
Substitution Receipt (Confirmed)
Substitution Receipt (Planned)
Production (Total)
Production (Confirmed)
Production (Planned)
Production
(Subcontracting
Planned)
Manufacture of Co-Products
Distribution Receipt (Total)
Distribution Receipt (MRP Area)
Distribution
Receipt
(TLBConfirmed)
Distribution Receipt (Confirmed)
Distribution Receipt (Planned)
Distribution
Receipt
(Subcontracting Planned)
In Transit
Closing Stock on Hand (Projected)
Actual Stock (Hidden)
Stock on Hand (Projected)
STOCK (Hidden)
Supply Shortage
Days' Supply
Safety Stock
Agg Safety Days
Safety Days' Supply
Safety Stock (Planned)
Storage Upper Bound
Agg Max Days
Max Cover
DMDTO
C_TSDMND
9AAFCST
Planning book KF
9ADFCST
9ADMDP1
DMDCON
All
LT/Graph/Plan
All
Plan
All
All
All
9ADMDSE
9AFSUBAB
9APSUBAB
DMDDITO
9ADMDDIMRP
9ADMDDT
9ADMDDF
9ADMDDI
9ADMDDISBC
All
All
All
All
All
All
All
All
All
RECTO
9AFSUBZU
9APSUBZU
PPRODTO
9AFPROD
9APPROD
9APPRODSBC
All
All
All
All
All
All
All
9AKPROD
PSHIPTO
9APSHIPMRP
9ATSHIP
All
All
All
All
9AFSHIP
9APSHIP
9APSHIPSBC
All
All
All
9AITRAN
STOCKD
Planning book KG
STOCK
All
All
Plan
All
BACKL
COVER
SAFTY
Planning book KF
9ASVTTY
9ASAFETY
9AUBSTOR
Planning book KF
C_TSMAXD (Time
Series)
Planning book KF
Planning book KF
Planning book KF
Planning book KF
LAGRZ
All
All
All
Plan
All
All
All
Plan
All
Network Min Stock
Network Min Cover
Network Max Stock
Network Max Cover
Target Stock Level (Hidden)
Plan
Plan
Plan
Plan
All
90
Calculated
in Macro
D2
Open for input
Y
D2
D2
D2
D2
Y
D2
Y
Y
D2
D2
D2
D3
D3
(Y)
D0
D3
D0
D3
(Y)
Key figure
Distribution
Receipt
(Total)
(Hidden)
Production (Total) (Hidden)
VMI Demand (Planned) (Hidden)
VMI Receipt (Planned) (Hidden)
Bucket Days (Hidden)
Shipping Calendar Days
SCTARGETDAYS (Hidden)
Technical name
Views
9ASSHIP
Plan
9ASPROD
9ADMDDIVMI
9APSHIPVMI
Planning book KF
Planning book KF
Planning book KF
Plan
All
All
All
All
01/02/graph
Calculated
in Macro
Open for input
D2
D2
I0/D3
Sequence Macros
See above in paragraph “Macros for Product Locations views” for views 1, 2 & 3.
GM_EXTERNAL
Business logic
This planning book is used to enter co-manufacturing and co-packing plans manually directly into the
related key figures.
Loading Level
Input would usually be done at product location level.
Data view layout
Three data views exist. The first is “Co-man Standard” and shows 104 weeks. In this view the Comanufacturing location needs to be loaded, so it is here where the production plan from the Comanufacturer would end up.
The second is “Co-man to deploy”, for the same horizon, and would show for the location receiving
goods from the Co-manufacturer the plan of goods it would receive.
The last view is “Co-pack plan” with once again the same horizon and where as well the destination
location would be loaded, being the location that is receiving the goods from the Co-packer with the
plan of receipts which is entered here.
As shown in the table, the key figure names are different from their original descriptions. It means
however that its content will be shown in the equivalent of the technical key figure.
Key figure
Co-man Standard
Co-man to deploy
Co-pack Plan
Original Key
figure description
Production
Planning
(Planned)
Distribution
Receipt (Planned)
Distribution
Receipt
(Subcontracting
Planned)
Technical name
Views
Open for input
9APSHIP
Co-man
Standard
Y
9APROD
Co-man to
deploy
Co-pack
plan
Y
9APSHIPSBC
Y
Sequence Macros
No macros run by default in these views, but they share 1 macro that can be executed with a macro
button. This macro (IX – Drill down) drills down to both product and location.
91
GM_GLOBAL_STK
Business logic
This view provides HUB planners with the aggregated stock and demand data which can be used to
measure global stock levels. As the GM_AGG_* views only allow a single product to be loaded into
the view due to performance reasons, this view allows for planners to see the same data but for
multiple products at a time. This also includes the ability to check aggregated data for multiple
products if required.
Alerts are also executed from this book as aggregated stock levels are measured heavily from central
teams. If stock goes above max or below the minimum stock level required for the product an alert is
created which the planner should react to.
Loading Level
This data view allows for planners to load Products/Materials only. The selection can be done via
Cross Plant Planner or Families as well, however the only actual characteristic that exists in the MPOS
is material. The Cross Plant Planner and Family characteristics are only navigational attributes which
are populated via the MD APO PP CVC GEN process chain.
Data view layout
Two data views exist. The first is “01 Global Stock View” and shows 104 weeks, same horizon as for
the second view “02 Graphical Glb Stk”. Both views are exactly the same, they contain as well the
same macros. The only difference is that the second view by default shows graph and table, whereas
the first one only shows the table. So, the second is for graphical purposes only and is slower than
view number one.
Key figure
Supply Chain Demand
(Hidden)
Time Series Demand
(TS)
Total Demand
Total Forecast
TS: Total Forecast (Hidden)
TS: Sales Orders (Hidden)
Sales Orders
TS: Dependent Demand (Hidden)
Dependent Demand
TS: Global Supply (Hidden)
Total Supply
Actual Stock
TS: Stock on Hand Projected
Stock on Hand Projected
Days’ Supply
Unfulfilled Demand
Safety Stock
Storage Upper Bound
Minimum Stock
Minimum Stock Violation
Technical name
Views
ZEXTDEMMO (Time
Series)
C_TSDMND (Time
Series)
Planning book KF
Planning book KF
C_TOTFCS (Time
Series)
C_SALES (Time Series)
Planning book KF
C_DPNDDMD (Time
Series)
Planning book KF
C_CSUPP (Time
Series)
Planning book KF
Planning book KF
C_STOCK (Time
Series)
Planning book KF
Planning book KF
Planning book KF
C_SSFTY (Time Series)
9AUBSTOR
C_SSTCK (Time Series)
Planning book KF
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
All
92
Calculated
in Macro
Open for input
Key figure
Technical name
Views
Maximum Stock
C_MSTCK (Time
Series)
Planning book KF
C_ACTSTK (Time
Series)
Planning book KF
All
Maximum Stock Violation
TS: Actual Stock (Hidden)
Bucket Days (Hidden)
Calculated
in Macro
Open for input
All
All
All
Sequence Macros
Two default macros exist for these data views. The first one is “Global Alerts”.
GM_MANUAL
Business logic
This planning book is actually a combination of the most frequently used books. By putting them all
into one planning book we allow the planners to walk through almost all SP/PP processes in one
book. This means they can move through all the steps in one single book. The negative side of this
planning book is that it contains a lot more data and might therefore be smaller than the related and
more specific planning books.
Loading Level
Depends on the view, see below.
Data view layout
As said this view is basically a combination of the most frequently used views from GM_DETAIL,
GM_AGG_CSE/KG/PAL and GM_CAPACITY, so if you want to check for a particular view please check
the related view in those planning books:
-
01 ST PRODLOC, 02 LT PRODLOC in GM_DETAIL
-
03 ST LOCAGG, 04 LT LOCAGG in GM_AGG_CSE/KG/PAL
-
05 ST CAPACITY, 06 LT CAPACITY, 07 ST CAPACITY PLAN, 08 LT CAPACITY PLAN in GM_CAPACITY
Sequence Macros
Same as above, depending on the view, check the relevant related planning book.
GM_PP_BJ
Business Logic
This is the sourcing book to populate the ZGLOBALSTK planning area with data. The objective is to
separate the planning area completely in order to prevent locking issues as well as enable support to
make adjustments (if required) with minimal risk.
Loading Level
The information here can be loaded either at a single Product Location Level or for Multiple
Locations for a single product. By loading this planning book with multiple locations we will be able
to check the offset values of the time series key figures, which MUST match the values in the
ZGLOBALSTK planning book.
93
The calculation of the planning book key figures and the update macro for the time series key figures
can only be executed at the detailed level. No new data can be calculated at the aggregated level,
only at the detailed level.
Data View Layout
Only the 01 TSCOPY Data view exists in this planning book.
Technical name
Key figure
Views
Calculated in Macro
DMDTO
Total Demand
TSCOPY
Update KF for Cross Loc Area
9AAFCST
Forecast (addition.)
TSCOPY
9ADFCST
Forecast
TSCOPY
C_TOTFCS
Total Forecast
TSCOPY
9ADMDP1
Sales Order
TSCOPY
DMDCON
Demand (Forecast/Sales Order)
TSCOPY
Update KF for Cross Loc Area
C_SALES
TS: Sales Orders
TSCOPY
Update KF for Cross Loc Area
9ADMDDIMRP
Distr. Demand (MRP)
TSCOPY
9ADMDSE
Dependent Demand
TSCOPY
C_DPNDDMD
TS: Dependent Demand
TSCOPY
Update KF for Cross Loc Area
ZEXTDEMMO
TS: Total Aggregated Demand
TSCOPY
Update KF for Cross Loc Area
REFMIN
Ref. Min Stock for Global Calcs
TSCOPY
Update KF for Cross Loc Area
DMDDITO
Distribution Demand (Total)
TSCOPY
Update KF for Cross Loc Area
9ADMDDT
Distr. Demand (TLB)
TSCOPY
9ADMDDF
Distr.Demand (Confd)
TSCOPY
9ADMDDI
Distr. Demand (Plnd)
TSCOPY
9ADMDDISBC
Distr.Demand (Subcg)
TSCOPY
C_TSDMND
Time Series Demand
TSCOPY
9AFSUBAB
Subst. Demand(Conf)
TSCOPY
9APSUBAB
Subst. Demand (Plnd)
TSCOPY
RECTO
Total Receipts
TSCOPY
9AFSHIP
DistrReceipt (Conf.)
TSCOPY
9APSHIPMRP
Distr. Receipt (MRP)
TSCOPY
9APSHIP
Distr.Receipt (Plnd)
TSCOPY
9APSHIPSBC
Distr.Rcpt (SC Plnd)
TSCOPY
9ATSHIP
Distr. Receipt (TLB)
TSCOPY
9ASSHIP
DistrReceipt (Total)
TSCOPY
9AFSUBZU
Subst. Receipt(Conf)
TSCOPY
9APSUBZU
Subst.Receipt (Plnd)
TSCOPY
9AITRAN
In Transit
TSCOPY
Z3PTOTAL
Total 3rd Party Receipts
TSCOPY
Update KF for Cross Loc Area
Z3PDEL
3rd Party Delivery Receipts
TSCOPY
Update KF for Cross Loc Area
Z3PPURORD
3rd Party PO Receipts
TSCOPY
Update KF for Cross Loc Area
Z3PPREQS
3rd Party PReq Receipts
TSCOPY
Update KF for Cross Loc Area
9ASPROD
Production (Total)
TSCOPY
Update KF for Cross Loc Area
9AFPROD
Production (Conf.)
TSCOPY
9APPROD
Production (Planned)
TSCOPY
9APPRODSBC
Production (SC Plnd)
TSCOPY
94
Update KF for Cross Loc Area
BKG => TS Demand Copy
Update KF for Cross Loc Area
Update KF for Cross Loc Area
Open for input
9AKPROD
Co-Prod. Manufacture
TSCOPY
C_CSUPP
TS: Global Supply
TSCOPY
Update KF for Cross Loc Area
ZACTSTOCK
Actual Stock
TSCOPY
Update KF for Cross Loc Area
C_ACTSTK
TS: Actual Stock
TSCOPY
Update KF for Cross Loc Area
STOCK
Stock on Hand (Projected)
TSCOPY
C_STOCK
TS: Stock on Hand Projected
TSCOPY
Update KF for Cross Loc Area
C_SSFTY
TS: Safety Stock
TSCOPY
Update KF for Cross Loc Area
9ASVTTY
Safety Day's Supply
TSCOPY
9ASAFETY
SafetyStock(Planned)
TSCOPY
9AUBSTOR
Storage Upper Bound
TSCOPY
Update KF for Cross Loc Area
C_SSTOCKD
Minimum Cover
TSCOPY
Update KF for Cross Loc Area
C_SSTCK
Minimum Stock
TSCOPY
Update KF for Cross Loc Area
C_TSMAXD
Max Cover
TSCOPY
Update KF for Cross Loc Area
C_MSTCK
Maximum Stock
TSCOPY
Update KF for Cross Loc Area
C_MSTOCKD
Maximum Cover
TSCOPY
Update KF for Cross Loc Area
C_COVER
Projected Days Cover
TSCOPY
Update KF for Cross Loc Area
C_SLSTCK
Stock From Shelf Lif
TSCOPY
Update KF for Cross Loc Area
BUCKETDAYS
Bucket Days
TSCOPY
Update KF for Cross Loc Area
C_GIQUANT
Goods Issue Quantity
TSCOPY
Update KF for Cross Loc Area
Sequence Macros
The only macro that can be executed is the Update KF for Cross Loc Area macro which would need to
be triggered via a push button.
GM_PP_BJ_CSE
Business logic
This book uses a unique time bucket profile that contains an extended daily horizon to allow for a
more detailed optimizer run in the short term. The book was created as a requirement from China
which needed to have a more detailed optimizer run for twelve weeks. This extended daily horizon
gives them accurate optimizer results without having excess master data maintenance or additional
scheduling solutions.
Loading Level
Only loading at product location level makes sense for this book. Aggregated data will not necessarily
show the right results.
Data view layout
Just one view exists “01 ST PRODLOC”.
Key figure
Total Demand
Time Series Demand
Forecast (additional)
Forecast
Sales Order
Technical name
Views
DMDTO
C_TSDMND (Time
Series)
9AAFCST
9ADFCST
9ADMDP1
All
All
All
All
All
95
Calculated
in Macro
D2
Open for input
Y
Key figure
Demand (Forecast/Sales Order)
(Hidden)
Dependent Demand
Substitution Demand (Confirmed)
Substitution Demand (Planned)
Distribution Demand (Total)
Distribution Demand (MRP Area)
DistrDemand (TLB-Confirmed)
Distribution Demand (Confirmed)
Distribution Demand (Planned)
Distribution
Demand
(Subcontracting)
Total Receipts
Substitution Receipt (Confirmed)
Substitution Receipt (Planned)
Production (Total)
Production (Confirmed)
Production (Planned)
Production
(Subcontracting
Planned)
Manufacture of Co-Products
Distribution Receipt (Total)
DEP Distribution Receipt (Total)
Distribution Receipt (MRP Area)
Distribution
Receipt
(TLBConfirmed)
Distribution Receipt (Confirmed)
Receipt External
Distribution Receipt (Planned)
Distribution
Receipt
(Subcontracting Planned)
In Transit
Closing Stock on Hand (Projected)
Stock on Hand (Projected)
STOCK (Hidden)
Supply Shortage
Days' Supply
Safety Stock
Safety Days' Supply
Safety Stock (Planned)
Storage Upper Bound
Max Cover
VMI Demand (Planned) (Hidden)
VMI Receipt (Planned) (Hidden)
Target Stock Level (Hidden)
Bucket Days (Hidden)
Shipping Calendar Days (Hidden)
SCTARGETDAYS (Hidden)
Technical name
Views
DMDCON
All
9ADMDSE
9AFSUBAB
9APSUBAB
DMDDITO
9ADMDDIMRP
9ADMDDT
9ADMDDF
9ADMDDI
9ADMDDISBC
All
All
All
All
All
All
All
All
All
RECTO
9AFSUBZU
9APSUBZU
PPRODTO
9AFPROD
9APPROD
9APPRODSBC
02/04
All
All
All
All
All
All
9AKPROD
PSHIPTO
Planning book KF
9APSHIPMRP
9ATSHIP
All
02/04
01/03/05-8
All
All
9AFSHIP
Planning book KF
9APSHIP
9APSHIPSBC
All
All
All
All
9AITRAN
STOCKD
STOCK
All
02/04
All
BACKL
COVER
SAFTY
9ASVTTY
9ASAFETY
9AUBSTOR
C_TSMAXD (Time
Series)
9ADMDDIVMI
9APSHIPVMI
LAGRZ
Planning book KF
Planning book KF
Planning book KF
All
All
All
All
All
All
All
All
All
All
All
All
All
Calculated
in Macro
D2
Open for input
D2
D2
D2
Y
D2
D2
D0
Y
Y
D2
D2
D2
D3
D3
D0
Y
Y
D3
D0
D3
D2
D2
I0/D3
Sequence Macros
See above in paragraph “Macros for Product Location views”.
GM_SP_BJ
Business logic
This planning book is not used by the planners usually; it is purely meant for background processing
and therefore lacks some functions like colour coding or informational key figures. This should
96
improve the run times of the batch jobs. The different views are used to either run heuristics in short
or long term or to run deployment again on short and long term. Additionally the short term
deployment view is copied a few times, each time with a different offset of 1 up to 4 days to basically
freeze the planning situation for these days and let deployment only act on the later days.
Loading Level
Only loading at product location level makes sense for this book. Aggregated data will not necessarily
show the right results.
Data view layout
Four views exist:
-
01 LT DEP: It starts the view with an offset of 12 days and then shows the remainder of that first
week in days and the following 100 weeks in weekly buckets.
-
02 LT HEUR & 03 ST DEP show 104 weeks of which the first three in daily buckets.
-
04 ST HEUR similarly shows the first three weeks in days, but only has a horizon of 56 weeks.
-
Views 05 until 08 (ST DEP OFFSET) are equivalent of views 03 ST DEP but with respectively 1, 2, 3
and 4 days of offset.
-
All views allow the option to run the location heuristics and deployment and to change the
deployment settings interactively.
Key figure
Total Demand
Demand (Forecast/Sales Order)
(Hidden)
Forecast
Forecast (additional)
Sales Order
Dependent Demand
Substitution Demand (Confirmed)
Substitution Demand (Planned)
Distribution Demand (Total)
Distribution Demand (MRP Area)
DistrDemand (TLB-Confirmed)
Distribution Demand (Confirmed)
Distribution Demand (Planned)
Distribution
Demand
(Subcontracting)
Total Receipts
DEP Total Receipts
Substitution Receipt (Confirmed)
Substitution Receipt (Planned)
Production (Total)
Production (Confirmed)
Production (Planned)
Production
(Subcontracting
Planned)
Manufacture of Co-Products
Total Production (Available to
Ship)
Production Shift 1 (Available to
Ship)
Production Shift 2 (Available to
Ship)
Technical name
Views
DMDTO
DMDCON
All
All
9ADFCST
9AAFCST
9ADMDP1
9ADMDSE
9AFSUBAB
9APSUBAB
DMDDITO
9ADMDDIMRP
9ADMDDT
9ADMDDF
9ADMDDI
9ADMDDISBC
All
All
All
All
All
All
All
All
All
All
All
All
RECTO
Planning book KF
9AFSUBZU
9APSUBZU
PPRODTO
9AFPROD
9APPROD
9APPRODSBC
02/04
All
All
All
All
All
All
All
9AKPROD
C_PRODSH (Time
Series)
Planning book KF
All
03/05-8
D2
03/05-8
I0
Planning book KF
03/05-8
I0
97
Calculated
in Macro
D2
D2
D2
D2
D2
D2
Open for input
Key figure
Technical name
Views
Production Shift 3 (Available to
Ship)
Distribution Receipt (Total)
DEP Distribution Receipt (Total)
Distribution Receipt (MRP Area)
Distribution
Receipt
(TLBConfirmed)
Distribution Receipt (Confirmed)
Receipt External
Distribution Receipt (Planned)
Distribution
Receipt
(Subcontracting Planned)
In Transit
Closing Stock on Hand (Projected)
DEP Closing Stock
Stock on Hand (Projected)
STOCK (Hidden)
Opening
Stock
on
Hand
(Projected) (Hidden)
Opening
Stock
on
Hand
(Projected) (Hidden)
DEP Opening Stock
Stock Inspection
Supply Shortage
Days' Supply
Safety Stock
Safety Days' Supply
Safety Stock (Planned)
ATD Issues (Hidden)
ATD Issues
ATD Receipts (Hidden)
ATD Receipts
Allocated ATR (Hidden)
Planning book KF
03/05-8
PSHIPTO
Planning book KF
9APSHIPMRP
9ATSHIP
02/04
01/03/05-8
All
All
9AFSHIP
Planning book KF
9APSHIP
9APSHIPSBC
All
All
All
All
9AITRAN
STOCKD
Planning book KF
STOCK
All
02/04
01/03/05-8
All
D2
D2
D2
OPSTOCKD
02/04
D2
OSTOCK
All
D2
Planning book KF
Planning book KF
BACKL
COVER
SAFTY
9ASVTTY
9ASAFETY
9AATDAB
Planning book KF
9AATDZU
Planning book KF
C_TSATR (Time
Series)
LAGRZ
NETDEM
9ADMDDFVMI
01/03/05-8
All
All
All
All
All
All
All
All
All
All
All
D2
D0
D2
D3
D3
D0
All
All
All
D3
9ADMDDIVMI
9ADMDDTVMI
All
All
9AFSHIPVMI
9APSHIPVMI
9ATSHIPVMI
All
All
All
Planning book KF
Planning book KF
All
All
Target Stock Level (Hidden)
Net Demand (Hidden)
VMI
Demand
(Confirmed)
(Hidden)
VMI Demand (Planned) (Hidden)
VMI Demand (TLB-Confirmed)
(Hidden)
VMI Receipt (Confirmed) (Hidden)
VMI Receipt (Planned) (Hidden)
VMI Receipt (TLB-Confirmed)
(Hidden)
SCTARGETDAYS (Hidden)
Bucket Days (Hidden)
Calculated
in Macro
I0
Open for input
D2
D2
D0
D4
D4
D4
D4
D4
I0/D3
D2
Sequence Macros
See above in paragraph “Macros for Product Location views” for views 1 & 2. Apart from the macros
mentioned there, there is one more that only appears in data view 03 ST DEP: BCKG - Alert
Management. This macro runs to refresh different alerts (see 3.6) and therefore only runs in batch
and not online (see chapter 7 on the job schedule).
Step 1 initializes three variables, two of which (SEMST and SEMLT) with value 0 and the third one
(SEMHOR) gets to be a date as current date + 10. As this is just setting values, 1 iteration is sufficient.
98
Step 2 runs for 50 iterations starting on the current date. It first of all calculates a threshold variable
as 95% of the value in Safety Days’ Supply. Next a condition runs. It checks if five criteria are fulfilled
simultaneously:
-
the value in Days’ Supply is smaller than the calculated threshold value
the end date of the bucket is smaller than variable SEMHOR
variable SEMST = 0
Total demand <> 0
Bucket days <> 0
If this is the case we consider that for that bucket we are below the minimum coverage required and
raise alert “SP Below Minimum Coverage Short Term”. As well in this case variable SEMST is updated
and put to 1. This means that the condition we just passed through cannot occur again in the next
iterations of the macro.
Secondly another condition runs again with similar checks, the only differences are checks 2, 3 and 5:
-
The end date of the bucket is bigger than variable SEMHOR
Variable SEMLT = 0
The bucket days are not checked in this case as they will never be 0 as we are now
looking at buckets in weeks.
If the criteria all match up we now raise alert “SP Below Minimum Coverage Long Term”, which will
show as information rather than as warning. Also in this case we update a variable: SEMLT = 1.
This logic implies that as soon as a threshold value lower than the minimum is found, an alert is
raised and no other similar alert will be created even if other alert situations exist. So, we can
potentially have 1 short term and 1 long term alert, but not more.
Step 3 is exactly the same as Step 1 and therefore a reset of the variables.
Step 4 is similar to Step 2, but runs for 69 iterations. The threshold value in this case is 105% of Max
Cover. As in some cases Days’ Supply is calculated as 999 days when there is not sufficient
information to calculate the exact cover, we want to exclude these from the alert generation,
wherefore an additional condition is built in. Now the first check is to see if:
-
Row Days’s Supply exceeds the threshold value
the end date of the bucket is smaller than variable SEMHOR
variable SEMST = 0
Total demand <> 0
In that case we consider the product location to be in alert status and generate alert “SP Above
Maximum Coverage Short Term”. We again update variable SEMST to be equal to 1.
Second condition is again similar:
-
Row Days’s Supply exceeds the threshold value
The end date of the bucket is bigger than variable SEMHOR
99
-
Variable SEMLT = 0
In that case we raise alert “SP Above Maximum Coverage Long Term”. The remaining logic is the
same as for Step 2.
Step 5 is exactly the same as Step 1 and therefore a reset of the variables.
Step 6 runs for the current bucket and checks if there is a Supply Shortage. If so, it raises alert “SP
Stockout ST”.
Step 7 continues on this. It runs for the next 59 buckets and does similar checks as in step 2:
-
There is a Supply Shortage
the end date of the bucket is smaller than variable SEMHOR
variable SEMST = 0
Total demand <> 0
Supply Shortage of previous bucket < 0,5
This generates alert “SP Stockout ST”, the same one as in Step 6. Next IF statement checks almost the
same thing, only differences are check 2 and 3:
-
the end date of the bucket is bigger than variable SEMHOR
variable SEMLT = 0
This generates alert “SP Stockout LT”. The logic with variables SEMST and SEMLT is the same as in
Step 2.
Step 8 lastly runs for 10 iterations. It compares row DistrDemand (TLB-Confirmed) with DEP Opening
Stock. If the first one exceeds the second one, alert “SP TLB Confirmed > Opening Stock”.
All these alerts are generated for planning
book GM_DEPLOY and data views 01 ST DEP
and 02 LT DEP (this one only for the LT alerts).
This means that even if the alerts are
generated in this background job planning
book, they can still be visualized in the regular
user planning book. This is done like this in the
alert set up in the macro:
100
GM_STK_BAL
Business logic
A development was made to balance stocks between locations: ZAPO_STOCK_BALANCING_R, see 8.4
for a more detailed explanation. This development needs input from a planning book where key
figures SCBALATB (quantity available to balance) and SCBALDEM (shortage demand required) are
calculated and compared between the considered locations. As a result a confirmed STR would be
created between both locations. This is a background job planning book, not usually used by
planners.
Loading Level
Only loading at product location level makes sense for this book. Aggregated data will not necessarily
show the right results.
Data view layout
There’s only one data view “1 STK BAL” which has a horizon of 21 days and offsets the first day as we
consider that there is not sufficient time to balance stocks between warehouse today.
Key figure
Total Demand
Demand (Forecast/Sales Order)
(Hidden)
Forecast (Hidden)
Forecast (additional) (Hidden)
Sales Order
Dependent Demand
Distribution Demand (MRP Area)
DistrDemand (TLB-Confirmed)
Distribution Demand (Confirmed)
Substitution Demand (Confirmed)
Distribution Demand (Planned)
(Hidden)
Distribution Demand (Total)
Substitution Demand (Planned)
(Hidden)
Distribution
Demand
(Subcontracting) (Hidden)
DEP Total Receipts
Distribution Receipt (MRP Area)
Distribution
Receipt
(TLBConfirmed) (Hidden)
Distribution Receipt (Confirmed)
(Hidden)
Substitution Receipt (Confirmed)
(Hidden)
Receipt External (Hidden)
Production (Total) (Hidden)
Production (Planned) (Hidden)
Total Production (Available to
Ship) (Hidden)
Production Shift 1 (Available to
Ship) (Hidden)
Production Shift 2 (Available to
Ship) (Hidden)
Technical name
Views
Calculated
in Macro
D1
D1
DMDTO
DMDCON
All
All
9ADFCST
9AAFCST
9ADMDP1
9ADMDSE
9ADMDDIMRP
9ADMDDT
9ADMDDF
9AFSUBAB
9ADMDDI
All
All
All
All
All
All
All
All
All
DMDDITO
9APSUBAB
All
All
9ADMDDISBC
All
Planning book KF
9APSHIPMRP
9ATSHIP
All
All
All
9AFSHIP
All
9AFSUBZU
All
Planning book KF
PPRODTO
9APPROD
C_PRODSH (Time
Series)
Planning book KF
All
All
All
All
D0
D1
All
I0
Planning book KF
All
I0
D1
D1
D1
Open for input
Key figure
Technical name
Views
Calculated
in Macro
I0
Production Shift 3 (Available to
Ship) (Hidden)
DEP Distribution Receipt (Total)
In Transit
Stock in transfer
Distribution Receipt (Planned)
(Hidden)
Substitution Receipt (Planned)
(Hidden)
Distribution
Receipt
(Subcontracting Planned) (Hidden)
DEP Closing Stock
Stock on Hand (Projected)
STOCK (Hidden)
DEP Opening Stock
Opening
Stock
on
Hand
(Projected)
Stock Blocked (Hidden)
Stock Inspection (Hidden)
Stock at vendor (Hidden)
Supply Shortage
Shipping Calendar Days
ATD Issues (Hidden)
ATD Issues (Hidden)
ATD Receipts (Hidden)
ATD Receipts (Hidden)
SCALLOCATR (Hidden)
SCALERT (Hidden)
Target Stock Level (Hidden)
VMI
Demand
(Confirmed)
(Hidden)
VMI Demand (Planned) (Hidden)
VMI Demand (TLB-Confirmed)
(Hidden)
VMI Receipt (Confirmed) (Hidden)
VMI Receipt (Planned) (Hidden)
VMI Receipt (TLB-Confirmed)
(Hidden)
SCBALATB
SCBALDEM
Manufacture
of
Co-Products
(Hidden)
Production (Confirmed) (Hidden)
Production
(Subcontracting
Planned) (Hidden)
Bucket Days
Planning book KF
All
Planning book KF
9AITRAN
Planning book KF
9APSHIP
All
All
All
All
9APSUBZU
All
9APSHIPSBC
All
Planning book KF
STOCK
All
All
D1
D1
Planning book KF
OSTOCK
All
All
D1
D1
Planning book KF
Planning book KF
Planning book KF
BACKL
Planning book KF
9AATDAB
Planning book KF
9AATDZU
Planning book KF
Planning book KF
Planning book KF
LAGRZ
9ADMDDFVMI
All
All
All
All
All
All
All
All
All
All
All
All
All
D0
D0
D0
D1
D1
9ADMDDIVMI
9ADMDDTVMI
All
All
9AFSHIPVMI
9APSHIPVMI
9ATSHIPVMI
All
All
All
Planning book KF
Planning book KF
9AKPROD
All
All
All
9AFPROD
9APPRODSBC
All
All
Planning book KF
All
Open for input
D1
D0
D3
D2
D2
D1
Sequence Macros
See above in paragraph “Macros for Product Location views”, except for one thing. In this view
macro D1- Demand - Supply – Stock should be compared with macro D2 in the mentioned list. As
well, macros D3, D4, D5 & I1 are not set up in this view as they are not needed.
Secondly, an additional macro is created, to perform the stock balancing itself: D2 - ATB calculation:
Step 1 calculates for all future buckets a variable BAL_DEMAND as the difference between Supply
shortage from the considered bucket – Supply shortage from last bucket. If the resulting value is
102
positive, it is put into key figure SCBALDEM, if not SCBALDEM is put to 0. Like this we obtain the
amount that is missing for that particular bucket.
Step 2 overwrites SCBALDEM with 0 in case row Shipping Calendar Days is empty as on those days no
activity can or will take place.
Step 3 runs for all buckets. For the first bucket, the initial column, it sets variable ATB_CALC as being
DEP Opening Stock – Total Demand. For all other buckets it calculates the same variable as ATB_CALC
(being the value that was calculated in previous iterations) – Total Demand. So, ATB_CALC for each
bucket is the difference between the Opening Stock and the sum of all demands until the considered
bucket. If this difference is negative, we set ATB_CALC to 0. Lastly, we put the value in ATB_CALC in
auxiliary row ATB_CALC in considered bucket.
Step 4 is similar to Step 2. First row SCBALATB is populated with the content of the auxiliary row and
then a check is done that puts the same row to 0 if row Shipping Calendar Days is empty. Remark to
make here is that the population of SCBALATB is done by shifting backward the content of the
auxiliary row four buckets, so the value for today is the value calculated for today + 4. This was
requested by France Biscuits as they want to keep the quantities for the first coming days stable as
they are more or less sure these demands will be shipped.
GM_TLB_CSE/KG/PAL
Business logic
This planning book allows the conversion of confirmed STR, or allocation, from deployment results to
Stock transfer orders (to locations with execution in ECC) or sales orders (to the remaining locations,
like customers or plants not in ECC). This usually is done manually and according to weight, volume
and/or space limitations, defined in a so-called TLB Profile, for the specified means of transport on
the transportation lane that is being considered. Once the STO or SO are created, they are published
manually to ECC for further processing and execution.
Loading Level
Only loading a single transportation lane makes sense for this book as we want to create the
transport loads for a particular lane between source and target locations.
Data view layout
Two views exist with as only difference the horizon. View “1 ST TLB CSE/KG/PAL” only runs for 14
days, whereas view “2 ST TLB CSE/KG/PAL EXT HRZ” accounts for 42 days. For performance reasons it
is best to work in the short term view, but if the stock transfers for a longer horizon need to be taken
into account, the second can be used. The difference for these views with standard planning books is
that you will not be able to see the key figures by just opening up the planning book. To be able to
work with TLB, button
needs to be clicked at the top of the screen. This button will
only appear if Transport Load Building is switched on for the planning book.
The key figures we need are limited as we want to use ATD Issues and Receipts + the ones containing
the confirmed STR to be used as input and the ones containing STO/SO as output.
103
Key figure
ATD Issues (Hidden)
ATD Receipts (Hidden)
DistrDemand
(TLB-Confirmed)
(Hidden)
Distribution
Receipt
(TLBConfirmed) (Hidden)
VMI Demand (TLB-Confirmed)
(Hidden)
VMI Receipt (TLB-Confirmed)
(Hidden)
Distribution Demand (Confirmed)
(Hidden)
Distribution Receipt (Confirmed)
(Hidden)
VMI Receipt (Confirmed) (Hidden)
VMI
Demand
(Confirmed)
(Hidden)
Technical name
Views
9AATDAB
9AATDZU
9ADMDDT
All
All
All
9ATSHIP
All
9ADMDDTVMI
All
9ATSHIPVMI
All
9ADMDDF
All
9AFSHIP
All
9AFSHIPVMI
9ADMDDFVMI
All
All
Calculated
in Macro
Open for input
Sequence Macros
In all of these views, one default macro runs: D0 - Set ATR to Max. This macro changes row ATD
Receipts to a very high value, which simulates a situation where a lot of volume is available to be
shipped. This was set to avoid an overload of alerts to be created for violation of availability of
volumes and let the user fully manage the creation of STO and SO, regarding the available STR himor herself.
5.6.
Alert Monitor
In order to optimize the different processes the planners go through, some alerts have been created
that are refreshed on a daily basis. This enables them to quickly discover issues or critical situations.
In APO we therefore use an alert monitor. The following lists indicate which alerts exist, what their
trigger is, if they are calculated for every time bucket, where the macros relating to them are to be
found, when they are refreshed and what level is they run at.
The first list shows the data base alerts which are calculated by macros.
Alert name
Unfulfilled Demand
(Cross Plant)
Minimum stock
violation (Cross Plant)
Maximum stock
violation (Cross Plant)
SP Below Minimum
Coverage Short Term
SP Below Minimum
Coverage Long Term
SP Above Maximum
Coverage Short Term
SP Above Maximum
Coverage LongTerm
Trigger
Time Unit
Planning Book
Unfulfilled Demand > 0
Minimum Stock Violation
>0
Maximum Stock Violation
>0
Days’ Supply < 95% Safety
Days’s Supply
Days’ Supply < 95% Safety
Days’s Supply
Days’ Supply > 105% Max
cover
Days’ Supply > 105% Max
cover
Weeks
GM_GLOBAL_STK
Weeks
GM_GLOBAL_STK
Weeks
GM_GLOBAL_STK
Data View
01 GLOBAL
STOCK VIEW
01 GLOBAL
STOCK VIEW
01 GLOBAL
STOCK VIEW
Days/Weeks
GM_SP_BJ
03 ST DEP
Days/Weeks
GM_SP_BJ
03 ST DEP
Days/Weeks
GM_SP_BJ
03 ST DEP
Days/Weeks
GM_SP_BJ
03 ST DEP
SP Stockout ST
Supply Shortage > 0
Days/Weeks
GM_SP_BJ
03 ST DEP
SP Stockout LT
Supply Shortage > 0
Days/Weeks
GM_SP_BJ
SP TLB Confirmed >
DistrDemand (TLB-
Days/Weeks
GM_SP_BJ
104
Job Level
Freq.
Product
Daily
Product
Daily
Daily
03 ST DEP
Product
Product
Location
Product
Location
Product
Location
Product
Location
Product
Location
Product
Location
03 ST DEP
Product
Daily
Daily
Daily
Daily
Daily
Daily
Daily
Opening Stock
Confirmed) > DEP
Opening Stock
Location
To be able to generate database alerts via macros we need to specify an alert type in the macro.
There are several standard ones, but for our alerts we have created our own in SPRO -> Maintain
Database Alert Types for Demand Planning and SNP. The concerned alert types are the ones as from
9000. Apart from a description you also assign a priority (error, warning or info) that indicates the
criticality of the alert. Further we can also indicate the description of the threshold value for color
coding and the relational operator to be applied. This will then be used in the alert monitor and
parameterized in the alert profile.
For all (Cross Plant) alerts the Global Stock planning book is used. For more details on the alerts and
how they are calculated please see the corresponding details in the macro section of the Global
Stock Planning book.
The next list shows the dynamic alerts we use for deployment and the fair-share logic set up under
Application-Specific Alert Profile APO: Transport Load Builder. When available to deploy quantity is
not sufficient to satisfy all demands and where the percentage of demand that can be satisfied is less
than the thresholds maintained in the alert profile, alerts are created.
An alert profile needs to be created to view the generated alerts (/SAPAPO/AMON_SETTING). In
total there are four profiles, one for every planning book where alerts run:
An alert profile contains two parts (both with
the same technical name in our case). First of
all there is the overall profile which indicates
for which time period the alerts are valid and
what application specific profile, the second
part, is linked to it.
105
In the application specific alert profile part, we specify which alerts we want to see in the alert
monitor. As specified about we work with Database alerts for DP & SNP. We have to specify the alert
types we want to use per profile and look therefore for the ones we set up in customizing. It’s also
possible to work with upper or lower values to specify the priority of an alert, but in our setup we
only define the priority in the setup of the alert type itself.
Apart from the alert types, you should also specify for which planning book and data view this runs.
For the default types we have set up we match this with the planning books in which the macros run.
You can also include a specific user selection to limit the amount of alerts that are shown.
Once the alert profiles have been set up and the alert jobs are running, we can check the alerts in the
alert monitor (/SAPAPO/AMON1). From this list it’s possible to navigate to interactive planning
immediately (to the selection of 1 selected alert for example) or delete alerts. The following details
of the alerts are available:
-
Priority
Description
Planning version
106
-
Planning Book & Data View
Job & Macro
Validity
Technical Info
Creation Info & User ID
Job Level & Characteristic Values
Note: In “Favorite Management” we can assign the profiles to specific users, this needs to be done, otherwise
the user will not see anything in the alert monitor (see 3.8). As well here, in the last tab you can choose how
the alert hierarchy should be displayed.
Note: The alerts displayed are all alerts currently in the database, which is not necessarily in the interest of the
users. With the button “Choose/Change layout”. They can set filters on all available columns, change the order
of the columns and hide/show tem by creating a layout. This layout can be made user specific so only they can
use it or global. As well they can decide to put a layout to default so next time they enter the transaction their
default layout will automatically be loaded.
Note: Every macro contains an automatic way of cleaning the alerts by first erasing all old alerts and then
creating, if needed, new ones. This avoids we end up with millions of obsolete alerts and always have the most
recent data. Sometimes however, it might be that not all old alerts get deleted. Typically this is because the job
level changed for the alerts and the deletion part of the macro doesn’t find any old alerts as it’s comparing
different levels. In that case you have to manually clean the old alerts.
5.7.
Flat File Management
Normally master data and transactional data come to APO from ECC via BW. But for some
transactional data we need a flat file to upload or download from the system such as the external
demands we receive or allocations we send out. We created a specific folder for APO users to upload
or download interface files (FILE).
In this transaction you can see the setup of
the file path. First of all we have the following
logical file and physical file path. <SYS-ID> is a
variable filled in by the actual system name
(SEP for example). <FILENAME> refers to the
Logical file name that is shown in the second
screenshot.
107
Existing Logical File Paths:
1.
2.
3.
ZAPO_INTERFACE_IN: refers to files that are received with an FTP job
ZAPO_INTERFACE_OUT: refers to files that are created automatically on data extracted from SP
ZAPO_INTERFACE_USERS: refers to files that are manually upload by the users via transaction ZCORCBC01
(see below)
In AL11 it’s possible to see the content of the
different files currently in the system.
Following the file path, you will find the
different files available. On the initial page you
have to choose APO_ECC_TRANS as Name of
Directory Parameter.
As mentioned in some cases it is useful for
support or even users to upload or download
files from/to their PC or common server
to/from the SAP application server. This is
handled in a specific transaction, ZCORCBC01
(see 8.1).
Generally however the processing
uploading and downloading files
automated.
5.8.
of
is
End user access, parameters & initial setup
Security has set up the different roles needed for the planners. These roles allow them to access a
limited number of transactions and to change a limited number of data in the system. Creating users
and giving them the appropriate roles is not always sufficient for them to start working in the system.
To do this we need to check the following topics.
We might need to assign an SP planning book and data view to the user ID in case he or she is not
able to enter the first time they log in. In transaction /SAPAPO/SDPPLBK you can automatically see
the last planning book and data view the user has been using. This is always saved when the user
exits interactive planning.
In ZAPO_BATCHJOB we create background jobs only specific users can launch at request (see 3.12),
in case relevant jobs exist. Once a user ID has been assigned to a job, this user will be able to execute
the job. To take care of this, press button “Define authorizations” and create an entry for every job
the user should be able to launch and save.
To be able to work with the alert monitor, the right SP alert profiles need to be assigned to the user
ID. In “Favorite Management” in /SAPAPO/AMON_SETTING, you can drag and drop the necessary
alert profiles to the user ID. Now, when they enter the alert monitor, they will be able to work on the
alerts coming in for these alert profiles only.
Another specific set of users are the ones used in the background to run jobs or access RFC
destinations.
-
-
EUBATCH: This is the official user to run jobs in the background as created in transaction SM36. All
steps in the background jobs created and running here should contain this user. This doesn’t mean the
job itself should run on EUBATCH, as users should be able to track the jobs they run themselves, but
the inner steps should contain EUBATCH for uniformity reasons and because “human” user ID’s might
disappear once a user stops working on the system. If jobs still run under this user, they will
automatically fail. Also the regular user ID do not always have the requested access to run all jobs. This
is therefore a good trick as well in case you don’t have access to execute a specific process. By setting
EUBATCH in the job step you might get around it
RFC_SEP: This is the user we have put as execution user in all process chains. Here again a regular user
ID does not always have full authorization to run all processes. This background user needs to be able
specifically to connect with other systems via an RFC connection. The background user can be
specified for each chain separately in RSPC by choosing Menu Process Chain -> Attributes -> Execution
User.
5.9.
Note Management
The system gives the forecasters the opportunity to manually create notes in the cells in the
interactive planning screen. These are short texts that can serve as reminders for example. By right
clicking a cell in a planning book (/SAPAPO/SDP94) you can display (or create or change) a note. If a
note exists for a cell, this cell will be highlighted in orange and contain an icon indicating the note.
The note will be stored at characteristic and time bucket level.
This means input in weeks at Product & Location level will store the note at this level only. If you load
a Transportation Lane related to this Product and or Location, you will therefore never see this note.
Important to know as well is that the system does not allow entering or saving a note at any
navigational attribute level. The same happens if you have loaded several values of the same
characteristic. In that case you will still see if a note exists for that selection, but you cannot change it
until you are at the right input level. The note entered is stored for the specific planning area only.
So if you enter a note in a planning book of the planning area in PAL, it will not be shown for the
same key figure and characteristics in a planning book for the planning area in CSE or KG.
109
110
An overview of all the notes in one planning area can be found in /SAPAPO/SDP_NOTES. You can
specify per planning version and key figure and will see the details of each note and extract with or
without the content of the note. At the same time it is possible to delete notes if needed. The same
transaction shows as well in which table the tehcnical info around a note is stored, which is a table
generated per planning area.
A standard report exists to copy notes between planning versions in a specific planning area:
/SAPAPO/COPY_NOTES. This can be useful to copy between 000 and LTD, or for possible other
(simulation) versions.
5.10. SP background activities
Background Jobs for Macro Execution
In order to be able to run DP specific tasks in the background, activities and jobs need to be created.
This is managed by a set of transactions:
-
/SAPAPO/MC8T: Define, change and delete activities
/SAPAPO/MC8D: Created jobs
/SAPAPO/MC8E: Change jobs
/SAPAPO/MC8F: Delete jobs
/SAPAPO/MC8J: Copy jobs
/SAPAPO/MC8I: Check jobs
/SAPAPO/MC8G: Schedule jobs. In SE38 you can do the same with report
/SAPAPO/TS_BATCH_RUN
/SAPAPO/MC8K: Job logs
The activities are setup for a specific planning area, planning book and data view and can contain
different steps. This is however not necessarily recommended, usually we set up one step per
activity. These steps can perform four different function:
-
Generate a statistical forecast: not needed for SP/P.
Run a macro defined in that planning book
Release forecast to SNP with specific release profile
Release forecast to ECC with specific transfer profile: not needed for SP/P.
Next step is to set up the job itself. Again we need to specify the planning book and data view and
also the planning version. Then we can find and assign the right activity, indicate if a parallel
processing profile should be used (for jobs running on big selections) and say if we want a log
generated or not (which we normally only set for the most important jobs like the release to SNP as
it needs a lot of disk space). A selection ID or group of selection ID can be specified for the job to run
on, if nothing is specified, the job will run for all data in the planning area. A last important setting is
the aggregation level, indicating at which characteristic and attribute level a job should run.
After creating the job in the /sapapo/mc8d transaction the jobs will need to be triggered for
immediate execution in the /sapapo/ts_batch_run transaction. For consistency reasons the variant of
this program should have the same name as the job that will be run. This job can then be placed
either in the job setup executed by CONTROLM or via the ZAPO_BATCHJOB table.
For info, standard tables used to store the info are:
-
-
/SAPAPO/TSPLBAKT: Job activities
/SAPAPO/TSPLAKTT: Job activity descriptions
/SAPAPO/TSPLB: Jobs
/SAPAPO/TSPLBT: Job descriptions
/SAPAPO/TSPLBSEL: Link between Job and technical User selection ID
/SAPAPO/TSAGGLEV: level of job
112
-
113
Macro Calculation Background Job Contents
Job
BEXXALL_KF
BEXXALL_AL
ES06ALL_KF
ES06ALL_KF
FRXXALL_KF
FRXXALL_AL
PL08_KFALL
PL08_ALALL
PP_CALPAL
PP_ALTPALL
PP_XKFGB06
PP_XALGB06
FR_CP_SUP0
Description
CAL
KFPP_KG/CROSS
LOCATION VIEW
PP Alerts Cross
Plant
CAL
KFPP_KG/CROSS
LOCATION VIEW
PP Alerts Cross
Plant
CAL
KFPP_KG/CROSS
LOCATION VIEW
PP Alerts Cross
Plant
CAL
KFPP_KG/CROSS
LOCATION VIEW
PP Alerts Cross
Plant
CAL
KFPP_KG/CROSS
LOCATION VIEW
PP Alerts Cross
Plant
CAL
KFPP_KG/CROSS
LOCATION VIEW
PP Alerts Cross
Plant
FR Copacking zero
supply adjustments
Planning Book
PP_KG
PP_GLOBAL_STK
PP_KG
PP_GLOBAL_STK
PP_KG
PP_GLOBAL_STK
PP_KG
PP_GLOBAL_STK
PP_KG
PP_GLOBAL_STK
PP_KG
PP_GLOBAL_STK
PP_GLB_SIM
Data View
CROSS
LOCATION
VIEW
GLOBAL
STOCK VIEW
CROSS
LOCATION
VIEW
GLOBAL
STOCK VIEW
CROSS
LOCATION
VIEW
GLOBAL
STOCK VIEW
CROSS
LOCATION
VIEW
GLOBAL
STOCK VIEW
CROSS
LOCATION
VIEW
GLOBAL
STOCK VIEW
CROSS
LOCATION
VIEW
GLOBAL
STOCK VIEW
GLOBAL
STOCK
COPACK
Selection
Level
Activity
BEXX_ALL_XPLANT
9AMALO
PP_CALCKF
BEXX_ALL_GSTOCK
ZPPMAT
PP_ALERTS2
BEXX_ALL_XPLANT
9AMALO
PP_CALCKF
BEXX_ALL_GSTOCK
ZPPMAT
PP_ALERTS2
BEXX_ALL_XPLANT
9AMALO
PP_CALCKF
BEXX_ALL_GSTOCK
ZPPMAT
PP_ALERTS2
BEXX_ALL_XPLANT
9AMALO
PP_CALCKF
BEXX_ALL_GSTOCK
ZPPMAT
PP_ALERTS2
BEXX_ALL_XPLANT
9AMALO
PP_CALCKF
BEXX_ALL_GSTOCK
ZPPMAT
PP_ALERTS2
BEXX_ALL_XPLANT
9AMALO
PP_CALCKF
BEXX_ALL_GSTOCK
ZPPMAT
PP_ALERTS2
FRXX CPALL V1
ZPPMAT
FR_CP_SUP0
Description2
PP Calculate Key
Figures for Cross
Loc
PP Alerts Cross
Plant
PP Calculate Key
Figures for Cross
Loc
PP Alerts Cross
Plant
PP Calculate Key
Figures for Cross
Loc
PP Alerts Cross
Plant
PP Calculate Key
Figures for Cross
Loc
PP Alerts Cross
Plant
PP Calculate Key
Figures for Cross
Loc
PP Alerts Cross
Plant
PP Calculate Key
Figures for Cross
Loc
PP Alerts Cross
Plant
FR Copacking zero
supply
adjustments
Action
MACRO: UPDATE KF FOR CROSS
LOC AREA
MACRO : GLOBAL ALERTS
MACRO: UPDATE KF FOR CROSS
LOC AREA
MACRO : GLOBAL ALERTS
MACRO: UPDATE KF FOR CROSS
LOC AREA
MACRO : GLOBAL ALERTS
MACRO: UPDATE KF FOR CROSS
LOC AREA
MACRO : GLOBAL ALERTS
MACRO: UPDATE KF FOR CROSS
LOC AREA
MACRO : GLOBAL ALERTS
MACRO: UPDATE KF FOR CROSS
LOC AREA
MACRO : GLOBAL ALERTS
MACRO
:
ZERO
ADJUSTMENTS
SUPPLY
FRXXKFCP1
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CP128
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCP3
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CP3
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCP4
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CP4
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCP5
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CP5
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCP7
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CP7
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCPA
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CPA
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCPB
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CPB
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCPD
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CPD
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
115
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
FRXXKFCPE
PP Calculate Key
Figures for Cross
Loc 3
FRXXKFCPQR
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
MACRO : BKG => DETAIL LEVEL
3RD
PARTY
CALCS
MACRO : UPDATE KF FOR CROSS
LOC AREA
PP_KG
CROSS
LOC
3RD PARTY
FRXX CPE
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
PP Calculate Key
Figures for Cross
Loc 3
PP_KG
CROSS
LOC
3RD PARTY
FRXX CPQR
9AMALO
PP_CALCKF3
PP Calculate Key
Figures for Cross
Loc 3
FRXXCP1_AL
PP Alerts
Plant V//1
Cross
PP_GLB_SIM
FR92-CP128 V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCP3_AL
PP Alerts
Plant V//1
Cross
FR92-CP3 V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCP4_AL
PP Alerts
Plant V//1
Cross
FR92-CP4 V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCP5_AL
PP Alerts
Plant V//1
Cross
FR92-CP5 V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCP7_AL
PP Alerts
Plant V//1
Cross
FR92-CP7 V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCPA_AL
PP Alerts
Plant V//1
Cross
FR79-CPA V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCPB_AL
PP Alerts
Plant V//1
Cross
FR79-CPB V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCPD_AL
PP Alerts
Plant V//1
Cross
FR79-CPD V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
FRXXCPE_AL
PP Alerts
Plant V//1
Cross
FR79-CPE V001
ZPPMAT
PPXLOCALV1
PP Alerts
Plant V//1
Cross
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
PP_GLB_SIM
PP_GLB_SIM
PP_GLB_SIM
PP_GLB_SIM
PP_GLB_SIM
PP_GLB_SIM
PP_GLB_SIM
PP_GLB_SIM
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
GLOBAL
STOCK
COPACK
116
FRXXCPQ_AL
PP Alerts
Plant V//1
Cross
ZBWSTOCK*
Stock
for BI
*AL*
Alerts on country
for category
projection
PP_GLB_SIM
GLOBAL
STOCK
COPACK
FR75-CPQR V001
ZPPMAT
PPXLOCALV1
SP_ZBI_LTD
SP_ZBI_LTD
ZBWSTOCK*
9AMALO
ZBW_PROJ
GM_SP_BJ
03 ST DEP
ZBATCH_++_ALERTSNPLOC
9AMALO
DEPALGM
117
PP Alerts
Plant V//1
Cross
ZBW
Stock
Projection
Alert
for
deployment
overall GM
MACRO
:
GLOBAL
CALC
MACRO : ALERTS IN CASES
Start, default & Exit macros
Start, default & macro BCKG –
Alert Management
Copy planning version data
In Production Planning we use a demand planning structured planning area that contains only time
series key figures which are populated from time series key figures located in SNP structured
planning area. In order to populate time series key figures with data it is possible to massively copy
data from one key figure to another via /SAPAPO/TSCOPY. In SE38 you can do the same with report
/SAPAPO/RTSCOPY. The copy can be done inside the same planning version and planning area or
between different ones and allows doing the copy just for a specific selection of data that exist for
the planning area. You can specify a time range for which the data needs to be loaded.
One limitation to using an SNP planning area as the source of the data to be loaded is that it is not
possible to modify the MPOS assigned to include navigation attributes to facilitate the selection of
the products. Therefore we need to specify the individual product codes to be executed in the
TSCOPY, this should align with the selection of the data that is being run in the macros from the
other steps of the job. The solution to this is the update of the variant contents via the
ZAPO_VARIANT_MOD or ZAPO_VARIANT_UPD programs.
Note: It is not recommended to use any parallel processing on TSCOPY as it does not always gives the wanted
results.
Note: Time disaggregation is not performed when copying data as TSCOPY runs on storage buckets.
119
TSCOPY Variant Structure
Job
Type
Variant
Source
Version
Target
Version2
BE_AP-APO_SBEXAP0030
/SAPAPO/RTSCOPY
BEXXALL_CP
Z9ASNP04KG
0
ZGLOBALSTK
0
ES_AP-APO_SESXAP0049
/SAPAPO/RTSCOPY
ES06ALL_CP
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP0044
/SAPAPO/RTS COPY
FRXXALL_CP
Z9ASNP04KG
0
ZGLOBALSTK
0
PL_AP-APO_SPLXAP0015
/SAPAPO/RTSCOPY
PL08_ALL
Z9ASNP04KG
0
ZGLOBALSTK
0
PT_AP-APO_SPTXAP0013
/SAPAPO/RTSCOPY
PT01_ALL
Z9ASNP04KG
0
ZGLOBALSTK
0
UK_AP-APO_SUKXAP0039
/SAPAPO/RTSCOPY
GB06_ALL
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CP1_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CP3_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CP4_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CP5_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CP7_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CPA_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CPB_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CPD_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CPE_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
FR_AP-APO_SFRXAP1018
/SAPAPO/RTSCOPY
FRXX_SP_CPQ_V1
Z9ASNP04KG
0
ZGLOBALSTK
0
Time range
Grouping
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
(Beginning of mth-1 months, end
of mth+20 month
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
9AMATNR
Key Figure Mapping Table
ZA9SNP04KG
ZASNP04TS
Key Figure Type
Description
Key fig source
Key fig target
X
X
Key figure copy: DP <-> DP
Storage upper bound
9AUBSTOR
9AUBSTOR
X
X
Key figure copy: DP <-> DP
Maximum Stock
C_MSTCK
C_MSTCK
X
X
Key figure copy: DP <-> DP
Safety stock
C_SSFTY
C_SSFTY
X
X
Key figure copy: DP <-> DP
Minimum stock
C_SSTCK
C_SSTCK
X
X
Key figure copy: DP <-> DP
Projected stock
C_STOCK
C_STOCK
X
X
Key figure copy: DP <-> DP
Demand
ZEXTDEMMO
ZEXTDEMMO
X
X
Key figure copy: DP <-> DP
Supply
C_CSUPP
C_CSUPP
X
Key figure copy: DP <-> DP
Forecast
C_TOTFCS
C_TOTFCS
X
Key figure copy: DP <-> DP
Sales
C_SALES
C_SALES
X
Key figure copy: DP <-> DP
Dependent Demand
C_DPNDDMD
C_DPNDDMD
X
Key figure copy: DP <-> DP
Actual Stock
C_ACTSTK
C_ACTSTK
X
Key figure copy: DP <-> DP
TS DEMAND
C_TSDMND
C_TSDMND
Global Stock Update Structure
The logic and requirement of this update is to enable users to see multi-location aggregated data for
potentially multiple products at once and as well generate alerts on this data to check the overall
stock projections of the products in the network. As the only way to analyse this data in the standard
SNP planning books would be to execute performance intensive drill-downs and drill-up functions in
order to calculate the data for each product location, a simpler solution was developed to meet this
business requirement.
The solution is the population of time series key figures in the standard SNP planning area and
copying this data to a DP structured planning area that only contains the product code. This allows
for analysis of aggregated data for not only multiple locations for a single product but also the
possibility of seeing this data for multiple products as well. As it does not require macros to drill
down and drill up the data, the performance is exceptionally better in this view.
It is important to understand that as the destination planning area is a time series based planning
area, the data needs to be recalculated in the source and repopulated for the required products to
ensure accuracy. There are early morning jobs that execute this for the countries that require this
data and as well there is the possibility of users to update this data manually via the
ZAPO_BATCHJOB_LTD transaction.
There is a significant difference between the current setup of the TSCOPY and macro execution
background jobs with what will be required for the Gold Model planning books. Currently the source
of the data is from the Z9ASNP04KG planning area which is used in the above macro jobs.
Furthermore the logic in the macros only uses forecast, dependent demands and sales order for
populating the total demands. When changing to the new Gold Model structure there is a new
Z9ASNP04TS planning area that has additional key figures and modifications to the macros that are
being executed, which includes Distribution Demand MRP Area. For this reason the TSCOPY will have
to exclude vendor locations when populating the data to the global stock planning area as to not
duplicate the demands. For further details on this and other changes that will be required for
switching to the new Gold Model planning books please see section 11 of this document.
The use of the previously mentioned transactions along with the ZAPO_BATCHJOB table gives users
the ability to execute an action which will execute a three step process to populate the Global Stock
Planning area with data and subsequently run the alerts. The below table shows the table entries
that are required to allow the execution of the user triggered data update job:
Action ID – Job
triggered by user via
ZAPO_BATCHJOB_L
TD transaction
Variant Name –
saved variants from
programs to be
executed with
selection ID of
background job
Program Name – TS_BATCH_JOB to
run macro background jobs,
TS_COPY to populate time series
data
The tables below show the general structure of the PP background jobs executed by CONTROLM that
are used with all their detail. There are alert jobs that are run in the morning which are highlighted in
section 9.1. There are also jobs that can be executed manually by users to update data in the global
stock book as required.
The basic structure for the Global Stock Planning area includes the following three steps:
1. Key Figure Calculation Step
a. Creation of selection variants in 01 TSCOPY (currently the Cross Location View)data
view using the required cross plant planner. All locations must be included in the
selection, only the Cross Plant Planner is used for the selection.
b. Creation of Background job using the Key Figure calculation activity for that data
view and the previously created selection profile.
c. Creation of the variant for /SAPAPO/TS_BATCH_JOB that has the same name as the
macro background job calculation
2. TSCOPY variant Step
a. Using the products from the Cross Plant Planner selection of the previous step create
a /SAPAPO/RTSCOPY job variant with the same products. Be sure to exclude any VE*
locations if sourcing the data from the 01 TSCOPY data view.
b. Update the key figure to be sure all of the demand, actual stock and boundaries are
updated in the ZGLOBALSTK planning area
122
c. Make sure the horizon for the copy is also dynamic, covering two years of data.
3. Alert Job Step
a. Using the same Cross Plant planner from Step 1, create a selection profile in the
global stock data view.
b. Create background job calculation using the Alert activity for the global stock data
view. The selection used in the variant should be the previously created selection
profile.
c. Create a Variant for the /SAPAPO/TS_BATCH_RUN using the same name of the
previously created background job.
Once these steps are complete enter into the ZAPO_BATCHJOB table and enter the three steps for
the three programs as shown above using the variants.
The table above in the background job section focuses on the macro jobs that have been set up for
each country in the PP Gold Model. These jobs have the same structure as the jobs setup in the
ZAPO_BATCHJOB table shown above, however they are executed by CONTROLM every morning to
ensure the data in the Global Stock Planning area is correct when users come into the planning book.
The second table highlights the basic structure for the TSCOPY variants and their contents. This basic
structure is used for the CONTROLM jobs as well as for the ZAPO_BATCHJOB table for users to
execute the update of data to the Global Stock Planning area. The key figure mapping table also
shows the unique key figures that are included in the new Z9ASNP04TS planning area and how they
are mapped to the ZGLOBALSTK planning area.
For further detailed information on the CONTROLM job assignment and the
structure of the jobs, please check the embedded spread sheet.
123
PP Job
Structure.xlsx
124
Location heuristics
To do Distribution Requirement Planning, we currently use the heuristics functionality within APO.,
via /SAPAPO/SNP01 or report /SAPAPO/RSNPDRP1. For every country, and in some case country and
category, a set of variants has been set up that is sequenced logically throughout the network for
that country. To do this, selections have been set up that contain or exclude exactly the different
levels of the network and these selections are then referenced in the job variants. The variants are
assigned to a planning book which is used for the deployment. This is important as any start or
default macros that are set up in that book are ran before deployment is executed. Usually we use
planning book GM_SP_BJ with data view 02 LT HEUR as it is specifically set up to be able to run the
heuristics.
We currently do not work with the network heuristics, wherefore we need to set the radio button to
“location heuristics” which will just process the data for the regarded location only and bring the net
requirements to its source.
We reference the global SNP profile “KF”, set a parallel processing profile if wanted and define the
heuristics horizon to be regarded There is a flag to take into account components, or BOM
information, which indicates that dependent demand will be calculated. As well we indicate to use
supersession chains for interchangeability purposes. A third flag indicates if Net change planning is to
be applied. In this case the system only plans location products that have had planning-relevant
changes made to them since the last heuristic run and therefore received a planning file entry. A
planning-relevant change can be a change to the demand situation of the location product for
instance.
Deployment
Via /SAPAPO/SNP02 or report /SAPAPO/RMSDPDEP we can run deployment in the background. For
every country, and in some case country and category, a set of variants has been set up that is
sequenced logically throughout the network for that country. To do this, selections have been set up
that contain or exclude exactly the different levels of the network and these selections are then
referenced in the job variants. The variants are assigned to a planning book which is used for the
deployment. This is important as any start or default macros that are set up in that book are ran
before deployment is executed. Usually we use planning book GM_SP_BJ with data view 03 ST DEP
or one of the OFFSET views as these are all set up for deployment purposes specifically.
We reference the global SNP profile “KF”, set a parallel processing profile if wanted and define the
deployment horizon to be regarded. Another important setting is how to deal with the SNP Stock
transfers that resulted from the DRP run. We generally set option “Reduce” which works as a
consumption of the planned STR. Option “Do not change” is a simulation option. Option “delete” will
delete all planned STR in the deployment horizon, no matter if they are confirmed by deployment or
not.
Transport Load Building
Similarly as for DRP or deployment, we can also execute the TLB in the background. This is currently
not widely spread as most activities around TLB are executed manually, but it can be done in
/SAPAPO/SNP04 or report /SAPAPO/RMSDPTLB. Again we choose a planning book, in this case one
set up for TLB purposes like GM_TLB_CSE, and either manually setup a selection or assign an existing
selection. We further specify the horizon, a parallel processing profile if needed and the SNP global
profile “KF”.
Consistency checks & Creation of Time Series
It might happen that time series get corrupted or don’t exist for some CVC, this is typical in SNP when
new master data comes into APO. Usually no issue is perceived, but if so, the user won’t be able to
enter the planning book. There are several CONTROLM jobs that run nightly to ensure the
consistency of the planning areas after the CIF master data jobs are completed and before the batch
jobs begin for the newly created data.
Time series need to exist for all CVC and for the right time horizon. This means that when CVC are
created, time series need to be adjusted for these new CVC. We also change once a month the rolling
time horizon where we delete the oldest month available and create time series for a new month at
the end of the horizon.
The reports to run in SE38 in case of any issues are /SAPAPO/TS_LCM_PLOB_DELTA_SYNC with
variant that corresponds the planning area that is to be adjusted (to adjust the time series for all
CVC) and /SAPAPO/TS_LCM_CONS_CHECK with its relevant variant (to solve general time series
issues via a consistency check). The program to create time series is /SAPAPO/TS_PAREA_INITIALIZE
with the individual variants for each planning area in version 000, or in /SAPAPO/TSINIT. This variant
is adjusted automatically according to the system date so that it always generates time series for the
last 35 days and next 850 days forward. Important to know is that this doesn’t overwrite any existing
time series, the existing values on the key figures will not be changed.
The consistency check can as well be found in /SAPAPO/TSCONS. In /SAPAPO/MSDP_ADMIN can
you run the same consistency check as highlighted in the previous paragraph by double clicking the
planning area and going to menu Extras -> Consistency Checks -> Time Series. Also for the CVC
themselves, in case of any issues, a consistency check can be executed. This is done in the same
transaction by double clicking the MPOS and going to menu Extras -> Consistency Check.
An additional consistency check can be run in /SAPAPO/TSLCREORG or with program
/SAPAPO/TS_LCM_REORG.
As time moves on, the job variants we use should reflect the moving of time as well. To do this we
can maintain dynamic date ranges in our variants rather than fixed date ranges. 2 options are used
for this.
It might happen that time series get corrupted or don’t exist for some CVC, this is typical in SNP when
new master data comes into APO. Usually no issue is perceived, but if so, the user won’t be able to
enter the planning book. There are several CONTROLM jobs that run nightly to ensure the
consistency of the planning areas after the CIF master data jobs are completed and before the batch
jobs begin for the newly created data.
Time series need to exist for all CVC and for the right time horizon. This means that when CVC are
created, time series need to be adjusted for these new CVC. We also change once a month the rolling
time horizon where we delete the oldest month available and create time series for a new month at
the end of the horizon.
126
The reports to run in SE38 in case of any issues are /SAPAPO/TS_LCM_PLOB_DELTA_SYNC with
variant that corresponds the planning area that is to be adjusted (to adjust the time series for all
CVC) and /SAPAPO/TS_LCM_CONS_CHECK with its relevant variant (to solve general time series
issues via a consistency check). The program to create time series is /SAPAPO/TS_PAREA_INITIALIZE
with the individual variants for each planning area in version 000, or in /SAPAPO/TSINIT. This variant
is adjusted automatically according to the system date so that it always generates time series for the
last 35 days and next 850 days forward. Important to know is that this doesn’t overwrite any existing
time series, the existing values on the key figures will not be changed.
The consistency check can as well be found in /SAPAPO/TSCONS. In /SAPAPO/MSDP_ADMIN can
you run the same consistency check as highlighted in the previous paragraph by double clicking the
planning area and going to menu Extras -> Consistency Checks -> Time Series. Also for the CVC
themselves, in case of any issues, a consistency check can be executed. This is done in the same
transaction by double clicking the MPOS and going to menu Extras -> Consistency Check.
An additional consistency check can be run in /SAPAPO/TSLCREORG or with program
/SAPAPO/TS_LCM_REORG and variant REORG 001 (in case of planning version 001.
As time moves on, the job variants we use should reflect the moving of time as well. To do this we
can maintain dynamic date ranges in our variants rather than fixed date ranges. 2 options are used
for this.
Use of dynamic & TVAR variables
Dynamic variables are calculated when executing the job and use standard procedures to calculate
start and end date for a time interval. As an example we calculate in this variant the dynamic range
between the start of the current month and the end of month +23. This time range would therefore
cover a two year time span.
Several different options are available using dynamic time ranges, but in some cases it is not
sufficient to cover the needs for specific variants. In that case TVAR variables might help. These are
time ranges that are kept in table TVARVC and read from this table when executing the variant. To
make sure they are up to date there’s two parameters playing a role. First you need to make sure it is
recalculated on the right frequency (every day, once a month,…) which depends on each scenario.
Second, the calculation rule of the variable is important so we can make sure we always show the
right interval.
127
To calculate the time range we use program ZCORSC03413O01A. In the variant we can again use a
dynamic range, as just discussed, to find the right interval depending on the frequency we run this
program.
User selections in batch jobs
To be able to run jobs in the background we always need to specify which selection of data should be
taken into account when processing the jobs. For TSCOPY jobs for example, the selection needs to be
maintained directly in the variant itself, but for macro jobs we use user selections that usually are
created, deleted & maintained in interactive planning /SAPAPO/SDP94. Users manage their own
day-to-day selections here as well, which creates a big list of all user selections available for a
planning area without distinction between its purpose.
To avoid confusion and make sure users do not change any jobs that are used in background jobs we
try to stick to a naming convention:
-
-
ZBATCH_XX_Y_* where XX is replaced with the respective country code and Y is optional
and would present the product categories involved. These selections are to be used in
background jobs only and therefore users should not be changing them.
XXXX_* where XXXX is replaced with the location code being loaded. This would be the
way the users organize their data and selections. If more than one location is part of the
selection, then the source location should be used as the prefix. This ensures
organization and consistency in the selections & avoids unclear and excessive selections
Technically the content of selections is stored in tables /SAPAPO/TS_SELKO (link between description
and technical ID), /SAPAPO/TS_SELOB & /SAPAPO/TS_SELPO (showing grouping condition and
content)
5.11. Release to SNP process
The release of forecast from DP to SNP is done automatically on a weekly basis for the whole horizon
and for all SKU-Location combinations. It automatically refreshes all data available in SNP. There’s at
the moment no option for the users to do a manual release of forecast at another time in the week.
We use a specific planning book where from the release is done (DP_BJ_RELEASE, see 3.8). This
planning book contains 2 data views because SNP needs to have a different split of forecast to days
on the short term (20% on every working day of a week) from the long term (all forecast on Fridays).
Once a week, on Sundays, we update the release key figure in this planning book by summing the
samples and the operational forecast. The operational forecast is the bottom-up forecast for the
128
short term and the category forecast in the long term. It depends on how the category horizon is set.
This snapshot is kept during the whole week for reference and used in any downstream releases,
meaning SNP, BI and S700.
Specific jobs need to be set up to do the release to SNP and split the forecast from weeks to days. As
highlighted the release on the very short term has a different split to days as the longer term release,
therefore two release profiles and respective jobs need to be maintained. The setup of jobs have
been discussed in the previous section, so here we concentrate on the release profiles inside those
jobs.
In /SAPAPO/MC8S the release profiles are created. REL_ST is used in the short term, REL_LT in the
long term. Their only difference is the Period Split profile used. The further information is clear: the
source planning area and key figure is indicated as well as the target version in SNP. Category FA
indicates the volumes will be assigned forecast as an order category in SNP. We also specify which
Info Objects we use to specify Product and Location and further highlight the consumption strategy
to be used in SNP. The last field is important as well. If “Create new Orders” is flagged, it won’t
overwrite any existing orders but just add on orders. The disadvantage is that if we would have to rerelease something, we need to delete the forecast out of SNP first. The advantage is that if we have
different source of forecast (like domestic and external demand), we make sure that duplicate
Product-Location combinations in both sources are not overwritten when releasing both.
/SAPAPO/SDP_SPLIT allows us to create the split profiles. Both are highlighted below. We indicate
for how many weeks (as source periodicity) we need to distribute the data to days (target
periodicity) by using which distribution function.
129
The distribution (/SAPAPO/DFCT) then the split per day given by percentages.
Check chapter 8 for the details on the schedule and setup of the release jobs itself.
The related technical details to this are:
-
/SAPAPO/TSPSPLIT: split profile headers
/SAPAPO/TSPSPLTT: split profile descriptions
/SAPAPO/TSPSPLEV: split profiles details
Note: The release only works well if the related time stream to the shipping calendar of the location
we release the forecast to has got as end time of a day 23:59:59 and not the standard value
24:00:00. See 5.1 and 5.2 for more details.
5.12. Set up of user background jobs
If wanted, user specific jobs can be setup.
They would then have a number of jobs they
can run themselves for different purposes.
Currently it is not used by Supply Planning, but
we still mention the existence of it here. The
jobs are launched in ZAPO_BATCHJOB_LTD,
the setup is done by the IS team or support in
ZAPO_BATCHJOB (see 8.1). This gives us a big
flexibility in offering the users very specific
functionality. The jobs are linked to a specific
location, which we set up especially for this
purpose. The locations are the ones that can
be found in /SAPAPO/LOC3 (see 5.1), which
allows to logically group jobs to specific MU or
BU locations.
130
First of all an action (or job) definition needs
to be created. This can be done by giving the
country specific DP location and an action ID
that starts with the same. Also the Job name
(as it will appear in SM37 where the job
progress and log can be found) and the
description should start with the same.
Next you can define who should be able to run this job in “Define authorizations”. You need the
Location, Action ID and the respective user ID.
Last step is to define the job steps. Again you need the location and the action ID. Then you will have
to specify the sequence of the steps, the program name and the variant that will run. If a variant is
linked to a specific selection ID it will show in the table.
5.13. Events
Events are used for scheduling purposes and to connect between jobs. At the end of one job we
execute a step that triggers an event, which is the start shot for a next job, usually a process chain as
Control-M currently has issues to schedule these directly. But we have also examples where the
event is at the end of a chain and triggers a regular batch job. Once the event is put in the starter of a
chain and the chain is activated, the chain needs to be scheduled. Scheduling it means setting it
ready to start whenever the event is triggered. Although scheduled, the chain would not run until
then.
131
The report BTC_EVENT_RAISE is used to trigger events. The events themselves are set up in SM62.
Chapter 7 explains which events are used where and when in more detail.
5.14. Graphical Scheduling Board
The Graphical Scheduling Board is a key tool used by the production scheduler or factory planner to
schedule and sequence the converted SNP orders. This tool gives a Gant Chart representation of the
orders that are planned and by using various functions in the scheduling board the planner is able to
quickly and effectively create a production run.
Overall Configuration
There are two main overall configurations of the scheduling board that are included in the Gold
Model. Each one has unique features that can be used by the planner to have a quick idea of the
production schedule and execute the relevant function required to schedule. The non-standard
aspects of this configuration will be highlighted individually below.
Z99005
The overall profile of the scheduling board is a group of settings that brings together various aspects
required for scheduling including; time horizon, strategy settings, heuristic settings and the general
planning board features. The unique feature for this overall profile are the general settings for the
planning board profile and the DS strategy that is used by default. The other common non-standard
aspects of the profile will be covered in a later section. The configuration for the Z99005 Overall
Settings are as follows:
132










DS Strategy Profile ZSAP002
PP Strategy Profile SAP002
Plng Board Profile Z99005
Work Area
SAP001
Time Profile
ZMIN1_3WK
Optimization Profile SAP001
Heuristic Profile ZSAP001
PP/DS Alert Profile
Propagation Range SAP001
Key Figure Schema
Planning Board Profile Z99005
This configuration was brought into the system from the legacy Cadbury
configuration and has unique order colours according to the order type.
It also sequences the orders in the product chart according to the start
time of the orders. This allows users to quickly identify the types of
orders that exist against a capacity or for a product. Another unique
feature to this profile is that it does not automatically expand the
resource for multiple loading. Finally, it also allows for a sequential view of the orders that are to be
planned by looking at the order chart below:
The general settings for the Z99005 graphical planning board were copied from the standard SAP001
configuration with adjustments being made to the
graphical objects table. The other main features of
this configuration are:

Shown Charts when calling: Resource
and Order
133


Objects displayed on the scroll over of graphical objects: Product, Operation quantity and
Order number
For details on graphical objects for this profile please see table: /SAPAPO/GPHOBJ
ZSAP001
This overall profile brings together various profiles to provide a scheduling board that has a focus on
the colour coding for orders using the product master data. This colour coding is maintained by the
user which can represent family groupings or product types that need to be planned together. The
unique profile that marks this overall profile configuration is the Planning Board Profile ZBISCUITS.










DS Strategy Profile SAP001
PP Strategy Profile SAP002
Plng Board Profile ZBISCUITS
Work Area
SAP001
Time Profile
ZMIN1_3WK
Optimization Profile SAP001
Heuristic Profile ZSAP001
PP/DS Alert Profile
Propagation Range SAP001
Key Figure Schema
Planning Board Profile ZBISCUITS
This configuration was brought into the Gold Model as
part of the legacy Kraft configuration. This
configuration allows users to have a colour
representation of the orders according to the master
data that is maintained at the product level. This also
has a push button feature to allow a sequencing
heuristic that automatically sequences the orders
according to the number prefix in the same Colour field
in the product master.
The key to the colour coding of the orders in the
graphical planning board are made in the Graphical
Objects table where the various elements that can be
shown in the Order and Resource chart look for a
specific pattern in the product field.
The general settings for the ZBISCUIT graphical planning
board were copied from the standard SAP001
configuration with the changes being made to the
graphical objects table. The other main features of this
configuration are:
134






Shown Charts when calling: Resource and Order
For complete details of all decisions for resource chart please see table:
/SAPAPO/GPHDEC
For complete list of all graphical objects please see table: /SAPAPO/GPHOBJ
Elements seen during scroll over for graphical objects include: Product Number,
Description, Operation quantity and Order number
Entries made in order to include pushbutton heuristics function (only non-standard
feature
For addition details on entries please see table: /SAPAPO/CDPS_TB
Time Profile
The ZMIN1_3WK Time Profile is used to determine the period
in which orders can be scheduled and visualized in the
scheduling board. As the business requirement is to schedule
at least two weeks at any given time, we have decided to use
a three week future horizon and one week in the past to be
scheduled and visualized in the scheduling board. The
ZMIN1_3WK is used in both of the configured overall profiles used
in the scheduling board.
Strategy Profiles
The only non-standard strategy profile that is used in the
scheduling board can be found in the Z99005 overall configuration.
This is used as a basis for users that enter the scheduling board,
once a setting is changed the settings become user specific
135
This strategy is has infinite scheduling and considers both Inter Order Relationships as well as Cross
Order Relationships.
The scheduling mode is backward + reverse and will retain the current modes that are assigned to
the order.
Heuristic Profiles
The ZSAP001 Heuristic profile is contained in both of the scheduling board overall profiles and
contains two basic heuristics: ZSAP001 & Z_PP_SPLIT.
ZSAP001
This heuristics uses a standard algorithm to sequence orders
according to three fields; Colour, Reference Field & product
number. When executing this heuristic the planner should
have at least the Colour maintained for the products to ensure
the logic is used.
The business requirement for this allows planners to define a
specific order in which products are sequenced for
production. This way if the factory requires a specific order for
the orders to be executed in for a particular week, the
execution of this heuristics will automatically sequence these
orders in that predetermined sequence for all the products
scheduled.
The insert operation strategy for this heuristic ensures that a
finite methodology is used for the sequencing.
Z_PP_SPLIT
This heuristic uses a standard algorithm to split orders quantities according to either dates or specific
lot sizes. It is possible to do multiple splits of the orders if required as well.
5.15. Product Planning Table
Overall Profile
The ZCORE_BISC profile is the basic master profile that is used by
most planners that use the Product Planning Table. This
configuration was based on legacy Kraft configuration that was
heavily reliant on the use of the Product Planning Table. This table
has been standardized and only basic configuration has gone into
this tool. The basic points that have been changes are:
 Period Settings – ZBISCUITS included additional week
 Row Title –ZBISCUITS contains less description in row titles
136
 Color Profile – ZSAP001 contains additional fixed row coloring
 General Settings – ZBISCUITS uses resource for nav. Tree & does not have
a max. product number
The key points that have been configured for the product
planning table are:
•
•
•
•
•
•
Subscreen Settings - views available for use
Subscreen Profile – default views shown
Pushbutton Profile (large table, lots of deltas. Please see view
/SAPAPO/VPTCBTN2 or /SAPAPO/PTCBTN1 for details)
Periodic Profile – shows default key figures in product view
Row selection – default settings shows cumulative data for products
Resource Data – shown in Shift Hours
137
6. Interfaces
6.1.
Set up CIF and Dependencies via APO BI
As well for inbound and outbound interfaces SP usually works with core interface between APO and
ECC: CIF. For some customizing elements APO shares with ECC it will also need the integrated BW
system in APO. This paragraph is really Basis material, but it’s useful to have the different settings
listed.
The names of the technical systems themselves are maintained in SALE.
On the ECC side some initial settings need to be made.
In NDV2:
In S_AX7_68000200:
as soon as the first transfer via the CIF is done.
=> The value in field OpMode will change to “T”
In S_AX7_68000185:
In CFC9 we configure the change transfer for
master data:
138
Similarly there are some settings to maintain on APO side in SPRO where we map the APO system
itself with the corresponding ECC system and set the queue type + error handling:
In /SAPAPO/C3 we have some specific user settings:
Both for the CIF and for the interface via BI, Basis needs to perform some tasks to allow
communication between APO and ECC. First an RFC connection needs to be set up which will make
both systems communicate. This is not only needed for the BW feed but also for the CIF. In
transaction SM59 an ABAP type connection has to be set up. In APO you need to set up the technical
name of the ECC system and vice versa. Under Technical settings you maintain the system host and
number and the needed RFC user in the next tab. This user actually logs on to the contact system in
case a request is raised to transfer data across.
Next step is to set up the partner profiles for the logical system that has been created. This partner
profile takes care of the outbound and inbound Idoc processing. In transaction WE20 in the
outbound parameters, you will find message type RSRQST.
The receiver port should point to the same logical system:
Next step on APO side is to create the BW source system. To be able to do this we need to make sure
both related systems are open for changes. In SE03 open “Set System Change Option” and check if
namespaces /BIC/ & /BI0/ are modifiable.
140
In SCC4 double click the system client and
check that changes are allowed for “CrossClient Objects Changes” & “Changes and
Transports for Client-Specific Objects”.
Now we can go ahead with the source system
creation in RSA1. Right click the SAP folder
and hit create. Fill in the pop-up screen with
the destination system. This is a confusing
name as you’re really entering the system you
will be sourcing from. Maintain as well the
respective RFC user ID. The background user
in BW is greyed out, but can temporarily be
changed if needed (see next section).
141
Several popups will follow where you’re
requested to login as an administrator into the
source system itself. At some point you will be
asked if you want to replicate Metadata. This
refers to copying over the available Data
Sources in the source system to APO. You
don’t necessarily need to do this when making
the connection, but it is a good proof the
connection is working. This might take several
minutes to complete.
Note: The restore option right-clicking the source system in RSA1 will regenerate the relevant partner profiles,
which might be a solution if the connection is corrupted. To be able to restore the system needs to be opened
for changes via SCC4.
Note: the BW background user is greyed out automatically when creating the source system. This user is stored
in table RSADMINA and can be changed directly in RSA1 -> Administration -> Current Settings -> System
Parameters.
Note: Whenever a system is copied to another, the technical name of the source systems in the CIF link
between APO and ECC needs to be checked. In case the link is now wrong, due to new or adapted technical
names, a way to solve the corrupt link is to deactivate all active integration models in CFM2, followed by a full
deletion in CFM7. Afterwards the existing variants can be used to recreate the models via CFM1.
6.2.
CIF Integration Models
The core interface CIF is the most important interface for SP and PP. It takes care of the
communications between ECC and APO and therefore of most of the data that flows between both.
Integration models are variants that determine which types of objects are transferred and for which
selections. They are setup at the ECC side and need to be generated and activated in order to
transfer data. This is usually done via batch jobs.
The transfer concerns master data as well as transactional data. For the master data there is general
ECC master data and APO specific master data. For SNP, we transfer most basic settings from ECC
and enhance during the transfer via the Product Default Value logic or manually in APO. But the
general rule is to transfer master data if available in ECC instead of managing it directly in APO.
The master data objects in ECC are often not the same as the objects in APO. It is therefore useful to
know the link between both:
APO
Location
Product Location
Transportation Lane
Co-Packing PDS
ECC
Plant, Vendor, Customer
Material Master
Purchasing Info Record
BOM
For transactional data, the transfer works in both directions, meaning that we receive elements from
ECC (Sales orders, Purchase Requisistions, Production Orders & Stocks) send back some of the
transactional elements:
Process
Heuristics (STD)
Deployment (STD)
Heuristics (VMI)
Deployment (VMI)
TLB (STD)
TLB (VMI)
Ext. Proc. & Copacking
Full Service Ext. Proc.
Full Service Ext. Proc.
APO Document
STR Planned
STR Confirmed
SNP: VMI sales order
DEP: VMI sales order
Stock transport order
TLB: VMI sales order
Preqs & Subco Preqs
STR Planned
STR Conf. / Preq in ECC
ECC
When setting up integration models, we should try to follow strict rules to keep the setup
harmonized. This is summarized in the attached Excel file. We distinguish between two different sets
of integration models:
-
The ones for the countries being planned in APO
-
The ones for the White Space countries
The management of the integration models is done via the CFM* transactions in ECC.
IM Setup
Convention.xlsx
Note: As APO master data is transferred from ECC to APO via the CIF technology we now need to make sure
that the right integration models are setup for APO to get all materials forecasted in DP as in DP we do not
necessarily cover the same scope as in SP or PP. Therefore, separate models were setup specifically for DP. Still
it would usually be the SNP team that is responsible for the maintenance of the CIF models.
Note: The transactional elements between both sytems can be reconciled via /SAPAPO/CCR
6.3.
S700 White Space Process
S700 is the table in ECC used for BU planning. This applies to BU set up on the ECC side but not (yet)
planned in APO. Data is stored at product and weekly level for each BU in the active version A00.
Several tables need to be maintained for S700 planning to work properly:
-
ZPP_BUNIT_PLANT: Mapping BU – Plant, e.g. DE92 belongs to BU 100015 (Germany)
ZPP_MUNIT_PLANT: Mapping MU – Plant, e.g. Plant DE01 has the MU code 005
(Loerrach)
ZPP_BUNIT_SKU: Mapping BU – Material, e.g. Settings for material 109832 in BU 100015
(Germany)
ZPP_BUNIT_SRC: S700 Sourcing Arrangements – Header
ZPP_BUNIT_SITEM: S700 Sourcing Arrangements – Item
The content of S700 can be seen in MC95 and choosing planning type “ZS700_” & the BU code or similarly in
MC9C. On the long term S700 will be obsolete as all planning should be done in APO, but for now we still need
it on the SP and PP side to interface volumes from and to it.
143
White Space BU Demands
Forecast, eventually dependent demand for Co-Packing or BU-BU demands are entered in S700
directly for so-called White Space BU (BU of which forecast is not done in APO DP, but the planning
of (part of) the products they sell is done in APO SP/PP). The total of this demand is extracted to APO
DP on a weekly basis, together with external demand from any other sources. This demand is then
released directly to SNP.
Note: To simulate forecast consumption, we delete 20% of the demand for the current week at the end of each
day.
Ideal Delivery Offer
As for all products in SNP, the net requirements are calculated. These are called Ideal Delivery Offer
(IDO) in S700. For these white Space countries we send back the resulting IDO from APO to S700 on
Tuesday morning after the long term heuristics ran. The extraction of data is done by program
ZOTC_APO_IF_IN_OUT_U, which is triggered by job EU_AP-XXX_SEUXAP0030. The resulting files are
stored on file path /var/SEP/STAR/out/ which is shared with ECC wherefore we can immediately
after creation see and used the files on the ECC side. They contain the Distribution Demands
(Planned) per product location and weeks, which means we aggregate daily information into weekly
buckets. This is done for the full horizon.
Currently we have the following files being generated:
-
IDO_d1_csv
IDO_db_csv
IDO_ds_csv
IDO_dp_csv
IDO_di_csv
IDO_df_csv
(Gum & Candy, Dairy, Coffee)
(Biscuits MU Belgium)
(Biscuits MU Spain)
(Biscuits MU Portugal)
(Biscuits MU Italy)
(Biscuits MU France)
The same control-M job mentioned before will trigger some jobs on the ECC side which will use
report ZMTI_APOIDO_U to upload the freshly created files to S700 itself. As APO works on plant
level, in the interface we need to map these to the BU codes that are found in table
ZPP_BUNIT_PLANT. The control-M jobs used for this are:
-
EU_PP-XXX_SEUXPP0411
EU_PP-XXX_SEUXPP0412
EU_PP-XXX_SEUXPP0413
EU_PP-XXX_SEUXPP0414
EU_PP-XXX_SEUXPP0507
EU_PP-XXX_SEUXPP0508
(Biscuits MU Belgium)
(Biscuits MU France)
(Biscuits MU Italy)
(Biscuits MU Spain)
(Biscuits MU Portugal)
(Gum & candy, Dairy, Coffee)
Note: In the short term, the distribution demands (Planned) in APO can differ from the IDO in S700 as after the
long term heuristics and extraction of the information, we run a short term deployment in APO, which will
possibly confirm planned short term orders in confirmed ones.
Allocation
After the long term deployment has run in version LTD in SNP, we also want the White Space BU to
receive an update of this plan, this time of confirmed instead of planned elements. These confirmed
stock transfer requisitions are called Allocations in S700. We use exactly the same extract program as
for the IDO, but with different variants. These are triggered in job EU_AP-XXX_SEUXAP0031. They
contain the Distribution Demands (Confirmed) per product location and weeks, which means as well
here we aggregate daily information into weekly buckets. This is done for the full horizon, but
ignoring the current week. The files we create are:
144
-
Alloc_d1.csv
Alloc_db.csv
Alloc_db_cop.csv
Alloc_df.csv
Alloc_df_cop.csv
Alloc_di.csv
Alloc_di_cop.csv
Alloc_dp.csv
Alloc_dp_cop.csv
Alloc_ds.csv
Alloc_ds_cop.csv
(Gum & Candy, Dairy, Coffee)
(Biscuits MU Belgium)
(Biscuits MU Belgium Co-Packing)
(Biscuits MU France)
(Biscuits MU France Co-Packing)
(Biscuits MU Italy)
(Biscuits MU Italy Co-Packing)
(Biscuits MU Portugal)
(Biscuits MU Portugal Co-Packing)
(Biscuits MU Spain)
(Biscuits MU Spain Co-Packing)
Again similar as for the IDO, the control-M job mentioned before will trigger some jobs on the ECC
side which will this time use report ZMTI_APOALLOCATION1_U to upload the freshly created files to
S700 itself. As APO works on plant level, in the interface we need to map these to the BU codes that
are found in table ZPP_BUNIT_PLANT. The control-M jobs on the ECC side used for this are:
-
6.4.
EU_PP-XXX_SEUXPP0501
EU_PP-XXX_SEUXPP0502
EU_PP-XXX_SEUXPP0503
EU_PP-XXX_SEUXPP0504
EU_PP-XXX_SEUXPP0509
EU_PP-XXX_SEUXPP0510
EU_PP-XXX_SEUXPP0511
(Biscuits MU Belgium Standard & Co-Packing)
(Biscuits MU France Standard)
(Biscuits MU Italy Standard & Co-Packing)
(Biscuits MU Spain Standard & Co-Packing)
(Biscuits MU Portugal Standard & Co-Packing)
(Gum & Candy, Dairy, Coffee)
(Biscuits MU France Co-Packing)
SCORE
SCORE describes the interface to external suppliers or customers that are not setup in ECC. We have
inbound and outbound processes that cover the interface requirements. Generally this is done for
both inbound and outbound with transaction and report ZOTC_APO_IF_IN_OUT. As well program
ZOTC_APO_MERGE_DEMERGE_U is used. The details of the related job schedule can be found here.
The files are stored under file paths /var/SEP/STAR/in/ and /var/SEP/STAR/out.
For the logic to work, we have a few master data requirements at product and/or location level:
-
-
For SCORE BU sourcing from APO MU, we need to maintain the SCORE Plant
Code on the warehouse or plant on APO side which ships the goods. As well the
related Business Unit code needs to be filled for the customer code in APO.
Fore APO BU sourcing from SCORE MU, we need the SCORE Plant code to be
maintained in the Properties tab of the material master. Further we maintain the
Business Unit code at the receiving DC and the SCORE Plant Code on the Vendor.
Last very important setting is the SNP Planner code, which should for these
scenarios always be of the form ++Y and be assigned at the receiving DC.
The table below summarizes the scenarios we cover today and specify the files that are created or
received. More details on the files can be found a bit further down.
Scenario
SCORE BU sourcing from APO MU
APO BU sourcing from SCORE MU
Step
1
2
3
1
In
Outbound
IF3B
IF1
IF8H
SDL
145
Timing
Monday morning
Monday afternoon
Wednesday evening
Monday morning
2
3
IF1
IF9
Monday morning
Wednesday evening
The program allows seeing an error log after every run in /SAPAPO/C3 as highlighted here (ZIN for
inbound, ZOUT for outbound):
Several error messages can occur and can be solved by updating the relevant master data fields:
-
BU not assigned to any location
Material Source plant not assigned
SCORE plant not assigned to location
Note: For the French co-packing process, information is exchanged between APO and NSkep via SCORE.
Inbound files & processes
IF1: Forecast, Stock & Boundaries
We receive 1 file per BU and merge it into one big file. This file is then again split into 3 parts:
o
o
o
Forecast, which is updated to DP. Important in the variant that merges the files is to have
at least 1 file with header row as this is required in the BAPI afterwards.
Boundaries, updated to SNP. This update of master data needs to run before uploading
the stock
Stock, updated to SNP by first deleting the previous stock volumes
File naming convention: xxxxxxbu.imp where the x values are replaced with the 6-digit BU code
IF9: Allocation
We receive 1 file per Plant and merge it into one big file. This file is then split into several smaller files
and uploaded to SNP by deleting the previous allocation volumes (via /SAPAPO/RLCDELETE) and
loading the new ones.
File naming convention: xxxxxx_2.ppp where the x values are replaced with the 6-digit BU code and
the p values by the SCORE plant code
Outbound files & processes
IF1: Forecast, Stock & Boundaries
Extract of forecast, stock and boundaries from SNP into 1 file which is afterwards demerged per BU
and into control and data files. In this case, selecting categories does not make a difference, the
actual check is done against the entries in table ZBC_CONST as several BAPI’s need to run to gather
stock, forecast and boundaries.
146
File naming convention: xxxxxxbu.imp where the x values are replaced with the 6-digit BU code
IF8H: Allocation
Extract from SNP into 1 file which is afterwards demerged per source plant and into control and data
files. We extract category EH, which corresponds to Distribution Demand Confirmed towards
customer locations.
File naming convention: ppprecsh.imp where the p values are replaced by the SCORE plant code.
IF3B: Frozen Shipments
Extract from SNP into 1 file which is afterwards demerged per source plant and into control and data
files. We extract category EK and ER, which corresponds to Distribution Demand TLB-Confirmed as
well as deliveries towards customer locations.
File naming convention: pppfrzsh.imp where the p values are replaced by the SCORE plant code.
SDL: BU Static data
Extract Minimum Lot Size and Rounding values from SNP master data into 1 file which is afterwards
demerged per source plant and into control and data files.
File naming convention: xxxxxxload.imp where the x values are replaced with the 6-digit BU code
6.5.
External Demand Configuration
For the situation where products are sold in countries that are live in SNP but wherefore the forecast
is not yet in DP but elsewhere, we have a small separate DP solution called “External demand” which
has as objective to gather all demand to be planned in SNP and not forecasted in DP from all possible
sources and send it through to SNP. More details on the specificities of each part of the configuration
can be found in the previous part of the document on DP in general. Here we keep it to what is
needed to understand the external demand process.
MPOS & CVC
A separate MPOS called EXTDPOS is created where we can distinguish 5 characteristics
(/SAPAPO/MSDP_ADMIN):
-
ZMATNR: Product code. The existing navigational attributes on this characteristic in DP also exist
for this MPOS but are not really used.
ZDISTCHAN: usually 10 (Export) in the Mondelez SAP world, but might get another value
depending on the source of the data. Has no further objective and is therefore redundant.
ZEXTDEMSO: External Demand Source is a 2-digit indicator that tells us where the demand comes
from:
o WS = White Space country: Demand exists in table S700 in ECC
o IC = Demand comes from Interco tool
147
-
o SC= Demand comes from Score tool
o
ZLOCFR & ZLOCTO (Location from & to, similar to transportation lane). Forecast on ZLOCTO is
needed for the release to SNP. ZLOCFR is there for historical reasons but doesn’t really add any
value and does not show in each case the real source location but a BU code or even the location
to again.
Note: To finish the set up, we have to go to
Edit -> Assign Product/Location where we
input the characteristics we use for product
and location as they will be released to SNP.
Note: CVC are not created manually and will only be created by a process chain which runs once a
week (see below). The creation will happen for any characteristic combinations found in the files
with demand that are loaded weekly.
Planning Area
Where the Master Planning Object Structure defines the planning levels, the planning area is the
collection of key figures that will be used in forecasting and therefore the central tool for planning
per country. A planning area is always linked to one MPOS and 1 storage bucket profile, which in our
case is ZEXTD_SBP and contains weeks only and no months or periods. Reason being that we are not
interested in anything else and just want to be able to release weekly figures to SNP.
In the planning area we store the so-called time series which can be thought of as cells containing
information at the lowest CVC level, the storage bucket profile and every key figure. These time
series have to be updated according to changes in one of these three fields and are stored in
liveCache.
When managing the Planning Area in
(/SAPAPO/MSDP_ADMIN), apart from the
MPOS and storage bucket profile, we need to
indicate a base unit of measure, which is KG.
This means that all data will always be stored
in KG with 3 decimals (so virtually in grams),
also when you’re working with other units of
measure in the planning screen. As DB
Connection we standard use LCA, this refers to
the liveCache connection.
We have assigned the following list of key figures with related (disaggregation) settings.
Key figure
Description
Sema
ntic
Type
Dec
ZEXTDEM
ZEXTDEMCO
External Demand
External
Demand
Confirmed
External
Demand
Modification
001
001
Simple
Simple
3
3
001
Simple
3
ZEXTDEMMO
148
Neg
Y/N
Zero
Y/N
Fix
zero
Y/N
Past not
changea
ble
UOM
X
X
X
X
Unit of
Measure
Key figure
Description
Sema
ntic
Type
Dec
ZINITIAL
ZRELFCT
Initial Key Figure
Released Forecast
001
001
Simple
Simple
3
3
Key figure
Description
ZEXTDEM
ZEXTDEMCO
External Demand
External
Demand
Confirmed
External
Demand
Modification
Initial Key Figure
Released Forecast
Structural Disaggregation
Type
Disag Key Fig
S
P
ZEXTDEM
Time Disaggregation
Type
Disag Key Fig
P
K
ZEXTDEM
I
ZEXTDEM
I
ZEXTDEM
S
P
ZEXTDEMCO
P
K
ZEXTDEMCO
ZEXTDEMMO
ZINITIAL
ZRELFCT
Neg
Y/N
Zero
Y/N
Fix
zero
Y/N
Past not
changea
ble
UOM
X
X
Note: The time series are created in the background and updated every month. As we don’t need the
past and want a weekly refresh, we will create new time series every week for a full 2 years in the
future or in other words 104 weeks. As for DP we use planning version 001.
Job details: The time series initialization runs in chain ZDP_NON_APO_DMD_MS_SCM_WK (see
below) under program /SAPAPO/TS_PAREA_INITIALIZE with variant EXTD_PA.
Planning book
Just one planning book exists with 3 data views. Views 2.RELEASE SHORT TERM & 3.RELEASE LONG
TERM are set up in exactly the same way as the related views in the DP planning book
DP_BJ_RELEASE where the short term view just contains the next 3 weeks and the long term view
104 weeks, but with the first 3 being offset and therefore not visible. This is done to make the
distinction between the release on the short term and the long term.
The remaining view 1.EXTERNAL DEMAND has a rather limited functionality:
-
Business functionality
Available characteristics: all characteristics and attributes of the MPOS
Layout
Key figure
External Demand
External Demand Modification
External Demand Confirmation
Demand To Be Released
-
Purpose
Data from files is loaded here
Historically used to make manual modifications
Contains external demand copy. Historically it
was overwritten with the value in Modification
if that was bigger than 0
Snapshot of what will be released
Open for input
No
No
No
No
Just one collective macro is currently used but not directly in the planning book. It is used
in the weekly load job. It checks at location level if the External demand key figure is
initial (i.e. no demand has been loaded). It then performs a drilldown to product. If
demand is not 0 the new demand is copied to the confirmed and released key figure. If it
is, the existing info in those key figures is kept. This process runs only for Interco demand
149
Unit of
Measure
where in the past files were often received late and forecast got wiped out. This
mechanism should avoid this from happening and at least reuse last week’s forecast.
Inbound Data Flow
A part of the demand needed for planning in SNP is not forecasted in DP but comes from external
sources, mostly countries that are not (yet) using DP. However the gathering of these data is not a DP
responsibility, DP owns the process of transferring the demand to SNP once the data is presented.
The sources of these demands are multiple. It can come from the Intercotool (Biscuits specific),
Score, Berth and S700 in ECC. In the last case the process is also referred to as White Space forecast.
Furthermore we connect with the APO box in the Mondelez region Asia Pacific (AP) to get the
demand of what Europe produces for them.
The process runs every Monday, but for France there is a specific process running as well on Tuesday
(see below on process chains). An extra flat file is loaded then. The flat files get uploaded to specific
folders where Info Packages will read the information from:
-
Interco: /var/SEP/STAR/in/FCT_IC_FCT
Score: /var/SEP/STAR/in/FCT_SCORE_IF1
Bertha: /var/SEP/STAR/in/FCT_BERTHA
FR Semi-finished goods: /var/SER/STAR/in/SFG_FR_FRbu.imp
The first three flat files are not directly sent to APO but created from several files that are sent to
APO via FTP. This is done in Control-M job EU_AP-APO_SEUXAP0060. In this job we use to custom
programs to merge the files we have received:
-
First there is ZOTC_APO_MERGE_DEMERGE_U to merge the files per source we get. Usually we get 1
file per BU. For example, we receive 4 Interco files that are merged into 1 big Interco file.
Secondly ZOTC_APO_IF_IN_OUT_U is used. Here we will now split the Interco file in a Forecast, Stock
and master Data file as we get from the BU a file that contains all information in 1 file.
Last step is trigger of event ZEXTDEMMON which will launch process chain
ZDP_NON_APO_DMD_MS_SCM_WK.
The flat files are loaded through Data Source ZEXTD_TOTDEM_UPLOAD which indicates what the
format of the file should look like:
-
-
Version (always 001)
Distribution Channel
External Demand Source (IC for Interco, SC for Score, WS for White Spaces & XL for Bertha)
Product Code
Location From (if available this is the plant code where the product is sourced from, but it has no
further use and is therefore not critical. For the white space countries it is populated with the BU code
for example)
Location To (used in release to SNP, location on which the demand is placed)
Week number
Unit
Demand volume
All non-SAP sources provide us with flat files in
a common format which are uploaded
through a flat file Data Source to an Info Cube.
As S700 is a table in ECC we can work without
150
flat files and directly interface the table with
APO BW to the same Info Cube. For AP we
have built a Data Source in their system on an
Info Cube.
For the S700 data, the process is slightly different and more complex. A Data Source was set up in
ECC in transaction RSO2 for Data View ZAPO_S700 which is a join table that was set up specifically
for this topic in SE11. S700 provides us the product, week and quantity but not the location on which
the demand is to be released. This location we get from table ZPP_BUNIT_SITEM which is linked to
S700 via another table: ZPP_BUNIT_SRC. In this last table we find the validity dates as well (see
below). Also important is the QUOTA field which comes into play when more than one Location is
matched to the S700 entries, we then use this field in the transformations in APO to split the forecast
accordingly.
On top of that we also add table
ZPP_BUNIT_SKU to add the source field to the
table. This source field is Product master data
and determines with the letter A that a
Product is sourced from APO, or in other
words planned in APO. We use this in the
relevant Info Package to only source these
materials.
151
On the APO side, because of the possible location split, an Info Object ZWSSPLIT was created and is
updated before every volume upload. It is formed by concatenating the Business Unit and the
Product code and stores in attribute ZWSSPLITV the total quota volumes found for these BU-Product
combinations. As in the extract of S700 we possibly get several entries for the same BU-ProductLocation combinations because there might be old, current and or future validity dates, we need to
make sure we filter out the entries that are not valid as otherwise we would artificially increase the
quotas. This we do in the transformation by comparing these dates to the system dates and skipping
records that are not currently valid. This in theory could be applied in any of the rules to target fields;
the target field itself does not matter. As well, it just needs to be applied in 1 rule and not for all
target fields.
When uploading the demand volumes through Data Source ZAPO_S700 to Info Cube we determine
the final volume per location on a specific BU-Product combination by comparing the location
specific quota to the BU-Product total quota volume. To do this, three transformations are set up
with two intermediate Info Sources: the first one multiplies the location specific quota with the
demand volume from S700 for every BU-Product-Location combination; the second one retrieves the
attribute we just discussed in the previous paragraph (total quota volume on a BU-Product); the third
one divides the result of the multiplication in the first step by the total from the attribute. Like this
we actually do the same as applying the quotas as percentages. As above, as well here we apply the
same logic in the first transformation to determine entries with valid validity dates.
For both the flat file data and S700 volumes, once the data is collected in the Info Cube, it is
uploaded to a separate planning area in DP: EXTD_PA, related to the MPOS EXTDPOS. This is just a
staging area, nothing specific is done to the data in this planning area, the volumes are just
considered in the release to SNP. Therefore just a very limited amount of key figures and
characteristics is available. As shown in the process chain, some more steps are executed to prepare
the release to SNP, but no further functionality exists in this process chain.
Process Chain
The
process
chain
ZDP_NON_APO_DMD_MS_SCM_WK starts as
always with a starter which is triggered in this
case by event ZEXTDEMMON which is
launched after all files are received. This
happens every Monday around 14:15 CET.
Next step is to delete any remaining data from
the Data Source and Info Cube and delete the
indexes on the cube.
Next step is to load the different Info Packages. There’s one for S700, one for AP, three for the
different flat file sources and three other ones that are dummy packages referring to empty files.
They were put in place in case in the future any additional files need to be loaded.
Once the files are uploaded one DTP updates the flat files to the cube while another one takes care
of the update of Info Object ZWSSPLIT to have the latest information available regarding the Location
split quota. Once this is done and the Info Object master data have been activated, a DTP loads the
S700 volumes to the cube.
After the data are all in the Info Cube, we can regenerate its indexes and the BW part of the process
chain is done. Before loading the data we first run the update of a TVAR variable which is used in the
remainder of the steps and changes every week. Additionally we update the time series of the
External Demand planning area with that same variant that contains 2 years of data starting with the
current week. Next step is the generation of any new CVC that are available in the Info Cube and
subsequently the update of time series on the new CVC. No filter is applied, all future time horizon is
used.
In DP we can then delete with a TSCOPY for the future horizon any external demand that was loaded
previously to make sure we refresh the data completely, which is done with the following TSCUBE for
the same horizon. The next TSCOPY automatically copies the external demand to the release key
figure for demand from Score, Bertha, AP demand and White Spaces.
153
For Interco demand we don’t use this TSCOPY, but a macro which checks for every Location From
and Location To if any external demand was uploaded with the TSCUBE. If nothing is found, the data
from the previous week are kept to be released, otherwise the demand is copied to the release key
figure at CVC level. This process is put in place to avoid wrong or no forecast to be released for
locations that were too late with making updates. This macro is followed by triggering event
ZDP_MON_1 which kicks of chain ZDP_REL_EXT_FCT_SCM_WKY: the release to SNP.
Local Requirements
There is a country specific process for France where external demand for semi-finished goods is
gathered and released on Tuesday. This is done with process chain ZDP_FR_SFG_MS_SCM_WK which
has a very similar structure to the general one described here. The chain is triggered with event
ZEXTDEMTUE after the flat file has arrived. Only big difference with the regular chain is that the
release steps for SNP are directly integrated into this chain. This release is done with a specific
background job selection RELEASE FR SFG and by overwriting any forecast that already exists in SNP
on the respective product-locations. This is different from the regular release process where new
orders are generated, without overwriting. This is done to avoid missing out forecast on productlocations that might be shared between the DP planning area and the one for external demand. In
this case the release also includes a full deletion of all forecast orders first.
6.6.
PP GI Chain
The PP GI Chain is used by France to extract all delivery items that have already been goods issued
and set for delivery next week. These quantities are then entered into the Demand Planning book
and reduce the forecast for the next week. This requirement is due to the requirement date of the
sales orders not matching the volumes that have been placed for the forecast.
This extract will take all delivery documents for France and loads them into an infocube. This
infocube is mapped to products in the DP_PA populating the samples key figure. The basic
characteristics of this chain are:
•
•
•
•
•
Runs every Sunday at 11 AM
Transformations are key to data population
Filter on DP population using Reference Group field of PRO
Datasource is 2LIS_12_VCITM which is also used by BI
Name chain is PP_GI_UPLOAD_SUNDAY
The transformation of this load is the key to populating the relevant data. In the transformation from
the data source to the infosource we have a formula that determines the quantities that need to be
uploaded into the infocube. The formula is the following:
6.7.
Outbound to BI
BI reporting uses SNP as source to get the planned data. We will briefly mention how this works, but
general responsibility of this logic is with the BI team. BI has built a few extract data sources linked to
the planning areas. For now they are linked to the old, non-GM* planning areas. They should ideally
be recreated with the new GM* planning areas once all live countries moved to use these. To be able
to extract from SNP planning areas, these extracts need to be linked to one of the aggregates defined
in the planning area. Therefore two data sources were set up, one for the MALO and one for the
MALA aggregate, respectively 9AZ9ASNP02KG_BI_MALO & 9AZ9ASNP02KG_BI_MALA. As indicated
by their names, the extraction of data is done in KG as this is as well the base unit of measure in the
BI reports in general.
These data sources are linked to several ODS which are updated with specific frequency. They can be
read directly in the BI system for further processing and renewal of data in the reports. The flow of
data from Data Source to DSO via transformations, info Sources and DTP can be found in RSA1. The
setup of the Data Source on the planning area is handled in /SAPAPO/SDP_EXTR where you can
select the fields to be transferred. After every change that is made here, the Data Source needs to be
replicated, which technically means its structure is updated in the BI part of APO (RSA1). Afterwards
it needs to be reactivated there as well, together with its dependent objects. Usually this would be
handled by the BI team.
As shown in the screenshot, there are 5 different DSO. These are populated via process chains that
run with specific frequencies and therefore source different reports. The related process chains to
these loads are all managed by the BI team (RSPC). They are logically grouped in Meta Chains or
parent chains:
155
-
-
Chain ZOC_ZZ_PCM010 is triggered every Tuesday morning at the end of the batch
schedule kicked off Monday evening by job EU_AP-APO_SEUXAP0109 which triggers
event BI_IDO. This event is set in the scheduled chain as start event. This chain is a
parent chain which contains several steps. It starts with initializing time series for
versions 000 and LTD and running a consistency check for the time series on the same
versions. Then it runs several other chains that will update the DSO:
o ZOC_ZZ_PCB012: First of all a set of 8 macros is run. These are the same as for
chain ZOC_ZZ_PCB015 as mentioned below and are explained in more detail in
the next section. This provides a full extract of the MALO aggregate for version
000 and updates DSO ZOCZZO12.
o ZOC_ZZ_PCB016: This provides a full extract of the MALO aggregate for version
LTD and updates DSO ZOCZZO16.
o ZOC_ZZ_PCB011: This provides a full extract of the MALA aggregate for version
000 and updates DSO ZOCZZO11.
o ZOC_ZZ_PCB014: This provides a full extract of the MALA aggregate for version
LTD and updates DSO ZOCZZO14.
 The main goal of this chain is to supply all available planning data after
the heuristics has run to BI. Version 000 will contain the new calculated
data, whereas LTD will still contain the data from last week and is
therefore of little importance.
Chain ZOC_ZZ_PCM012 is triggered every Thursday, Friday and Saturday morning at the
end of the batch schedule the previous evenings as first step of job EU_APAPO_SEUXAP0031 which runs on all three nights. This chain kicks of chain
ZOC_ZZ_PCM011 which again does an initialization and consistency checks and then
starts three more chains:
o ZOC_ZZ_PCB015: First of all a macro runs with 8 variants of report
/SAPAPO/TS_BATCH_RUN (variants ZBW_*) to combine the deployment results
in version 000 and LTD to get to a stock projection for the full horizon into
version 000. The next section explains the logic in a bit more detail. Then a full
extract of the MALO aggregate for version 000 is taken which updates DSO
ZOCZZO15.
o ZOC_ZZ_PCB011: This provides a full extract of the MALA aggregate for version
000 and updates DSO ZOCZZO11.
o ZOC_ZZ_PCB024: This provides a full extract of the MALO aggregate for version
LTD and updates DSO ZOCZZO16.
 The main goal of this chain is to supply all available planning data after
deployment has run to BI. Version 000 in APO will contain the most
recent live data but not the long term deployment detail, which is in
LTD only. However, by the specific stock projection calculation in the
macros mentioned here and explained below, we do have all data
available in 000 and specifically extract it to BI.
Stock projection calculation
As highlighted in the different chains, we run some macros to calculate the stock projection by
combining data from planning versions 000 and LTD. As mentioned already we use program
/SAPAPO/TS_BATCH_RUN with variants ZBW1 until ZBW8 which reference macro jobs ZBWSTOCK1
until ZBWSTOCK8 in /SAPAPO/MC8E. These eight jobs run on eight different selections:
156
-
-
ZBWSTOCK1: Locations BE*, NL* / SNP Planners B*, C*, G*, excluding B*O, C*O, G*O
ZBWSTOCK2: Locations FR*, excluding FR91, FR92 / SNP Planners B*, C*, G*, excluding
B*O, C*O, G*O
ZBWSTOCK3: Locations FR91, FR92 / SNP Planners B*, C*, G*, excluding B*O, C*O, G*O
ZBWSTOCK4: Locations ES* / SNP Planners B*, C*, G*, excluding B*O, C*O, G*O
ZBWSTOCK5: Locations IT* / SNP Planners B*, C*, G*, excluding B*O, C*O, G*O
ZBWSTOCK6: Locations PT* / SNP Planners B*, C*, G*, excluding B*O, C*O, G*O
9: Locations GB*, IE* / SNP Planners B*, C*, G*, excluding B*O, C*O, G*O
ZBWSTOCK8: Locations CU*, VE*, PL* / SNP Planners B*, C*, G*, excluding B*O, C*O,
G*O
All these macro jobs are linked to activity ZBW_PROJ (/SAPAPO/MC8T). Both macro job and activity
are set up in planning book SP_ZBI_LTD, in data view SP_ZBI_LTD of planning area Z9ASNP02KG_BI,
which as mentioned should be replaced by a new GM* view once all countries have abandoned the
SP* books. This would need to be aligned with the BI team as part of their setup will be affected.
The activity runs all the start, default and exit macros, where the start and default macro simply
prepare the content of the key figures as they do in any other view, this was explained in Macros for
Product Location views (/SAPAPO/ADVM). There is an important difference however in the
calculation of the total rows. Via macro “I1 - Copy distr confirmed MIX” we prepare some planning
book key figures. This macro only exists specifically in this data view. Its goal is to combine detailed
information from version 000 and version LTD. Therefore it updates the key figures in the screenshot
for the short term and long term separately, depending on the version:
To be able to work with 2 versions at the same time, the key figures in the data view need to be set
up in a specific way (/SAPAPO/SDP8B). We leave the key figures for version 000 as they are. As we
will by default load planning version into the data view, they will get loaded accordingly. But for
planning version LTD, we duplicate the standard key figure and in the Key Figure Attributes reference
specifically to LTD. Now we can show both key figure separately in the data view and use them for
further calculations.
157
These planning book key figures are then used for the calculation of the total rows in macro “D2 Demand - Supply - Stock – NEW”, where in the regular views we just use the usual detailed
information instead. Like this we get a view with totals that are a mixture of version 000 and LTD
which can then be used for the Stock projection.
Last and exit macro “E1 - Stock projected calculation for BI” contains a fairly simple logic where for all
future buckets we check if the projected opening stock is 0 or not. If so, we change the value in
“Stock projected for BI reporting” to contain the value of “Stock on Hand (projected)”. Otherwise we
copy the value from the opening stock directly. Like this we will see negative and positive volumes in
the BI time series key figure that will be extracted.
Note: The biscuits job schedule currently has an issue. A short term heuristics and deployment run is scheduled
in version 000 after the long term deployment is run in LTD. This runs partially at the same time as the extract
to BI takes place, which might cause inconsistencies as data is deleted and recalculated.
6.8.
Outbound to ECC table S716
Every Monday morning at 6:00 CET process chain ZSP_TOTAL_DEMAND_S716 runs which extracts
total demand volumes at product location level. The chain is triggered via event BEU_TOTDEM which
is set by job EU_AP-APO_SEUXAP0033. This extraction is done via data source 9ATOTDEM_S716,
which was specifically set up for this process, for planning version 000 and for the first 26 weeks, but
ignoring the current week.
Note: Once all countries have moved to the GM* planning books, ideally this Data Source should be moved to
planning area Z9ASNP04KG_GM, which is done in /SAPAPO/SDP_EXTR.
The result of this extraction is updated to cube ZSPEUCTDE. In the transformation between data
source and cube, we map key figures Forecast & Sales Orders from the source to Total Demand on
the target. We do the same for Distribution Demand (MRP) to Dependent Demand.
Once the cube is updated and indexed we proceed with creating the flat files which will be on the
shared server between APO and ECC and loaded afterwards to S716, where they are uploaded with
program ZPP_BU_PLANNING_LOAD. The file creation from a cube is done via a so-called APD process
in RSANWB where we have set up two variants:
ZSP_S716_TOTAL_DEMAND: This file is still created however it is not currently uploaded any longer
to S716. It was necessary for reporting in BI which sourced from S716, but nowadays they source
directly from APO. So, this process might actually be taken out of the chain. First thing we do is filter
on locations BE*, NL*, FR*, IT* & PT* and SNP planners for biscuits, being B* and excluding B*O and
158
B*Z. Once these filters are applied we build the file columns to get to the specific format required for
the load to S716. The goal is to obtain the Total Demand by summing Forecast, Sales Orders and
Dependent Demand and show this on product, location and week level in the file, which is stored on
path /var/SEP/STAR/out/ZSP_S716_TOTAL_DEMAND. The other operations are needed to get the file
structure right as we need some hard-coded values.
ZSP_NORA S716_TOTAL_DEMAND: This variant is needed for the Spanish depot replenishment
process for Gum & Candy which uses S716. This process will be abandoned when the remainder of
Spain is put on to SNP at the end of 2013. In this case the filter is done only for locations ES* and
further on SNP planners for Gum & candy C*, G* excluding C*O, C*Z, G*O, G*Z. The remainder of
operations
is
the
same.
The
file
the
data
is
written
to
is
/var/SEP/STAR/out/ZSP_NORA_S716_TOTAL_DEMAND.
159
7. Master Data
This chapter will go through the most important master data fields and settings we need to cover the
Mondelez business processes for both SP and PP as a lot of the data is shared and used in several
processes.
7.1.
Model & Planning versions
In SNP to be able to work at all, a model needs to be set up. Master data will be assigned to the
model; therefore the model is a collection or a subset of all master data. The live or active model is
always 000, but in theory we could set up other models with only subsets of the full master data for
example for simulation purposes. This is currently not the case at Mondelez.
One model can be linked to several planning versions, but vice versa a planning version can only be
assigned to one model. Here as well 000 is the live version that is connected to ECC via the CIF. All
live orders in liveCache are therefore stored in version 000. We do use other versions for different
purposes.
In SP this is just version LTD which is freshly created as a copy from 000 each Thursday, Friday and
Saturday as mentioned in the job schedule. The reason for having LTD is to avoid doing deployment
for the full horizon in version 000. This would mess up the view on the production plant as they
would no longer see the required net demands. We only do short term deployment in 000 and then
copy the full version to LTD where we perform long term deployment. This long term deployment
will give the BU a view on the stock projection on the mid and long term. To be able to do this, we
also need different deployment rules which are taken care of by the same jobs where master data
specific to version LTD is changed.
For the Gold Model planning areas we will also have the versions DAILY and WEEKLY active in all of
the different planning books. These versions are copies that allow the users to plan for “What-if”
scenarios, test functionality without impacting the live version and also are very useful for data
reconciliation.
The DAILY copy is taken every morning before the planners come in to ensure the most accurate data
is available in this version. The WEEKLY version is triggered by the event BI_IDO which is sent once
the Monday Night long term heuristics jobs finish.
All of the variants of the version copies are limited to only active SNP planners and exclude any
obsolete SNP planners:
160
As we do use Time Series key figures as well in the SNP planning areas, they need to be initialized
with the relevant planning versions, as discussed in the chapter on planning areas.
Model and versions can be found in /SAPAPO/MVM.
7.2.
Locations
Although they are different objects in ECC, in APO all types of nodes in a network are setup in a
similar way and are called locations. So factories, warehouses, customers and so on are all locations.
As soon as a new node is setup in ECC, a ticket should be created to extend an existing or create a
new integration model to include the new location. Once it is added, the location will appear in APO
the next day, after the batch for master data integration has run. Locations are maintained in
/SAPAPO/LOC3 and can be defined as a logical or physical place where quantities of products and/or
resources are managed.
At the creation, a location type is assigned to
the Location code which will identify whether
we are dealing with a warehouse, plant,
customer,… We generally only work with
types 1001, 1002, 1010 & 1011.
The most important fields we use are:
-
-
-
-
Tab General:
o Time Zone: Important as it will be different depending on where the location is.
Calendars set up on this location have to be setup on the same time zone.
o Assigned Plant & Assigned Vendor: For subcontracting locations in the co-packing or
co-manufacturing process that are set up manually we need to assign the related
ECC Vendor and Plant. For example APO subcontracting location VECCES21ES58
should have ES58 as plant and VECCES21 as vendor. This needs to be maintained
before ciffing the PIR and PDS.
o Business Unit: For SCORE CU* customers, it needs to be filled with the mapped
Business Unit code.
o Score Plant code: Only for SCORE locations to have the mapped code.
Tab Calendar:
o Shipping & Receiving Calendar: These define when goods can be shipped or
received. Weekend and bank holidays are modelled here.
Tab SNP:
o Stock Cat. Group, ATD Receipt, ATD Issue: Here we define the category groups that
should be read for the respective key figures. The values should respectively be ZST,
ATR & ATI.
Tab VMI Cust. (this tab only appears for Customers: location type 1010):
o Sold-To Party: The sold-to party code needs to be defined here
Tab Additional:
o Forecast (HH:MM:SS): Set to 12:00:00 to ensure availability time when forecast is
released before 12:00:00
161
Important to know as well is that during the transfer via the CIF, vendor numbers get prefix “VE” and
customer numbers prefix “CU” via a user Exit.
Note: The technical table name where the location master data can be found is /SAPAPO/LOC. We need as well
table /SAPAPO/LOCMAP where we find the link between the location code and the internal APO ID for this
code. On the ECC side table T001W is the principal table with information on the locations.
Note: On the ECC side, another setting that is important is the way the location type is determined. This is done
via the node type which can be found in SPRO -> Production -> Distribution Resource Planning (DRP) -> Basic
Settings -> Maintain assignment of node type – plant. The result of this can be found in the same table T001W.
Note: For location type 1010 (Customers), the corresponding customers need to be set up in table V_CIFVMISD
on ECC side needs to be maintained. Like this VMI Sales Orders generated in APO are updated correctly to ECC.
Note: As well for customers that are not set up in ECC, table /SAPAPO/VMIEDI on APO side needs to be
maintained. This table allows keeping sales orders in the system, even after they are goods issued. If not, they
would disappear and the related forecasted volume would be back to its original value, requesting it again from
the MU. We need to do this as after the goods issue, the stock is not automatically reduced in APO for these
type of customers. We receive their stocks from SCORE only once a week.
Note: In /SAPAPO/LOCALI we store the link between a source location in APO and the related vendor in ECC in
case we want to replace the vendor from the PIR with a dummy one in APO. Related purchasing documents
would follow the same mapping. It is now mainly used at Cadbury UK&IE in order to be able to run a
deployment in APO from a vendor location based on its allocation. In standard since 3 potential DCs can
receive goods from this supplier we would need to have our Supplier splitting its allocation which is not great
knowing we have all the latest demand in our system as well as the need to create Purchase requisitions
manually. Similarly we maintain ZAPOVENDOR_MD where we maintain the link for a product between the
source dummy vendor and the target DC.
Note: It is possible to track who made the last changes to a product code and what these changes were by
activating this option in customizing via SPRO->Advanced Planning and Optimization->Master Data->Location->
Activate Change Documents
7.3.
Holiday & Factory Calendar
Holiday calendars contain a set of days that are specified as holidays. Factory calendars are calendars
specifying the working days for a specific factory, location or country and can have a Holiday
calendar assigned to it. These calendars are used in a so-called time streams (see next topic) which is
then used to create the time or planning buckets for the planning data (SPRO -> Maintain calendar).
A holiday calendar contains all holidays for
one country. These holidays are different for
every country and should be discussed on
beforehand. Usually the holidays exist already
in the system, but if this is not the case, it’s
possible to create a new holiday in the same
transaction.
162
The factory calendar specifies which days are to be considered as working days. It also contains the
holiday calendar to specify the bank holidays.
Note: It’s technically not possible to transport
just one calendar from the development
system further up to the testing or production
system, all calendars will always be
transported. This should be considered when
creating new calendars as transporting
everything may cause problems for other
countries, areas or modules. It is often
recommendable to create the calendar in
every single system. For production, this
would mean the Basis team has to open up
the system.
7.4.
Time Stream
When creating a time stream all planning days are being defined. For SNP we usually define these
time streams per country and use them in the fields shipping and receiving calendar on the location
master in APO.
In /SAPAPO/CALENDAR we always set up time streams potentially “with gaps” and define for how
many years in the past and future we need the calendar to be set up. The amount of years has a
direct impact on the storage required for liveCache, wherefore we don’t necessarily want to put a
horizon that is too long. Important is the time zone: it should always match the time zone of the
location the time stream will be assigned to. The time stream potentially looks at a factory calendar
and depending on the definition of its working days and bank holidays it limits the generation of
“open” days for the whole horizon of the time stream.
163
On the second tab is specified we work with a 5-day working week, specified in the Calculation Rule.
Tab Periods then actually shows all planning days as they exist in the time stream. In this last tab it is
important to set the end time of a day to 23:59:59 and not to 24:00:00 as this might generate issues
with overlapping days.
7.5.
Products
If the location is managed on ECC side, the product will be created on the right location directly by
the market. Once open and passed through the CIF, default master data settings will be updated
automatically by the PRODUCT_DEFAULT_VALUE. The remainder will need to be updated manually
in /SAPAPO/MAT1 or via a mass change job. Product locations that do not exist on the ECC side need
to be created manually in APO directly. A transaction which can help with these two situations is
MASSD or report MASSBACK, where mass changes are allowed.
The technical table name where the product code used by the users is mapped to the APO ID for that
product code is /SAPAPO/MATMAP. Here we find as well the link between the location code and the
internal APO ID for this code. Table /SAPAPO/MATKEY contains the product specific master data and
/SAPAPO/MATLOC the product location specific master data. As working with the APO ID for a
product is not straight forward, SAP created a view that allows working with the regular product
code to see product location master data: /SAPAPO/V_MATLOC.
164
On ECC side
On the ECC side the most relevant information is stored in tables MARA (product info) and MARC
(product location details) and can be created, changed or displayed via transactions
MM01/MM02/MM03 where tabs Basic, procurement & the MRP ones are the most important ones
for APO. For mass analysis ZMM_MAT_MASTER might be useful, especially variant
MD_PRE_CIF_CHK which will show all APO relevant fields.
There are a few settings on ECC side that need to be set for APO to work properly. These are
gathered in this table.
Field Descr.
Techn. Name
Tab in MM03
APO Supply Planning
Availability Check
MARC-MTVFP
MRP 3
Needs to be maintained.
Value to be determined by SD
Plant Spec. Mat. Status
MARC-MMSTA
MRP 1
Only materials in status 02, 03 and 07 are transferred to
APO. This filter is used in the integration models.
MRP-Type
MARC-DISMM
MRP 1
If planned in APO the MRP-Type for the material-plant
combination should be set to X0. This filter is used in the
integration models.
Planning Time Fence
MARC-FXHOR
MRP 1
Value „4“ for BU Plants
Lot Size
MARC-DISLS
MRP 1
Value „EX“ in BU Plants
Minimum Lot Size
MARC-BSTMI
MRP 1
Recommendation to set to the weight of 1 PAL in BU
Plants
Rounding Value
MARC-BSTRF
MRP 1
Recommendation to set to the weight of 1 PAL in BU
Plants
Procurement Type
MARC-BESKZ
MRP 2
Value „F“ in BU Plants
Period Indicator
MARC-PERKZ
MRP 3
Value „P“ in BU Plants
Fiscal Year Variant
MARC-PERIV
MRP 3
Value „A1“ in BU Plants
Strategy Group
MARC-STRGR
MRP 3
Value „Z4“ in APO-BU Plants
(triggers Forecast consumption by Sales Orders in APO)
Consumption Mode
MARC-VRMOD
MRP 3
Value „2“ in APO-BU Plants
Bwd Consumption per
MARC-VINT1
MRP 3
Value „5“ in APO-BU Plants
Fwd Consumption per
MARC-VINT2
MRP 3
Value „4“ in APO-BU Plants
Mixed MRP
MARC-MISKZ
MRP 3
Value [blank] in APO-BU Plants
Product Default Value
The Product Default Value is dummy product PRODUCT_DEFAULT_VALUE which is created manually
for every location that is set up in APO. This creation should be done before the product location
specific data is sent via the CIF to APO as in the CIF we use a bADI that will find
165
PRODUCT_DEFAULT_VALUE for the considered location and copy its values for specific master data
fields to the real product codes that are being transferred. The fields being checked or update are
gathered in the following table. In the Update method we have several options:
-
Replace: The value from ECC is overwritten by the value in PRODUCT_DEFAULT_VALUE
Check: The value from ECC is only overwritten if it is blank in ECC
Set Blank: The value from ECC is deleted, so a blank remains.
Structure
Field
Field Descriptions
Update Method
/SAPAPO/CIF_MATLOC
LASTL
Last Lot Exact
Replace
/SAPAPO/CIF_MATLOC
PRODF
Single-Character Flag
Replace
/SAPAPO/CIF_MATLOC
PHEXT
Extended SNP Production Horizon (in Days)
Replace
/SAPAPO/CIF_MATLOC
MSDP_SP_METHOD
Safety Stock Method
Check
/SAPAPO/CIF_MATLOC
PULLH
Pull Deployment Horizon
Replace
/SAPAPO/CIF_MATLOC
SHIPH
SNP Stock Transfer Horizon
Replace
/SAPAPO/CIF_MATLOC
PKZSHIPH
Period Type for Stock Transfer Horizon
Replace
/SAPAPO/CIF_MATLOC
PRODH
SNP Production Horizon
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
PKZPRODH
Period Type for SNP Production Horizon
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
PUSHH
Push Deployment Horizon
Replace
/SAPAPO/CIF_MATLOC
DPLFS
Fair Share Rule
Replace
/SAPAPO/CIF_MATLOC
DPLPU
Indicator: Push Distribution
Replace
/SAPAPO/CIF_MATLOC
ATDDM
ATD Issue
Replace
/SAPAPO/CIF_MATLOC
ATDSP
ATD Receipt
Replace
/SAPAPO/CIF_MATLOC
TARGET_METHOD
Target Stock Level Method
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
REQ_COVER_TYPE
Period Factor for Calc. Avail. Date / Time
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
REQ_COVER_FLAG
Use Period Factor
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
RRP_TYPE
PP Planning Procedure
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
HEUR_ID
Product Heuristic
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
WHATBOM
Plan Explosion
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
CONVH
PP/DS Horizon
Check for Loc.Type 1001
Replace for Loc. Type 1002
/SAPAPO/CIF_MATLOC
CONHAP
GR Handlg. Cap. Cons
Replace
/SAPAPO/CIF_MATLOC
HUNIT
Uom GR Handlg. Cap. Cons.
Replace
/SAPAPO/CIF_MATLOC
CONHAP_OUT
GI Handlg. Cap. Cons
Replace
/SAPAPO/CIF_MATLOC
HUNIT_OUT
Uom GI Handlg. Cap. Cons.
Replace
/SAPAPO/CIF_MATLOC
PLANNER_SNP
SNP-Planner
Check
/SAPAPO/CIF_MATLOC
CONINP
Storage Cons. per BUn
Replace
/SAPAPO/CIF_MATLOC
IUNIT
UoM Storage Cons per Bun
Replace
/SAPAPO/CIF_MATLOC
STRA1
Requirement Strategy
Replace
/SAPAPO/CIF_MATLOC
FRTME
Display Production Unit
Replace
166
/SAPAPO/CIF_MATLOC
SVTTY
Safety Days' Supply
Set Blank
/SAPAPO/CIF_MATLOC
PLIFZ
Planned Delivery Time in Days
Set Blank
/SAPAPO/CIF_MATLOC
ZZSTOCKCALC
EEW: Material Location Extended Stock
Calculation
Replace
Note: For it to work properly, this product location should be assigned to model 000.
Note: The default values can be set by using MASSD variant PRD_DEF_SP.
Most important fields & Manual update of master data
Going tab by tab, we can identify the most important fields.
-
Tab Administration:
o SNP Planner: One of the fundamental master data settings in SP. It is set at product
location level and used as grouping criteria for selection management interactively
and in batch. It follows a strict naming convention and consists of a combination of
three digits where the first digits describes the product category, the second the
country where the product originates from and the third the type of product:
Category
B
C
G
D
K
Description
Biscuits
Chocolate
Gum & Candy
Dairy
Coffee
Country
F
I
B
S
P
G
D
T
Description
France
Italy
Belgium/Netherlands
Spain
Poland
UK & Ireland
Germany
Portugal
Product
F
S
C
X
I
O
Z
V
Y
E
M
Description
Finished goods
Semi-Finished goods
Co-Packing
Components
Import
Obsolete
Default Planner
Co-Manufacturing
Import from SCORE
Exceptions
Multi-Pack
(Packed
Mondelez MU)
at
Example for Co-manufacturing:
1) PL06 sends Co-manufacturing component to vendor VECCPL21 => Component on
PL06 has planner GPS/GPF, on VECCPL21 it will be GPX
2) The vendor sends the end product it manufactures back to PL06 =>End product
will have planner GPC on both locations
3) This finished good is sent to warehouse BE96 => finished good has planned GPF
on BE96
Example for Co-packing:
4) PL06 sends component to BE96 => The product (which is a finished good) gets
planner GPF on PL06 as well as on BE96
5) From BE96 the component is sent to BE86 where the Co-packing activity will take
place => As the Co-packing activities for BE86 are managed in ECC, we don’t need
to maintain the relevant SNP planner in APO
6) The final product is then send back from BE86 to BE96 => This final product will
be assigned planner GPC on BE96.
167
-
-
-
-
Tab Properties:
o Stacking Factor: This field needs to be maintained manually and indicates whether
pallets can be put on top of each other in a transport load or not. Usually we work
with value 1, where no other pallets can be placed on top of another, and value 2,
where 1 more pallet can be stacked on top. It is therefore important for the TLB
process.
o Sourcing Plant for SCORE: Only for products that are sourced from SCORE locations
to have the mapped code.
o Colour – This free-definable attribute is used in PPDS in combination with both the
ZSAP001 sequencing heuristic as well as for colour coding in the detailed scheduling
board.
o Min Days Coverage – defines the Global Minimum boundary that is used in the
Cross-Plant alerts, LOCAGG data views as well as the Global Stock data view
o Max Days Coverage – defines the Global Maximum boundary that is used in the
Cross-Plant alerts, LOCAGG data views as well as the Global Stock data view.
o Line – This field is used for sorting products in both the SNP planning books as well as
the Product Planning Table
o Family – This extra field can be used for both selection criteria in the SNP planning
books when loading an APO Location Product or in the Global Stock Planning Book. It
is also used for sorting purposes in both the SNP Planning books as well as the
Product Planning Table
o Product Type – This field is used for sorting products in both the SNP planning books
as well as the Product Planning Table.
o Extra Sort Attribute – This field is used for sorting products in both the SNP planning
books as well as the Product Planning Table.
o Cross Plant Planner – This extra field can be used for both selection criteria in the
SNP planning books when loading an APO Location Product or in the Global Stock
Planning Book. It is also used in BI reports to select product across the network. The
naming convention should be the (PLANT)-(MRP Controller/Production Planner)
Tab Units of Measure: Is being transferred via the CIF and shows the conversion factors for
the different units of measure that were set up in ECC. All these measures can be used in the
planning books. To be able to work in SP ideally unit PAL is maintained, as well as KG and
CSE.
Tab SNP 1:
o Penalty Costs: Defines the costs used by the SNP Optimizer either at the Global
(upper half of screen) or the Local (Lower half of screen) level. These costs are
specific to the demand type. The Gold Model design does not make a distinction
between the different demand types, therefore all costs should be equal.
Tab SNP 2:
o Forecast Horizon: Defines a number of days for which forecast volumes are ignored.
Not really used at the moment. It is maintained directly in APO.
o Pull Deployment Horizon: Specifies number of days over which the system considers
requirements from receiving locations when calculating deployment. The horizon is
used at any location where Demand exists and starts from today's date. It is set to
168
o
o
o
o
o
o
o
o
o
o
999 days to ensure that all demands throughout the planning horizon are considered
as relevant. It is maintained directly in APO and populated during the CIF transfer via
the PRODUC_DEFAULT_VALUE.
SNP Production Horizon: Within this horizon SNP will not plan any production
orders, but moves production to the first day after this horizon. The heuristics would
delete all non-fixed planned orders within this horizon as well as outside the horizon.
Extended SNP Production Horizon: Similar to the previous one, with as difference
that within this extension orders can be planned manually, which is not the case for
the SNP Production Horizon. The heuristics however will not plan orders within this
extended horizon however.
SNP Stock Transfer Horizon: With this horizon the heuristics will not plan any stock
transfers but move them all to the first day after the horizon. In the case where the
horizon is set on a BU and we deploy from an MU, the horizon is ignored however.
Push Deployment Horizon: Is only relevant when push distribution strategy is set to
“push” or “push/pull”. During the deployment calculation, the system tries to push
“available” stock and receipts that exist within this horizon. In version 000 this
parameter is set to 14 days. In version LTD this is 999. It is maintained directly in APO
and populated during the CIF transfer via the PRODUC_DEFAULT_VALUE.
Fix Production: If set, any planned orders within the SNP Production Horizon are
considered as fixed and will be kept and not overwritten during a new heuristics run.
Fix Stock Transfers: If set, any planned orders within the SNP Stock Transfer Horizon
are considered as fixed and will be kept and not overwritten during a new heuristics
run.
Push Distribution: Defines the strategy to be used for deployment:
 For MU we usually set this to “X” (Push by demands): all supply within push
deployment horizon is sent to target locations and split according to the
demands found on the destination without looking at the pull deployment
horizon. The real requirement date of the demand is ignored.
 For BU we would keep it blank (pull strategy): all demand within the pull
deployment horizon is covered and requirement dates are respected.
 Other options used are “Q” (push by quota): all available supply is confirmed
and spit according to the quota arrangements, no matter what the demands
are really like at the destination.
 Or “P” (push/pull): all supply within push deployment horizon is sent to
target locations and split according to the demands found on the destination
within the pull deployment horizon. The real requirement date of the
demand is ignored.
Fair Share Rule: If demand exceeds supply, Deployment can “fair share” based on
available to deploy (ATD) quantity. We use a fixed value “A”, which means
deployment is done proportionally based on demands. It is maintained directly in
APO and populated during the CIF transfer via the PRODUC_DEFAULT_VALUE.
Purchasing Group: comes from ECC, is always INT.
ATD Receipt: Category group used for receipts available to deploy. Always put to ATR
by Product Default Value.
169
-
-
-
o ATD Issue: Category group used for receipts available to deploy. Always put to ATI by
Product Default Value.
Tab Demand:
o Proposed Strategy: Comes from ECC and is always set to Z4, maintained on ECC side
in SPRO -> Production -> Material Requirements Planning -> Master Data ->
Independent Requirements Parameters -> Planning Strategy - > Define Strategy.
 “Z4” is a copy of standard value 40 (20 in APO), where the Requirement Type
of Customer Requirements is set to Z50.
 This setting applies forecast will be consumed by sales orders before and
after they are goods issued.
o Consumption Mode: Comes from ECC and is always set to 2 days, which means we
let the forecast be consumed by Sales Orders first backward and then forward. For
every sales order we check if we have forecast for the same day, then if there is
forecast for any day in the past and last in the future. This is limited by the days set
in the following two fields.
o Backward Consumption Periods: Comes from ECC and is always set to 5 days.
o Forward Consumption Periods: Comes from ECC and is always set to 4 days.
Tab Lot Size:
o Procedure: By default Lot-for-lot replenishment.
o Minimum Lot Size: Comes from ECC. Minimum volume used when planning a
procurement order.
o Assembly Scrap (%): Comes from ECC. % of scrap that is produced when producing a
production order for a product. This will affect the required volumes.
o Maximum Lot Size: Comes from ECC. Maximum volume used when planning a
procurement order. If bigger volumes are required, the system will create several
orders respecting the maximum quantity.
o Rounding Value: Comes from ECC. The system rounds the procurement quantity up
to a multiple of this value.
o Safety Days’ Supply: Number of workdays over which the system has to take into
account future demands when planning safety stock. Important for Safety Stock
Method SZ. Maintained directly in APO.
o Period Factor: Setting to determine at what point of time in a day a receipt element
will be available. Default value, is at 12:00:00, when flag is not set. Maintained
directly in APO.
o Safety Stock Method: Populated via Product Default Value and usually set to SZ,
which means the minimum boundary can be found in the field Safety Days’ Supply.
Tab Procurement:
o Procurement Type: Comes from ECC. Defines how product is procured:
 “E” = In-house planning, so usually put at MU.
 “F” = external procurement, so usually at BU as no production activities exist
at such level. As well for exports outside the network planned in APO-ECC.
 “X” = combination of both “E” & “F”.
170

-
-
“P” = not planned in APO, external procurement. So only needed for obsolete
products or products which need to be displayed in APO but are not
planned.
o Planned Delivery Time: Comes from ECC. Number of days needed to require
product. The heuristics takes into account this field to offset requirements. If an SNP
Stock transfer horizon exists, the longer of both is taken. The duration on the
transportation lane is slightly different as this length is only applied after the Planned
Delivery Time (PLT) is used.
 Example: PLT = 10 days, and transport duration on lane = 5 days. If demand
at target is on day 12, it will be offset as requirement on day 2 at the source,
due to the PLT. Because of the transport duration, the corresponding receipt
to this requirement will appear at the destination at day 7.
o Prod. Storage Costs: Used by the SNP optimizer to determine the cost of pre-building
stock. Costs to be maintained are determined by the cost model that is used.
o Safety Stock Penalty: Costs used by the SNP Optimizer to determine the cost for
violating the safety stock quantity.
GR/GI:
o GR Processing Time: APO specific setting. Time in days between delivery of product
and availability as stock. This will impact the offsetting in heuristics and deployment.
o GI Processing Time: APO specific setting. Time in days between issuing a product
from stock and transporting it. This will impact the offsetting in heuristics and
deployment.
Extra: This tab is non-standard and shows fields that were activated separately and are
therefore customized. Logically all these fields need to be maintained in APO directly.
o Maximum Cover: Maximum number of days for which the available stock should
cover demand. This is used for alert purposes only.
o Target Cover: Ideal number of days for which the available stock should cover
demand. Not used currently.
o DRP to Target: Flagged if the heuristics should replenish to the target stock rather
than minimum stock. Not used currently.
o Shelf Life in DRP: If flagged, projected stock will consider shelf life. Not used
currently.
o Planned Distribution Receipt as: If flagged, the planned distribution receipts (as a
result from the heuristics) are available as supply.
o QI Stock for deployment: If flagged, Stock in Quality Inspection is considered as stock
available for deployment.
o Stock at Vendor: Considered by default, so no need any longer to populate.
o Total Demand for Stock Calculation: If flagged, Distribution & Substitution Demand
will be included in the Safety Stock calculation reflecting as such the Total Demand.
The GM* planning books do not check the content of this field and will always
include Distribution / Substitution Demand, wherefore this field will soon be
obsolete.
171
Note: It is possible to track who made the last changes to a product code and what these changes were by
activating this option in customizing via SPRO->Advanced Planning and Optimization->Master Data->Product->
Activate Change Documents
7.6.
Resources
The only resource used in SP is the transportation resource which needs to be set against a
transportation lane. This is a resource of type “T” and has as naming convention: DEPT_ ”Means of
transport” _ ”source location” _ ”target location. Example: DEPT_Z001_ES06_ES66.
They are maintained in /SAPAPO/RES01 and APO specific, they are not transferred from ECC. This
also implies that they need to be assigned to model 000 manually. This will duplicate the resource,
meaning that there is one resource for every model and even for every version.
No other settings are really of importance (the resource needs to be of type mixed to be used by
SNP), wherefore we generally just copy an existing resource when a new one needs to be created
and only adapt the technical name, description and the source location it is linked to. These
resources are available in for example the capacity planning book for selection.
The majority of the resource settings for production planning come from the ECC capacity master
data that is maintained in ECC. The key aspect of the capacity setup in APO is related to the Capacity
Variant and the Definition of the shift sequences.
Each capacity that is assigned to a resource gets created as its own unique resource in APO. Below
you can see the ECC relevant key fields that are required to create an APO resource.
On ECC Side
Depending on whether pooled capacities are created the resource maintenance may use either
pooled capacities or default capacities for the resource. Default capacities in ECC are defined as 001
capacities and are maintained directly when creating the resource without the need to have
previously created the pooled capacity in CR11.
If the resource requires pooled capacities, which are shared capacities between several resources,
these must be previously created in CR11 and marked as pooled capacities to be later assigned to the
required resources.
Field Descr.
Techn. Name
Tab in CRC3
APO Supply Planning
Active Version
VERSA
Capacity
Active version
VERSA
APO Resource - General Data
Base Unit of meas.
MEINS
Display Capacity (no tab)
Can be used by several operations
KAPAVO
Capacity
Active shift sequence variant to be used by the
resource
Active shift sequence variant to be used by the
resource
Unit of measure used to define available
capacity
Flag to determine whether multiple operations
can be scheduled against this capacity
Capacity
KAPID
Capacity
Capacity name
Capacity Category
KAPAR
Capacity
Category of the capacity
Capacity planner grp
PLANR
Display Capacity (no tab)
Group of the capacity to decide responsibility
Capacity planner grp
PLANR
APO Resource / General Data
Group of the capacity to decide responsibility
Capacity utilization
NUTZGRAD
Capacity
Percentage of utilization to be used for this
resource
172
Days-
LC_DAYS_MINUS
APO Resource / General Data
Days+
LC_DAYS_PLUS
APO Resource / General Data
Description
KTEXT
Capacity
Determines horizon backwards for which
resource can be used in APO
Determines horizon forwards for which resource
can be used in APO
Description of the capacity
Factory Calendar ID
KALID
Capacity
Factory Calendar to be used for resource
Factory Calendar ID
KALID
APO Resource - General Data
Factory Calendar to be used for resource
Finish
ENDZT
Capacity
Grouping
MOSID
Capacity
End time of the default shift sequence for the
resource
Determines the shift sequence variants that can
be used for the resource in ECC
Length of breaks
PAUSE
Capacity
Duration of breaks used for this resource
Long-term planning
KAPLPL
Display Capacity (no tab)
Allows for long term planning on this capacity
No. of indiv.cap.
AZMAX
Capacity
Not-SNP Relvnt
SNPLC
APO Resource - General Data
Overload
UEBERLAST
Capacity
Number of capacities that are available for this
capacity. Meaning number of multiple
operations can be scheduled in parallel for this
capacity
Decides whether the resource is to be used in
SNP or only in PPDS
percentage of allowed overload for finite
capacity planning
Planning params
APO Resource - General Data
Plant
WERKS
Capacity
Plant maintained for capacity
Plant
WERKS
APO Resource - General Data
Plant maintained for capacity
Pooled Capacity
POOLK
Capacity
Relevant to finite scheduling
KAPTER
Capacity
Flag to indicate whether the capacity is to be
used by multiple resources
Flag marked to determine whether the capacity
is to be used for finite scheduling or not
Relevant to finite scheduling
KAPTER
APO Resource - General Data
Flag marked to determine whether the capacity
is to be used for finite scheduling or not
Start
BEGZT
Capacity
Start time of default shift sequence for resource
Unit of Measure of Capacity
KAPEH
Display Capacity (no tab)
Base Unit of meas.
MEINS
Capacity
Unit of measure used to define available
capacity
Unit of measure used to define available
capacity
Capacity
KAPNAME
Scheduling
Category of the capacity
Capacity category
KAPID
Capacity
Category of the capacity
Capacity Category
KAPAR
Capacity Category
KAPART
Scheduling
Characteristic description
ATNAM
Classification
Class
CLASS
Classification
Control Key
STEUS
Default values
Basic Data
Capacities
Category of the capacity
Category of the capacity
Determines executional dependencies
Default values
Description
ARKTX
Resource description
Description
KLTXT
Classification
Other formula
FORKN
Capacity
Value used calculate output for recipe
Other formula
FORTN
Scheduling
Value used calculate output for recipe
Plant
WERKS
Plant
WERKS
APO Resource - General Data
Plant maintained for capacity
Pooled Capacity
POOLK
Capacity
Flag to indicate whether the capacity is to be
used by multiple resources
Plant at which resource is created
173
Resource
ARBPL
Resource name
Resource Category
VERWE
Basic Data
Defines type of resource usage
Standard Value Key
VGWTS
Basic Data
Determines standard values in the resource
Usage
PLANV
Basic Data
Determines in what objects the resource can be
used
Value
ATWRT
Classification
Most important fields & Manual update of master data in APO
Going tab by tab, we can identify the most important fields.
-
-
-
Tab General Data:
o Active Variant - Defines which capacity variant will be used for operational capacity
by production line.
o Not SNP – Relevant - Decides whether the capacity is considered by SNP
o Reference Resource - Used to reference capacity available from another resource.
Capacity variant is copied from a reference capacity.
Tab Time-Cont. Capacity
o Setup Matrix - Required to maintain if Setup Matrix is to be used.
Capacity Variant / Shift Sequence
o Capacity Variant - Capacity variant is a screen to define the detailed shift sequences.
o First Day - Defines which day is the starting day of the shift sequence.
o Shift Factor - Definition Defines efficiency factor (utilization rate) for the shift
sequence by production line.
o Shift Sequence - Defines available shifts under the shift sequence
o Valid From - Date from which shift sequence is valid
o Valid To - Date to which the shift sequence is valid
Tab Capacity Profile
o Workdays – Determines where workdays are taken from
7.7.
Transportation Lanes
Transportation lanes are the connections between locations. Only if a transportation lane between A
and B exists and is active, goods can be planned between A and B.
Generally they are created via the CIF and origin from the Purchasing Info Records (PIR) in ECC. They
are maintained by the domestic deployment team for the domestic network and by the export
deployment team for export locations.
In ECC they are created, displayed and changed in ME11/ME12/ME13 where:
-
-
Vendor = “PL” & Source location
(Stock transfer), “CC” & Procurement
Company (EOC Model or Real vendor
(non-EOC Model) (Co-packing, CoManufacturing), “K” & Vendor
(Import)
Material = product code
-
174
Purchasing Org. = “EU05”
Plant = Target location
Type = Standard (Stock transfer, CoManufacturing
&
Import),
Subcontracting (Co-Packing)
For the CIF to transfer the PIR the tab Purchasing Organisation Data 1 must be filled out. Most
important fields are the Planned Delivery Time, which needs to correspond to the number of days of
lead time between both locations, and Purchasing Group, which is always “INT”. For Co-Packing
materials, as well field Production Version should be set to “COP”. When this information is passed
through the CIF, the transportation lane is created and the relevant products are assigned
automatically to the lane. The number of the PIR will also appear in APO as “External Procurement
Relationship”.
As well important on ECC side is that in table T161W we have got an entry connecting source and
target location and assigning for Document Category “F” (Purchase orders) document type ZNB
(Intercompany Stock Transfer Orders) or ZUB (Intracompany Stock Transfer Orders)
In case a location is not set up in ECC, but needs to be planned for in APO, the transportation lane
needs to be created manually in /SAPAPO/TL1 for model 000. This would for example be the case for
export towards Interco customers. You will have to add the relevant products manually to this new
lane and assign start and end date.
In both cases, manual creation or creation via
the CIF, some further manual adaptations
need to be done. A Means of Transport needs
to be set up against the transportation lane so
Transport Load Building can be done. A new
one can be used, or an existing one chosen
and again validity dates need to be set.
Furthermore we need to maintain the
transport duration which will be used in the
offsetting of orders between both locations
and which is set to the Planned Delivery Time
expressed in hours. As transportation calendar
we by default use “TLANES” and we fill in the
relevant Resource. We further fill out the TLB
Profile relevant for the source location and get
rid of the automatic value in Period Factor: by
having it set to 0 we will make sure it is
available at the beginning of the day, whereas
a value of 0,5 would only make it available at
12:00:00. Lastly we also remove the flag on
“Valid for All Products”.
175
Once the Means of Transport is set up, we still
have one remaining step, which is to assign
the relevant products on the transportation
lane to the Means of Transport.
Another interesting transaction is /SAPAPO/PWBSRC1 which allows viewing and changing the
purchasing documents transferred from ECC.
In case a transportation lane is obsolete, or a product on a lane is no longer used, the lane for that
product should be blocked. This can be done in field “Block” by populating the field with value “X”
(Locked) or “D” (Locked and flagged for deletion). On ECC side, the PIR are flagged for deletion via
ME15. To remove just 1 flow (1 source to 1 target) we just flag “Purch. Org Data”. To remove all
flows from one source, we would tick “Complete info record”.
Note: The different means of transports are set up in customizing under SPRO->Advanced Planning and
Optimization ->Transportation Planning and Vehicle Scheduling->Basic Settings->Maintain Means of Transport
Note: It is possible to track who made the last changes to a product code and what these changes were by
activating this option in customizing via SPRO->Advanced Planning and Optimization->Master Data->
Transportation Lane->Activate Change Documents
7.8.
TLB Profile
TLB Profiles are maintained in /SAPAPO/TLBPRF and are used to determine lower and upper bounds
for transport load.
For example profile Z001 will only allow a
truck to be loaded with at least 30 and a
maximum of 33 floor spots occupied.
We can have more than 1 rule per profile and link the rules with AND or OR statements. As well
several options are available regarding the limitations, such as floor spots, weight or volume. The TLB
Profile is used while using the transport load builder functionality which converts confirmed
deployment orders to Stock transfer orders or sales orders.
7.9.
Quota Arrangements
Quota arrangements are used in Heuristics and/or Deployment to define how quantities are split
between locations. Outbound quota arrangements can be used to determine which percentage of a
volume being sent from one source to several locations is sent to each of those locations. Similarly
inbound quota arrangements are used when a target location is receiving from several sources. They
are maintained in /SAPAPO/SCC_TQ1. For the outbound quota arrangements for example, it is
necessary as well to set the right push strategy on the product location master of the source
location: “Q”, which will force the push during deployment to consider the quota. Otherwise they
would be ignored.
7.10. PDS
Co-Packing PDS (Production Data Structure) are required for the BoM explosion in APO Co-Packing
planning. On ECC side in CS03 you can see the Bill of Material details where we use the ones with
BOM Usage set to “3”. As well you can find the relevant production version in MM03 under tab MRP
4. Furthermore the PDS will as well incorporate data from routings defined in ECC. In APO they will
appear in /SAPAPO/CURTO_SIMU and state they are used by SNP. Not necessarily all materials of
the BOM in ECC are shown in APO, but just the ones effectively planned in APO. PDS_MAINT allows
maintaining priorities for production.
For production planning all of the master data related to the PDS must be maintained in ECC.
On ECC Side
The ECC Gold Model uses recipes to create the production model. This data is a mix of both the BOM
and the Capacity requirements brought together by the production version. The data that is required
can then be seen in APO as a PDS. As APO does have some unique features, in ECC PDS_MAINT
allows us to maintain some of this unique data.
We will start by looking at the required fields for the Recipe:
Field Descr.
Techn.
Name
Tab in C203
APO Supply Planning
1st Std Value - Setup
VGW01
Operation
Time required for setup
2nd Std value
VGW02
Operation
Variable machine time to produce Operation quantity of recipe
Base Qty.
BMSCH
Operation
Base quantity used by operation which represents quantity
produced from machine time consumption times
Charge Qty.
UMREZ
Operation
Conversion value used to covert Units of Measure
Classification
KLAKZ
Operation
Automatically maintained flag if characteristics are used
Control Key
STEUS
Operation
Determines way operation is used by formulas, confirmations,
costing, and scheduling
Description
LTXA1
Operation
Description that is maintained for specific operation
Destination
PHSEQ
Operation
Determines communication destination used for operation
MaxOutput/h
USR05
User fields
Reflects output of product per hou
Operation
VORNR
Operation
Number of operation
Operation Qty
UMREN
Operation
Conversion value used to covert Units of Measure
Phase indicator
PHFLG
Operation
Marks if there is a phase for this operation
Plant
WERKS
Header
Plant for recipe
PlnOutput/h
USR04
User fields
Reflects output of product per hou
Recipe
PLNAL
Header
Automatically generated number
Recipe Group
PLNNR
Header
Automatically generated number
Relevancy to costing indicator
CKSELKZ
Operation
Determines whether the operation is used by costing
(determined by Control Key)
Resource
ARBPL
Operation
Resource used for operation
Operation
Used to maintain a standard text value for the operation
Operation
Indicates superior operation for current operation
Standard text key
Superior operation
PVZNR
A previously created BOM must have been created to attach it properly to the recipe via the
production version. Below you will find the relevant BOM data:
Field Descr.
Techn.
Name
Tab in CS03
APO Supply Planning
Alternative BOM
STKO-STLAL
BOM Header
Number to indicate which BOM version to use
BOM
STKO-STLNR
BOM Header
Number used in combination with the BOM category to
uniquely identify a BOM or a BOM group.
BOM Component
STPO-IDNRK
BOM Item
Material number of the Co-Packing component.
BOM Usage
STZU-STLAN
BOM Header
This field defines the area (such as engineering/design or
production) where a BOM can be used.
Component Quantity
STPO-MENGE
BOM Item
Quantity of the component related to the BOM Header
Quantity.
Item number is a consecutive number (automatic)
Item
BOM Item
Item Category (ICT)
STPO-POS
BOM Item
Material
MAST-MATNR
BOM Header
Categorization of the items in a BOM according to set criteria,
such as whether they refer to an object (for example, material
master or document info record) or whether they are kept in
stock.
Material number of the Co-Packed SKU
Plant
STKO-WRKAN
BOM Header
Plant number for which the BoM is model
Valid from (Header)
STKO-DATUV
BOM Header
Specifies the start date for the validity period of a BOM in ECC.
Valid from (Item)
STPO-DATUV
BOM Item
Valid to (Header)
STKO-DATUB
BOM Header
Specifies the start date for the validity period of a BOM
component in ECC.
Specifies the end date of validity period of a BOM in ECC.
Valid to (Item)
STPO-DATUB
BOM Item
Specifies the end date for the validity period of a BOM
component in ECC.
Finally once the production version is maintained we can update the data in PDS_MAINT:
Field Descr.
Techn.
Name
Tab
in
PDS_MAINT
Cost Function
COSTFKT
Header Data
Discretization Flag
PDISC
Header Data
Fixed Bucket Consumption
BCONS_FIX
Operation Data
178
APO Supply Planning
Will allow use of APO defined cost functions for SNP
PDSs
Activates a constraint of using Rounding Values for
rounding volumes in the production plan made by the
optimizer.
Allows for modification of Fixed machine consumption
for SNP functionalities in APO.
Fixed Costs: Multi-Level
COST_FIX_M
Header Data
Fixed Costs: Single-Level
COST_FIX_S
Header Data
Procurement Priority
PROC_PRIO
Header Data
Time of Component Consumption
CONS_TYPE
Component Data
Unit of Measure for Bucket Consumption
BUNIT
Operation Data
Variable Bucket Consumption
BCONS_VAR
Operation Data
Variable Costs: Multi - Level
COST_VAR_M
Header Data
Variable Costs: Single-Level
COST_VAR_S
Header Data
Fixed, quantity-independent costs that result when this
PP/DS or SNP production data structure is used. The
fixed share of the costs that result from providing the
components is included in this parameter.
Fixed, quantity-independent costs that result when this
PP/DS production data structure is used
Used to prioritize which production version to be use by
Heuristics.
Defines where the output of a production order is
placed, e.g. in the beginning, continuously or at the end
of a production run.
Specifies the unit of measurement for the bucket
resource consumption.
Allows for modification of Variable Machine
Consumption for SNP functionalities in APO.
Variable, quantity-dependent costs that result from
using this PP/DS or SNP production data structure. The
variable share of the costs that result from providing the
components is included in this parameter.
Variable, quantity-dependent costs that result from
using this PP/DS or SNP production data structure.
7.11. APO master data Reporting transactions
As it is not necessarily easy to work with the tables behind the standard master data transactions and
APO works with generic ID created for each product and location, two transactions were created to
make the mass retrieval of master data in the system manageable.
ZPRODLOC allows seeing the detailed information for product locations by product, location,
planner,… ZTLANES does the same for the transportation lanes by source, target or products. If the
Mean of Transport is not linked to the SKU in the transportation lane or the resource is not included
in the mean of transport, nothing will appear in the report.
7.12. Queries
Additionally as well some queries were set up in SQ00 on APO side under Query Area: Standard Area
(Client specific):
-
ZPDS_COPACK_MD
Z_PROD-LOC
Z_RES_DOWNTIME
Z_SELECTIONS
Z_SNP_CHECK
Z_TLANES
Z_TLANES_LLC
(details on PDS )
(details on product locations)
(details on downtimes for resources)
(details on selections)
(master data check for SNP)
(details on transportation lanes)
(details on transportation lanes with low level codes)
As well, we similarly have a few queries on the ECC side that might be useful under Query Area
Standard Area (Client specific), user group (ZAPO_DEP):
-
ZAPO_PIR
ZAPO_PO_EKPO
(Analysis of APO PIR)
(Analysis of APO PO)
179
8. Job schedule & logic of sequence
8.1.
Job Schedule
All jobs in SP are managed by Control-M; they are kept up to date on this team site:
https://partners.kraft.com/sites/SCOREX%20APO/default.aspx?RootFolder=%2fsites%2fSCOREX%20
APO%2fShared%20Documents%2fOngoing%20support%2fBatch%20schedule&FolderCTID=&View=%
7b6DA2BEA9%2d94C2%2d49D5%2d84EF%2d89FF81C86439%7d
We distinguish between the jobs running in APO, the Integration Model jobs which run in ECC and
the interface jobs which partially run in APO, SCORE and ECC. As mentioned in the chapter on
interfaces, CIF is used for the biggest bulk of the interfacing. These are jobs running in ECC, not in
APO, and are owned by the SP team, as well the CIF jobs related to DP (always with DP in the variant
of the IM). They generally run on a daily schedule and in the evening.
The SCORE & Bertha Interface jobs are a combination of standard Control-M jobs and FTP jobs that
transfer files between systems.
On the ECC side, apart from CIF jobs, we also need to run a few jobs to upload extracted files from
APO that are put on a shared server between APO and ECC. This is done for the so-called White
Space countries.
8.2.
Process Chain setup & purpose
The following list summarizes all process chains that are relevant for SP but set up and owned by the
DP team. It explains there purpose and how and when they are triggered. Currently all triggers are
set up in regular batch job maintained by Control-M (see further). The process chains themselves can
be found in RSPC and monitored in RSPCM.
ZDP_NON_APO_DMD_MS_SCM_WK
This chain takes care of the upload of external demand. It is triggered by event ZEXTDEMMON which
is scheduled when the files come into APO. This happens every Monday at around 14:00 CET.
ZDP_REL_EXT_FCT_SCM_WKY
This chain runs as part of ZAPO_DP_MON_1 and takes care of the deletion of forecast from SNP and
the release from forecast to DP for domestic and external demand. See also chain
ZDP_REL_FCT_2_SNP_SCM_WKY which is similar but runs every Sunday instead of each Monday.
The first six steps run in parallel and delete the forecast in SNP for per product category. One
additional step deletes any forecast on SNP planner ZZZ, which is to avoid forecast remaining on
products that had their SNP planner changed during the week from a regular category SNP planner
to ZZZ. The deletion is done with standard program /SAPAPO/RLCDELETE and variants 00WMDEL*FC
180
Once this is done the release can start. This is done in two times two steps. One sequence of two
steps takes care of the short and long term release from DP itself. The other flow takes care of the
release from external demand, again for short and long term. For DP the selection is based on the
forecast destination flag: products with the flag set to “1” are excluded as these products are
supposed to be released only to S700 and not to SNP. Further also products with forecast status “04,
05, 06, Z4 or Z5” are excluded as these are obsolete products. This will reduce the runtime and errors
in the release.
Next the chain triggers an event
(GENERATE_ALERTS) to start of the alerts in
SNP and three macro jobs that are GB specific
are run which release forecast directly from
DP to ECC.
Final three steps update first of all TVAR variable Z_W+0_M+03 which is used in the next step where
we delete the forecast in SNP for locations with location type 1001 (plant or MU) and for SNP
planners ending in F (finished goods). This is done for a horizon of three weeks. So as this chain runs
on Monday, we consider current week, week + 1 and week + 2. This is determined by the TVAR
variable calculated in the previous step. The reason for this logic is that the forecast directly placed
on plants is in many cases unreliable. Therefore it was decided to do the short term planning based
on sales orders and not on the forecast. Last step of the chain triggers event
ZAPO_TRIGGER_SNP_JOBS_MONDAY_PRE which will start the SNP bath schedule on Monday
afternoon.
181
ZDP_REL_FCT_2_SNP_SCM_WKY
This chain runs as part of ZAPO_DP_SUN_1 and takes care of the deletion of forecast from SNP and
the release from forecast to DP for domestic and external demand. See also chain
ZDP_REL_EXT_FCT_SCM_WKY which is similar but runs every Monday instead of each Sunday.
The first steps do not exist in the Monday chain. They run report /SAPAPO/RM60RR20 with variants
00WMDELALLFC* which reorganize the independent requirements. Reason for this is to reset any
forecast that is not fully consumed. We don’t rerun on Monday to avoid that sales orders that are
created between both releases are not consumed again when the forecast is released. If we would
run this step again, these sales orders would be set to consumed and the forecast would be added on
top and demand would be inflated.
The next steps are exactly the ones used in ZDP_REL_EXT_FCT_SCM_WKY except for the forecast
deletion directly in SNP at the MU for the first three weeks we use a different TVAR variable.
Although we want to consider the deletion for the same 3 weeks both on Sunday and Monday we
need a slightly different logic between both chains because of the change in week number when
moving from Sunday to Monday. So on Sunday we want to delete forecast for week + 1, week + 2 &
week + 3, whereas on Monday the release process should delete current week, week + 1 & week + 2.
At the end we run a few specific events that
trigger jobs in SNP directly:
-
GENERATE_ALERTS
-
ZAPO_TRIGGER_OPTIMIZER_JOB
-
ZAPO_TRIGGER_SNP_JOBS_PRE
ZDP_REL_FCT_S700_SCM_WKY
This chain takes care of the extract of forecast from DP to be uploaded into ECC in table S700. It is
part of Metachain ZAPO_DP_SUN_1 which runs every Sunday.
ZDP_REL_FCT_PREP_WKY
This chain runs as part of chain ZAPO_DP_SUN_1 where it populates with a macro job per country
the Released forecast key figure (ZRELFCT) which will afterwards be used in the release to SNP and
be kept for reference for the whole week.
ZDP_REL_FCT_FRANCE
This chain takes care of the additional release process for France on Thursday after the promo load
to SNP and S700 & the release of engagements to SNP. It is triggered by event
182
ZDP_T4G_FR_PROMOTIONS which is triggered by the FTP jobs loading the French promo files to the
APO server every Thursday around 19:30 CET.
ZAPO_DP_SUN_1
This is a Metachain triggered by event ZAPO_DP_SUN_1 every Sunday at 15 CET. It contains some
crucial steps for SP:
-
Chain ZDP_REL_FCT_PREP_WKY that can run as all Bottom-up forecast is up to date and which will
calculate the forecast to be released downstream.
Chain ZDP_REL_FCT_2_SNP_SCM_WKY to release to SNP.
-
Chain ZDP_REL_FCT_S700_SCM_WKY to release to S700.
ZSP_TOTAL_DEMAND_S716
This chain triggered by event BEU_TOTDEM every Monday morning extracts total demand figures
and prepares flat files that are shared with ECC and loaded to S716 on the ECC side.
PP_GI_UPLOAD_SUNDAY
This chain runs every Sunday at 11 in the morning and is used for France to extract all delivery items
that have already been goods issued and set for delivery next week that are then being processed in
the release from DP to SNP.
MD APO PP CVC GEN
This process chain is used to populate navigational attributes, generate CVCs in the Global Stock
MPOS and generate consistency. Without this process chain the ZGLOBALSTK planning area will not
contain all of the products with the necessary navigational attributes needed for selection.
The general features of this process chain are:
• runs nightly at 01:00:00
• Global Stock Planning area dependent on this chain to run successfully
183
184
9. Developments
9.1.
Transactions
For a complete list of all Z transactions that exist in the APO system please see
the embedded excel file.
ALL_Z_TRANSACTIO
NS.xlsx
ZAPO_BATCHJOB
The idea of this transaction is to allow setting up jobs that can be executed whenever convenient.
Any report with respective variant that exists in SE38 can potentially be used to set up such a job. See
3.20 for how this is used in DP.
ZAPO_BATCHJOB_LTD
This transaction is the same as the previous one but more restricted. Where in the transaction above
jobs can be set up, assigned to users and launched, in this particular transaction jobs can only be
launched. The other buttons are not visible. This transaction is therefore the transaction the end
users will use whereas ZAPO_BATCHJOB is going to be used by either support or the central team.
ZAPO_DP_SEL
This transaction is used to update the table with the same name that contains the content of user
selections. This table is almost a copy of /SAPAPO/TS_SELPO. In this standard table, the selection ID
is a key field whereas in ZAPO_DP_SEL we do not use the key but directly its unique description. This
was done to make the population easier. This table is used in report ZAPO_DP_SELECTION_U, see
below, which is used to update the content of user selections by picking up the details from this
table. It is currently only used in DP, but could as well be used for SNP.
ZAPO_FCST_DEST
This DP transaction allows planners to update the forecast destination flag which is stored in
navigational attribute ZFCTDEST of characteristic ZSOMATNR. To do the update the user will have to
choose the product, sales organization and channel as these 3 are key fields. One can then choose to
have the flag be blank (which means the forecast is sent from DP to SNP only), equal to 1 (forecast is
sent to S700 only) or equal to 2 (forecast is sent to both).
ZAPO_JOBREPORT
This transaction is basically a copy of SM37. Users will normally not have access to the standard
transaction and use this one instead.
ZCORCBC01
This transaction allows both uploading and downloading flat files from your PC to the application
server in APO. The files can be found in AL11. See 3.11 for its use in DP.
ZTLANES
ZTLANES calls directly a SQ00 query in APO that was designed to check transportation lane data in a
more user-friendly way. The query basically crosses the /SAPAPO/TRPROD table with the
185
/SAPAPO/TRPRODM table to check for valid transportation lanes and shows the master data around
the lanes selected. To show transportation lane data in this query it is required to have a
transportation resources assigned to the lane.
ZPRODLOC
This is another transaction that calls a query directly that crosses the /SAPAPO/MAT table with the
/SAPAPO/MATLOC and all of the other SNP and PPDS tables that are relevant to check multiple
products at once in a table format.
ZOTC_SCHEDDEP
Allows for users to maintain the SCHEDDEP table
which is subsequently used in the Z_OTC_SCHED_DEP
macro function which populates the Production Shift
1, 2 & 3 key figures. The maintenance requires the
location, the shift definition and the offset of the
production quantities in days. This will then populate
the offset in the Production Shifts. For further details see the Function Module Development section
below.
ZAPO_RRP_SNP2PPDS2
This is a copy of the standard /SAPAPO/RRP_SNP2PPDS transaction, however this one allows for
orders to be moved to the end of the week to facilitate PPDS scheduling of a specific week
ZMTI_APOKG2HR
As Hours to Kilos cannot be maintained in the SAP ECC system due to the ECC Gold Model design, we
allow users to maintain this conversion directly in APO for multiple products. This transaction will
update the /SAPAPO/MARM table directly as well as the Z table it supports. Furthermore for any
push of master data from ECC to APO the CIF badi will access this table to ensure that the unit of
measure conversion in the /SAPAPO/MARM table retains the APO specific HR to KG conversion. For
further details see the BADI and TABLE sections below.
ZAPCBO_SDPOPTLOG
This transaction allows users to maintain the ZAP_SDPOPTLOG table which is later used by the
optimizer input log. The user must maintain a
resource, the version, the costs and the amount of
periods that are to be closed at the end of the
horizon. The objective of this development is to
place a cost on the resource if the resource
consumption does not meet 100% of the minimum
available capacity (Defined as Variant 11).
ZAPOVENDOR_MD
This allows users to maintain the ZAPOVENDOR_MD
which
is
used
in
the
User
Exits:
EXIT_/SAPAPO/SAPLCIF_PU_001,
EXIT_/SAPAPO/SAPLCIF_G_EP_005
&
186
EXIT_/SAPAPO/SAPLCIF_TPSRC_001. The reason is to allow for the conversion of a source vendor to a
plant for transactional elements created in APO. This allows you to replace the Vendor location
maintained in the PIR by a location of our choice in APO. The related purchasing documents are
following the same logic. It is now mainly used to be able to run a deployment in APO from a vendor
location based on its allocation. In standard since 3 potential DCs can receive goods from this
supplier we would need to have our Supplier splitting its allocation which is not great knowing we
have all the latest demand in our system as well as the need to create Preqs manually.
ZAPO_COPY_PLAN
The execution of this transaction allows for receipt
elements from time series key figures without a
location specified to be populated to liveCache. It
is generally designed for co-packing purposes to
allow the planner to make manual modifications in
the Global Stock Co-Pack planning book and then
populate that plan to liveCache.
ZAPO_LOC_PLANNER
This transaction allows for a simplified maintenance of the ZAPO_LOC_PLANNER which is used in the
User Exit EXIT_/SAPAPO/SAPLCIF_STOCK_001. For further details check the User Exit details below.
ZAPO_MULTIMIXRES
This allows for users to specify multi-mixed resources which they would want to execute scheduling
on the alternative modes on the PPDS PDS. As with standard it is not possible to use a setup matrix
with multi-mixed resources it does not maintain the setup activity flag on the PDS. Therefore
although the alternative modes have single-mixed capacities which can use a setup matrix, the
functionality would not be possible. By maintaining a resource in this table a multi-mixed resource
can use a setup matrix on the alternative modes.
ZAPO_STOCKUPLOAD
This transaction contains a variant which is then executed to populate stock into liveCache for
Greece. For further details on this transaction please check the program ZAPO_STOCKUPLOAD_U
seen below.
ZAPO_STOCK_BALANCING
This transaction contains variants which allow the execution of the stock balancing program
specifying the key figures that can be used and the locations for which the program is to run. For
further details check the ZAPO_STOCK_BALANCING_R program below.
ZAPO_VARIANT_MOD
This is basic version of the ZAPO_VARIANT_UPD transaction which can update the variant content for
programs defined in the ZAPO_BATCHJOB table. The objective is to ensure the selection that is used
for the macro job step is the same for the TSCOPY job step. The variant content for this transaction
defines the actions that are to be updated in the program. It is required that the ZAPO_BATCHJOB
structure contains a TS_BATCH_JOB and TSCOPY step.
187
ZAPO_VARIANT_UPD
This is an advanced program that can update variant contents for specific programs using the field
variant parameter and the contents of this field in the program. For example if you want to update
the TSCOPY with the contents of all ZZCROSSPLANT field which equal GB06-BFP it would update the
variant contents of that program to ensure all product locations are included.
ZAPO_VMIEDI
This allows for easy maintenance of the /SAPAPO/VMIEDI table which defines the IDOC settings for
VMI locations and how stock in transit will be displayed in APO for each CU location that is
maintained.
ZCORSC03390
This transaction gives the users a simpler way of maintaining a capacity variant for a specific
resource. The variant is updated with the input parameters in the program.
ZCORSC03461
This transaction contains variants that are used by
the CIMSUP interface to populate data to XEP
system. As there is a requirement to transfer the
mid to long term Production plan to the CIMSUP
system in the form of STR Documents, however in
Standard APO functionality we cannot extract orders
at the Vendor Location (Customers with numbers
starting
with
VE).The
standard
BAPI
BAPI_POSRVAPS_GETLIST3, does not allow the
location to have a Prefix #VE#. To deploy this
functionality we need to amend the APO program
ZCORSC03461R01 in order to pass the vendor number to the BAPI BAPI_POSRVAPS_GETLIST3
without the Prefix #VE#.
ZIF_CONVERSION
This conversion table is used the APO to APO interface to convert location codes for objects being
sent to the other APO system. The table that is maintained in this transaction is later used by
program ZOTC_APO_IF_APO2APO_FORMS. For further details see the programs section below.
ZOTC_APO_IF_IN_OUT
This is a key program that is used for all interfaces
that are sending or receiving data from the APO
system. This includes SCORE, CIMSUP, S700, and
NSKEP. This transaction holds the various variants
that are used to maintain the interfaces which will
dictate whether the input is being sent, or received,
the file to be extracted or populated and the file type
that is being used. For further details on this program
188
please see the below section.
ZMM_MAT_MASTER
Transaction on ECC side to view APO relevant data from the material master.
9.2
Tables
For a complete list of non-standard tables in the APO system, please check the
embedded excel. Details to where each table is used can be found in the
embedded document.
ALL_Z_TABLES.xlsx
ZAPOCONVERT
This table holds all of the products and the hour to kilo conversion factors that are later used by the
CIF Badi ZAPCBO_PROD_DEFAULT . The update of this table is executed in the transaction highlighted
above.
ZAPOSCHED_DEP
This table is used by the ZOTC_SCHED_DEP macro based function module to offset production
quantities. The contents contain the location, shift definition and offset data for the use in the
macro.
ZAPOVENDOR_MD
This table is updated in the above mentioned transaction in order to later be used in several User
Exits in order to map the locations to the vendor code. The table is product specific and requires the
to and from location to be maintained for each product.
ZAPO_CHGPOINT_SL
Table that would allow purchase requisitions to be published to ECC for a specific location. The logic
is simple, it checks the source location and if source location is of type 1001 or 1002 and ATP
category is BH it will delete the change pointers unless you maintained the table with a source
Production Plant or DC where you would need to allow the transfer of planned receipts.
ZAPO_LOC_PLANNER
Used in User Exit for CIF for stock values. Table entries include the source and destination locations
with the SNP for the locations.
ZAPO_MULTIMIXRES
This table contains the multi-mixed resources which are to have the setup activity flag set in order to
use setup matrix functionality for the alternative modes.
ZAP_PA_UOM
The contents of this table allow the user to define a different unit of measure in their user setting
and have the optimizer calculate the values internally using this unit of measure. If this setting is not
made then the base unit of measure of the planning area will be used in the optimizer.
189
ZAP_SDPOPTLOG
If a user wants to occur a cost for not using 100% of the minimum capacity of a resource then an
entry needs to be made in this table. The table entry must have the resource, the version and the
cost to be occured for falling below 100% capacity usage.
ZIF_CONVERSION
This table requires location conversions for data sent between APO systems. It requires entry of the
APO system (Logical System), Region, Location, Target location, External number, location type and
unit of measure. This is then accessed via the APO to APO interface program to send information
such as demands and stocks.
ZIF_PLANNER
This table only contains the APO Region and the SNP planner. It is meant to send forecast to other
APO systems.
ZIRQREDUCT
This table is used to monitor any goods issued quantities for products that have the Reference group
attribute maintained. The table will then be populated with data that will later be used in the
ZAPO_GET_REDUCED_FCST Function Module.
ZAPO_DP_SEL
Table populated via transaction with same name, see above.
ZBC_CONST
This is a table used by several programs to avoid hardcoding. The program will come and find the
necessary entries in this table which could potentially be changed if needed.
ZCORSC02733_ACT
This table contains the steps of the action ID that are set up in transaction ZAPO_BATCHJOB(_LTD),
see above.
ZCORSC02733_AUT
This table contains the authorizations to execute
ZAPO_BATCHJOB(_LTD), see above.
specific action ID
in transaction
ZCORSC02733_DEF
This table contains the action ID definitions as specified in transaction ZAPO_BATCHJOB(_LTD), see
above.
ZCORSC02733_HDEF
This table contains the action ID job descriptions as specified in transaction ZAPO_BATCHJOB(_LTD),
see above.
ZCORSC02733_TXT
This table contains the action ID descriptions as specified in transaction ZAPO_BATCHJOB(_LTD), see
above.
190
ZCORSC02733_VDEF
This table gathers the
ZCORSC02733_TXT.
content
of
tables
ZCORSC02733_DEF,
ZCORSC02733_HDEF
&
ZAPO_S700
This table exists on the ECC side only and was set up in SE11 as a join table to be able to extract the
demand figures from S700 for the External Demand planning area. We get most information we need
from S700 directly, but we needed to add some fields of additional tables (see 6.4).
9.3
Function Modules
For a complete list of all the non-standard function modules please check the
embedded excel document.
ALL_Z_FMODULES.xl
sx
ZOTC_SCHED_DEP
This function module accesses the ZOTC_SCHED_DEP table to determine the offset of the production
quantities for deployment planning. The inputs to this function module are populated via the macro.
All short term data views that have daily deployment calculations use this macro function.
In Step 3 of the I0 - Init Prod - MD set macro (as explained above in the macro section) this Z function
is used to populate each of the three production shift key figures using the shift input which
corresponds to the key figure that is being populated. The ZF1 category is also used as an input to
determine the order categories that are to be checked for the offset.
The function module will then use the shift input in the macro and the category group to access the
ZOTC_SCHED_DEP table and offset the quantity found in each period according to what has been
maintained in the table.
ZAPO_GET_REDUCED_FCST
This macro function is used in the 04 Plan To Forecast data view to populate the DMDCON key figure.
This function is to use only the forecast volumes without any sales order consumption for planning.
There are three possible function depending on the input parameters to this function. If the input
parameter in the macro is F, the function module will check all the FA categories and subtract any
quantities that have been logged in the ZIRQREDUCT table from that forecast.
If the input parameter is A the logic will only populate the forecast directly without reduction of the
Goods Issued quantities from the ZIRQREDUCT table.
Finally if the condition is W then it will only provide the quantities that are in the ZIRQREDUCT table.
ZAPO_POSRVAPS
This function module is called from a macro within the LOCAGG planning books to identify 3rd Party
elements that do not have a source of supply or have a VEX location assigned to them. The inputs to
this macro will determine the type of elements it is to check via the BAPI_POSRVAPS_GETLIST3 Bapi.
There are two possiblities that are in the Default 0=> Detail level 3rd party calcs macro as explained
above. To check all the Preq elements the macro will send the AG category to the Bapi and then
191
check Procurement type 0 of each element, which is also specified in the macro. If there are
elements then the quantities are populated in the key figure.
The other step of the function will determine the elements with Procurement Type 0 for the BF
category elements and populate these quantities to the 3rd Party PO Receipts key figure.
Z_APO_BAPI_RESULT_S
This function module is basically a copy of the APO_BAPI_PBSRVAPS_GETDETAIL_S Bapi. This is used
to receive key figure data from the planning book and is used in the ZAPCBO_SDPOPTLOG Badi that
modifies the input log of the optimizer. The unique feature of this function module is that is does a
call within the function module to receive the output data of the Bapi without starting a new
simsession, which would cause errors when returning to the planning book.
The inputs for this will calculate the 9AUBSTOR and the DMDCON (if in the Plan To Forecast data
view) and populate the data into the input log. This feature allows us to not require the data to be
stored in the time series before running the optimizer, which increases the performance of the
planning books.
Z_APO_BAPI_SELECT_GET_ORDID
This is a copy of the standard Function Module APO_BAPI_SELECT_GET_ORDID and is used later in
the Z_BAPI_SLSRVAPS_GETLIST2 Function Module which is then used in the CIMSUP interface to read
external orders. The standard Bapi does not allow to make a selection of more than 100 entries,
therefore the standard function was copied and modified.
Z_BAPI_POSRVAPS_GETLIST3
This is a copy of the standard Bapi BAPI BAPI_MOSRVAPS_GETLIST3 and is used in the CIMSUP
interface to read external orders. The standard Bapi does not allow to make a selection of more than
100 entries, therefore the standard function was copied and modified.
Z_BAPI_SLSRVAPS_GETLIST2
This is a copy of the standard Bapi BAPI_SLSRVAPS_GETLIST2 and is used in the CIMSUP interface to
read external orders. The copy was taken to make use of the previously stated function module
Z_APO_BAPI_SELECT_GET_ORDID which allows for a selection larger than 100 entries.
Z_OTC_COVER_CALC
This calculation is used in the old SNP planning books in order to consider a bucket with no demand
as a covered day in the days coverage calculation. This is not used in the new Gold Model Planning
Books. The standard coverage calc is used in the macros.
9.4
Reports
ZAPCBOSDPOPTLOG_U
This report calls the ZAPCBO_SDPOPTLOG transaction to update the ZAP_SDPOPTLOG table, which is
later used in the ZAPCBO_SDPOPTLOG Badi which modified the input log of the optimizer.
ZAPO_COPYPLAN
This program is designed to be able to take a time series key figure and use the contents of this time
series key figure to generate liveCache elements. The solution was developed for the France Biscuits
192
Co-Packing solution which uses the global stock co-packing dat a view to modify the plan at an
aggregated level and subsequently create distribution receipt subcontracting from these quantities.
In this code it is hard coded to work only for subcontracting receipt elements. It is not possible to
check, delete and create any other type of transactional elements.
This program uses the selection criteria to decide how to create the livecache elements. The input
parameters in the program allow the elements to specify the version, source and destination of the
elements and the horizon that is to be recreated.
There are basically four bapis that are used to execute this functionality:




BAPI_PBSRVAPS_GETDETAIL2 – gets the time series data from the input in the selection
screen
BAPI_POSRVAPS_GETLIST3 – gets the current subcontracting elements from livecache
BAPI_POSRVAPS_DELMULTI – then deletes the previously extracted elements
BAPI_POSRVAPS_SAVEMULTI3 – creates the new subcontracting elements that have been
extracted from the time series data
ZAPO_MULTIMIXRES_U
This transaction allows for the update of the ZAPO_MULTIMIXRES table which is later used by the
ZBUCKET_RESOURCES Badi to modify the setup activity flag for PPDS PDSs with alternative modes.
ZAPO_RRP_SNP2PPDS2
This program is used to to allow the planners from biscuits business to drop the PPDS orders with
End date as Friday every week while converting SNP orders to PPDS orders. Also there is one more
requirement to change the source of supply from Inforecord to Contract against the vendor while
converting the SNP Preq to PPDS Preq.
The program is basically a copy of /SAPAPO/RRP_SNP2PPDS however the heuristics settings use the
inputed heuristics setting in the selection as opposed to the hard coded
/SAPAPO/HEU_SNP_CONVERT function which is defined in standard (see lines 170-200 of Z program
compared to same lines of standard)
ZAPO_STOCKUPLOAD_U
This is the stock upload program specific for Greece. The program contains inputs that define the file
to be sourced and the source and destination locations which are later used to create the stock
quantities via the Bapi.
As forecast is done in ECC S700 table on Business unit level and sent to APO. This forecast is sent to
APO and updated on the GR97 plant. This forecast is for all the Greek plants but since the BU is a one
to one mapping these values will only be updated to GR97. Heuristics then runs on the location level
and it considers the stock of GR97 only and cannot consider the other Greek DC’s stocks. Due to this
the net requirements are getting generated with more quantities which is affecting the DRP. This
program will get all the Greek DC’s stocks and upload them to GR97.
193
This program accesses the FTP server in APO and using Bapis creates the necessary stocks. The
BAPI_STSRVAPS_SAVEMULTI Bapi is used to create the stocks in livecache after the data is processed
ZAPO_STOCK_BALANCING_R
This program is unique to France biscuits and is run in job FR_AP-APO_SFRXAP0026 which is
scheduled every day at 12:15. This job contains two steps which will specifies each source and
destination location to be balanced.
The program runs from a specifically developed planning book and data view: GM_STK_BAL - 1 STK
BAL. This data view contains the specific key figures which are required to execute this program. In
the input parameters of the program the key figures for the quantities available to balance and
demand to balance. The key figures to be used, the SNP planner and the categories to be created are
required inputs into the functionality of this program.
This program creates SNP Deployment elements which can then be used to create Deployment
elements which can later be used to create TLB elements and execute stock movements.
ZAPO_VARIANT_MOD_U
This program is used to update the variant contents of the TSCOPY program which is required to
populate the Global stock planning area with data from the livecache sourced planning area. As it is
not possible to have a dynamic selection in the standard SNP MPOS we need the ability to align the
selection criteria in the macro steps with the copy step.
This program checks the action ID defined in the ZCORSC02733_DEF table to check the steps that
have been created and use the selection criteria from the /sapapo/ts_batch_run step to populate the
contents of the /sapapo/rts_copy step of the same action ID. The selection criteria should contain
either ZZCROSSPLANT or ZZFAMILY as the selection criteria. Furthermore it is not possible to use
wildcards when selecting the data in the planning book, it is required to have specified each Cross
Plant Planner or Family that is to be updated. If wildcards are used the program will fail. (see updated
variant program)
ZAPO_VARIANT_UPD_U
This program is an updated version of the previously created variant update program. This allows
specific programs to be updated, which depends on the selection screen. This program will then
check the inputted field value and then its contents in the appropriate table and subsequently use
the same functionality as in the previous program to update the variant contents of the defined
program.
This program supports wildcards and ranges to be used in selecting the data. This program needs to
be aligned with the fields that are used for selecting the data in the planning books in order to
ensure consistency between the macro step that calculates the data in livecache then saves it to the
time series key figure and the tscopy selection.
ZCORSC03390R01
This program calls the ZCORSC03390 transaction to allow for a change of a resource variant capacity.
194
ZCORSC03461R01
This is the program used for the CIMSUP interface. There are three jobs that use this program all of
which use the CFDICIMSUP variant:



FR_AP-APO_SFRXAP0009
FR_AP-APO_SFRXAP0036
FR_AP-APO_SFRXAP1015
This requirement is to transfer the mid to long term production plan to the CIMSUP system in the
form of STR documents. In standard APO functionality we cannot extract orders at the vendor
location (Customers with numbers starting with VE). The standard BAPI BAPI_POSRVAPS_GETLIST3,
does not allow the location to have the VE* prefix. To enable this functionality we need to amend
this program to pass the the vendor number without the VE* prefix.
In the selection screen the Source and the Destination locations are defined as well as the SNP
planner that is used to select the products. The category group is also defined along with the horizon
to be checked. Finally the destination system is defined.
The information from the selection criteria is modified to remove the prefix then passed to the
function module Z_BAPI_SLSRVAPS_GETLIST2 (see above). Once the elements are received the data
is sent to the destination system via the ALE_SLSRVAPSIF_RECEIVELIST2 function module.
ZIRQREDUCT_DEL
This is a simple program to delete the contents for the ZIRQREDUCT table.
ZMTI_APOKG2HR_U
This transaction is called via the ZMTI_APOKG2HR transaction and is used to update the
ZAPOCONVERT table. After the transaction updates the table it also will immediately update the
product master data to include the newly maintained hour to kilo conversion.
ZOTC_APO_IF_APO2APO
This program will allow us to upload stock, boundaries from one APO instance to another. As Europe
and APAC systems are in two separate boxes we need to be able to send forecast, boundaries and
stock to the partner system to calculate the net requirements. Allocations are also sent back to the
other system.
This program works directly from the ZIF_CONVERSION table and requires entries in order for the
program to work properly.
The different elements in this program are executed via Call Functions to execute Bapis in the
partner system.



BAPI_STSRVAPS_SAVEMULTI2 - used to send the stock data.
BAPI_SLSRVAPS_GETLIST2 – gets sales orders from the target system
BAPI_POSRVAPS_SAVEMULTI3 – saves the allocations after they are fetched from the target
system
195
ZOTC_APO_IF_IN_OUT_U
This program is main program that executes all interfaces that are dependent on the FTP APO file
directory. The various scenarios that are allowed with this program are:



Score - is 70 different countries all use the same hub to bring their demands from their
specific ECC systems. It is a different planning system that is used for planning, not in ECC. It
is one common system for all different ECC boxes. Demand, stock and MD is extracted from
this singular system to bring data into APO. As well Frozen shipments, forecast, and master
data is also sent to the score.
S700 (Whitespace) –Demand data that is taken from S700 table and loaded into a remote
cube in APO.
As well allocations and IDOs are sent back to S700 via
ZOTC_APO_IF_IN_OUT_U using SNP planner and BU code.
Interco Tool - Used by Biscuits to extract data from website and upload the excel files
via the ZOTC_APO_IF_IN_OUT_U program (Inbound Indicator ). This saves the data from the
excel to the FTP server. Also the allocation can be use the ZOTC_APO_IF_IN_OUT_U
program to download file to user computer, however most use receipts view and send data
to Interco customers.

Bertha - Demand file compiled from several Bertha files (15 in total) to one file and loaded
via an infopackage in an infocube from which the demand is released.
There are two main programs that are being used
ZOTC_APO_IF_IN_OUT_U and ZOTC_APO_MERGE_DEMERGE_U.
to
manage
all
interfaces:
This program manages the inbound and outbound processing of FTP files that are stored in the file
directory (AL11). There are five processing options for this program:
1. Inbound - Used to upload files to FTP server from specified file directory
This process is used to upload only Interco stocks and demands into APO from a specified file
location. The Demand process will upload a user’s CSV file to the AL11 FTP server, which will
then be ready for processing by the process chain that is executed on Monday at 14:00. The
Stock option will update the FTP file specified and then immediately create the LC category
element. This is the same functionality for the allocation option. As well with the allocation
option you can specify the time period for which you want to delete the current allocation
figures. It is possible to create SNP or PPDS order types depending on the flag.
2. Outbound – Can be used to download ATP categories to specified file directory
This indicator creates a CSV file at a specified file destination according to the selection
criteria that is entered. Most users rely on the receipts view to extract this data rendering
this option a bit obsolete since only allocation elements are required.
3. Outbound to S700 – Used to update file on FTP server which is used by ECC to update S700
This option updates the FTP file with the allocation data back to S700 BUs. CONTROLM then
launches a job on the ECC side to create the allocation quantities for the BUs in ECC.
196
4. Inbound Score – Used to import stock, master data and forecast data from Score
Processes FTP file to prepare and load master and transactional data from Score data.
Executed on Mondays and Wednesdays. There are five options for inbound processing:
Split / Format Files – Splits and prepares complied file to be loaded for demand, master data
and stock
Map Allocation – Prepares allocation data to be created in livecache
Stock – Creates stock livecache data from previously split file
Master Data – updates min and max boundaries from previously split file
Allocation – creates allocation data in livecache from previously mapped file
Monday: Inbound: Forecast and Stock file from SCORE to APO – IF1
Wednesday evening: Inbound: Allocation Inbound from SCORE to APO – IF9
5. Outbound Score – used to send IDOs and allocations back to score
Selects livecache data according to selection criteria and prepares the data for the FTP file
creation. For static data and demand the information is demerged by BU, for Frozen
shipments and allocation it is demerged by sourcing plant.
Wednesday night: Outbound: Allocation Outbound from APO to SCORE – IF8H
Monday Morning: Outbound: Frozen Shipment from APO to SCORE - IF3B
ECC Development for IN_OUT program
 ZAPO_sS700 ViewTable used to extract data from ECC S700 table
 Demand is loaded into S700 table by users
 Demand is validated Monday morning by users and should be available by 6 a.m. from white
space demand. All other external demand is loaded in the afternoon so extract is taken starts
at 2 p.m
Jobs using APO_IF_IN_OUT program
1. EU_AP-APO_SEUXAP0060 - Monday afternoon 14:00 CET files are loaded to APO FTP server
from Score IF1, Bertha and Interco (manual) – (gathering all the demand)
i. Bertha and interco is loaded with correct format, however IF1 is not read to
be loaded
b. IF1 files are merged because there are multiple files – selection is *BU.IMP
i. Score files
1. 100150BU.IMP
2. 100160BU.IMP
c. Process called Split file, which splits IF1 file into three readable APO files
i. Master Data - During split if the product does not exist in livecache then
error message into the application log and entry is removed from the file
1. Object for error log is ZSCORE
197
2.
3.
4.
5.
2. Subobject ZIN (or ZOUT)
3. Always customer locations need to find a way to filter products that
are being sent from Score which are not APO relevant
4. Currently creating too many errors to assess issues. Asking Score to
send the proper information
5. Product location and min max boundary updating data or creating
the customer location and master data
6. When
creating
location
master
data,
check
PRODUCT_DEFAULT_VALUE and since IF1 has the ship to data a
transportation lane could also be created automatically
7. During split all master data needs to be converted
8. BU code to Customer location via /sapapo/loc
9. Score plant codes to APO MU code via same
10. Conversion of min and max – sent in weeks
ii. Stock – same master data conversion and CA and CC is created via Bapi
iii. Demand – conversion of master data and loaded into DP Cube
d. EVENT SENDS to start Process Chain Receive Non-APO Demand from Multiple
Sources (Weekly)
e. Infopackages are executed for:
f. Bertha composite file – XL Source characteristic in EXTDEM
g. S700 (whitespace) remote cube – WS characteristic in EXTDEM
h. IF1 composite file – SC source characteristic in EXTDEM
i. Interco tools (Biscuits) – IC source characteristic in EXTDEM
j. Then release from cube
EU_AP-APO_SEUXAP0061 - Two files are sent; a Master data file & a file that contains all
demands at BU location
a. Monday morning CONTROLM job runs to extract static file which contains:
i. Product, BU location, Min. lot size, & Rounding value
b. Then ->Monday morning also IF1 Out with demands at BU locations from static file
MD contains:
i. All demands, Stock, & Boundaries
c. And-> IF3B file which is frozen shipments (TLB quantities)
EU_AP-APO_SEUXAP0119A – nSkep variant that loads and nightly plan from the nSkep
system.
a. First step processes the file and merges the data to a common file for processing
b. The allocation is then mapped and processed to put the proper timings
c. PP orders are deleted
d. Allocations are then created
e. PP orders are then exploded to create the dependent demand on the components
EU_AP-APO_SEUXAP0034 – sends data to S700 for specific SNP planners from the LTD
version on Thursday night
a. Each step contains a specific SNP planner: BB, BF, BI, & BS
EU_AP-APO_SEUXAP0031 – sends data to S700 for specific SNP planners from the LTD
version on Thursday morning after the LTD run. This also contains copack SNP planners
198
6. EU_AP-APO_SEUXAP0062 – used to send allocation data to Score. The selection criteria
contains specific BUs as well as the plant codes in SCORE. The second step of this job then
populates the file and loads it to the FTP server. The job runs on Thursday morning after the
LTD run
ZOTC_APO_MERGE_DEMERGE_U
This program is directly related to the ZOTC_APO_IF_IN_OUT program as it processes the files on the
FTP server, for both inbound and outbound files. The main functions of this program can split the file
into master data, stock and forecast. It can also prepare the data to be loaded into external systems
and place them on the FTP server
ZOTC_ORDER_PRIORITY_U
This program is executed in the Belgian and French heuristics/deployment batch jobs. It updates the
order priority according to the selection criteria.
ZPPDS_MAXCAPA
This is an obsolete program that is used to define the downtimes for APO resources.
ZPPDS_MAX_CAPA
This is an obsolete program that is used to define the downtimes for APO resources.
ZSLO_ANALYSIS_APO
SAP supplied program with minor modifications that is used to set the blocking indicator on
transportation lanes.
ZXCDPSUSERU02
Part of user exit ZAPOCDPS which allows the ability to select only partially confirmed process orders
for later use in automated rescheduling process, job UK_AP-APO_SUKXAP0030
ZXCIFPUB1U15
Include for user exit: ZCFPEP
ZXCIFUSERU05
Include for user exit: ZAPOCF03
ZXCIFUSERU08
Obsolete include for product default value. Now uses Badi.
ZXCIFUSERU09
Include program for user exit: ZCFEPI
ZXCIFUSERU15
Include program for user exit: ZAPCFO11
ZXCIFUSERU43
Include program for user exit: ZCIF_INT
ZAPO_DP_SELECTION_U
This report launches transaction ZAPO_DP_SEL, see above.
199
ZAPO_FCST_DESTINATION
This report launches transaction ZAPO_FCST_DEST, see above.
ZCORCBC001 / ZCORCBC01
This report launches transaction ZCORCBC01, see above.
ZCORSC02733
This report launches transaction ZAPO_BATCH_JOB, see above.
ZCORSC03413O01A
This report allows updating TVAR variables (see 3.18 on Use of dynamic and TVAR variables).
9.5
BADI’s
ZAPAPO_PPT_SELECT
This BADI allows the selection of secondary resources in the Product Planning Table which can then
be used for scheduling. This is generally specific for Biscuits and was originally used extensively in
Herentals.
ZAPAPO_PPT_SELRES
This uses RESOURCE_IS_VALID_RTO section of BADI to allow for scheduling and selection of
secondary capacities in the Product Planning Table (directly linked to above BADI).
ZAPCBO_CUST_VEND
In ECC vendors and customers are different objects while in APO both objects are defined as
locations. In Mondelez ECC system a vendor and a customer may have the same code. With the CIF it
is not possible to copy both in APO as this copy would result in code conflict. The solution to avoid
any errors is to add a prefix to the location code in APO so as to differentiate vendors from
customers.
ZAPCBO_PROD_DEFAULT
Badi that takes care of how specific fields of the product location master in APO are populated when
they are coming via the CIF. In APO on each location we need to maintain a product
“PRODUCT_DEFAULT_VALUE” that is then used in the transfer.
ZAPCBO_SDPOPTLOG
This is the modification to the optimizer input log. The main adjustments that are made:



Automatic calculation of the storage upper bound using BAPI to prevent the requirement of
storing the data in time series before running the optimizer.
Use of minimum capacity penalty to introduce a cost for not using 100% of the minimum
defined capacity. This is directly tied to the ZAPCBO_SDPOPTLOG transaction which
maintains the resources and cost that is to be defined for this modification.
Use of BAPI to get DMDCN key figure which uses macro function ZAPO_GET_REDUCED_FCT
in order to plan only forecast without sales order consumption. This will only work if running
the optimizer from the PLAN TO FORECAST planning book where the macro exists.
200
ZAPO_AM_ALERTLIST
This modification allows for the inclusion of the ZZFAMILY field from the product master into the
alert monitor which is used for HUB planners. This also contains a modification to include Customer
Hierarchies to the alert monitor as well for DP related alerts.
ZAPO_CIF_DELTA3
This modification is to remove any heuristics purchase requisitions from being seen in the CCR
report. The RELEVANT_FOR_COMPARE_R3_PO section of this modification allows for us to prevent
the visualization of objects for a specific location that has been maintained in the
ZAPO_CHGPOINT_SL table and for the categories specified in the ZBC_CONST table
As we are not sending planned purchase requisitions to the ECC system we prevent the selection of
these elements in the CCR report as to prevent them from being pushed through.
ZAPO_CRESCIF
This modification prevents the marking of the reference resource flag when sending resources
through the CIF.
ZAPO_PPT_SORT_MAT
This BADI allows for users to sort products according to the master data maintained for the products
selected. The sort sequence is identical to the logic in the SNP planning books.
ZAPO_SAPAPO_CL_EX_CI
This modification has an exception table in ZBC_CONST with the program name field:
ZAPO_SAPAPO_CL_EX_CI and the field name: C_PROD_PLANT. If an entry is not maintained in the
ZBC_CONST table then as confirmation messages come through the CIF for process orders the
automatic rescheduling of these orders is not carried out. This means that the start date and finish
date remain as was originally stated in the process order itself.
ZAPO_SDP_INTERACT
There are two seperate pieces that are used by SNP and DP to modify the planning book features.


GRID_SORT – Uses product master data to sort products when drilling down in the SNP
planning book. This functionality will work only if the user has placed the Z_SORT_SEQUENCE
parameter for their user. If this setting is maintained then the sort logic will sort products
according to the following fields that can be found in the /sapapo/matkey table:
1. Line
2. Family
3. Product Type
4. Extra Sort Attribute
FCODES_EXCLUDE – Removes the master forecast profile button
ZAPO_SDP_SELECTOR
This modification has pieces used by both SNP and DP to modify the selection criteria in the planning
books.
201




F4 – Allows users to use the F4 function in the planning books to search for available Family
or Cross Plant Planner in the selection field of the planning books
INIT_OBJECT_LIST – Uses the ZAPO_CNTRY table to map roles to countries which is used for
DP security purposes. This allows is used for SNP functionality to include the Production
Planner, Family, Cross Plant Planner, Procurement Type, VMI Planner, Transportation
Planner, and Demand Planner
LOC_PROD_VALUE_LIST – Includes the selection criteria from the above object list section to
support the selection of elements for the APO LOCATION PRODUCT object according to these
fields.
SELECTION_CHECK – For demand planning for security check via the ZAPO_CNTRY table
entries.
ZAPO_SNP_CONV
Used for the conversion of SNP to PPDS to allow the orders to be dropped into the same bucket the
order was placed. This functionality will only work when calling the BADI from the
ZAPO_RRP_SNP2PPDS2 transaction.
ZAPO_TLB_DISP_CHG
This modification populates the promo flag and order priority in the TLB view. The TLB structure
/SAPAPO/MSDP_TLBALVGRID_STR is appended using these fields. The priority logic is used currently
only by France Biscuits.
ZBUCKET_RESOURCES
This modification contains several parts which are used for the modification of PDSs.


CIF_IMPORT – Populates the bucket consumption data automatically when creating a PPDS
PDS in APO. The information is derived from the continuous consumption field in the PDSs
and inserted into the bucket consumption field. The code is from OSS Note: 1138338
BEFORE_SAVE – Since the standard use of multi-mixed resources does not allow the use of
setup matrixes due to an indicator not being set on the PPDS PDS upon creation, we are not
allowed to use setup matrixes when moving orders from the mode which uses the multimixed resource to alternative modes which have single mixed resources and should support
the use of setup matrixes. By setting this indicator on the PPDS PDSs for the mode which as
the multi-mixed indicator we can then see the proper use of our setup matrix when
switching to alternative modes. The indicator that needs to be set is the Setup Activity
indicator on the setup activity.
ZCDPS_ORDDATA
This BADI is executed when transaction/SAPAPO/CDPSB0 is executed or when a background job is
triggered using transaction /SAPAPO/CDPSB1, provided the correct option is selected for the
planning object. It is primarily required at the Sheffield location to select process orders that have
been partially completed so that a batch job can be executed to reschedule these orders. This
ensures that the availability of the WIP is recalculated after completion confirmation for the
depositing operation.
202
ZCORSC1478
This modification will set the release date and time of the forecast from DP to SNP using the product
master data attribute 4 field in the location master.
ZPDS_PPT_MATTEXT
This BADI will show the PDS and material description for the corresponding rows in the product
planning table.
ZRECEIPTVIEW_STFAC
The RRP_USEX_COLS_FILL_02 section of this BADI allows for the inclusion of the stacking factor to
the Receipts view which is populated from the product master data.
ZSAPAPO_PWB_SOS
The two functionalities here allow for the suppression of the popup in the SNP planning books when
manually entering either an SNP Planned order or a Distribution receipt element. The dependency to
determine which sources of supply are seen as valid by the user are determined by the procurement
priority on the source of supply and the user parameter Z_SOS_TO_PROC_PRIO. The value that is
maintained against the user parameter will be seen as the minimum priority valid, and any value
above that value will automatically be removed from possible valid sources.
ZSAPAPO_RRP_SRC_EXIT
The RRP_USEX_SOURCE_FILTER section of this BADI is implemented from OSS Note 854561.
9.6
User exits
ZAPCFO11
This user exit contains program ZXCIFUSERU15 and used for the Greece Stock creation program. The
user exit is dependent on an entry in the ZAPO_LOC_PLANNER to determine the source and
destination locations for the SNP planners that are used for selection.
ZAPOCDPS
This user exit contains the program ZXCDPSUSERU02 which allows the ability to select only partially
confirmed process orders for later use in automated rescheduling process, job UK_APAPO_SUKXAP0030
ZAPOCF03
This user exit contains program ZXCIFUSERU05 and is limited to only the products that have the
Attribute 3 entry maintained as defined in the ZBC_CONST table for program ZXCIFUSERU05. The
products that meet this selection criteria will have the goods issued quantities logged in the
ZXCIFUSERU05 table.
ZCFEPI
This user exit contains the ZXCIFUSERU09 program. Due to a specific export process, a STR generated
in APO sent to ECC will convert the source MU of the STR to a vendor location for specific locations
and specific products. As a result in ECC, a purchase requisition will be created at the destination
location with the vendor (instead MU) as the source location. ZAPOVENDOR_MD table is maintained
in order to make this process product specific. Now when the STR is CIFed from ECC to APO with an
203
initial transfer the requirement part of the STR is removed and only the receipt part stays in APO. In
order to correct this development is needed in order to recreate the requirement part of the STR.
This development must exclude the STO/PO as we don’t want the requirement part of the STO to be
recreated in APO.
ZCFPEP
This user exit contains the program ZXCIFPUB1U15. In inter-company import process, stock transfers
created in APO are sent via CIF to ECC as receipts for receiving company and demands for supplying
company. In case the supplying company is not maintained in ECC, the information sent from APO to
ECC has to be amended so as to be converted to purchase requisitions instead of stock transfers. In
addition, when the company supplying the products is defined with different codes in ECC and APO,
for example supplying company LU Belgium is defined as vendor K2007 in ECC while it is defined as a
distribution center BE05 in APO. The conversion from APO code to ECC code has to be done in APO
before the data is sent to ECC.
The elements that are to be filtered from ECC publishing is defined in the ZBC_CONST table. It is also
possible to use the ZAPO_CHGPOINT_SL table where the locations will result in a filtering in objects
for that location.
ZCIF_INT
This user exit contains program ZXCIFUSERU43. Due to a specific process in the export process the
purchasing info records are sourcing from a vendor location for the export and specific products. In
order to have the correct demand in APO on the MU, this development will convert the source of the
PIR to a corresponding MU. This information is in the table /SAPAPO/LOC_ALI. A new table
ZAPOVENDOR_MD will also be used in order to make this change only product location specific.
9.7.
Extra fields product master
Via EEWB additional fields are added to the product master that will then appear in /SAPAPO/MAT1
or to the location master in /SAPAPO/LOC3.
204
205
10. SP rollout projects & support topics
10.1. Example cutover plan SP
The attached Excel file shows an example of a cutover plan for SP.
Cutover Steps.xlsx
10.2. Example system test/health check SP
The attached Excel file shows an example of what steps to follow after for example a system refresh
to check if the general functionality works properly.
Health Check & Tech
Test.xlsx
10.3. Transition to new GM* Planning books
The new GM* planning books have many features that are different from the old legacy SNP
planning books, most notably; the safety stock calculation, the new Time Series planning area, a new
time series demand key figure and the removal of the ZOTC_SCHEDEP functionality for the
background job heuristics data views.
These new features require that the legacy configuration that is referencing the old planning books
must be changed. Variants for both heuristics and deployment, as well as many of the alert jobs will
need to be changed to reference the new books.
User Setup Modifications
Selection Profiles
As the users will be working with new planning areas and planning
books we may need to recreate the selection profiles in the new
planning books. It is important to remember that ALL newly created
selection profiles MUST follow the new naming convention:
LOCATIONCODE_GM_*** for example GB05_GM_*****.
With the use of the Z_SELECTIONS query we can extract the known
selections for the planning areas that are used by the users. Once we
have the list of the complete selection profiles they want to recreate
we will have to manually replicate these with the naming convention
in the required planning areas.
Alert Profiles
206
As with the selection profiles we should request the alert profiles that are being used by the users
and modify them to include the required selection profile and to reference the new GM* planning
books.
SP Adjustments
Master Data Settings
The first change that is required is for the location to use the ZST stock category. This is due to the
use of the INITIAL_STOCK logic in the detailed level macros. This functionality allows for the use of
product master data changes to affect the stock that is available for planning without the
requirement to use other master data flags.
The other master data change that would be required is the safety days’ supply value. The reduction
of this value should be dependent on the distribution demand that comes into the location. This way
the adjustment of the safety stock logic would be minimalized with the new logic, which uses the
total demand not only the forecast, sales and dependent demand values.
Heuristics & Deployment Variants
Selection profiles that are used in the heuristics jobs will need to be recreated in the new GM_SP_BJ
planning book using the same selection criteria as in the previous selection. It is important to
remember that the batch job selection variants MUST follow the new ZBATCH_* naming convention.
It will not be possible to create the exact same name of the selection profile for the new planning
areas, furthermore the naming convention ensures a clean and organized system.
If we are to transport the variants from the Development system, it is crucial we ensure that the
variant content is matching what is in production. For example, the reduction/deletion of the SNP
Stock Transfers and the horizons may be different in the development system, therefore the
transport would adversely affect the variant once the transport arrives to production.
Once the selection profiles are created the job variants that are used in the jobs can be adjusted to
reference the new selection profiles. The short term heuristics should have a specific job setup as
well as the long term heuristics. If we take Poland as an example for the changes that would be
required would be the adjustment of the highlighted Planning Books and Data Views for the
selections seen under Data View Variant. The new selection profiles should be identical to the
previous ones, however they should be created in the GM_SP_BJ Planning Book and the 02 LT HEUR
& 03 ST DEP Data View
CONTROLM JOB
PL_AP-XXX_SPLXAP0001
Planning Book
Data View
Data View Variant
Program
Program Variant
/SAPAPO/RLCDELETE
CGPDM_DELETION
SP_ENGINE
LT HEUR
CGPDH_L4
/SAPAPO/RSNPDRP1
CGPDH_L4
SP_ENGINE
LT HEUR
SELECT_DRP1LPL
/SAPAPO/RSNPDRP1
CGPDH_L1
SP_ENGINE
LT HEUR
CGPDH_L3
/SAPAPO/RSNPDRP1
CGPDH_L3
SP_ENGINE
LT HEUR
CGPDH_L2_A
/SAPAPO/RSNPDRP1
CGPDH_L2_A
SP_ENGINE
LT HEUR
CGPDH_L2_B
/SAPAPO/RSNPDRP1
CGPDH_L2_B
SP_ENGINE
LT HEUR
CGPDH_L2_C
/SAPAPO/RSNPDRP1
CGPDH_L2_C
SP_ENGINE
LT HEUR
CGPDH_L2_D
/SAPAPO/RSNPDRP1
CGPDH_L2_D
207
PL_AP-XXX_SPLXAP0002
PL_AP-XXX_SPLXAP0006
PL_AP-XXX_SPLXAP0007
PL_AP-XXX_SPLXAP0009
PL_AP-XXX_SPLXAP0011
PL_AP-XXX_SPLXAP0012
PL_AP-XXX_SPLXAP0014
SP_ENGINE
LT DEP
CGPDD_L1
/SAPAPO/RMSDPDEP
CGPDD_L1
SP_ENGINE
LT DEP
CGPDD_L2
/SAPAPO/RMSDPDEP
CGPDD_L2
SP_ENGINE
LT DEP
CGPDD_L3
/SAPAPO/RMSDPDEP
CGPDD_L3
/SAPAPO/RLCDELETE
GPWDELPL
SP_ENGINE
LT HEUR
CGPDH_L4
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L4
SP_ENGINE
LT HEUR
SELECT_DRP1LPL
/SAPAPO/RSNPDRP1
GPWDRP1LPL
SP_ENGINE
LT HEUR
CGPDH_L3
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L3
SP_ENGINE
LT HEUR
CGPDH_L2_A
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2A
SP_ENGINE
LT HEUR
CGPDH_L2_B
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2B
SP_ENGINE
LT HEUR
CGPDH_L2_C
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2C
SP_ENGINE
LT HEUR
CGPDH_L2_D
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2D
SP_ENGINE
LT DEP
CGPDD_L1
/SAPAPO/RMSDPDEP
CGPDD_L1
SP_ENGINE
LT DEP
CGPDD_L2
/SAPAPO/RMSDPDEP
CGPDD_L2
SP_ENGINE
LT DEP
CGPDD_L3
/SAPAPO/RMSDPDEP
CGPDD_L3
/SAPAPO/RLCDELETE
GPWDELPL
SP_ENGINE
LT HEUR
CGPDH_L4
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L4
SP_ENGINE
LT HEUR
SELECT_DRP1LPL
/SAPAPO/RSNPDRP1
GPWDRP1LPL
SP_ENGINE
LT HEUR
CGPDH_L3
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L3
SP_ENGINE
LT HEUR
CGPDH_L2_A
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2A
SP_ENGINE
LT HEUR
CGPDH_L2_B
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2B
SP_ENGINE
LT HEUR
CGPDH_L2_C
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2C
SP_ENGINE
LT HEUR
CGPDH_L2_D
/SAPAPO/RSNPDRP1
GPWDRP1LPL_L2D
SP_ENGINE
LT DEP
CGPDD_L1
/SAPAPO/RMSDPDEP
CGPDD_L1
SP_ENGINE
LT DEP
CGPDD_L2
/SAPAPO/RMSDPDEP
CGPDD_L2
SP_ENGINE
LT DEP
CGPDD_L3
/SAPAPO/RMSDPDEP
CGPDD_L3
/SAPAPO/RLCDELETE
CGPDM_DELETION
SP_ENGINE
LT HEUR
CGPDH_L4
/SAPAPO/RSNPDRP1
CGPDH_L4
SP_ENGINE
LT HEUR
CGPDH_L3
/SAPAPO/RSNPDRP1
CGPDH_L3
SP_ENGINE
LT HEUR
SELECT_DRP1LPL
/SAPAPO/RSNPDRP1
CGPDH_L1
CGPDH_L2_A
/SAPAPO/RSNPDRP1
CGPDH_L2_A
SP_ENGINE
LT HEUR
CGPDH_L2_B
/SAPAPO/RSNPDRP1
CGPDH_L2_B
SP_ENGINE
LT HEUR
CGPDH_L2_C
/SAPAPO/RSNPDRP1
CGPDH_L2_C
SP_ENGINE
LT HEUR
CGPDH_L2_D
/SAPAPO/RSNPDRP1
CGPDH_L2_D
SP_ENGINE
LT DEP
CGPDD_L1
/SAPAPO/RMSDPDEP
CGPDD_L1W
SP_ENGINE
LT DEP
CGPDD_L2
/SAPAPO/RMSDPDEP
CGPDD_L2W
SP_ENGINE
LT DEP
CGPDD_L3
/SAPAPO/RMSDPDEP
CGPDD_L3W
SP_ENGINE
LT DEP
CGPWD_L1
/SAPAPO/RMSDPDEP
CGPWD_L1
SP_ENGINE
LT DEP
CGPWD_L2
/SAPAPO/RMSDPDEP
CGPWD_L2
SP_ENGINE
LT DEP
CGPWD_L3
/SAPAPO/RMSDPDEP
CGPWD_L3
/SAPAPO/RLCDELETE
CGPDM_DELETION
SP_ENGINE
LT HEUR
CGPDH_L4
/SAPAPO/RSNPDRP1
CGPDH_L4
SP_ENGINE
LT HEUR
SELECT_DRP1LPL
/SAPAPO/RSNPDRP1
CGPDH_L1
SP_ENGINE
LT HEUR
CGPDH_L3
/SAPAPO/RSNPDRP1
CGPDH_L3
SP_ENGINE
LT HEUR
CGPDH_L2_A
/SAPAPO/RSNPDRP1
CGPDH_L2_A
208
SP_ENGINE
LT HEUR
CGPDH_L2_B
/SAPAPO/RSNPDRP1
CGPDH_L2_B
SP_ENGINE
LT HEUR
CGPDH_L2_C
/SAPAPO/RSNPDRP1
CGPDH_L2_C
SP_ENGINE
LT HEUR
CGPDH_L2_D
/SAPAPO/RSNPDRP1
CGPDH_L2_D
SP_ENGINE
LT DEP
CGPDD_L1
/SAPAPO/RMSDPDEP
CGPDD_L1
SP_ENGINE
LT DEP
CGPDD_L2
/SAPAPO/RMSDPDEP
CGPDD_L2
SP_ENGINE
LT DEP
CGPDD_L3
/SAPAPO/RMSDPDEP
CGPDD_L3
For the Deployment jobs it should be noted that the LTD Deployment that is executed on
Wednesday, Thursday and Friday night, there should be a specific job setup for this deployment. This
job should use the 01 LT DEP Data View that is found in the GM_SP_BJ Planning Book. The LTD
deployment job should run after the daily heuristics jobs/deployment jobs run and as well after the
LTD copy is taken. This is very important in that the Long Term Deployment MUST have the short
term deployment already calculated and copied into the LTD version.
The LTD copy once it is executed we need to ensure that the short term deployment is taken with
this copy so that the subsequent LTD deployment that is run is run on top of the ST Deployment step.
As the LTD deployment will not use the ZOTC_SCHEDDEP functionality we can expect a decrease in
runtime of this job.
For a complete list of all jobs that need to be adjusted and the variants that are used, please check
the Central Team site.
Alert Variants
Alert background jobs run for each country run daily every morning. These jobs execute the DEPAL
activity, which will need to be switched to the DEPALGM activity. However in order to switch the
activity a new Background Job must be created referencing the new GM planning books.
Once the background job is created we can adjust the /SAPAPO/TS_BATCH_RUN job to run the
previously created Background Job. This would prevent us from having to create a new CONTROLM
job and only adjust the execution variant.
After the job is setup the alert monitor variants would need to be adjusted to reference the new
GM* planning books as well as the selection profile for the products that need to be checked in that
alert profile variant.
209
Stock Balance Program
Specifically for France Biscuits the Daily Stock Balancing program would need to be adjusted to use
the new GM* stock balancing books. There are two variants that exist for the Stock Balancing
program in France:
Each variant references the SP_STK_BAL data view which is required for the program to run. There
would need to be a change to these variants to move to the new GM_STK_BAL data view.
210
PP Adjustments
The main adjustments required for production planners will be for the changes of the Global Stock
update steps in the ZAPO_BATCHJOB table. There are also overall updates for each country that will
need to be updated along with the adjustment to use the new ZAPO_VARIANT_UP program to
update the TSCOPY variant contents.
For the individual jobs that are setup for the countries in the ZAPO_BATCH job table the entries in
the table itself will not need to be changed, however the contents of each step will require a
modification. This first step will be to create the Background jobs to execute both the TSCOPY macro
and the macro in the new GM_GLOBAL_STK data view. For each step the selection profile will have
to be copied into the new Z9ASNP04TS planning area under the new GM_PP_BJ data view for the
first macro step. For the second macro job that runs in the ZGLOBALSTK planning area, the selection
will exist, but the background job will have to reference the new GM_GLOBAL_STK data view. For
further information on how to create the background jobs please see section 6.10 above.
Once the background jobs are created the /SAPAPO/BATCH_JOB_RUN program variants that exist in
the ZAPO_BATCHJOB table can be updated to reference the newly created background job. The
variant should be saved and then only the /SAPAPO/RTSCOPY variants will need to be adapted to use
the new source planning area. For specific details on how to ensure the proper setup of the TSCOPY
step please see section 6.10 above which covers the required key figure mapping and specifics for
the copy step.
211
Not only the steps in the ZAPO_BATCHJOB table will need to be updated, but
also the jobs that are running for each country to update the Global Stock Data
view each morning. For a detailed list of PP jobs that are being run please see
the attached document. This shows the CONTROM jobs, the steps and the
variants that are used to execute the Global Stock Update jobs for each country.
PP Job
Structure.xlsx
During the transition a change from the ZAPO_VARIANT_MOD program should be made to use the
ZAPO_VARIANT_UP instead. This change would require that for each country the variants that are
used to run the macros should have all of the Cross Plant Planners for that country that is run, the
TSCOPY variant should as well have ALL of the products that are required to update. Therefore this
program should as well contain ALL of the Cross Plant Planners in the variant:
This variant will then update the GB06_ALL TSCOPY variant to include ALL products that have the
Cross Plant Planners that are contained in this program’s variant.
Once this variant is created, we will have to coordinate with CONTROLM to adjust the job found in
the embedded spread sheet above to use the new program with the newly created variant for this
program.
France Multi-pass Adjustment
For the France Heuristics and Deployment jobs there is a unique setup that uses alternative legacy
data views and planning books using a prioritized logic to the deployment calculation. This process
was called the multi-pass and the steps for the jobs can be seen in the below table:
CONTROLM JOB
Planning
Book
Data View
Data View Variant
FR_APXXX_SFRXAP0320
Program
Program Variant
MASSBACK
TDUR_96
/SAPAPO/RLCDELETE
BFDMDELFRWS
/SAPAPO/RLCDELETE
BFDMDELFRDOM
/SAPAPO/RLCDELETE
BFWIDELIMP
MASSBACK
BFDMST1
MASSBACK
BFDMPDL0
MASSBACK
BFDMCPVPPL
MASSBACK
BFDMCPVDEF
MASSBACK
BFDMCPVSSFM
MASSBACK
BFDMCPVSSATC
MASSBACK
BFDMCPVSSDYAD
MASSBACK
BFDMCOPPF
/SAPAPO/TS_LCM_QUEUE_U
PDATE
212
/SAPAPO/BACKGROUND_SC
HEDULING
/SAPAPO/BACKGROUND_SC
HEDULING
FR_APXXX_SFRXAP0032
BFWCBOMEXPL
BFWCDEPDEM
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L2_DEP
/SAPAPO/RSNPDRP1
BFDHDOML3
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOML2
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFX_MU
/SAPAPO/RSNPDRP1
BFDHDOMMU
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFX_BU
/SAPAPO/RSNPDRP1
BFDHDOMBU
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L1_HEUR
/SAPAPO/RSNPDRP1
BFDHDOML1
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFI
/SAPAPO/RSNPDRP1
BFWICOMAN
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L1_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP0
/SAPAPO/RLCDELETE
BFDMDELFRDO1
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOMP1
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L2_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP1
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L4_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP12
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L5_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP13
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L2_DEP_DOM
/SAPAPO/RMSDPDEP
BFDDDOMP1A
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOMP2
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L2_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP2
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L4_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP22
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L5_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP23
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L2_DEP_DOM
/SAPAPO/RMSDPDEP
BFDDDOMP2A
ZOTC_ORDER_PRIORITY_U
BFDMDOMFR
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOMP3
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L2_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP3
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L4_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP32
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L5_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP33
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L2_DEP_DOM
/SAPAPO/RMSDPDEP
BFDDDOMP3A
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L3_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP4
MASSBACK
FR92-91-24
/SAPAPO/TS_LCM_QUEUE_U
PDATE
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFM_FR91
/SAPAPO/RSNPDRP1
BFDHDOMFM
SP_ENGINE
LT DEP
OFFSET 1
BF_B_SNP_PLANNER_BFC_FR92
/SAPAPO/RMSDPDEP
BFDDDOMFM
MASSBACK
BFDMST0
MASSBACK
FR92-91-96
MASSBACK
TDUR_24
MASSBACK
BFDMSTCPK
/SAPAPO/TS_LCM_QUEUE_U
PDATE
FR_APXXX_SFRXAP0034
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOMP3
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L2_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP3
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L4_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP32
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L5_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP33
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L2_DEP_DOM
/SAPAPO/RMSDPDEP
BFDDDOMP3A
213
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L3_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP4
MASSBACK
/SAPAPO/TS_LCM_QUEUE_U
PDATE
FR92-91-24
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFM_FR91
/SAPAPO/RSNPDRP1
BFDHDOMFM
SP_ENGINE
LT DEP
OFFSET 1
BF_B_SNP_PLANNER_BFC_FR92
/SAPAPO/RMSDPDEP
BFDDDOMFM
MASSBACK
FR92-91-96
MASSBACK
BFDMCPVPPL
MASSBACK
BFDMCPVDEF
MASSBACK
BFDMCPVSSFM
MASSBACK
BFDMCPVSSATC
MASSBACK
BFDMCPVSSDYAD
MASSBACK
BFDMCOPPF
MASSBACK
/SAPAPO/TS_LCM_QUEUE_U
PDATE
FR92-91-24
/SAPAPO/RSNPDRP1
BFWH18MFM
MASSBACK
/SAPAPO/TS_LCM_QUEUE_U
PDATE
FR92-91-96
/SAPAPO/RSNPDRP1
/SAPAPO/BACKGROUND_SC
HEDULING
BFWCFR92COP
SP_ENGINE
PP_KG
LT HEUR
CROSS
LOCATION
VIEW
BF_B_SNP_PLANNER_BFM_FR91
FR92_COP_BGJOB
BFWCDDFR92
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L2_HEUR
/SAPAPO/RSNPDRP1
BFWH18ML2
PP_KG
CROSS
LOCATION
VIEW
FR79_COP_BGJOB
/SAPAPO/RSNPDRP1
/SAPAPO/BACKGROUND_SC
HEDULING
BFWCFR79COP
MASSBACK
BFDMST0
MASSBACK
TDUR_24
MASSBACK
/SAPAPO/TS_LCM_QUEUE_U
PDATE
BFDMSTCPK
MASSBACK
TDUR_96
/SAPAPO/RLCDELETE
BFDMDELFRWS
/SAPAPO/RLCDELETE
BFDMDELFRDOM
/SAPAPO/RLCDELETE
BFWIDELIMP
MASSBACK
BFDMST1
MASSBACK
BFDMPDL0
MASSBACK
BFDMCPVPPL
MASSBACK
BFDMCPVDEF
MASSBACK
BFDMCPVSSFM
MASSBACK
BFDMCPVSSATC
MASSBACK
BFDMCPVSSDYAD
MASSBACK
/SAPAPO/BACKGROUND_SC
HEDULING
/SAPAPO/BACKGROUND_SC
HEDULING
BFDMCOPPF
FR_APXXX_SFRXAP0340
214
BFWCDDFR79
BFWCBOMEXPL
BFWCDEPDEM
/SAPAPO/TS_LCM_QUEUE_U
PDATE
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L3_HEUR
/SAPAPO/RSNPDRP1
BFDHDOML3
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOML2
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFX_MU
/SAPAPO/RSNPDRP1
BFDHDOMMU
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFX_BU
/SAPAPO/RSNPDRP1
BFDHDOMBU
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BF*_L1_HEUR
/SAPAPO/RSNPDRP1
BFDHDOML1
SP_ENGINE
LT HEUR
BF_B_SNP_PLANNER_BFI
/SAPAPO/RSNPDRP1
BFWICOMAN
SP_ENGINE
LT DEP
BF_B_SNP_PLANNER_BF*_L1_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP0
/SAPAPO/RLCDELETE
BFDMDELFRDO1
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOMP1
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L2_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP1
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L4_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP12
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L5_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP13
SP_ENGINE
ST PASS 1
BF_B_SNP_PLANNER_BF*_L2_DEP_DOM
/SAPAPO/RMSDPDEP
BFDDDOMP1A
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L2_HEUR_DOM
/SAPAPO/RSNPDRP1
BFDHDOMP2
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L2_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP2
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L4_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP22
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L5_DEP
/SAPAPO/RMSDPDEP
BFDDDOMP23
SP_ENGINE
ST PASS 2
BF_B_SNP_PLANNER_BF*_L2_DEP_DOM
/SAPAPO/RMSDPDEP
BFDDDOMP2A
ZOTC_ORDER_PRIORITY_U
BFDMDOMFR
For the steps that use the ST PASS 1 & 2 Data Views those can completely be removed from the
CONTROLM job structure as the selection variant would be run in the previous steps. The LT HEUR
data view should be mapped to the LT HEUR data view in the GM_SP_BJ planning book and the LT
DEP view should be mapped to the ST DEP data view in the GM_SP_BJ planning book.
For the two variants that use the PP_KG Cross Location View, those can be removed as the current
selection criteria is specific for location AAA, which does not exist. This means these two steps are
not serving a purpose.
As the removal of the ST PASS steps and the PP_KG steps would reduce the overall size of these jobs,
it may be possible to consolidate all of the steps into a single job. This would simplify the job
structure and harmonize it with the other Deployment and Heuristics jobs.
As with the other heuristics and deployment jobs it will be crucial to first replicate the selection
profiles to the new GM_SP_BJ planning book using the naming convention ZBATCH_*.
BI extraction and stock projection
BI extracts the liveCache orders from specific planning areas. As for the GM* books we needed to
create new planning areas, we ideally need to use these to do the extractions. However, as for BI we
just run one extract of all data, we cannot switch to using the GM* planning area until all countries
start using this and abandon the old views. Therefore as part of the last transition of countries from
old to new books, the BI flow should be revised and updated to use the GM* planning area. This is
relevant for all BI extracts. More specifically for the stock projection we use a separate planning book
215
with separate macros only used for the purpose of populating the stock projection in a time series
key figure which is then extracted. This planning book and the macro jobs related to it would need to
be updated as well at the same point in time. See the chapter on the BI interface on more details on
the current setup.
10.4. Naming conventions for configuration objects
To keep matters understandable, it is recommended to use naming conventions when working on
the configuration. The rules listed here are unfortunately not always followed, but should be a
guideline for any future changes. Also it is handy to copy existing jobs and just change the relevant
characters
-
Planning books: GM*
SNP Planner: see product master data
User selections: *
Job selections (not touched by users): ZBATCH*
For BI conventions check directly with BI Team.
10.5. Transport Guidelines
When doing configuration changes it’s important to keep track of what has been changed and what
needs to be transported. To organise transport the Revtrac system is used, which means a transport
can only be created against a specific Revtrac which will be a logical collection of transport requests
for a specific change, development or support ticket. The necessary approval will need to be
provided to move revtracs and another team will then take care of the transport itself.
We can make a distinction between APO SP related transports and APO BI related ones. For APO DP,
most objects can be transported via /SAPAPO/MSDP_ADMIN. Go to your planning area and then to
Menu Goto -> Transport Connection. Here planning books, DP jobs, selections,… can be gathered. Be
aware that transporting a planning book means transporting all of its data views, its macros, its setup
as it is in Design mode,…
BI transports are tricky as well as the sequencing might be problematic. Before you can transport an
object here you will need to assign an object directory entry. To do this a transport package will be
asked. We usually use ZAPO for this (set up in SE21). Then, making sure all objects are selected is
difficult, so you either put everything in a transport immediately at the time of configuration. Like
this you just need to make sure you keep everything in just one transport request, or in several ones
where dependencies are respected. Example:
1)
2)
3)
4)
5)
6)
7)
Info Areas
Info Object Catalogues
Info Objects
Data Sources / Info Sources / Info Cubes / DSO
Infosets / Multiproviders
Transformations / DTP / Update rules / Infopackages
Process chains & variants
216
8) BEX elements
Or you do it at the end by using the standard collection mode option in RSA1 -> Transport
Connection. Here all type of BI objects can be selected and the system will automatically choose its
dependent objects as well. It is easy, but the danger is you might transport a lot of objects that do
not need to be transported if they were already before. Like this they might lock objects in transports
that are being worked on by other people for other topics.
Note: Some objects, like Data Sources are linked technically to the system ID. This implies that the system ID
needs to be updated when transporting to the target system ID. To do this a table needs to be maintained
directly in the target system which can be found by going to RSA1 -> Transport Connection and hitting button
“Conversion”.
Result is a list of source and targets. For
example a data source created in the APO
development box on the planning area would
need an entry with the APO development
system as a source and the APO production
system as a target. Similarly, if a data source is
activated in the ECC development system, an
entry is needed with the ECC development
system as source and the ECC production
system as target. All entries are maintained
inside this one table in APO directly. When
being transported, the data source will be
updated respectively.
Additional note to keep in mind when you create a Data Source in APO or ECC you need to manually
replicate it to have it available in the BI part of the system. This generates a dependency when doing
transports. For an APO Data Source type RSDS (newer version of BI) it is fairly easy to solve this by
transporting the highlighted two versions of the Data Source, where one is the Data source on a
planning area and the second one is the active version in BI. For APO Data source of the old BI
version this is not possible and a manual replication needs to be done in the target system before
any transports dependent on the Data Source, like transformations, can be moved. The same counts
for Data Sources that exist in ECC. This has an impact on the go live of these objects as usually there
is only one list of transports. Either the Basis team must temporarily stop their transport activities
until you manually replicated the Data Source, or you have to separate transports in wave 0 and
wave 1, as usually in a project phase there are several waves of transports, and do the manual
replication in between.
217
Note: When transporting a change of sequence in steps of process chains, it is not needed to resend all steps.
Just the chain itself is sufficient. The steps already exist in the target system and will be rearranged by the
transport
Note: When transporting variants of programs in a process chain (like TSCOPY or ABAP programs), be aware
that you are just transporting the process chain step variant, which contains a link to the actual variant of the
program. This actual variant will not be transported with it, but needs to be gathered separately (which can be
done in the same transport request). A way to do this is to go to SE38, choose the program and click variants.
Then go to menu Utilities -> Transport request. Here you can choose any program and any variant that is
needed and add it to a transport.
Most objects need to be transported always and cannot even be created or changed in production
environments. However, some changes can be made directly in the production system but preferably
need transporting, because any later transport of these objects might change them back to their
previous state. These changes are:
-
changes in the sequencing in process chains
changes in the filters of Data Transfer Process
the creation of Info Packages
changes in selections of Info Packages
changes in selections in interactive planning that are used in background jobs
creation of macros used to do a calculation that needs to be done only once + the creation of the
related background job
Some other changes are preferably not transported but done in all systems manually unless it
concerns completely new objects:
-
activation of Master Planning Object Structure after changing an attribute of a characteristic in the
MPOS
Changes to key figures settings in the planning area like disaggregation settings or planning area
dependent parameters
Adding on new key figures to an existing and active Planning Area.
Other changes can be done directly in the production system:
-
Entries in ZAPO_BATCHJOB
10.6. Support topics
Forecast release errors
First thing to remember is that the release is managed by the Forecast Destination Flag. If this is
blank (default), the forecast is only sent to SNP. If it is “1”, forecast is sent to S700 only. If it is “2”,
the forecast will go to both SNP and S700. This flag is maintained per sales organisation and channel.
218
We have seen issues in the past were it was only maintained for some of the channels linked to one
product.
Messages in job log after release to SNP:
-
-
Release successfully executed
Product X does not exist => Is product supposed to have forecast in DP? Is the destination flag wrong
and should it be sent to S700? Is there a CIF issue on the SNP side?
Location Y does not exist => Is location supposed to have forecast in DP? Is there a CIF issue on the
SNP side?
Product X in location Y in model 000 does not exist => Is the product location supposed to have
forecast in DP? Is the destination flag wrong and should it be sent to S700? Is there a CIF issue on the
SNP side?
Deletion flag set for product X at location Y => Is the deletion flag wrong in SNP? Should the forecast
be moved to another product location in DP?
Network/Location changes
1) Change of sourcing MU:
- Set validity dates on old transportation lane to finish on required date
- Setup transportation lane on new source with required dates
- If there is an overlap between validity dates, setup quota arrangements or use the
procurement priority field on the lanes
2) New MU is setup in the network
- Transportation lanes between existing DC and the MU need to be set up
3)
-
New DC is added into the network
Forecast must be released on this new DC (DP responsibility)
Transportation lanes are setup between the sources of supply and the DC
Stock balancing is setup if needed
4) Replacement of DC in network
- Forecast must be released on this new DC and not any longer on the old one (DP
responsibility)
- Set validity dates on old transportation lanes to finish on required date
- Transportation lanes are setup between the sources of supply and the DC
- If there is an overlap between validity dates, setup quota arrangements or use the
procurement priority field on the lanes
5)
-
2 DC are joined into 1
Forecast must be released only on the remaining DC (DP responsibility)
Set validity dates on old transportation lanes to finish on required date
Remove stock balancing process if needed
Batch monitoring: Convert failed steps to successful in process chains
In some cases it might be worth not rerunning a batch step when it failed, particularly in the daily
batch which is repeated every night. To not lose time an approach might be to convert the failed step
219
into a successful one for the next step to be trigged as it might be waiting for success. To do this, go
to the log of the step that failed in the process chain (via RSPC or RSPCM) and retrieve details like
Instance, Variant and Parameter. Go to SE16 and enter in table RSPCPROCESSLOG and filter on the
Instance and Variant to find the latest LOGID value.
Finally go to SE38 to launch program
RSPC_PROCESS_FINISH and provide the LOGID
and other parameters. Put field STATE to G,
which will change the step to successful.
Performance: Process Chain runtime analysis
When looking at performance issues it is useful to analyse the runtime of process chain steps. A
helpful way to achieve this is by going to SE38 and running program /SSA/BWT and choosing
“Process Chain Analysis”. Here you can filter by chain or by process type.
Result is a list of the chain runs during the specified time period with all time & job variant details.
220
221
Download