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