List of application role + menu role and explanation if we have several applications role with specials rules.
|
|


https://drive.google.com/open?id=1BiVUn_ILyg-EXmJm-I7Rgd7OA2k8Q1HMtbI_8Tj9kyc
For multiprovider MVCOPA01, not all cubes aossciated are used for integrated margin report.
Only the providers vith IM in red are concerned:
WP1

Updated dataflow after Solstice update (Rules are unchanged except for the Solstice split)


PQ1:
PQ1 flows are kept only for historical data, they are replaced by PF1 flows since 01.2018.

PF1:

NON ERP:


Infoarea Name | Infoarea Techname |
|---|---|
Product Cost Controlling | AREA_F_COPC |
ODS: Product Cost Controlling | AREA_F_COPC_ODS |
CCR: Market Margin | AREA_F_COPC_MM |
Infoprovider Name | Infoprovider Techname |
|---|---|
Material Units | IST_PCMA |
CCR: Cost elements matrix | ODS_PCP2 |
CCR: released costs estimates | ODS_PCP3 |
CO-PC: list of materials of utilities (10) | ODS_PC1A |
CO-PC: list of materials of utilities (30) | ODS_PC2A |
CO-PC: order header quantity (10) | ODS_PC1B |
CO-PC: order header quantity (30) | ODS_PC2B |
CCR : Product Cost Planning - All Cost Estimates | CUB_PCP01 |
CCR Exploded Itemization | CUB_PCP02 |
CO-PC: Manufacturing Costs per Process Order (10) | CUB_PC001 |
CO-PC: Manufacturing Costs per Process Order (30) | CUB_PC002 |
CO-PC: Manufacturing Costs per Process Order | MPR_PC001 |
Stock valorisation by costing | MPR_ICPC1 |
CCR : plant transfert - cost transport | ODS_PCP5 |
| Transport Costs & Duties | DBCOPA24 |
CCR: Integrated margin | ODS_PCP4 |
CCR: Integrated margin first-calculation ( Direct Update ) | ODS_PCP6 |
CCR: Product Cost Items | ODS_PCP1 |
Cost Components for Cost of Goods Mfd | ODS_PCP7 |
Resource's Unit Price | ODS_PCP8 |
CCR: Product Cost Items (Market Margin) | DSO_PCP1 |
Purchase Price (Market Margin) | DSO_PCP2 |
CCR: Released Costs Estimates (Market Margin) | DSO_PCP3 |
Core Query Name | Core Query Techname | Infoprovider Name | Infoprovider Techname |
|---|---|---|---|
BW - Integrated Margin (Core Query) | BW_QRY_ODS_PCP4_0001 | CCR: Integrated margin | ODS_PCP4 |
BW - Integrated Margin (Core Query) | BW_QRY_ODS_PCP4_2 | CCR: Integrated margin first-calculation | ODS_PCP6 |
Infoprovider Name | Infoprovider Techname | Source System | Source Infoprovider Name | Source Inforprovider Techname |
|---|---|---|---|---|
CCR: Integrated margin | ODS_PCP4 | WBP_400 | CCR: Integrated margin first-calculation (Direct Update) | ODS_PCP6 |
CCR: Integrated margin first-calculation (Direct Update) | ODS_PCP6 | WBP_400 | Updated by ABAP Program | 1) Z_M_INT |
CCR: Product Cost Items (Market Margin) | DSO_PCP1 | WP1_400 | Cost components | DTS_KEKO_CKIS |
CCR: Released Costs Estimates (Market Margin) | DSO_PCP3 | WP1_400 | Product Cost Planning: Released Calculations | 0CO_PC_PCP_02 |
Purchase Price (Market Margin) | DSO_PCP2 | DW2 | Database: DW2 Table: GL_COST_PURCHASE | 6DB_GL_COST_PURCHASE |
Some explanations on P&L wiki page.
Data Source: DTS_KEKO_CKIS
Source System: WP1_400
Data Flow Version: BI 7.0
Transformation: RSDS DTS_KEKO_CKIS WP1_400 -> ODSO DSO_PCP1 (0K1O4SUXOC9DPNTS7R3JSO0DRSOF0BY9)
Start Routine: This start routine is to do 2 main tasks.
1) It is to delete all records where the amount and quantity is equal to zero.
2) It is to delete all records where the costing variants are not equal to ZFO, Z25 and ZEP.
After the start routine, each individual record will have fields that will be set with constant values or formulas.
Individual Constants:
1) Costing Variant is overwrited with the new costing variant value ZIP that is defined for this project.
2) Fiscal Variant is fixed to K4.
3) Cost Component Structure is fixed to Z1.
Individual Routines:
1) Fiscal Year/Period required some ABAP codings to convert the incoming data into the correct format to be updated.
2) For the key figure Variable Amount, a formula is required to take the total amount minus the fixed amount to get just the variable amount.
Data Source: 0CO_PC_PCP_02
Source System: WP1_400
Data Flow Version: BI 7.0
Transformation: RSDS 0CO_PC_PCP_02 WP1_400 -> ODSO DSO_PCP3 (0CY1UWMKPVWXUI74VIAPF3V2S12PIYQ1)
Start Routine: This start routine is to do 2 main tasks.
1) It is to delete all records where the currency type is not equal to Company Currency (Value = 10).
2) It is to delete all records where the costing variants are not equal to ZFO, Z25 and ZEP.
After the start routine, each individual record will have fields that will be set with constant values or formulas.
Individual Constants:
1) Costing Variant is overwrited with the new costing variant value ZIP that is defined for this project.
Individual Routines:
1) For the key figure 0AMOUNT, we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together.
2) For the key figure K_CCR_100 (100 Raw Materials), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 100.
3) For the key figure K_CCR_105 (105 Packaging), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 105.
4) For the key figure K_CCR_110 (110 Toll Manufacturing), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 110.
5) For the key figure K_CCR_120 (120 Utilities - VC), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 120.
6) For the key figure K_CCR_200 (200 Labor Costs), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 200.
7) For the key figure K_CCR_210 (210 Supplies & Misc.), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 210.
8) For the key figure K_CCR_220 (220 Maintenance), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 220.
9) For the key figure K_CCR_230 (230 Overheads), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 230.
10) For the key figure K_CCR_240 (240 Utilities -FC), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 240.
11) For the key figure K_CCR_300 (300 Depreciation), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 300.
12) For the key figure K_CCR_310 (310 N/A), we add the Fixed Amount (WERTF) and Variable Amount (WERTV) together if the Cost Component (ELEMT) equals to 310.
End Routine:
1) The purpose of this routine is to check if the current incoming record already exists in the DSO_PCP3 from the previous month loading. If it exists, delete the incoming record.
Data Source: 6DB_GL_COST_PURCHASE
Source System: DW2
Data Flow Version: BI 7.0
Transformation: RSDS 6DB_GL_COST_PURCHASE DW2 -> ODSO DSO_PCP2 (07G0MUNSUYM2GSSZ09F9Q6CC9OF3LCOZ)
There are 3 individual rountines in this transformation to divide the following key figure values that are of currencies Korean Won (KRW) and Japanese Yen (JPY) by 100.
This dataflow is used in order to correct directly the costs in ODS_PCP4.
DTS_COPC_02 extract the csv file from BW server, under the folowing logical path: Z_IM_CORRECTION (/exploit/BW/Integrated_Margin/IM costs correction.csv))
Due to recent archive process the file in the path Z_IM_CORRECTION (/exploit/BW/Integrated_Margin/IM costs correction.csv)) is archived.
We asked Basis team to restore the file and they created new folder and placed the files under the folder.
Folder /exploit/BW/DoNotDelete/
we have changed the logical path Z_IM_CORRECTION to the new location /BW/exploit/DoNotDelete/IM_costs_correction.csv

