General presentation
Objective of the application
SPM stands for "Sustainability Portfolio Management".
It's a Solvay proprietary approach to assess business sustainability risks and opportunities that runs on PF7.
The objective of SPM reporting in BW is to provide a "Sustainability view" (Market Alignment, Operations Vulnerability) for the sales of the group.
Sales are extracted from P&L in WBP and then enhanced with an SPM dimension, through a sequence of steps (lookup in mapping tables).
SPM Master Data (SPM Product, SPM Application) is loaded from PF7.
Final report is in QlikView dashboards.
List of contacts
Functional Owner: Marc Piret (Sustainable Development & Energy (SDE)
- IS Reporting Leader: Diogo Paiva (IS Supply Chain M&S Data)
- BW Developer: Laressa Moretti (SBS IS)
Usage information
History
The project had 2 phases:
1 - First development covering most of the GBUs (pilot: Aroma and Special Chem)
link to the project folder: https://drive.google.com/drive/folders/0BxkySrtHryoBejV1VG5CbmNwM3c
2 - Extension for GBU Specialty Polymers and Composite Materials
link to the project folder: https://drive.google.com/drive/folders/18bJbaF-EfKSDfYl5X1uWe25xiwa99ClU
Roles & Access
Roles and access
List of application role + menu role and explanation if we have several applications role with specials rules.
| Role Code | Role Description | Explanation |
|---|---|---|
| ZBI_RCS_SPM_A01 | Sustainable Portfolio Management - End User Role | Role for the application |
| ZR_RCS_CA_M58 | SPM - Sustainable Portfolio Management | Role menu for the application |
Authorization objects
List of autorisation objects mandatory for the application.
| Authorization object | Explanation |
|---|---|
| CPFCTR1_2 | GBU |
Dataflow overview
Link to dataflow presentation:
The InfoArea where SPM is located is IA_SD_SPM.
There is one MultiProvider named MVSDSP01.
Functional and Technical rules on Workbench + Reporting
Rules & Explanations
Acquisition of data
Sales data is loaded from P&L using APDs.
The APDs load current + previous month into Direct Update DSOs, then it goes to the next level DSOs, which keep all historical sales (allowing a complete recalculation of SPM data every day).
The Sub-Activity field (0G_CWWE01) is very important to define the GBU and Group of Activities.
From Rhodia query, it gets directly field 0G_CWWE01 (normally IECRAxxx)
From Solvay query, (due to PQ1 decomission and SpS projects), it gets from different fields depending on the month being loaded. It takes C_TECHBA (old object from PQ1) if month < 01/2018 (kept for reloading purposes) and from C_TECPCT2 if month >= 01/2018. In any case, it takes the attribute C_REST_BA (Restated BA) and move to 0G_CWWE01 (single object in the query for both legacies).
Example:
List of APDs:
(The last 2 APDs are not scheduled on a regular basis. They were created for reloading purpose, allowing to inform the period to be loaded in the query variant).
Transformation of data (Derivation of SPM characteristics)
Some mapping tables were created in WBP with maintenance views (restricted to very few users).
The access is done via transaction ZSPM in WBP.
There are basically 3 steps:
1) Derive SPM product
For Rhodia Legacy - based on GBU / Group of Activities / Sub-Activity / Product Line 2 / Product Line 0 / Commercial Product
For Solvay Legacy - based on GBU / Group of Activities / Sub-Activity / PIF hierarchy / Product hierarchy / Material Group
Example:
How it's stored in mapping table
How the derivation is done from a sales record
Important: the lookup in the mapping tables is done from the most specific case (complete key) to the most generic case, so for example, when reading ZSPM_TAB1 to get SPM product, it does the following:
- Search with complete key = GBU + Group of act + Sub-act + Line 2 + Line 0 + Com.prod
- If not found, search with GBU + Group of act + Sub-act + Line 2 + Line 0 + Com.prod = space
- If not found, search with GBU + Group of act + Sub-act + Line 2 + Line 0 = space + Com.prod = space
- and so on ... until the search is done only with GBU + Group of act.
2) Derive SPM PAC (Application)
For both legacies, based on SPM product obtained in step 1 + End-Use fields (Market, Application, Segment, End-Use)
Example:
How it's stored in mapping table
How the derivation is done from a sales record
Multiple PACs
We can have multiple PACs assigned to the same combination of GBU + SPM prod + End-Use. In that case, the percentage field will define the split to be done among several PACs, so the routine takes into account this percentage in order to allocate the sales.
3) Recalculate SPM product
There are some cases, (for example in Novecare for Agro with "Formulations & Blends" ), that we must overwrite the SPM product derived in step 1 with the SPM product obtained directly from SPM PAC master data, because it splits in 3 different PACs in table 3, with a different product assigned to each PAC.
So this "recalculation" was implemented in a recursive transformation into DSOs DBSDSP02 (Rhodia) and DBSDSP04 (Solvay).
In terms of the data flow, this is where these lookups are implemented
List of SPM mapping tables
| Table | View | Description | Comment |
|---|---|---|---|
| ZSPM_TAB1 | ZSPM_V1 | SPM Product (Rhodia) | |
| ZSPM_TAB2 | ZSPM_V2 | SPM Product (Solvay) | |
| ZSPM_TAB3 | ZSPM_V3 | SPM Applications | |
| ZSPM_TAB4 | ZSPM_V4 | SPM End-Use to Market (SPP) | Specific to GBU Specialty Polymers |
| ZSPM_TAB5 | ZSPM_V5 | SPM Applications (SPP) | Specific to GBU Specialty Polymers |
| ZSPM_TAB6 | ZSPM_V6 | SPM Non-integrated GBUs | Only for GBUs where sales doesn't come from P&L |
Special case 1 - GBU Specialty Polymers
For GBU Specialty Polymers, sales figures are loaded normally from P&L (sales in PF1) and the derivation of SPM product (step 1) follows the normal SPM flow.
The only difference is in the PAC derivation (step 2) since Specialty Polymers doesn't use the "Corporate End-Use" (C_GBR14).
They maintain their own End-Use information in Sales Force, so some new objects were created in BW to load this data from Sales Force.
New InfoObjects
C_SFEU1 is loaded with the existing End-Use values in SalesForce (code + text) from an excel file
And then updated with attributes below, which are maintained in WBP in table ZSPM_TAB4.
So this table ZSPM_TAB4 was created to map the SalesForce End-Use with Corporate "Market / Segment / Application"
Regarding the End-Use link with the customer, in the case of SalesForce, it's done by the sold-to (and not ship-to). Actually, it's done for a SF account ID that can map to N sold-to codes. Also, the product level can vary, can be done at material group (commercial product) or product hierarchy.
So we have the following rules into C_SFEU2:
Example of data received from SF (directory /exploit/BW/SPM) and the mapping of SF account to sold-to via table ZSF_SOLDTOS
For SPM PAC derivation, it's used ZSPM_TAB5, which assigns a PAC based on GBU + SPM Prod + SF End-Use (C_SFEU1).
Finally, in SPM query, attributes Market / Segment / Application come from different objects depending on the GBU
Special case 2 - Composite Materials
For Composite Materials (and potentially any other GBU not integrated in WP1/PF1 yet), it was developed a "light", temporary solution, where the sales are informed manually, in an aggregated way.
So in table ZSPM_TAB6, user can inform the sales amount directly at this level: by GBU, month, SPM product, SPM PAC, Corporate Group and Corporate End-Use.
Since SPM Product and PAC are manually informed, there are no derivations in this case and the data goes straightforward to cube CRSDSP90, to be combined with the other cubes in MVSDSP01.
Sales amounts must be informed in EUR. There is no quantity (volume) information, and no detail on customer/material.
Master Data from PF7
Dependencies with other applications
Data loadings
Info providers and objects loaded
Loading frequency
PC SPM_MAIN is scheduled daily at 05:00 (CET).
The following PCs do not run on a regular basis, only for reload (they execute the APDs for reload mentioned before)
Average performance
| Key Figure | Estimation |
|---|---|
| ~ Average Process Chain Runtime | 50 minutes |
| ~ Average nb of rows loaded per load | |
| ~ Total nb of rows loaded (if full) | |
| ~ Average Runtime for 10k lines |
Record Keeping
SPM keeps current year + 3 previous years.
This is controlled with a routine in the DTPs into DSOs DBSDSP01 (Rhodia) and DBSDSP03 (Solvay)
Reporting
Queries End User Documentation
Main queries
Queries:
- BW_QRY_MVSDSP01_0001 - Core query
- QV_BW_QRY_MVSDSP01_0001 - copy used for QlikView




















