Table of Contents outline true
Access Management
| Panel | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
List of application role + menu role and explanation if we have several applications role with specials rules.
Project Costs and Structures Analysis - End User role Application Role:
ZBI_RCS_CO_A21 CBS Project costs Reporting Analysis - End User role Application Role:
|
| Panel | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
List of authorization objects mandatory for the application.
0COMP_CODE;C_COMPCDE;C_PMORDER__0COMP_CODE | Company, role: ZR_*_CA_P01 | 0PROFIT_CTR__CPFCTR1_2; 0PROFIT_CTR__C_PFCTR1;CPFCTR1_2;C_AGRITM__CPFCTR1_2; | C_ASSET2__C_PFCTR1;C_ASSET__C_PFCTR1;C_MATPLNT__CPFCTR1_2; C_MATPLNT__C_PFCTR1;C_MATPNT2__CPFCTR1_2;C_PFCTR1; C_PMORDER__C_PFCTR1;C_PMORDR__C_PFCTR1;C_PRDEQUI__CPFCTR1_2; C_RECONTR__CPFCTR1_2;C_RESP_CC__CPFCTR1_2;C_SUBACT2__CPFCTR1_2 C_TECMAT__CPFCTR1_2;C_WBS_EL2__CPFCTR1_2;C_WBS_EL2__C_ZSECT;C_WBS_ELE__CPFCTR1_2; C_WBS_ELE__C_ZSECT;C_ZSECT GBU, role: ZR_*_CA_P05 | C_FAMIL;C_WBS_EL2__C_FAMIL;C_WBS_ELE__C_FAMIL | Family, role: ZR_*_CA_P04 | |
2.0 DataFlow
2.1 Overview
Use the google presentation below as a template. This google presentation must be saved in the Reporting GDrive folder under the corresponding application. Then post the link to the document here.
Reporting documentation drive folder:
https://drive.google.com/drive/folders/0B0qn89R0RGdqYkZZOFZyYXlXVkE
Exemple of dataflow overview :
Template Application name DataFlow
2.2 Technical Rules on Workbench
Explanation for the process on the technical side. Can be specific cases or general rules depending on the scope.
2.2 Dependencies with other applications
We should have the information where the application is sending or receiving information (e.g. APD open hub)
See also file maintained by Authorization team :
|
DataFlow
Overview
Multi Provider MVSDSO50 - OTIF Global - DATA FLOW
This multi provider is used to manage the OTIF indicators for all sales processes (Solvay & Rhodia)
Embedded Google Drive File url https://docs.google.com/presentation/d/1IQOFCNMLPKPGir_a281Ppg9DRyJxKdEC7BmwvxP4Qkw/edit fullwidth true height 900
MP Details - characteristics
Details - Key Figures
Cube CRSDSO10 - OTIF Sales (Solvay) Cube CRSDSO50 - OTIF Sales (Rhodia)
Multi Provider MVSDSO51 - OTIF Transfer Global - DATA FLOW
This multi provider is used to manage the OTIF indicators for all sales and transfer processes (Solvay & Rhodia)
Embedded Google Drive File url https://docs.google.com/presentation/d/1mHfiz6JXptq324Kd50I2ga2-yBIJlnTmdCHIxLt1XRA/edit?usp=sharing fullwidth true height 900
Cubes:
CRSDSO54: PO: OTIF Transfer (Rhodia)
As part of the change # 4028391,excluded return items from this cube .Added filter in below DTP's to exclude Return Items.
DTP: DBSDSO91 -> CRSDSO54 (Rhodia)
DTP: DBSDSO91 -> DBSDSO9E (Rhodia)
DTP: DBSDSO98 -> CRSDSO24 (Solvay)
DTP: DBSDSO98 -> DBSDSO9F (Solvay)
CRSDSO24: PO: OTIF Transfer (Solvay)
As part of the change # 4028391,excluded return items from this cube .Added filter in below DTP's to exclude Return Items.
DTP: DBSDSO91 -> CRSDSO54 (Rhodia)
DTP: DBSDSO91 -> DBSDSO9E (Rhodia)
DTP: DBSDSO98 -> CRSDSO24 (Solvay)
DTP: DBSDSO98 -> DBSDSO9F (Solvay)
CRSDSO50: SO: OTIF Sales (Rhodia)
CRSDSO10: SO: OTIF Sales (Solvay)
Multi Provider MVSDSO60 - MP Sales & Transfer for OTIF with Order Book dates - DATA FLOW
This multi provider is used to manage the OTIF indicators for all sales and transfer processes (Solvay & Rhodia) matched with order book snapshot data, in order to know the opened orders
Embedded Google Drive File url https://docs.google.com/presentation/d/1Lh1u0UrYQEZbKw6aeMLUeNdiF5xfzAGFwQy_DfPnDEQ/edit?usp=sharing fullwidth true height 900
Details - DSO's used in MP
This multi provider is based on two cubes that receive data from DSO's that mix data from OTIF and order book snapshot. The DSO's used here are: DBSDSO9A (OTIF Sales & order book Solvay), DBSDSO9B (OTIF Sales & order book Rhodia), DBSDSO9E (OTIF Transfer & order book Solvay), DBSDSO9F (OTIF Transfer & order book Rhodia)
MP Details - Characteristics
MP Details - Key figures
Technical Rules on Workbench
Main documentation:
Preparation
Embedded Google Drive File url https://docs.google.com/presentation/d/1tYNtMsS2suBHLfPgsMhJCJFBMCDFAc8oCBsvXnWcNOg/edit#slide=id.p4 fullwidth true height 900
Design
Embedded Google Drive File url https://docs.google.com/document/d/1-eanlwLoknFZcnHWsmsZ0NTzSREGgFIwTPVLz3mEuyk/edit fullwidth true height 900
Embedded Google Drive File url https://docs.google.com/spreadsheets/d/1SO2S7EtmytVHlc2nMODOXpmLlOBVdUY6sMDG-h06TGA/edit#gid=321922425 fullwidth true height 900
Deployment
Embedded Google Drive File url https://docs.google.com/spreadsheets/d/16ejsixBYtNUmtIFVzn2PztWyrj5nutN75TFA1BkGcsk/edit#gid=332417701 fullwidth true height 900
Business Rules
Get the GBU code
For Rhodia
Using distribution channel and division from material, get the IECRA code in master data C_CDSA
Using IECRA code, get the sub-activity in master data g_cwwe01
For Solvay
using business area, get the technical business area in master data c_techba
The function above is used to fill zeros left
The code below takes the GBU code from master data sub-activity (g_cwwe01)
Calculation Rules (DBSDSO98 / DBSDSO91 / DBSDSO60 / DBSDSO20)
Define the ship end date type according to the content of fields actual shipment, planned shipment of GI date
Define the good issue date reference
Redefine the good issue date reference when the order is a pickup
Define the achieved delivery date and achieved shipment datte
Determine In Full requested considering the lower and upper tolerance
Generate the in full requested detailed with terms light, heavy or yes
Determine In Full confirmed measure considering the lower and upper tolerance
Generate the in full confirmed detailed with terms light, heavy or yes
Determine the differences between delivery quantity and requested quantity
Generate on time delivery customer request (OTD CR)
Consider special NON OTIF reasons as OTIF
Generate group of delays for OTDCR
Generate OTDCR delay days
The same rules are applied for OTDFC, OTDLC, OTSCR, OTSFC, OTSLC just changing the date to be considered, see below:
For OTDFC uses the dates → v_dif_date = v_fstatp - v_shp_eact (difference between max first ATP and shipment end date)
For OTDFC uses the dates → v_dif_date = v_lstatp - v_shp_eact (difference between max last ATP and shipment end date)
Define the dates used in OTS CR (ON TIME SHIPMENT Customer request)
For OTSCR uses the dates → v_dif_date = v_lstrqgi - v_gi_date (difference between max actual GI date and last req delivery)
For OTSFC uses the dates → v_dif_date = v_firstgi - v_gi_date(difference between max actual GI date and first ATP GI)
For OTSLC uses the dates → v_dif_date = v_lastgi - v_gi_date (difference between max actual GI date and last ATP GI)
Generate OTIF necessary comment or reason
Generate NON OTIF Type
Determine LEADTIME calculations (DBSDSO9B / DBSDSO9A / DBSDSO91 / DBSDSO60 / DBSDSO20).
Leadtime 1: difference between the customer PO Date (order line level - VBKD-BSTDK), and the requested material availability date
Leadtime 2: difference between the customer PO Date (VBKD-BSTDK), and the achieved GI date (Max Actual GI Date)
Leadtime 3: difference between the customer PO Date, and the requested delivery date (Max Last Req Delivery]
Leadtime 4: difference between the customer PO Date and the achieved delivery date (Achieved Delivery Date)
Leadtime 5 : LeadTime Requested = Order line creation date - order line last customer req Goods Issue date
Leadtime 6 : LeadTime FirstCommitted = Order line creation date - schedule line 1st ATP (confirmed) GI date
Leadtime 7 : LeadTime Actual = Order line creation date - actual GI date
Leatime 8 : Last Req GI date - Customer PO
Leatime 9 : First Req GI date - Customer PO
Reporting
| Type | Tech Name | Description | Formula |
|---|---|---|---|
| CKF | BW_CKF_MVSDSO50_0001 | Confirmed Qty (PUQ) | CML_CF_QTY |
| CKF | BW_CKF_MVSDSO50_0002 | Order Qty (PUQ) | CML_OR_QTY |
| CKF | BW_CKF_MVSDSO50_0003 | Delivery Qty (PUQ) | DLV_QTY |
| CKF | BW_CKF_MVSDSO50_0010 | In Full | IF K_INFULLR = 1 AND K_INFULLC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0011 | Not In Full | IF K_INFULLR = 0 OR K_INFULLC = 0, then 0 |
| CKF | BW_CKF_MVSDSO50_0012 | Not in Full but OTDCR | IF K_INFULLR = 0 AND K_OTDCR = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0013 | In Full & OTDCR | IF K_INFULLR = 1 AND K_OTDCR = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0014 | In Full & OTDFC | IF K_INFULLR = 1 AND K_OTDFC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0015 | In Full & OTDLC | IF K_INFULLR = 1 AND K_OTDLC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0016 | Not In Full but OTDLC | IF K_INFULLR = 0 AND K_OTDLC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0017 | Not in Full but OTDFC | IF K_INFULLR = 0 AND K_OTDFC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0018 | In Full & OTSCR | IF K_INFULLR = 1 AND K_OTSCR = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0019 | In Full & OTSFC | IF K_INFULLR = 1 AND K_OTSFC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0020 | In Full & OTSLC | IF K_INFULLR = 1 AND K_OTSLC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0021 | Not In Full but OTSCR | IF K_INFULLR = 0 AND K_OTSCR = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0022 | Not In Full but OTSFC | IF K_INFULLR = 0 AND K_OTSFC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0023 | Not In Full but OTSLC | IF K_INFULLR = 0 AND K_OTSLC = 1, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0024 | Not In Full Not OTDCR | IF K_INFULLR = 0 AND K_OTDCR = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0025 | Not In Full Not OTDFC | IF K_INFULLR = 0 AND K_OTDFC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0026 | Not In Full Not OTDLC | IF K_INFULLR = 0 AND K_OTDLC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0027 | Not In Full Not OTSCR | IF K_INFULLR = 0 AND K_OTSCR = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0028 | Not In Full Not OTSFC | IF K_INFULLR = 0 AND K_OTSFC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0029 | Not In Full Not OTSLC | IF K_INFULLR = 0 AND K_OTSLC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0030 | In Full but Not OTDCR | IF K_INFULLR = 1 AND K_OTDCR = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0031 | In Full but Not OTDFC | IF K_INFULLR = 1 AND K_OTDFC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0032 | In Full but Not OTDLC | IF K_INFULLR = 1 AND K_OTDLC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0033 | In Full but Not OTSCR | IF K_INFULLR = 1 AND K_OTSCR = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0034 | In Full but Not OTSFC | IF K_INFULLR = 1 AND K_OTSFC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0035 | In Full but Not OTSLC | IF K_INFULLR = 1 AND K_OTSLC = 0, then K_COUNTER |
| CKF | BW_CKF_MVSDSO50_0040 | Lead Time 1 (Cust.PO X req.mat.avail) | K_SOLEAD1 |
| CKF | BW_CKF_MVSDSO50_0041 | Lead Time 2 (Cust.PO X achieved GI) | K_SOLEAD2 |
| CKF | BW_CKF_MVSDSO50_0042 | Lead Time 3 (Cust.PO X req.delivery) | K_SOLEAD3 |
| CKF | BW_CKF_MVSDSO50_0043 | Lead Time 4 (Cust.PO X achieved delivery) | K_SOLEAD4 |
| CKF | BW_CKF_MVSDSO50_0044 | Lead Time (Creation X Last Cust Req GI) | K_SOLEAD5 |
| CKF | BW_CKF_MVSDSO50_0045 | Lead Time (Creation X Sched line 1st ATP) | K_SOLEAD6 |
| CKF | BW_CKF_MVSDSO50_0046 | Lead Time (Creation X Actual GI date) | K_SOLEAD8 |
| CKF | BW_CKF_MVSDSO50_0047 | Rush Orders | IF K_SOLEAD5 < 2, THAN 1 |
| CKF | BW_CKF_MVSDSO50_0050 | OTD CR - Class 1 | IF OTD CR - Class 1 = 1 and K_OTDCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0051 | OTD CR - Class 2 | IF OTD CR - Class 2 = 1 and K_OTDCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0052 | OTD CR - Class 3 | IF OTD CR - Class 3 = 1 and K_OTDCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0053 | OTD CR - Class 4 | IF OTD CR - Class 4 = 1 and K_OTDCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0054 | OTD FC - Class 1 | IF OTD FC - Class 1 = 1 and K_OTDFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0055 | OTD FC - Class 2 | IF OTD FC - Class 2 = 1 and K_OTDFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0056 | OTD FC - Class 3 | IF OTD FC - Class 3 = 1 and K_OTDFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0057 | OTD FC - Class 4 | IF OTD FC - Class 4 = 1 and K_OTDFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0058 | OTS CR - Class 1 | IF OTS CR - Class 1 = 1 and K_OTSCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0059 | OTS CR - Class 2 | IF OTS CR - Class 2 = 1 and K_OTSCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0060 | OTS CR - Class 3 | IF OTS CR - Class 3 = 1 and K_OTSCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0061 | OTS CR - Class 4 | IF OTS CR - Class 4 = 1 and K_OTSCR = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0062 | OTD LC - Class 1 | IF OTD LC - Class 1 = 1 and K_OTDLC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0063 | OTD LC - Class 2 | IF OTD LC - Class 2 = 1 and K_OTDLC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0064 | OTD LC - Class 3 | IF OTD LC - Class 3 = 1 and K_OTDLC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0065 | OTD LC - Class 4 | IF OTD LC - Class 4 = 1 and K_OTDLC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0066 | OTS FC - Class | IF OTS FC - Class 1 = 1 and K_OTSFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0067 | OTS FC - Class 2 | IF OTS FC - Class 2 = 1 and K_OTSFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0068 | OTS FC - Class 3 | IF OTS FC - Class 3 = 1 and K_OTSFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0069 | OTS FC - Class 4 | IF OTS FC - Class 4 = 1 and K_OTSFC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0070 | OTS LC - Class | IF OTS LC - Class 1 = 1 and K_OTSLC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0071 | OTS LC - Class 2 | IF OTS LC - Class 2 = 1 and K_OTSLC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0072 | OTS LC - Class 3 | IF OTS LC - Class 3 = 1 and K_OTSLC = 0 THEN 1 |
| CKF | BW_CKF_MVSDSO50_0073 | OTS LC - Class 4 | IF OTS LC - Class 4 = 1 and K_OTSLC = 0 THEN 1 |
| RKF | BW_RKF_MVSDSO50_0001 | # orderline with actual arrival date | C_DTTYPE2 = ASE, KF=K_COUNTER |
| RKF | BW_RKF_MVSDSO50_0002 | OTD CR - Class 1 | C_OTDCRDG = A, KF=OTD CR - Class 1 |
| RKF | BW_RKF_MVSDSO50_0003 | OTD CR - Class 2 | C_OTDCRDG = B, KF=OTD CR - Class 2 |
| RKF | BW_RKF_MVSDSO50_0004 | OTD CR - Class 3 | C_OTDCRDG = C, KF=OTD CR - Class 3 |
| RKF | BW_RKF_MVSDSO50_0005 | OTD CR - Class 4 | C_OTDCRDG = D, KF=OTD CR - Class 4 |
| RKF | BW_RKF_MVSDSO50_0006 | OTD FC - Class 1 | C_OTDFCDG = A, KF=OTD CR - Class 1 |
| RKF | BW_RKF_MVSDSO50_0007 | OTD FC - Class 2 | C_OTDFCDG = B, KF=OTD CR - Class 2 |
| RKF | BW_RKF_MVSDSO50_0008 | OTD FC - Class 3 | C_OTDFCDG = C, KF=OTD CR - Class 3 |
| RKF | BW_RKF_MVSDSO50_0009 | OTD FC - Class 4 | C_OTDFCDG = D, KF=OTD CR - Class 4 |
| RKF | BW_RKF_MVSDSO50_0010 | OTS CR - Class 1 | C_OTSCRDG = A, KF=OTS CR - Class 1 |
| RKF | BW_RKF_MVSDSO50_0011 | OTS CR - Class 2 | C_OTSCRDG = B, KF=OTS CR - Class 2 |
| RKF | BW_RKF_MVSDSO50_0012 | OTS CR - Class 3 | C_OTSCRDG = C, KF=OTS CR - Class 3 |
| RKF | BW_RKF_MVSDSO50_0013 | OTS CR - Class 4 | C_OTSCRDG = D, KF=OTS CR - Class 4 |
| RKF | BW_RKF_MVSDSO50_0014 | OTD LC - Class 1 | C_OTDLCDG = A, KF=OTD LC - Class 1 |
| RKF | BW_RKF_MVSDSO50_0015 | OTD LC - Class 2 | C_OTDLCDG = B, KF=OTD LC - Class 2 |
| RKF | BW_RKF_MVSDSO50_0016 | OTD LC - Class 3 | C_OTDLCDG = C, KF=OTD LC - Class 3 |
| RKF | BW_RKF_MVSDSO50_0017 | OTD LC - Class 4 | C_OTDLCDG = D, KF=OTD LC - Class 4 |
| RKF | BW_RKF_MVSDSO50_0018 | OTS FC - Class 1 | C_OTSFCDG = A, KF=OTS FC - Class 1 |
| RKF | BW_RKF_MVSDSO50_0019 | OTS FC - Class 2 | C_OTSFCDG = B, KF=OTS FC - Class 2 |
| RKF | BW_RKF_MVSDSO50_0020 | OTS FC - Class 3 | C_OTSFCDG = C, KF=OTS FC - Class 3 |
| RKF | BW_RKF_MVSDSO50_0021 | OTS FC - Class 4 | C_OTSFCDG = D, KF=OTS FC - Class 4 |
| RKF | BW_RKF_MVSDSO50_0022 | OTS LC - Class 1 | C_OTSLCDG = A, KF=OTS LC - Class 1 |
| RKF | BW_RKF_MVSDSO50_0023 | OTS LC - Class 2 | C_OTSLCDG = B, KF=OTS LC - Class 2 |
| RKF | BW_RKF_MVSDSO50_0024 | OTS LC - Class 3 | C_OTSLCDG = C, KF=OTS LC - Class 3 |
| RKF | BW_RKF_MVSDSO50_0025 | OTS LC - Class 4 | C_OTSLCDG = D, KF=OTS LC - Class 4 |
PS: same calculated and restricted key figures were created for MVSDSO51 and MVSDSO60 multi providers.
Main queries
| Query | Description |
|---|---|
| BW_QRY_MVSDSO50_0001 | BW Sales - OTIF - Details (core query) |
| BW_QRY_MVSDSO50_0002 | BW Sales - OTIF dashboard (core query) |
| BW_QRY_MVSDSO50_0003 | BW Sales - OTIF - Summary (core query) |
| BW_QRY_MVSDSO51_0001 | BW OTIF SO&PO - Details (core query) |
| BW_QRY_MVSDSO51_0002 | BW OTIF SO&PO - dashboard (core query) |
| BW_QRY_MVSDSO51_0003 | BW OTIF SO&PO - Summary (core query) |
| BW_QRY_MVSDSO60_0001 | BW Sales - OTIF & Orderbook - Details (core query) |
| BW_QRY_MVSDSO60_0002 | BW Sales/Transfer - OTIF & Orderbook - Details (core query) |
| BW_QRY_MVSDSO60_0002_BCAST | Non OTIF Order-Lines of the Month (OTDCR) |
| BW_QRY_MVSDSO60_0003 | BW Sales/Transfer - OTIF & Dynasis Query |
| DI_BW_QRY_MVSDSO50_0001 | BW Sales - OTIF - Details (core query) |
| DI_BW_QRY_MVSDSO50_9001 | BW Sales - OTIF - Details (Dataiku Forecast) |
| QV_BW_QRY_MVSDSO60_0002 | QV -BW Sales/Transfer - OTIF & Orderbook - Details - |
| QVSCE_BW_QRY_MVSDSO50_0001 | BW Sales - OTIF QV (core query) |
| QVSCE_BW_QRY_MVSDSO51_0001 | BW OTIF (Sales & Transfer) QV (core query) |
| Workbook | Query | |
|---|---|---|
| OTIF & Order Book: Sales & Purchase Order | BW_WBK_MVSDSO60_0002 | BW Sales/Transfer - OTIF & Orderbook - Details (core query) BW_QRY_MVSDSO60_0002 |
| OTIF & Order Book: Sales Order | BW_WBK_MVSDSO60_0001 | BW Sales - OTIF & Orderbook - Details (core query) BW_QRY_MVSDSO60_0001 |
| OTIF: Sales & Purchase Order | BW_WBK_MVSDSO51_0001 | BW OTIF SO&PO - Details (core query) BW_QRY_MVSDSO51_0001 |
| OTIF: Sales Order | BW_WBK_MVSDSO50_0004 | BW Sales - OTIF - Details (core query) BW_QRY_MVSDSO50_0001 |
| OTIF: Sales & Purchase Order (Summary) | BW_WBK_MVSDSO51_0003 | BW Transfer & Sales - OTIF - Summary (core query) BW_QRY_MVSDSO51_0003 |
| OTIF: Sales & Purchase Order (Synthesis) | BW_WBK_MVSDSO51_0002 | BW Transfer PO OTIF - dashboard (core query) BW_QRY_MVSDSO51_0002 |
| OTIF: Sales Order (Synthesis) | BW_WBK_MVSDSO50_0001 | BW Sales - OTIF dashboard (core query) BW_QRY_MVSDSO50_0002 |
| OTIF: Sales Order (Summary) | BW_WBK_MVSDSO50_0003 | BW Sales - OTIF - summary (core query) BW_QRY_MVSDSO50_0003 |
Queries used to load QV applications
| InfoProvider | Query | |
| MVSDSO50 | QVBW_QRY_MVSDSO50_0001 | BW Sales - OTIF detais (qv query) |
| MVSDSO51 | QVBW_QRY_MVSDSO51_0001 | BW Sales - OTIF Transfer (qv query) |
| MVSDSO51 | QVSCE_BW_QRY_MVSDSO51_0001 | BW OTIF (Sales & Transfer) QV (core query) |
| MVSDSO50_ | QVSCE_BW_QRY_MVSDSO50_0001 | BW Sales - OTIF QV (core query) |
Embedded Google Drive File url https://docs.google.com/presentation/d/16AMaVshR9FbdmQ_gTEuBn22fpYRt764hLlsZfwBHNxI/edit#slide=id.p3 fullwidth true height 900
SCE defines 6 different OTIF indicators:
- OTIFD CR : On Time Delivery in Full (Customer Request) : Concatenates In full Requested and OTD CR
- OTIFD FC : On Time Delivery in Full (1st Confirmed) : Concatenates In full Confirmed and OTD FC
- OTIFD LC : On Time Delivery in Full (Last Confirmed) : Concatenates In full Confirmed and OTD LC
- OTIFS CR : On Time Shipment in Full (Customer Request) : Concatenates In full Requested and OTS CR
- OTIFS FC : On Time Shipment in Full (1st Confirmed) : Concatenates In full Confirmed and OTS FC
- OTIFS LC : On Time Shipment in Full (Last Confirmed) : Concatenates In full Confirmed and OTS LC
All calculation in this query is managed at Order line level. When several schedule lines matching with one same order lines we consider the sum for quantities and maximum for dates.
1 - Rules for OTIF Calculation
1.1 - On Time Delivery "On Time Delivery: it means that the calculation is based on date of arrival, they compare an achieved arrival date with a target arrival date. Achieved Delivery Date:
Achieved Delivery Date
=If([Transportation mode]="PICK UP" Or [Order Document Type Code]="KE";[V_Max Actual GI Date];If(IsNull([V_Max End of Shipment Calculated]);[V_Max Actual GI Date];[V_Max End of Shipment Calculated]))
For “PICK UP” transportation mode, Rhodia (WP1) : Last transfer order confirmation date for the order line --> FIELD LTAP-QDATU else Last Good Issue date
For “PICK UP” transportation mode, Solvay (PF1) : Last Good Issue date
For any other transportation mode : The last “Actual Shipment end” if it exists else the last “ planned shipment end” if it exists else the last “Actual good Issue”
OTD CR: If Difference between Achieved delivery date and Order line requested delivery Date is lower than – Early tolerance then “EARLY” else if Difference between Achieved delivery date and Order line requested delivery Date is greater than Late tolerance then ""LATE"" else ""OTD""
=If([Transportation mode]="PICK UP";If(DaysBetween(Last Req Delivery];[Achieved Delivery Date])<0;0;DaysBetween(Last Req Delivery];[Achieved Delivery Date])))
OTD FC: If Difference between Achieved delivery date and Orderline 1st confirmed delivery Date is lower than – Early tolerance then “EARLY” else if Difference between Achieved delivery date and Order line 1st conf delivery Date is greater than Late tolerance then ""LATE"" else ""OTD""
=If([Transportation mode]="PICK UP";If(DaysBetween([V_Max 1st ATP];[Achieved Delivery Date])<0;0;DaysBetween([V_Max 1st ATP];[Achieved Delivery Date])))
OTD LC: If Difference between Achieved delivery date and Order line last confirmed delivery Date is lower than – Early tolerance then “EARLY” else if Difference between Achieved delivery date and Order line last conf delivery Date is greater than Late tolerance then ""LATE"" else ""OTD"" "
=If([Transportation mode]="PICK UP";If(DaysBetween([V_Max Last ATP];[Achieved Delivery Date])<0;0;DaysBetween([V_Max Last ATP];[Achieved Delivery Date])))
1.2 - On Time Shipment "On Time Shipment: it means that the calculation is based on date of good issue, they compare an achieved shipment date with a target shipment date (calculated in SAP from requested delivery date, 1confirmed delivery date and last confirmed delivery date). Achieved Shipment Date: For “PICK UP” transportation mode : Last transfer order confirmation date for the order line --> FIELD LTAP-QDATU else Last Good Issue date For other transportation mode : The last “Actual GI” date
Achieved Shipment Date
=If([Transportation mode]="PICK UP" Or [Order Document Type Code]="KE";[V_Max Actual GI Date])
OTS CR: If Difference between Achieved shipment date and Order line requested GI Date is lower than – Early tolerance then “EARLY” else if Difference between Achieved shipment date and Order line requested GI Date is greater than Late tolerance then ""LATE"" else OTS.
=If([Transportation mode]="PICK UP";If(DaysBetween([V_Max Last Req GI]; ";[V_Max Actual GI Date] )<0;0;DaysBetween([V_Max Last Req GI]; ";[V_Max Actual GI Date]
OTS FC: If Difference between Achieved shipment date and Order line 1st confirmed GI Date is lower than – Early tolerance then “EARLY” else if Difference between Achieved shipment date and Order line 1st Conf GI Date is greater than Late tolerance then ""LATE"" else ""OTS""
=iF([Transportation mode]="PICK UP";If(DaysBetween([V_Max 1st ATP GI]; ";[V_Max Actual GI Date] <0;0;DaysBetween([V_Max 1st ATP GI]; [V_Max Actual GI Date] )))
OTS LC: If Difference between Achieved shipment date and Order line last confirmed GI Date is lower than – Early tolerance then “EARLY” else if Difference between Achieved shipment date and Order line Last confirmed GI Date is greater than Late tolerance then ""LATE"" else ""OTS"""
=iF([Transportation mode]="PICK UP";If(DaysBetween([V_Max 1st ATP GI]; ";[V_Max Actual GI Date] <0;0;DaysBetween([V_Max 1st ATP GI]; [V_Max Actual GI Date] )))
1.3 - Tolerances:
"Number of days based on Transportation Mode (Order Shipping Condition) OCEAN = 7 RAIL = 3 BARGE = 3 INTERMODAL = 2 ROAD = 1 AIR = 0 OTHER = 0 "
DAYS DELAY NET (APPLY THE TOLERANCE)
TOLERANCES by Shipping Conditions
AB";"AC";"AE";"AF => 7 days (ocean)
AJ => 1 day (LTL)
AK AH AI => 0 (FTL)
AU AP => 3 (Barge / Rail)
AV => 2 (multimodal)
“AL” “AW” “AX” => 0 999 days) (Pick Up)
=If([OTD CR - Delay Days]=999;999;If([OTD CR - Delay Days]=0;0;If(Abs([OTD CR - Delay Days])<=[Tolerance Days];0;If([OTD CR - Delay Days]<0;[Tolerance Days]+[OTD CR - Delay Days];[OTD CR - Delay Days]-[Tolerance Days]))))
1.4 - Exceptions:
"Customer Pick Up: uses Last transfer order confirmation date in calculation Customer Pick Up Early = OTIF Order Non OTIF Reason code starting with 7 = OTIF "
1.5 - IN FULL
In Full Calculation "In Full Request Order Quantity fits with Delivery Quantity In Full Confirmed Scheduled Line Confirmed Quantity fits with Delivery Quantity "
IN FULL REQUESTED – IFR
(Order line qty – Sum Delivery quantity) + tolerance that comes from the sales order
IN FULL CONFIRMED – IFC
(Sum Scheduled Confirmed Qty by sales order item – Sum Delivery quantity) + tolerance that comes from the sales order
1.6 - LEAD TIMES
7 lead-times have been defined by SCE (to be challenged for rationalisation)
Leadtime 1 : The Lead-time is the difference, in days, between the customer PO Date (order line level - VBKD-BSTDK), and the requested material availability date (Max in the scheduled line level).
=DaysBetween([V_Max Cust PO];[V_Max Req Material Availability])
Leadtime 2 : The Lead-time is the difference, in days, between the customer PO Date (VBKD-BSTDK), and the achieved GI date
=DaysBetween([V_Max Cust PO];[Max Actual GI Date])
Leadtime 3 : The Lead-time is the difference, in days, between the customer PO Date, and the requested delivery date.
=DaysBetween([V_Max Cust PO];[V_Max Last Req Delivery])
Leadtime 4 : The Lead-time is the difference, in days, between the customer PO Date, and the achieved delivery date
=DaysBetween([V_Max Cust PO];[Achieved Delivery Date])
Leadtime 5 : The Lead-time is the difference, in days, between the creation date and the last customer req Goods Issue date
Leadtime 6 : The Lead-time is the difference, in days, between the creation date and the schedule line 1st ATP (confirmed) GI date
Leadtime 7 : The Lead-time is the difference, in days, between the creation date and the actual GI date
1.7 - DOCUMENTS TYPES
The document types to be considered are:
GCTA | Standard Order |
KE | Consig issue |
SB | SB Third-p.dir order |
SO | SO Rush Order |
TA | Standard Order |
TAF | Standard Order (FPl) |
TAM | Delivery Order |
TAV | Standard Order (VMI) |
TD | TD Standard Order |
TDIV | TDIV Misc Op |
TSA | Telesales |
ZITI | Sales Order ITI BR |
ZORB | Standard Order BR |
ZOUT | Other Outputs BR |
ZPVA | ZPVA Ord.immed.ship. |
ZVEX | Fut. Dely Invoice BR |
ZVEY | Fut. Dely Shipmnt BR |
| NB | Standard PO |
| UB | Stock transport ord. |
Dependencies with other applications
- It was created some master data in order to have the attributes shared with several applications: Sales Order line (C_ITM_SD), PO Line (C_ITM_GS)
- Data is consumed by Qlikview dashboard. The loadings in QV are daily. It runs a fixed scheduled, the loadings must be finished when the next start.
- There is an integration with SPRINT (purchase schedule lines) in order to take the PO schedule lines and identify all the transfers
- There is a link with TIERS in order to get the main shipment for each delivery
Data Loading
3.0 Data Loading
3.1Info Providers and objects loaded
Detail of process chain, list + link between or special event done for the loading
| Main Process Chain | Final Provider Loading | Frequency | Time start | Duration |
|---|---|---|---|---|
Global Sales: CRSDSO50 (OTIF Sales) (Rhodia) PC_GL_SALES_CRSDSO50 | CRSDSO50 | Daily, not weekend | Arround 05:00 am Meta chain PC_GL_SALES_REP02 | 1 min |
Global Sales: CRSDSO10 (OTIF Sales) (Solvay) PC_GL_SALES_CRSDSO10 | CRSDSO10 | Daily, not weekend | Arround 02:45 am Meta chain PC_OBAS_REPORTING | 1 min |
OBAS: Reporting Layer Transfers Orders PC_OBAS_TRANSFERS_ODB | CRSDSO24 CRSDSO12 CRSDSO11 CRSDSO04 CRSDSO17 | Daily, not weekend | Arround 06:15 am Meta chain PC_OBAS_TRANSFERS_MAIN | 5 mins |
Global Sales: Transfers Reporting layer (Rhodia) PC_GL_SALES_PO_REPORTING | CRSDSO54 CRSDSO52 CRSDSO51 CRSDSO57 CRSDSO47 CRSDSO44 | Daily, not weekend | Arround 06:45 am Meta chain PC_GL_SALES_MAIN_PO | 5 mins |
DPS Dynasys: META - D - 6.Reporting DynaSys (Dynamic KPIs) PC_DPS_DYNASYS_15 | DPDYN04 DBDYN20 CRDYN11 | Hourly, everyday with decision. | Hourly Decision linked to values in master data global filter | 30 mins |
DPS Dynasys: META - M - 6.Reporting DynaSys (Snapshots) PC_DPS_DYNASYS_09 | DPDYN01 DBDYN13 CRDYN13 | 1 time per month the 6th day of month | 06:00 am | 1 hour |
Global Sales: CRSDSO30 (SO OTIF w/order book) (Solvay) PC_GL_SALES_CRSDSO30 SD: SO - D - Main Process Chain - Update PC_SD_MAIN | CRSDSO30 | Daily, not weekend | Arround 06:25 am Meta chain PC_OBAS_TRANSFERS_MAIN Arround 01:55 am Meta chain RSP_DAILY | 1 min 1 hour |
Global Sales: CRSDSO70 (SO OTIF w/order book) (Rhodia) PC_GL_SALES_CRSDSO70 | CRSDSO70 | Daily, not weekend | Arround 05:00 am & 07:00 am Meta chains PC_GLOBAL_SALES_MAIN PC_GL_SALES_MAIN_PO | 1 min |
1 - Main Process Chain
This process chain is responsible to trigger and syncronize all Global Sales processes chains for Solvay and Rhodia. It is scheduled to run every workday inside the Daily process chain (RSP_DAILY) after general master data PC, around 3AM (French time) and TIERS.
Sales - Part Solvay: PC_SD_MAIN (SD - Main Process Chain - UPTDATE DATA -)
Sales - Part Rhodia : PC_GLOBAL_SALES_MAIN (PC: Global Sales: Main (Rhodia))
Transfer - Part Solvay: PC_OBAS_TRANSFERS_MAIN (OBAS: Transfers Orders Main chain)
Transfer - Part Rhodia: PC_GL_SALES_MAIN_PO (PC: Global Sales: Main transfers (Rhodia))
2 - Propagation Layer
This process chain is responsible to run the loads between source system and first layer in BW.
For OTIF process, all the processes in propagation layer are run in general Global Sales Process Chain
3 - Business Layer
This process chain is responsible to load the second and third layers from propagation layer.
Main Processes for OTIF
PC_GL_SALES_DBSDSO20 (SD - Global Sales: OTIF (Solvay)) and PC_GL_SALES_DBSDSO60 (SD - Global Sales: OTIF (Rhodia))
PC_GL_SALES_DBSDSO9A (SD - Global Sales: Sales OTIF w/ Orderbook (Solvay)) and PC_GL_SALES_DBSDSO9B (SD - Global Sales: Sales OTIF w/ Orderbook (Rhodia))
4 - Reporting Level
This process chain is responsible to load all the cubes
The must important ones are:PC_GL_SALES_CRSDSO10 (SD - Global Sales: Cube CRSDSO10 OTIF Sales (Solvay)) and PC_GL_SALES_CRSDSO50 (SD - Global Sales: Cube CRSDSO50 OTIF Sales (Rhodia))
PC_GL_SALES_CRSDSO30 (Global Sales: CRSDSO30 (OTIF w/order book Solvay)) and PC_GL_SALES_CRSDSO70 (Global Sales: CRSDSO70 (OTIF w/order book Rhodia))
Data Quality Control
Transaction | Description | Corresponding table | Comments |
|---|---|---|---|
| VT03N | Shipments | VTTK, VTTS | in ERP |
| VI03 | Shipment Costs | VFKK, VFKP | in ERP |
| VL03N | Deliveries | LIKP, LIPS | in ERP |
| VA03 | Sales Orders | VBAK, VBAP | in ERP |
| ME23N | Purchase Orders | EKKO, EKPO, EKBE | in ERP |
| MM03 | Material maintenance | MARA | in ERP |
| RSUOM | Unit conversion | T005 | in BW |
| RSCUR | Currency conversion | TCURR | in BW |
https://wiki.solvay.com/display/TECHREP/BW+Authorizations?src=contextnavpagetreemode
Operational Documentation
Procedures
- When the process chain fails, the process type must be analyzed and repeated if possible.
- Sometimes a full load by period is required by user in order to syncronize all global sales data.
Scheduling
<Describe the scheduling in place for the application (eg. existing jobs, trigger time/event based, dependencies)>
Monitoring
<Describe the monitoring checks to confirm the application is performing well (eg. check the overall status, check performance metrics like runtime/data volume/memory/disk/CPU, maintain and react to alerts/notifications)>
Error Handling
<Describe how to handle errors (eg. error codes, description and respective resolution, alert users)>
Known Bugs
- Sometimes the unit conversion is not done in query due the unit is not mapped correctly in table UOMCMAT2 by material.
Roadmap
- The Global Sales is deployment phase and sometimes the GBU key user requests additional informations to be added in project.
- The New field ZI Partner will be available for reporting in the queries:Queries- BW_QRY_MVSDSO51_0001 and QVSCE_BW_QRY_MVSDSO51_0001 with the requirement in the FD 4699751.










