We have added the skip step for this one as it not required to load every month (will use it when required)
![]()
We created the same for WBD, now both WBP and WBD are aligned.
Here is an exemple of file to upload: https://drive.google.com/drive/folders/1UAeGGSXjEh1f4QlDOM0kU_5qfI96dnwv
The transformation into ODS_PCP4 is similar to the one from ODS_PCP6: it is direct mapping except the conversion of the lot size in Kilogram.
This file is loaded into ODS_PCP4 in the Process Chain after the loading from ODS_PCP6 so that the correction is not cleared after an historical recovery.
Read more information in :
https://drive.google.com/open?id=0BwtAGBKWM-z-cWdzQ0QyTTFpRHM
The Simple Margin is the margin done between each transaction.
o Ex : Simple Margin from A to B = 10. Simple Margin from B to End Customer = 10.
The Integrated Margin is the cumulated margin from the beginning of the chain.
o Ex : Integrated Margin at A = 10 (same as simple margin since nothing before that)
Integrated Margin at B = 20 because it “integrates” the margins done before.
The idea of integrated margin is to give you, when we sell goods to a customer an idea of the overall margin done at Solvay level, not only the vision at the last entity.
(For example you could have a negative margin between B and end customer, but a large margin between A and B so the group is still getting a good margin).
Unfortunately it’s not possible in the system to simply cumulate the simple margins, so instead the BO system recalculates all the cumulated costs and based on that recalculates the integrated margins :
Basically : Integrated Margin at B = (Sales B to EndCust) – B Costs – A Costs
The “Market Margin” is specifically used for the cases of sales between EP and PI GBU inside a legal entity.
Both GBU want to be able to distinguish their own margins, but the normal system doesn’t allow them to do this because usually there is no invoice between them : EP and PI are in the same entity and sometimes even the same plant, so they cannot create invoices.
To solve this BO has a system where EP/PI can upload a “Market Price” agreed between them. The “Market Margin” will therefore be recalculated taking this “Market Price” when there is a transfer of goods between EP and PI.
In scope of project 8612 - Soltice we put in place a link between WBP and CPX system to take into account the vault data in calculation of Integrated Margin.
To do that, we have three steps:
1 - Transfert source data from WBP to CPX.
2 - Calculation of IM in CPX side with data from WBP and WPX.
3 - Transfert the result of IM in CPX to WBP and take it into account in the calculation of IM in WBP.
DSO correspondance WBP - CPX :
| CPX | WBP |
|---|---|
| ABCOMM01 | ODS_PCP1 |
| ABCOMM02 | ODS_PCP2 |
| ABCOMM03 | ODS_PCP3 |
| ABCOMM04 | ODS_PCP5 |
| ABCOMM05 | ODS_PCP6 |
| ABCOMM06 | OSD_PCP4 |
| ABCOPA01 | DBCOPA24 |
| ABMARM01 | ODS_MARM |
Details:
To put in place these three steps we had to split the chain RSP_COPCP_MONTHLY in two chains:
RSP_COPCP_MONTHLY to load the source of data and PC_INT_MARGIN to retreive result of IM from CPX (in dso ABDSOPCP1) and calcul the IM in WBP side.
More details about the split here:
https://docs.google.com/document/d/1QbjsKm0qxUuWNk2E7gntCDq1NIirYi8huKzaSJRp9zU/edit#
1 - transfert from WBP to CPX:
We use datasource from WBP dso to load data in CPX side.
At the end of process chain RSP_COPCP_MONTHLY there is a process "Remote process chain" to launch process chain PC_CO_PC_MM_04 in CPX.
2 - calculation of IM in CPX:
The principle is similar to what we done in WBP. We load data from WPX and WPB in ABDSOPCP1 and after we execute program ZBW_M_INT to calculate the Integrated Margin. All is done in meta chain PC_CO_PC_MM_04 (CPX).
ZBW_M_INT in CPX is a copy Z_M_INT in WBP, so if there is a change in Z_M_INT it may be helpful to make the same change in ZBW_M_INT.
3 - Transfert the result of IM in CPX to WBP and take it into account in the calculation of IM in WBP:
After the calcultion of IM in CPX, a webmethods will sent a flat file with results (/exploit/BW/Integrated_Margin/OH_COMM01.CSV) in WBP and execute the chain PC_INT_MARGIN to load dso DSO ABDSOPCP1 with data from CPX, and after load this in ODS_PCP1 and do the calculation of IM.
If an error occurs in CPX system or with WebMethods, there is a process chain PC_INT_MARGIN_TEST (Integrated Margin - test if Integrated Margin 2 is scheduled) which runs every D+3 at 1 a.m. to check if PC_INT_MARGIN is running or not:
If not, we can suppose there was a problem and we force the execution of process chain PC_INT_MARGIN.

If yes, there is no problem, it's not necessary to force the execution of PC_INT_MARGIN.

The calculation of IM has same principle than before, there are two things that change with CPX data.
Webmethods load data from CPX with a flat file and this flat file is loaded in DSO AADSOPCP1 → APDSOPCP1 → ABDSOPCP1 and ABDSOPCP2 for historical save.
Data from DSO ABDSOPCP1 are loaded in ODS_PCP1, like that we have the source from WBP (WP1) and CPX (WPX) to calculate the IM.
Between DSO APDSOPCP1 and ABDSOPCP1 we transpose the data to adapt the source to the next target (ODS_PCP1). Some values of ABDSOPCP1 are defined in master dat global filter (C_GLBFILT) on stream "DSO_PCP1"
In program Z_M_INT we calcul the Integrated Duty and the Integrated Freight with data from CPX (assigned in cost component 400 and 500 in loading of DSO ABDSOPCP1) (this calculation is not done in CPX side with prorgam ZBW_M_INT).

Technical Documentation - RTR - Profit and Loss (P&L) + Integrated Margin (IM) (WBP)
| Main Process Chain | Final Provider Loading | Frequency | Time start | Duration |
|---|---|---|---|---|
| RSP_COPCP_MONTHLY | DSO_PCP2 DSO_PCP1 / ODS_PCP1 | Monthly (2nd working day) | 11:30 pm | 20 minutes |
| RPC_CCR_PCP1_MTHLY_CHAIN | DSO_PCP3 / ODS PCP3 / CUB_PCP1 / | Monthly (1st working day) | 11:30 pm | 45 minutes |
| PC_COPA_PL_46 | ODS_PCP5 | not executed since 2020 | ||
| PC_COPA_PL_21 | DBCOPA24 | Daily | arround 2:15 am | arround 15 minutes |
| PC_INT_MARGIN | ODS_PCP6 / ODS_PCP4 | Monthly (3th working day) (after PC_CO_PC_MM_04 in CPX system) | arround 00:30 am | arround 3 hours |
PC_CO_PC_MM_04 (CPX) | ABCOMM06 | Monthly (3th working day) (after RSP_COPCP_MONTHLY) | arround 00:00 am | arround 20 mins |
Data come from SAP system. To compare data between BW and sources systems, check propagation layers.
<Describe the recurring procedures needed to operate the application (eg. start/pause/terminate/restart the app processes, data preparation, data ingestion, ETL, data visualization, data export, other manual activities)>
<Describe the scheduling in place for the application (eg. existing jobs, trigger time/event based, dependencies)>
<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)>
<Describe how to handle errors (eg. error codes, description and respective resolution, alert users)>
<List the existing bugs, its criticity, workarounds and resolution plan.>
<List past & future evolutions for the application (including links to MED/FSD/TSD)>