General presentation

Objective of the application


"DynaSys Reporting" application deals with :

  1. extract forecasts & few master information from DynaSys system (DP/DiP-PP modules) using an Hana SDI access on the DynaSys datahub
  2. provide Core queries to GBU users to follow their activity
  3. provide technical queries to fill external tool like QlikSense, Dataïku, Tableau (via Google Cloud Platform or GCP)


                                                                                        


                                                                                              (migration QV>Tableau in progress)


                                                                                         


Main contacts are : 

Planning & SchedulingTech Pool Lead

Alexandre Eliane  


DynaSys InterfaceApplication Owner

Etienne Ribet

DynaSys.Interface.Team@solvay.com
DynaSys InterfaceInterface / Reporting BW

Vendula Sianska


Demand Planning Service Owner

Charlotte Bruchet


Distribution & Production Planning Service Owner

Ahmadou Niang


Planning & SchedulingRun Coordinator

Arnaud Regnault De La Mothe



Usage information

How many users? Which user category ? Is there critical period ? Which geographical perimeter? Describe in one sentence: around 50 users, worldwide or 200 users / European Site

History

Provide some history of the application : When was it created ? What was the initial project ? Who was the original requestor ? If possible provide link to the project information

Roles & Access

Roles and access


Role IdRole TitleExplanation
ZR_RCS_CA_M52 DP - DiP/PP - Dynasys

to access the list of core queries

NB: Demand Review + Segmentation Report are being decommissioned

ZBI_RCS_DP_A02Demand Planning - Dynasys

Role utilisateur Dynasys

Authorization object ZBI_DPS

  • gives access to Application Area IA_DPS_DYNASYS
  • authorization limited on GBU (CPFCTR1_2) (in WBP since 14/03/2017)
ZBI_RCS_DP_A03Demand Planning - Dynasys Keyuser

Authorization object  ZBI_DPS_K

  • gives access to transaction ZMAINT_MATPLANT + ZMAINT_MATVENDOR
  • gives access to Application Area IA_DPS_DYNASYS 
  • authorization limited on GBU (CPFCTR1_2) (in WBP since 14/03/2017)

See also file maintained by Authorization team : BW Catalog of Roles / link: https://drive.google.com/open?id=10GEfKYqrT1eeTO_uHYAheL1GX7L5y_pvH0KQU64qh5I

Authorization objects

Reporting is limited to authorized GBU (Global Business Unit)

Authorization objectExplanation

GBU (CPFCTR1_2)

ZR_*_CA_P05

Dataflow overview

Important : these google slides are the main document to consider for the reporting topic. It has to be updated for any change to facilitate maintenance

List of DynaSys views used for extraction

DynaSys ViewMasterData/TransactionalContentComments
EXP_DC_BU_BWMasterData
Not used in Reporting but Interface part

EXP_BW_PLANT_CONS_BW

MasterDataPlant for Consignation list managed in DynaSysNot used in Reporting but Interface part
EXP_BW_SKU_BWTransactional from ?data for E2E VC Dashboard (QlikSense ?)All GBU
EXP_FORE_DR_BWTransactional from DPdata for the Budget Review queryAll GBU except CM
EXP_FORE_BWTransactional from DPdata for Forecast Accuracy (including Gross History)All GBU except CM
EXP_AERO_DR_BWTransactional from DPdata for Demand Review (including Gross History)CM (Aero)
EXP_AERO_FA_BWTransactional from DPdata for Forecast Accuracy (including Gross History)CM (Aero)

EXP_MTP_BW

Transactional from DPdata for MTP reportAll GBU except CM
EXP_DIP_BW_SKU_BWTransactional from DiP-PPdata for DiP reporting (Datafields without receiving site)All GBU
EXP_DIP_BW_SKU_SITE_BWTransactional from DiP-PPdata for DiP reporting (Datafields with receiving site)All GBU
SYS_TIMESTAMPSystem

EXP_DP_SHIPTO_BWMasterData

EXP_DFU_DR_BWMasterDataMaterial/Ship-to/DC
EXP_SHIPTO_DC_SR_MANUAL_BWMasterData

EXP_MATSHIPTO_BWMasterData

EXP_SF_CRM_BWMasterData

EXP_SAP_PROG_BWMasterDataProgram/Market AssignementCM (Aero)
EXP_MAIN_SPEC_BWMasterDataMain Spec AssignmentCM (Aero)
EXP_AERO_SKY_BWMasterDataSkyline by Program/MonthCM (Aero)
EXP_SHIPTO_INFO_BWMasterDataShip-to info (RCS+BAAN)CM (Aero)
EXP_DIP_BW_MD_SKU_BWMasterDataDIP/PP specific master data (Shipping/Reciving Site attributes)All GBU
EXP_MATERIAL_SAP_BWMasterData
All GBU
EXP_SOP_BWMasterData
All GBU
EXP_MATERIAL_BWMasterData
Not used in Reporting but Interface part

EXP_DFU_OTHER_BW

MasterDataMaterial/Ship-to/DC/SpecCM (Aero)
EXP_MATERIAL_BAAN_BWMasterData

BAAN Material info

PE1 Material info 

CM (Aero)

2020/12/11 Removed, not used anymore

2021/06/24 Used again for AERO Wave 3, one shot to load PE1 material info


Functional and Technical rules

Rules & Explanations

IECRA determination (implemented since 13/11/2017)

RCS notion, IECRA is only determined for RCS records.

  1. Retrieve the division (0DIVISION) from material (C_MATNR2)
  2. Get IECRA (0G_CWWE01) from masterdata C_CDSA which is distribution channel (0DISTR_CHAN) compounds with division (0DIVISION).

Determination done at Business Level (EndRoutine)

BU (C_DYN_010) / GBU (CPFCTR1_2) determination

Both BU and GBU are determined at Business Level (EndRoutine) by reading mastersdata C_DYN_005 / Material with System Extension.

The link Material / BU is given by DynaSys interface part : DSO DBDYN02.

The link BU/GBU is given by C_SUBACT2 / Sub-Activity 2


BU = ERP Group of activities (C_PFCTR2)

GBU = BFC Global Business Unit (CPFCTR1_2)


Rule for RCS records was changed the 13/11/2017 (item #58). BU/GBU is now determined reading IECRA (0G_CWWE01)

Sold-to (C_SOLDID) determination

The Sold-to is determined at Business Level (EndRoutine) by reading mastersdata C_DYN_014 / Ship-to with System Extension.

The link Ship-to / Sold-to is given by DynaSys (table EXP_DP_SHIPTO) and stored daily in masterdata C_DYN_014.

Commercial Product (C_PROD) determination

The commercial product is needed to be able to use attributs of masterdata C_GBR14 / GBR: Customer end-use Mat Grp (Ship-to)

The commercial product is determined by reading masterdata C_MATNR2 / Material

Sales Office (C_SAL_OFF) / Sales Document Type (C_DOCTYP2) / Company Code (C_COMPCDE) determination

Sales Office, Sales Document Type, Company code can not be determined for DynaSys, they are set by constant DYN because axis are needed in reporting Sales Follow-up.

Caution Sales Office is autorization relevant for Sales Reporting (Obas, Global Sales), it has been added in Application role, auhorization object ZBI_SD

Company Code also, it will be added ( item #39)

 


FORECAST ACCURACY - End of Month View (C_FCSTMTH)

For daily dynamic flow, it corresponds to current month/year

For snapshot flow, it corresponds to previous month of the snapshot

date of the SnapShot

End of Month View

(C_FCSTMTH)

6th of May 201804.2018
6th of May 201811.2018

In case of a manual reload the value can be changed by using Global Filter 


FORECAST ACCURACY - Concerned Period (C_FCGMTH)

For daily dynamic flow, it is set with 'M' (mean view of the month 0CALMONTH

For snapshot flow, it is calculated :

1) If period (0CALMONTH) = end of month view (C_FCSTMTH) => Concerned Period (C_FCGMTH) is set to 'M' means value of the month

2) If period (0CALMONTH) < end of month view (C_FCSTMTH) => Concerned Period (C_FCGMTH) is set to 'N/A' means Not Applicable, SnapShot done after period

3) If period (0CALMONTH) > end of month view (C_FCSTMTH) => 

a) compute NB Month =  (period (0CALMONTH) - end of month view (C_FCSTMTH) ) - 1

b) if NB Month between -999 and -1 => concatenate 'M' with NB Month into Concerned Period  (C_FCGMTH) 

    else Concerned Period (C_FCGMTH)  is set to 'N/A' 




Caution : Concern period M-1 does not exists.

               Concern period M for Forecast is considered as M-1 in BW queries.


Examples:

date of the SnapShot

End of Month View

(C_FCSTMTH)

Calendar Year/Month

(0CALMONTH)

Concerned Period (Flag)

(C_FLGMTH)

6th of August 201707.201707.2017M
6th of August 201707.201708.2017M-2
6th of August 201707.201702.2019M-20
6th of August 201707.201708.2016N/A


DiP-PP - Datafields type & key figures

For the DiP reporting we use only two key figures :

The quantity or the amount is assigned to a specific Kpi determined by the field DataField Type (C_DATATYP).

In BW we've created one restricted key figure per Datafield type.

The list of the different Datafields loaded from Dynasys and their respective RKF is available here.

To know if the Datafield type is a quantity (assignment of the value to K_DYN_021) or an amount (assignment of the value to K_DYN_021), we're using Global filters entries.

Stream : DPS
Rule : DIP_KF_VAL


In this rule, we've listed the Datafield type expressed in value (amount). 

This Global filter variables are used in the transformation between AADPDY06 & APDPDY07 to make the assignment.


Some datafield types are also defined in hours on Dynasys. There is no changes on the value but only on the unit. All datafields defined with the "H" unit are listed in the global filter rule : DIP_KF_HR


In this case the unit assigned to the key Figure will be "H" (hour) . This assignment is done in the end routine of the transformation between AADPDY06 & APDPDY07.



DiP-PP - Shipping Site (Plant) & Receiving Site (Site) 


Transactional data :

For the DiP reporting, some datafields are defined with only a Shipping site and some with also a Receiving site.

Datafields source :

Following the cases, Shipping site and Receiving site can be :

  1. A site (plant)
  2. A ShipTo (customer)

The assignment is done in the propagation Layer :


Master data :

Somes attributes associated to Shipping and Receiving site are send by Dynasys tool with the datasource DTS_CV_EXP_DIP_BW_MD_SKU_BW based on the Dynasys view EXP_DIP_BW_MD_SKU_BW.

The content of the view is stored in the master data C_DYN_074 (Shipping site).

There is also another master data C_DYN_084 (Receiving site) which is in reference of C_DYN_074


To determine if a Shipping (receiving) Site is a plant or a ship-to, we'll use the attribute "TYPE_OF_SITE" C_DYN_078.

IF TYPE_OF_SITE = SHIPTO => Shipping or receiving site is a ShipTo code

ELSE => Shipping site or receiving site is a Plant code

This test is used in the calculation view CV_DY_DIP_REPORTING to catch attributes from C_PLANT or C_SHIPTO master data following the record :



It is also used to know where the description have to be loaded.

IF it's a shipTo, the description is loaded from C_CUSTID.

If it's a plant, the description is loaded from C_PLANT.

The check is done in the transformation between the different master data :


BW objects assignments are described in details here.



There is another specific master data C_DYN_071 (material /plant) that is loaded from the ADSO APDPDY06 (view EXP_DIP_BW_SKU_BW).

A filter at the DTP level load only these datafields in the master data :


Assignment between transactional and master data :

The assignment is done in the calculation view in the projection of the ADSO ABDPDY53 :


DiP-PP - Logsys assignment


The assignment of LOGSYS field is done on BW between acquisition and propagation layer reading by default the extension of the material code send by Dynasys.
=> See the end routine of the transformation between ADSO AADPDY06 → ADSO APDPDY07

But for some Datafields type, there is no Material code, we must use and read the extension of Shipping site code send by Dynasys to determine the LOGSYS
Datafields coming from the view SKU_MAIN_SITE always have a Material Code assigned.
See below the list of Datafields type without Material code :

AVAILABLE_CAPA
BALANCE
BALANCE_CUMUL
CAPA_USED_BY_PLAN
LOAD
PROD_REQ_BY_RESOURCE


In the end routine, we are using a Global filter entry with the list of these datafield type to determine if we are usgin the material or the shipping code to determine the logsys :

Stream : DPS
Rule : DIP_LOGSYS

AERO- Transcodification for BAAN Ship-to

Ship-to BAAN are longer than SAP Ship-to (10 characters). For technical reason and to fit into the 10 character SAP Ship-to, a transcodification has been handle on DynaSys side.

BW receives directly result of the transcodification, and consider it as the Ship-to.

  


BEM  xxxx CUS xxx can be found in masterdata C_DYN_024

AERO- How Program/Market assignement works ?

Always refer to Dataflow for a better understanding => DynaSys Reporting Dataflow


1) Program/Market assignment is managed in DynaSys. at Material/Ship-to/Distribution Channel/Main spec/Month level

2) assignments are uploaded into BW daily from monday to friday at 10.15pm from DynaSys view EXP_SAP_PROG_BW


NB: on BW a rule put value DUMMY if assignement is provided from DynaSys without program or if the sum of percentages are different from 100%.



AERO- How conversion to Base Unit or Sales Unit works ?


BAAN quantities are provided in Sales Unit (SU).

As this point was discoverd late during the project, and as BW model is mostly designed to collect only quantities in KG, BAAN quantities are stored in KG keyfigures.

So keep in mind, the unit is Not the correct one for all KG keyfigures



AERO- How the Final Forecast Cost is calculated ?

The Final Forecast Cost is a key figure available in the report :


We also have 3 characteristics available and associated to these key figures :

Storage on BW

The material cost are loaded at the beginning of every month in the cube CUB_PCP01.

it means the product cost is depending of the month, each month we can have the same value or a different one.

in SAP, we can check the cost in MM03 => Sheet : Costing 2.

Example : Material 160704 / Plant : 8350

 => 


On the BW Dynasys application, we load these same costs and stored them in the ADSO APDPDY05.


The ADSO is used in the calculation view CV_DY_BL_DYN22_CPDYN11 :


Final Forecast Calculation

The Final Forecast Cost amount is calculated like below :

FF Cost = Final Forecast (BaseUoM) * Product Cost


The FF Cost is calculated for each month in the past and also in the future.

As the product cost is not existing for the month in the future, we have copied the cost of the current month to the other month in the future.

Example : We are on August 2021, the lastest Cost value available is the cost of August 2021. They are are copied until the end of Current Year + 2 (rule defined with business)

Each month, the product costs in the future are re-calculated based on the latest cost values loaded and available.


We also apply the latest product cost to the previous month of the same year.

Example 1 : We are on August 2021, the lastest Cost value available is the cost of August 2021. Cost Values are copied on January 2021, February 2021 etc...

Example 2 : We are in January 2022, the cost values of december 2021 will not be updated with the cost values of january 2022. 
We keep the last version of cost for december 2021 and copy them in all the months of the year 2021.


On BW, it's done in the transformation of ADSO APDPDY05 on itself.

The calculation of the FF Cost is done at the calcualtion view level because we need Final Forecast (BaseUoM) quantities :

Exchange Rate

As the product cost are defined in the local currency, we have given the possibility to convert in a target currency (USD in our case) at the Query level :

We are using the same exchange rate for the amount measures in the report => CAR4.


Please find below a summary of the FF Cost calculation based on the previous rules exposed.

Example : Vision of August 2021, if we run the report for year 2021

MonthFF Cost calculation
JanuaryFinal Forecast Cost = August product cost x January currency exchange rate (to USD) x January Final Forecast (BaseUoM)
FebruaryFinal Forecast Cost = August product cost x February currency exchange rate (to USD) x February Final Forecast (BaseUoM)
MarchFinal Forecast Cost = August product cost x March currency exchange rate (to USD) x March Final Forecast (BaseUoM)
AprilFinal Forecast Cost = August product cost x April currency exchange rate (to USD) x April Final Forecast (BaseUoM)
MayFinal Forecast Cost = August product cost x May currency exchange rate (to USD) x May Final Forecast (BaseUoM)
JuneFinal Forecast Cost = August product cost x June currency exchange rate (to USD) x June Final Forecast (BaseUoM)
JulyFinal Forecast Cost = August product cost x July currency exchange rate (to USD) x July Final Forecast (BaseUoM)
AugustFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x August Final Forecast (BaseUoM)
SeptemberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x September Final Forecast (BaseUoM)
OctoberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x October Final Forecast (BaseUoM)
NovemberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x November Final Forecast (BaseUoM)
DecemberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x December Final Forecast (BaseUoM)

CRM Prospect transcodification (18C>11C)

Prospects were not part of initial DynaSys project, so Ship-to lenght has been based on SAP Ship-to, 10 characters (11 characters to add extension B or R).

In reality CRM Prospect are defined in CRM on 18 characters (contact on CRM side josiane.peytraud@solvay.com)

A transcodification on 11 characters has been put un place on BW site to fit BW object defined on 11 characters.

Class ZBW_DPS_DYNASYS_UTILS => method GET_PROSPECT_TRANSCODED


* Some explanation from CRM team about CRM Prospect Code
* Positions 1,2,3   = type of object or table.For prospect, value is always 001
* Positions 4,5     = organisation, value is currently 24 or 1p for CRM Core
* Position 6        = reserved for SalesForce
* Position 7 to 15  = counter but sensible to upper/lower case
* Position 16,17,18 = important for unicity if upper/lower case is not kept

CRM Prospect Code is on 18 characters, has to be cut to fit 11 characters
Ex= 0011p00001WzSnTAAV => 001WZSNTAAV

Dependencies with other applications

Dependencies with other application (BW, QV, Externals tools like PVelocity or Dynasis etc...

Data loadings

Process Chains


Process ChainCodeTypeFrequencyComments
DPS Dynasys: META - M - 6.Reporting DynaSys (Snapshots)PC_DPS_DYNASYS_09 MAIN
  • Monthly, the 6th of the month at 6am
  • Whole chain last around 10 minutes (07/10/2016)

Based on Table EXP_FORE (daily update, by 1.45am even if BW loading is monthly)

The SnapShot month (End of Month View/C_FCSTMTH) is automatically set to previous month.

Global filter variable (C_GLBFILT) DPS/PHOTO_MTH can be used to fix another SnapShot month.

Caution : do not launch this chain several times a month without cleaning previous loadings

Info : started at 3am changed to 6am on DynaSys Team request (07/07/2017). EXP_FORE was not ready at 3am due to longer treatments on DynaSys side

DPS Dynasys: META - D - 6.Reporting DynaSys (Dynamic KPIs)PC_DPS_DYNASYS_15MAIN
  • 4 times a day
  • Whole chain last arount 30 to 45 minutes (06/08/2020)

Based on Table EXP_FORE_DR

05/01/2017: On DynaSys side, the treatment which prepares table EXP_FORE_DR takes more time, and now finishes around 2.45 (previously 1.45) => BW chain starter changed 2.30 am => 3.00 am

23/01/2017: The chain is planned hourly (with Calendar 14), but the loading will apply only for following time intervals (Decision Block)

21/02/2017: Run of 3 am has been cancelled because the DynaSys table was frequently empty when BW was collecting the data

31/10/2017: Still 4 runs a day, but whole loading will be done ONLY is DynaSys table EXP_FORE_DR has been updated (timestamps in table SYS_TIMESTAMP)

08/01/2018: 4 runs a day. Run of 10am has been changed to 7am



Decision block explanation :

Block 1


1) Check if Decision Block has to be bypassed


Variable can be activated If chain has to be forced to run

2) Else get loading times


Block 2


1) Check if Decision Block has to be bypassed

 

 Variable can be activated If chain has to be forced to run

2) Else get loading times. And check timestamps loaded from DynaSys (table SYS_TIMESTAMP / info for EXP_FORE_DR)

If timestamps between 2 loadings, the chain has to carry on

DR for CM or DR for All GBU block


Change C_LOW by "Y" if loading has to be bypassed


Load AERO-Prog/market from DynaSys ?

Chain 15 is running 4 times a time, but Aero Prog/Market needs to be loaded only once a day, at 2pm.

Decision block is checking time, and also check the timestamp date = today's date




Email Messages send at chain's end to inform DynaSys Team + list of Users + BW DynaSys Team when data is up to date

see procedure for details of message

=> Modify email message for DR data disponibility sent to users (All GBU except CM (aero))

=> Modify email message for DR data disponibility sent to users (GBU CM (aero)


DPS Dynasys: META - M - 6.Reporting DynaSys (MasterData)PC_DPS_DYNASYS_23MAIN
  • Daily at 22.15pm

A remaining issue :

  • DTP DBDYN33 -> C_DYN_017 - Full => dupplicates on Ship-to 703581S / SDSOA
    cause : the DC is not filled for all loadings (subject in progress Julien/Emmanuel)
    solution : the DTP has to handle dupplicates (done only in WBP as solution is temporarly

Issue solved :

 

  • DTP DBDYN12 -> C_DYN_018 - Full => dupplicated on Ship-to 66946R
    cause: specific rule for plant 8000 is not applied for Ship-to with extension (subject in progress Julien/JC)
    solution: in DSO DBDYN12 delete line with Ship-to 66946R / Plant 8000


DPS Dynasys: META - D - 6.Reporting DynaSys (Obas data)PC_DPS_DYNASYS_20MAIN
  • Daily at 6.15 am (changed 21/11/2017)
Temporarly schedulling! this chain has to be added in Obas chain or launched via an Obas event
DPS Dynasys: TD - D - Reporting Dynasys (DIP Inventory KPIs)PC_DPS_DYNASYS_33MAIN
  • 4 times a day
  • Whole chain last arount 20 mintutes (April 2022)

Based on Table EXP_DIP_BW_SKU_SITE_BW, EXP_DIP_BW_SKU_BW & EXP_DIP_BW_MD_SKU_BW.




Decision block explanation:

Block 1


1)Check if Decision Block has to be bypassed


Variable can be activated If chain has to be forced to run

2) Else get loading times


Block 3


1)Check if Decision Block has to be bypassed


Variable can be activated If chain has to be forced to run

2) Else get loading times. And check timestamps loaded from DynaSys (tableSYS_TIMESTAMP / info for EXP_DIP_BW)

If timestamps between 2 loadings, the chain has to carry on

Block only Master Data DIP/PP (view EXP_DIP_BW_MD_SKU_BW)

Change value of the following global filter variable to by-pass the step :


Block only SKU DIP/PP (view EXP_DIP_BW_SKU_BW)

Change value of the following global filter variable to by-pass the step :

Block only SKU SITE DIP/PP (view EXP_DIP_BW_SKU_SITE_BW)

Change value of the following global filter variable to by-pass the step :



Email Messages send at chain's end to inform DynaSys Team + list of Users + BW DynaSys Team when data is up to date

see procedure for details of message

=>Modify email message for DIP/PP data disponibility sent to users

=>Add or remove email address in distribution list for DiP-PP reporting







Loading frequency

Detail of frequency : monthly; weekly or else

Average performance

if possible, give some information on average process chain duration, amount of data loaded and total data volume example: daily process chain loaded in 30 min, weekly chain loaded in 1h15, with around 2k to 10k lines in DELTA mode for a total of 10M lines in cube. The purpose is to give a general overview of the volume of data managed y the application


Key FigureEstimation
~ Average Process Chain Runtime
~ Average nb of rows loaded per load
~ Total nb of rows loaded (if full)
~ Average Runtime for 10k lines

Record Keeping

Give details if any historisation is done, example: keep only data greater than beginning of Y-3

Reporting

Queries End User Documentation

Query end user documentation should be created in the public "Customer Support Wiki" space under the corresponding BW application page : BW - Application. Technical query query documentation, if necessary should be added as a sub-page of this documentation using the BW Technical Query Documentation template.


Main queries

QueryDescriptionTypeRole MenuComments

BW_QRY_MVDYN11_0006

BW - DP - Demand Review (Core query)QRYDP - Demand PlanningThis query will be replaced by Budget Review when BR will be simplified
BW_QRY_MVDYN11_0001BW - DP - Budget Review (Core query)QRYDP - Demand Planning
BW_QRY_MVDYN11_0005BW - DP - Forecast Accuracy (Core query)QRY

DP - Demand Planning


BW_QRY_MVDYN11_0007BW - DP - Segmentation Report (Core Query)QRYDP - Demand PlanningAsked by EP (Emmanuel Hatt)
QVSBS_BW_QRY_MVDYN11_0001BW - DP - Demand Review for SBS Dashboard (QV)QRY

This query is used to provide Qlik View Forecast informations from APO / DynaSys and Logility.

QV application : CRM Analytics

QV_BW_QRY_MVDYN11_0005BW - DP - Forecast Accuracy (QV query)QRY

This query is used to provide Qlik View FA

QV application 1 : Novecare Suply Chain dashboard

QV application 2 : Global Supply Chain

BW_QRY_MVSDSO01_0006BW - Sales Follow-Up ALL DYN (V2)QRY

 Obsolete query. It has been replace by :

  • Soda Ash query = BW_QRY_MVSDSO54_0001
  • General query = BW_QRY_MVSDSO54_0002
BW_WBK_DPS_0001BW - DP - Budget Review AROMA (Workbook)WRK
Workbook is based on query BW - DP - Budget Review (Core query) /BW_QRY_MVDYN11_0001
BW_WBK_DPS_0002BW - DP - Budget Review SA&D (Workbook)WRK
Workbook is based on query BW - DP - Budget Review (Core query) /BW_QRY_MVDYN11_0001
BW_QRY_CPDYN11_0006BW - DP - Demand Review for CM (Core query)QRYDP - Demand PlanningProject Solstice Aero
BW_QRY_CPDYN11_0005BW - DP - Forecast Accuracy for CM (Core query)QRYDP - Demand PlanningProject Solstice Aero
BW_QRY_CPDYN13_0001BW - DIP - Distribution Planning - Core QueryQRY 

DiP - Distribution Planning


BW_QRY_CPDYN13_0002BW - DIP - Distribution Planning - Inventory DataQRYDiP - Distribution PlanningOnly datafields type "inventory" are available in that query.

BW_QRY_CPDYN14_0001

BW - DP - MTP (Core query)

QRYDP - Demand Planninglive from 07.2021 - used by Special Chem

Main functionalities

Give detail on all complex functionalities: list most important and/or complex KPI, query jump, alerts

Broadcast

Indicate if there are broadcasts and give some details on the broadcast settings.

Maintenance

Tips & Tricks

Extract of 2019 Gross History as a reference

 File with 2019 GH by GBU to have an idea of volume & net sales

Known bugs

Wrong amounts in Local Currency Yen (Currency JPY) - Issue closed

For low currency like JPY, SAP has its own internal format to store amounts.

Transformation has been adapted.

See routine

Caution this internal format has to be applied ONLY to keyfigures type Currency (CURR)

For keyfigures type Float (FLTP) routine has been removed as amounts in JPY where divided by 100. Check keyfigure definition.


Example to check

Material 32787 / Ship-to 88719 / Distrib Channel 7K / Source System RCS / GBU Aroma PA

Material 135918 / Ship-to 2066945 / Distrib Channel 7F / Source System RCS / GBU Aroma PA





Recurring procedure

Reload a monthly snapshot from flat file 

Caution, the flow is always changing. The current mapping might not be up-to date and need to be adapted.

A snapshot reload by flat file has to be validated in WBQ first


File structure to use

https://docs.google.com/spreadsheets/d/11v1GZUu8w7Sg7RSG2O1pTETTzabr6bHN/edit#gid=1857575871


Particularities :

Upload manually DPDYN01 / DYN - Reporting (SnapShots)

Then follow upper steps as in the process chain  "DPS Dynasys: META - M - 6.Reporting DynaSys (Snapshots)" / PC_DPS_DYNASYS_09


Many reloads have been done to correct FA data or after organization changes

CH cleaning.csv

Reprise CH vers TS.csv

Reprise TS - July 2022.csv

Reload a monthly snapshot from DynaSys table EXP_FORE_BW

Snapshot to reload has to be previously removed from all level :

If reload is done the same month than the deleted snapshot, just run chain PC_DPS_DYNASYS_09 via SE37, Fonction Module RSPC_API_CHAIN_START

(manually chedule again PC_DPS_DYNASYS_09 for next month)

If much later, change Global Filter to set the wanted month and activate the line, and run chain PC_DPS_DYNASYS_09

 Caution variable has to be unactivate afterwards, otherwise following snapshot will be fix to that month!


For info, the variable is used to fix "End of Month View" (C_FCSTMTH)


Important : After a BW snapshot reload QV Team has to be informed to reload their part.

Increase/decrease DR upload from DynaSys

Change values in Global Filter (C_GLBFILT)

Put Active = 'N' to unactive an existing loading.

Add a new line for an extra loading. Please keep the same logic, all loading times are recorded chronologically to make reading easier.

 Do not forget to record your modifications in paragraph "Process Chains" in PC_DPS_DYNASYS_15 comments


Increase/decrease DIP/PP  upload from DynaSys

Change values in Global Filter (C_GLBFILT)

Stream = DPS

Rule = PCH_DYN15M

Put Active = 'N' to unactive an existing loading.

Add a new line for an extra loading. Please keep the same logic, all loading times are recorded chronologically to make reading easier.

Add or remove email address in distribution list for DR data availability  (All GBU except CM (aero))

NB: Distribution list exists on all systems, but user list is only maintained in production system WBP

Transaction SO23 

Name DL_DP_001

 

Add or remove email adresses. 


Do not forget to record your modifications in that paragraph

List of user email :

SodaAsh&Derivated (SD):

AROMA (PA):

Special Chem (CH):


Technology Services :


Oil&Gas (OG):


Digital Technology :


Removed 



Add or remove email address in distribution list for DR data availability (GBU CM (aero))

NB: Distribution list exists on all systems, but user list is only maintained in production system WBP

Transaction SO23 

Name DL_DP_002

 

Add or remove email adresses. 

Do not forget to record your modifications in that paragraph

List of user email :

Composite Materials (CM):

Digital Technology:


Removed 


Do not forget to record your modifications in that paragraph

Add or remove email address in distribution list for DiP-PP reporting

NB: Distribution list exists on all systems, but user list is only maintained in production system WBP

Transaction SO23 

Name DL_DP_004

Do not forget to record your modifications in that paragraph

Digital Technology:


Removed 


Do not forget to record your modifications in that paragraph

Modify email message for DR data availability sent to users (All GBU except CM (aero))

Email message has to be modified in WBD and moved to WBQ, then WBP.

 RSA1 / Chain PC_DPS_DYNASYS_15

 

Change to 'change' mode

right click => maintain message => Successful => Edit Document 

Do not forget to record your modifications in that paragraph.

Modify email message for DR data availability sent to users (GBU CM (aero)

Email message has to be modified in WBD and moved to WBQ, then WBP.

 RSA1 / Chain PC_DPS_DYNASYS_15

 

Change to 'change' mode

right click => maintain message => Successful => Edit Document 

Do not forget to record your modifications in that paragraph.


Modify email message for DIP/PP data availability sent to users 

Email message has to be modified in WBD and moved to WBQ, then WBP.

 RSA1 / Chain PC_DPS_DYNASYS_15

 

Change to 'change' mode

right click => maintain message => Successful => Edit Document 

Do not forget to record your modifications in that paragraph.


Clean Forecast Accuracy for all GBU except CM-AERO (ABAP ZBW_DYN018)

Careful, this action is definitive !!!!

Program ZBW_DYN018 / DYN - Forecast Accuracy cleaning (Selective del in DBDYN13 + DPDYN01)

This program has been created to delete data from Forecast Accuracy DSOs.

1) prepare input file as following template

https://drive.google.com/file/d/11v1GZUu8w7Sg7RSG2O1pTETTzabr6bHN/view?usp=sharing

prospect reference (like 0011p00002banehAAA) have to be removed from the list

fill interval of months (even if deletion is asked for a single month)

2) run abap

3) reload CRDYN13 cube


May 2021 : Cleaning has been done for ODYSSEY project (NOVECARE) as Open Gate was not going to keep DynaSys

> Genthin from January 1, 2021 [Carve out]
> UP / Halifax from March, 1rst [Carve out]

ODYSSEY FA Genthin Cleaning.xlsx

ODYSSEY FA UPHalifax Cleaning.xlsx

May 2021 : Cleaning has been done for Silica

Silica FA Cleaning.xlsx


July 2021 : Cleaning has been done for SA&D LATAM / ODYSSEYWAREHOUSE MULTIMODAL LOGISTICS (NOVECARE) / SILICA

FA Cleaning ODYSSEY & others 072021.xlsx


Feb 2022 : Cleaning has been done for Novecare / RASAL Plant from JAN 2022

FA Cleaning RASAL.xlsx


April 2022 : Cleaning has been done for Novecare / RASAL Plant from JAN 2022 (2nd round)

CS-Analysis-RasalCleaning-March22.xlsx


March 2023 : Augeo products moved from Novecare to Coatis. DFU were set to un-active on DynaSys. FA needed to be cleaned from JAN 2023

Cleaning has been done for AUGEO materials identified (DFU list provided by DynaSys) from JAN 2023 

AUGEO PF1 CLEANING.xlsx

AUGEO WP1 CLEANING.xlsx

AUGEO WP1 CLEANING O&G DFU.xlsx (cleaning will be seen in BW/Qlik with April 2023 upload). CS has validated DFU 138115R:2034644R@06R O&G can be cleaned.


WO0000000319691 => duplicate DFU (and hybride)

141018R2094236RCHRAR
321715R2023962RCHRAR + TSRAR


Perioding cleaning to limit DSO/Cubes volume (TO BE COMPLETED Nathalie)

For FA and DR/BR reports, 

A selective deletion can be done every year to reduce significantly the volume of records in DSOs/Cubes


General presentation

Objective of the application


This application extract the forecasts from tool DynaSys prepared in dedicated DynaSys tables :

We also extract data from DiP Dynasys tool module prepared in dedicated Dynasys tables :


.Tool Leader + IT leader of the application: Vendula Siamska / Diogo Paiva based in Lisbon

Usage information

How many users? Which user category ? Is there critical period ? Which geographical perimeter? Describe in one sentence: around 50 users, worldwide or 200 users / European Site

History

Provide some history of the application : When was it created ? What was the initial project ? Who was the original requestor ? If possible provide link to the project information

Roles & Access

Roles and access


Role IdRole TitleExplanation
ZR_RCS_CA_M52 DP - Demand Planning

Role Menu Dynasys

ZBI_RCS_DP_A02Demand Planning - Dynasys

Role utilisateur Dynasys

Authorization object ZBI_DPS

  • gives access to Application Area IA_DPS_DYNASYS
  • authorization limited on GBU (CPFCTR1_2) (in WBP since 14/03/2017)
ZBI_RCS_DP_A03Demand Planning - Dynasys Keyuser

Authorization object  ZBI_DPS_K

  • gives access to transaction ZMAINT_MATPLANT + ZMAINT_MATVENDOR
  • gives access to Application Area IA_DPS_DYNASYS 
  • authorization limited on GBU (CPFCTR1_2) (in WBP since 14/03/2017)

See also file maintained by Authorization team : BW Catalog of Roles / link: https://drive.google.com/open?id=10GEfKYqrT1eeTO_uHYAheL1GX7L5y_pvH0KQU64qh5I

Authorization objects

List of autorisation objects mandatory for the application.

Authorization objectExplanation

GBU (CPFCTR1_2)

ZR_*_CA_P05

Dataflow overview

DynaSys source view used 

DynaSys ViewMasterData/TransactionnalContentComments
EXP_DP_SHIPTO_BWMD


EXP_DFU_DR_BWMDMaterial/Ship-to/DC

EXP_SHIPTO_DC_SR_MANUAL_BWMD


EXP_MATSHIPTO_BWMD


EXP_SF_CRM_BWMD


EXP_DC_BU_BWMD
Not used in Reporting but Interface part
EXP_FORE_BWTransacdata for Forecast Accuracy (including Gross History)All GBU except CM
EXP_FORE_DR_BWTransacdata for Demand ReviewAll GBU except CM
SYS_TIMESTAMPSystem


EXP_SAP_PROG_BWMDProgram/Market AssignementCM (Aero)
EXP_MAIN_SPEC_BWMDMain Spec AssignmentCM (Aero)
EXP_AERO_SKY_BWMDSkyline by Program/MonthCM (Aero)
EXP_SHIPTO_INFO_BWMDShip-to info (RCS+BAAN)CM (Aero)
EXP_MATERIAL_BAAN_BWMD

BAAN Material info

PE1 Material info 

CM (Aero)

2020/12/11 Removed, not used anymore

2021/06/24 Used again for AERO Wave 3, one shot to load PE1 material info



EXP_AERO_FA_BWTransacdata for Forecast Accuracy (including Gross History)CM (Aero)
EXP_AERO_DR_BWTransacdata for Demand Review (including Gross History)CM (Aero)
EXP_MTP_BWTransacdata for MTP reportAll GBU except CM
EXP_DIP_BW_SKU_BWTransacdata for DiP reporting (Datafields without receiving site)All GBU
EXP_DIP_BW_SKU_SITE_BWTransacdata for DiP reporting (Datafields with receiving site)All GBU
EXP_DIP_BW_MD_SKU_BWMDDIP/PP specific master data (Shipping/Reciving Site attributes)All GBU
EXP_BW_SKU_BWTransacdata for E2E VC Dashboard All GBU

EXP_BW_PLANT_CONS_BW

MDPlant for Consignation list managed in DynaSysNot used in Reporting but Interface part
EXP_MATERIAL_SAP_BWMD
All GBU
EXP_SOP_BWMD
All GBU
EXP_MATERIAL_BWMD
Not used in Reporting but Interface part

EXP_DFU_OTHER_BW

MDMaterial/Ship-to/DC/SpecCM (Aero)


Functional and Technical rules on Workbench + Reporting

Rules & Explanations

IECRA determination (implemented since 13/11/2017)

RCS notion, IECRA is only determined for RCS records.

  1. Retrieve the division (0DIVISION) from material (C_MATNR2)
  2. Get IECRA (0G_CWWE01) from masterdata C_CDSA which is distribution channel (0DISTR_CHAN) compounds with division (0DIVISION).

Determination done at Business Level (EndRoutine)

BU (C_DYN_010) / GBU (CPFCTR1_2) determination

Both BU and GBU are determined at Business Level (EndRoutine) by reading mastersdata C_DYN_005 / Material with System Extension.

The link Material / BU is given by DynaSys interface part : DSO DBDYN02.

The link BU/GBU is given by C_SUBACT2 / Sub-Activity 2


BU = ERP Group of activities (C_PFCTR2)

GBU = BFC Global Business Unit (CPFCTR1_2)


Rule for RCS records was changed the 13/11/2017 (item #58). BU/GBU is now determined reading IECRA (0G_CWWE01)

Sold-to (C_SOLDID) determination

The Sold-to is determined at Business Level (EndRoutine) by reading mastersdata C_DYN_014 / Ship-to with System Extension.

The link Ship-to / Sold-to is given by DynaSys (table EXP_DP_SHIPTO) and stored daily in masterdata C_DYN_014.

Commercial Product (C_PROD) determination

The commercial product is needed to be able to use attributs of masterdata C_GBR14 / GBR: Customer end-use Mat Grp (Ship-to)

The commercial product is determined by reading masterdata C_MATNR2 / Material

Sales Office (C_SAL_OFF) / Sales Document Type (C_DOCTYP2) / Company Code (C_COMPCDE) determination

Sales Office, Sales Document Type, Company code can not be determined for DynaSys, they are set by constant DYN because axis are needed in reporting Sales Follow-up.

Caution Sales Office is autorization relevant for Sales Reporting (Obas, Global Sales), it has been added in Application role, auhorization object ZBI_SD

Company Code also, it will be added ( item #39)

 


End of Month View (C_FCSTMTH)

For daily dynamic flow, it corresponds to current month/year

For snapshot flow, it corresponds to previous month of the snapshot

date of the SnapShot

End of Month View

(C_FCSTMTH)

6th of May 201804.2018
6th of May 201811.2018

In case of a manual reload the value can be changed by using Global Filter 


Concerned Period (C_FCGMTH)

For daily dynamic flow, it is set with 'M' (mean view of the month 0CALMONTH

For snapshot flow, it is calculated :

1) If period (0CALMONTH) = end of month view (C_FCSTMTH) => Concerned Period (C_FCGMTH) is set to 'M' means value of the month

2) If period (0CALMONTH) < end of month view (C_FCSTMTH) => Concerned Period (C_FCGMTH) is set to 'N/A' means Not Applicable, SnapShot done after period

3) If period (0CALMONTH) > end of month view (C_FCSTMTH) => 

a) compute NB Month =  (period (0CALMONTH) - end of month view (C_FCSTMTH) ) - 1

b) if NB Month between -999 and -1 => concatenate 'M' with NB Month into Concerned Period  (C_FCGMTH) 

    else Concerned Period (C_FCGMTH)  is set to 'N/A' 




Caution : Concern period M-1 does not exists.

               Concern period M for Forecast is considered as M-1 in BW queries.


Examples:

date of the SnapShot

End of Month View

(C_FCSTMTH)

Calendar Year/Month

(0CALMONTH)

Concerned Period (Flag)

(C_FLGMTH)

6th of August 201707.201707.2017M
6th of August 201707.201708.2017M-2
6th of August 201707.201702.2019M-20
6th of August 201707.201708.2016N/A


DiP-PP - Datafields type & key figures

For the DiP reporting we use only two key figures :

The quantity or the amount is assigned to a specific Kpi determined by the field DataField Type (C_DATATYP).

In BW we've created one restricted key figure per Datafield type.

The list of the different Datafields loaded from Dynasys and their respective RKF is available here.

To know if the Datafield type is a quantity (assignment of the value to K_DYN_021) or an amount (assignment of the value to K_DYN_021), we're using Global filters entries.

Stream : DPS
Rule : DIP_KF_VAL


In this rule, we've listed the Datafield type expressed in value (amount). 

This Global filter variables are used in the transformation between AADPDY06 & APDPDY07 to make the assignment.


Some datafield types are also defined in hours on Dynasys. There is no changes on the value but only on the unit. All datafields defined with the "H" unit are listed in the global filter rule : DIP_KF_HR


In this case the unit assigned to the key Figure will be "H" (hour) . This assignment is done in the end routine of the transformation between AADPDY06 & APDPDY07.



DiP-PP - Shipping Site (Plant) & Receiving Site (Site) 


Transactional data :

For the DiP reporting, some datafields are defined with only a Shipping site and some with also a Receiving site.

Datafields source :

Following the cases, Shipping site and Receiving site can be :

  1. A site (plant)
  2. A ShipTo (customer)

The assignment is done in the propagation Layer :


Master data :

Somes attributes associated to Shipping and Receiving site are send by Dynasys tool with the datasource DTS_CV_EXP_DIP_BW_MD_SKU_BW based on the Dynasys view EXP_DIP_BW_MD_SKU_BW.

The content of the view is stored in the master data C_DYN_074 (Shipping site).

There is also another master data C_DYN_084 (Receiving site) which is in reference of C_DYN_074


To determine if a Shipping (receiving) Site is a plant or a ship-to, we'll use the attribute "TYPE_OF_SITE" C_DYN_078.

IF TYPE_OF_SITE = SHIPTO => Shipping or receiving site is a ShipTo code

ELSE => Shipping site or receiving site is a Plant code

This test is used in the calculation view CV_DY_DIP_REPORTING to catch attributes from C_PLANT or C_SHIPTO master data following the record :



It is also used to know where the description have to be loaded.

IF it's a shipTo, the description is loaded from C_CUSTID.

If it's a plant, the description is loaded from C_PLANT.

The check is done in the transformation between the different master data :


BW objects assignments are described in details here.



There is another specific master data C_DYN_071 (material /plant) that is loaded from the ADSO APDPDY06 (view EXP_DIP_BW_SKU_BW).

A filter at the DTP level load only these datafields in the master data :


Assignment between transactional and master data :

The assignment is done in the calculation view in the projection of the ADSO ABDPDY53 :


DiP-PP - Logsys assignment


The assignment of LOGSYS field is done on BW between acquisition and propagation layer reading by default the extension of the material code send by Dynasys.
=> See the end routine of the transformation between ADSO AADPDY06 → ADSO APDPDY07

But for some Datafields type, there is no Material code, we must use and read the extension of Shipping site code send by Dynasys to determine the LOGSYS
Datafields coming from the view SKU_MAIN_SITE always have a Material Code assigned.
See below the list of Datafields type without Material code :

AVAILABLE_CAPA
BALANCE
BALANCE_CUMUL
CAPA_USED_BY_PLAN
LOAD
PROD_REQ_BY_RESOURCE


In the end routine, we are using a Global filter entry with the list of these datafield type to determine if we are usgin the material or the shipping code to determine the logsys :

Stream : DPS
Rule : DIP_LOGSYS

AERO- Transcodification for BAAN Ship-to

Ship-to BAAN are longer than SAP Ship-to (10 characters). For technical reason and to fit into the 10 character SAP Ship-to, a transcodification has been handle on DynaSys side.

BW receives directly result of the transcodification, and consider it as the Ship-to.

  


BEM  xxxx CUS xxx can be found in masterdata C_DYN_024

AERO- How Program/Market assignement works ?

Always refer to Dataflow for a better understanding => DynaSys Reporting Dataflow


1) Program/Market assignment is managed in DynaSys. at Material/Ship-to/Distribution Channel/Main spec/Month level

2) assignments are uploaded into BW daily from monday to friday at 10.15pm from DynaSys view EXP_SAP_PROG_BW


NB: on BW a rule put value DUMMY if assignement is provided from DynaSys without program or if the sum of percentages are different from 100%.



AERO- How conversion to Base Unit or Sales Unit works ?


BAAN quantities are provided in Sales Unit (SU).

As this point was discoverd late during the project, and as BW model is mostly designed to collect only quantities in KG, BAAN quantities are stored in KG keyfigures.

So keep in mind, the unit is Not the correct one for all KG keyfigures



AERO- How the Final Forecast Cost is calculated ?

The Final Forecast Cost is a key figure available in the report :


We also have 3 characteristics available and associated to these key figures :

Storage on BW

The material cost are loaded at the beginning of every month in the cube CUB_PCP01.

it means the product cost is depending of the month, each month we can have the same value or a different one.

in SAP, we can check the cost in MM03 => Sheet : Costing 2.

Example : Material 160704 / Plant : 8350

 => 


On the BW Dynasys application, we load these same costs and stored them in the ADSO APDPDY05.


The ADSO is used in the calculation view CV_DY_BL_DYN22_CPDYN11 :


Final Forecast Calculation

The Final Forecast Cost amount is calculated like below :

FF Cost = Final Forecast (BaseUoM) * Product Cost


The FF Cost is calculated for each month in the past and also in the future.

As the product cost is not existing for the month in the future, we have copied the cost of the current month to the other month in the future.

Example : We are on August 2021, the lastest Cost value available is the cost of August 2021. They are are copied until the end of Current Year + 2 (rule defined with business)

Each month, the product costs in the future are re-calculated based on the latest cost values loaded and available.


We also apply the latest product cost to the previous month of the same year.

Example 1 : We are on August 2021, the lastest Cost value available is the cost of August 2021. Cost Values are copied on January 2021, February 2021 etc...

Example 2 : We are in January 2022, the cost values of december 2021 will not be updated with the cost values of january 2022. 
We keep the last version of cost for december 2021 and copy them in all the months of the year 2021.


On BW, it's done in the transformation of ADSO APDPDY05 on itself.

The calculation of the FF Cost is done at the calcualtion view level because we need Final Forecast (BaseUoM) quantities :

Exchange Rate

As the product cost are defined in the local currency, we have given the possibility to convert in a target currency (USD in our case) at the Query level :

We are using the same exchange rate for the amount measures in the report => CAR4.


Please find below a summary of the FF Cost calculation based on the previous rules exposed.

Example : Vision of August 2021, if we run the report for year 2021

MonthFF Cost calculation
JanuaryFinal Forecast Cost = August product cost x January currency exchange rate (to USD) x January Final Forecast (BaseUoM)
FebruaryFinal Forecast Cost = August product cost x February currency exchange rate (to USD) x February Final Forecast (BaseUoM)
MarchFinal Forecast Cost = August product cost x March currency exchange rate (to USD) x March Final Forecast (BaseUoM)
AprilFinal Forecast Cost = August product cost x April currency exchange rate (to USD) x April Final Forecast (BaseUoM)
MayFinal Forecast Cost = August product cost x May currency exchange rate (to USD) x May Final Forecast (BaseUoM)
JuneFinal Forecast Cost = August product cost x June currency exchange rate (to USD) x June Final Forecast (BaseUoM)
JulyFinal Forecast Cost = August product cost x July currency exchange rate (to USD) x July Final Forecast (BaseUoM)
AugustFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x August Final Forecast (BaseUoM)
SeptemberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x September Final Forecast (BaseUoM)
OctoberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x October Final Forecast (BaseUoM)
NovemberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x November Final Forecast (BaseUoM)
DecemberFinal Forecast Cost = August product cost x August currency exchange rate (to USD) x December Final Forecast (BaseUoM)

CRM Prospect transcodification (18C>11C)

Prospects were not part of initial DynaSys project, so Ship-to lenght has been based on SAP Ship-to, 10 characters (11 characters to add extension B or R).

In reality CRM Prospect are defined in CRM on 18 characters (contact on CRM side josiane.peytraud@solvay.com)

A transcodification on 11 characters has been put un place on BW site to fit BW object defined on 11 characters.

Class ZBW_DPS_DYNASYS_UTILS => method GET_PROSPECT_TRANSCODED


* Some explanation from CRM team about CRM Prospect Code
* Positions 1,2,3   = type of object or table.For prospect, value is always 001
* Positions 4,5     = organisation, value is currently 24 or 1p for CRM Core
* Position 6        = reserved for SalesForce
* Position 7 to 15  = counter but sensible to upper/lower case
* Position 16,17,18 = important for unicity if upper/lower case is not kept

CRM Prospect Code is on 18 characters, has to be cut to fit 11 characters
Ex= 0011p00001WzSnTAAV => 001WZSNTAAV

Dependencies with other applications

Dependencies with other application (BW, QV, Externals tools like PVelocity or Dynasis etc...

Data loadings

Process Chains


Process ChainCodeTypeFrequencyComments
DPS Dynasys: META - M - 6.Reporting DynaSys (Snapshots)PC_DPS_DYNASYS_09 MAIN
  • Monthly, the 6th of the month at 6am
  • Whole chain last around 10 minutes (07/10/2016)

Based on Table EXP_FORE (daily update, by 1.45am even if BW loading is monthly)

The SnapShot month (End of Month View/C_FCSTMTH) is automatically set to previous month.

Global filter variable (C_GLBFILT) DPS/PHOTO_MTH can be used to fix another SnapShot month.

Caution : do not launch this chain several times a month without cleaning previous loadings

Info : started at 3am changed to 6am on DynaSys Team request (07/07/2017). EXP_FORE was not ready at 3am due to longer treatments on DynaSys side

DPS Dynasys: META - D - 6.Reporting DynaSys (Dynamic KPIs)PC_DPS_DYNASYS_15MAIN
  • 4 times a day
  • Whole chain last around 30 to 45 minutes (06/08/2020)

Based on Table EXP_FORE_DR

05/01/2017: On DynaSys side, the treatment which prepares table EXP_FORE_DR takes more time, and now finishes around 2.45 (previously 1.45) => BW chain starter changed 2.30 am => 3.00 am

23/01/2017: The chain is planned hourly (with Calendar 14), but the loading will apply only for following time intervals (Decision Block)

21/02/2017: Run of 3 am has been cancelled because the DynaSys table was frequently empty when BW was collecting the data

31/10/2017: Still 4 runs a day, but whole loading will be done ONLY is DynaSys table EXP_FORE_DR has been updated (timestamps in table SYS_TIMESTAMP)

08/01/2018: 4 runs a day. Run of 10am has been changed to 7am



Decision block explanation :

Block 1


1) Check if Decision Block has to be bypassed


Variable can be activated If chain has to be forced to run

2) Else get loading times


Block 2


1) Check if Decision Block has to be bypassed

 

 Variable can be activated If chain has to be forced to run

2) Else get loading times. And check timestamps loaded from DynaSys (table SYS_TIMESTAMP / info for EXP_FORE_DR)

If timestamps between 2 loadings, the chain has to carry on

DR for CM or DR for All GBU block


Change C_LOW by "Y" if loading has to be bypassed


Load AERO-Prog/market from DynaSys ?

Chain 15 is running 4 times a time, but Aero Prog/Market needs to be loaded only once a day, at 2pm.

Decision block is checking time, and also check the timestamp date = today's date




Email Messages send at chain's end to inform DynaSys Team + list of Users + BW DynaSys Team when data is up to date

see procedure for details of message

=> Modify email message for DR data disponibility sent to users (All GBU except CM (aero))

=> Modify email message for DR data disponibility sent to users (GBU CM (aero)


DPS Dynasys: META - M - 6.Reporting DynaSys (MasterData)PC_DPS_DYNASYS_23MAIN
  • Daily at 22.15pm

A remaining issue :

  • DTP DBDYN33 -> C_DYN_017 - Full => duplicates on Ship-to 703581S / SDSOA
    cause : the DC is not filled for all loadings (subject in progress Julien/Emmanuel)
    solution : the DTP has to handle duplicates (done only in WBP as solution is temporarly

Issue solved :

 

  • DTP DBDYN12 -> C_DYN_018 - Full => duplicated on Ship-to 66946R
    cause: specific rule for plant 8000 is not applied for Ship-to with extension (subject in progress Julien/JC)
    solution: in DSO DBDYN12 delete line with Ship-to 66946R / Plant 8000


DPS Dynasys: META - D - 6.Reporting DynaSys (Obas data)PC_DPS_DYNASYS_20MAIN
  • Daily at 6.15 am (changed 21/11/2017)
Temporarly schedulling! this chain has to be added in Obas chain or launched via an Obas event
DPS Dynasys: TD - D - Reporting Dynasys (DIP Inventory KPIs)PC_DPS_DYNASYS_33MAIN
  • 4 times a day
  • Whole chain last around 20 minutes (April 2022)

Based on Table EXP_DIP_BW_SKU_SITE_BW, EXP_DIP_BW_SKU_BW & EXP_DIP_BW_MD_SKU_BW.




Decision block explanation:

Block 1


1)Check if Decision Block has to be bypassed


Variable can be activated If chain has to be forced to run

2) Else get loading times


Block 3


1)Check if Decision Block has to be bypassed


Variable can be activated If chain has to be forced to run

2) Else get loading times. And check timestamps loaded from DynaSys (tableSYS_TIMESTAMP / info for EXP_DIP_BW)

If timestamps between 2 loadings, the chain has to carry on

Block only Master Data DIP/PP (view EXP_DIP_BW_MD_SKU_BW)

Change value of the following global filter variable to by-pass the step :


Block only SKU DIP/PP (view EXP_DIP_BW_SKU_BW)

Change value of the following global filter variable to by-pass the step :

Block only SKU SITE DIP/PP (view EXP_DIP_BW_SKU_SITE_BW)

Change value of the following global filter variable to by-pass the step :



Email Messages send at chain's end to inform DynaSys Team + list of Users + BW DynaSys Team when data is up to date

see procedure for details of message

=>Modify email message for DIP/PP data availability sent to users

=>Add or remove email address in distribution list for DiP-PP reporting







Loading frequency

Detail of frequency : monthly; weekly or else

Average performance

if possible, give some information on average process chain duration, amount of data loaded and total data volume example: daily process chain loaded in 30 min, weekly chain loaded in 1h15, with around 2k to 10k lines in DELTA mode for a total of 10M lines in cube. The purpose is to give a general overview of the volume of data managed y the application


Key FigureEstimation
~ Average Process Chain Runtime
~ Average nb of rows loaded per load
~ Total nb of rows loaded (if full)
~ Average Runtime for 10k lines

Record Keeping

Give details if any historisation is done, example: keep only data greater than beginning of Y-3

Reporting

Queries End User Documentation

Query end user documentation should be created in the public "Customer Support Wiki" space under the corresponding BW application page : BW - Application. Technical query query documentation, if necessary should be added as a sub-page of this documentation using the BW Technical Query Documentation template.


Main queries

QueryDescriptionTypeRole MenuComments

BW_QRY_MVDYN11_0006

BW - DP - Demand Review (Core query)QRYDP - Demand Planning

This query is being decommissioned (target early July 2023)


BW_QRY_MVDYN11_0001BW - DP - Budget Review (Core query)QRYDP - Demand Planning
BW_QRY_MVDYN11_0005BW - DP - Forecast Accuracy (Core query)QRY

DP - Demand Planning


BW_QRY_MVDYN11_0007BW - DP - Segmentation Report (Core Query)QRYDP - Demand Planning

Asked by EP (Emmanuel Hatt)

To be decomissioned as not used  (target early July 2023)

QVSBS_BW_QRY_MVDYN11_0001BW - DP - Demand Review for SBS Dashboard (QV)QRY

This query is used to provide Qlik View Forecast informations from DynaSys

QV application : CRM Analytics

QV_BW_QRY_MVDYN11_0005BW - DP - Forecast Accuracy (QV query)QRY

This query is used to provide Qlik View FA

QV application 1 : Novecare Suply Chain dashboard

QV application 2 : Global Supply Chain

BW_QRY_MVSDSO01_0006BW - Sales Follow-Up ALL DYN (V2)QRY

 Obsolete query. It has been replace by :

  • Soda Ash query = BW_QRY_MVSDSO54_0001
  • General query = BW_QRY_MVSDSO54_0002
BW_WBK_DPS_0001BW - DP - Budget Review AROMA (Workbook)WRK
Workbook is based on query BW - DP - Budget Review (Core query) /BW_QRY_MVDYN11_0001
BW_WBK_DPS_0002BW - DP - Budget Review SA&D (Workbook)WRK
Workbook is based on query BW - DP - Budget Review (Core query) /BW_QRY_MVDYN11_0001
BW_QRY_CPDYN11_0006BW - DP - Demand Review for CM (Core query)QRYDP - Demand PlanningProject Solstice Aero
BW_QRY_CPDYN11_0005BW - DP - Forecast Accuracy for CM (Core query)QRYDP - Demand PlanningProject Solstice Aero
BW_QRY_CPDYN13_0001BW - DIP - Distribution Planning - Core QueryQRY 

DiP - Distribution Planning


BW_QRY_CPDYN13_0002BW - DIP - Distribution Planning - Inventory DataQRYDiP - Distribution PlanningOnly datafields type "inventory" are available in that query.

BW_QRY_CPDYN14_0001

BW - DP - MTP (Core query)

QRYDP - Demand Planninglive from 07.2021 - used by Special Chem
DI_BW_QRY_CPDYN13_0001BW - DIP - Distribution Planning - DataikuQRY
 This query is used to provide Dataïku Forecast informations from DynaSys

SODA application : data sensing

Main functionalities

Give detail on all complex functionalities: list most important and/or complex KPI, query jump, alerts

Broadcast

Indicate if there are broadcasts and give some details on the broadcast settings.

Maintenance

Tips & Tricks

Extract of 2019 Gross History as a reference

 File with 2019 GH by GBU to have an idea of volume & net sales

Known bugs

Wrong amounts in Local Currency Yen (Currency JPY) - Issue closed

For low currency like JPY, SAP has its own internal format to store amounts.

Transformation has been adapted.

See routine

Caution this internal format has to be applied ONLY to keyfigures type Currency (CURR)

For keyfigures type Float (FLTP) routine has been removed as amounts in JPY where divided by 100. Check keyfigure definition.


Example to check

Material 32787 / Ship-to 88719 / Distrib Channel 7K / Source System RCS / GBU Aroma PA

Material 135918 / Ship-to 2066945 / Distrib Channel 7F / Source System RCS / GBU Aroma PA





Recurring procedure

Reload a monthly snapshot from flat file 

Caution, the flow is always changing. The current mapping might not be up-to date and need to be adapted.

A snapshot reload by flat file has to be validated in WBQ first


File structure to use

https://docs.google.com/spreadsheets/d/11v1GZUu8w7Sg7RSG2O1pTETTzabr6bHN/edit#gid=1857575871


Particularities :

Upload manually DPDYN01 / DYN - Reporting (SnapShots)

Then follow upper steps as in the process chain  "DPS Dynasys: META - M - 6.Reporting DynaSys (Snapshots)" / PC_DPS_DYNASYS_09


Many reloads have been done to correct FA data or after organization changes

CH cleaning.csv

Reprise CH vers TS.csv

Reprise TS - July 2022.csv

Reload a monthly snapshot from DynaSys table EXP_FORE_BW

Snapshot to reload has to be previously removed from all level :

If reload is done the same month than the deleted snapshot, just run chain PC_DPS_DYNASYS_09 via SE37, Fonction Module RSPC_API_CHAIN_START

(manually chedule again PC_DPS_DYNASYS_09 for next month)

If much later, change Global Filter to set the wanted month and activate the line, and run chain PC_DPS_DYNASYS_09

 Caution variable has to be unactivate afterwards, otherwise following snapshot will be fix to that month!


For info, the variable is used to fix "End of Month View" (C_FCSTMTH)


Important : After a BW snapshot reload QV Team has to be informed to reload their part.

Increase/decrease DR upload from DynaSys

Change values in Global Filter (C_GLBFILT)

Put Active = 'N' to unactive an existing loading.

Add a new line for an extra loading. Please keep the same logic, all loading times are recorded chronologically to make reading easier.

 Do not forget to record your modifications in paragraph "Process Chains" in PC_DPS_DYNASYS_15 comments


Increase/decrease DIP/PP  upload from DynaSys

Change values in Global Filter (C_GLBFILT)

Stream = DPS

Rule = PCH_DYN15M

Put Active = 'N' to unactive an existing loading.

Add a new line for an extra loading. Please keep the same logic, all loading times are recorded chronologically to make reading easier.

Add or remove email address in distribution list for DR data availability  (All GBU except CM (aero))

NB: Distribution list exists on all systems, but user list is only maintained in production system WBP

Transaction SO23 

Name DL_DP_001

 

Add or remove email adresses. 


Do not forget to record your modifications in that paragraph

List of user email :

SodaAsh&Derivated (SD):

AROMA (PA):

Special Chem (CH):


Technology Services :


Oil&Gas (OG):

Digital Technology :


Removed 



Add or remove email address in distribution list for DR data availability (GBU CM (aero))

NB: Distribution list exists on all systems, but user list is only maintained in production system WBP

Transaction SO23 

Name DL_DP_002

 

Add or remove email adresses. 

Do not forget to record your modifications in that paragraph

List of user email :

Composite Materials (CM):

Digital Technology:


Removed 


Do not forget to record your modifications in that paragraph

Add or remove email address in distribution list for DiP-PP reporting

NB: Distribution list exists on all systems, but user list is only maintained in production system WBP

Transaction SO23 

Name DL_DP_004

Do not forget to record your modifications in that paragraph

Digital Technology:


Removed 


Do not forget to record your modifications in that paragraph

Modify email message for DR data availability sent to users (All GBU except CM (aero))

Email message has to be modified in WBD and moved to WBQ, then WBP.

 RSA1 / Chain PC_DPS_DYNASYS_15

 

Change to 'change' mode

right click => maintain message => Successful => Edit Document 

Do not forget to record your modifications in that paragraph.

Modify email message for DR data availability sent to users (GBU CM (aero)

Email message has to be modified in WBD and moved to WBQ, then WBP.

 RSA1 / Chain PC_DPS_DYNASYS_15

 

Change to 'change' mode

right click => maintain message => Successful => Edit Document 

Do not forget to record your modifications in that paragraph.


Modify email message for DIP/PP data availability sent to users 

Email message has to be modified in WBD and moved to WBQ, then WBP.

 RSA1 / Chain PC_DPS_DYNASYS_15

 

Change to 'change' mode

right click => maintain message => Successful => Edit Document 

Do not forget to record your modifications in that paragraph.


Clean Forecast Accuracy for all GBU except CM-AERO (ABAP ZBW_DYN018)

Careful, this action is definitive !!!!

Program ZBW_DYN018 / DYN - Forecast Accuracy cleaning (Selective del in DBDYN13 + DPDYN01)

This program has been created to delete data from Forecast Accuracy DSOs.

1) prepare input file as following template

https://drive.google.com/file/d/11v1GZUu8w7Sg7RSG2O1pTETTzabr6bHN/view?usp=sharing

prospect reference (like 0011p00002banehAAA) have to be removed from the list

fill interval of months (even if deletion is asked for a single month)

2) run abap

3) reload CRDYN13 cube


May 2021 : Cleaning has been done for ODYSSEY project (NOVECARE) as Open Gate was not going to keep DynaSys

> Genthin from January 1, 2021 [Carve out]
> UP / Halifax from March, 1rst [Carve out]

ODYSSEY FA Genthin Cleaning.xlsx

ODYSSEY FA UPHalifax Cleaning.xlsx

May 2021 : Cleaning has been done for Silica

Silica FA Cleaning.xlsx


July 2021 : Cleaning has been done for SA&D LATAM / ODYSSEYWAREHOUSE MULTIMODAL LOGISTICS (NOVECARE) / SILICA

FA Cleaning ODYSSEY & others 072021.xlsx


Feb 2022 : Cleaning has been done for Novecare / RASAL Plant from JAN 2022

FA Cleaning RASAL.xlsx


April 2022 : Cleaning has been done for Novecare / RASAL Plant from JAN 2022 (2nd round)

CS-Analysis-RasalCleaning-March22.xlsx


March 2023 : Augeo products moved from Novecare to Coatis. DFU were set to un-active on DynaSys. FA needed to be cleaned from JAN 2023

Cleaning has been done for AUGEO materials identified (DFU list provided by DynaSys) from JAN 2023 

AUGEO PF1 CLEANING.xlsx

AUGEO WP1 CLEANING.xlsx

AUGEO WP1 CLEANING O&G DFU.xlsx (cleaning will be seen in BW/Qlik with April 2023 upload). CS has validated DFU 138115R:2034644R@06R O&G can be cleaned.


WO0000000319691 => duplicate DFU (and hybride)

141018R2094236RCHRAR
321715R2023962RCHRAR + TSRAR


MTP - How to change archive month for current year

The month of MTP archive is running yearly, the 6th of the month entered in variable MTP_LOAD


The month was set to October => 10

If it is decided to change it. It can be done by changing the Global Filter.

Caution, if the change is done after the 6th of October, the archive done the 6th of October will have to be removed first.

MTP - How to reload a MTP archive

Remove the old archive with a selective deletion of ABDPDY04  (to check how to do it with ADSO)

Change the year for the archive and set Active = Y in Global Filter (DPS/PHOTO_MTPY)

Load ABDPDY04 via flat file flow

Do not forget to inactivate Global Filter (DPS/PHOTO_MTPY) afterwards (otherwise it will be erased by next automatic MTP archive)


2020 has been manually loaded via flat file Reprise EXP_MTP History_CH_2020.csv

2021 was wrongly filled with oct 2022 data

2022 was manually archived the 19th of April 2023


Ship-to/Forecast Customer descriptions onshot loading for CM-AERO and BAAN/PE1 cases

Situation : Ship-to or Forecast Customer description are missing in AERO Demand Review report (BW_QRY_CPDYN11_0006)

This is usually due to mixte DFU (RCS material (extension R) with BAAN or PE1 ship-to (extension B)


1) File format expected

BAAN Customer Forecast Description.csv


2) check file - listed customers should not already have description in table /BIC/TC_CUSTID for language = 'EN'

Caution : if description already exists for the source system, if you load a new description it will impact all BW application. Object C_CUSTID is widely used.


3) load file

=> emty PSA

=> IP: DTS_C_CUSTID_TEXT (PC_FILE) - Full  (change File Name first)

=> check PSA

=> WBP DTP: DTS_C_CUSTID_TEXT (PC_FILE)-> C_CUSTID



4) Description are instantly available in reporting

Planned Evolution

Detail planned major evolution if already known. Example: complete decommissioning of application is planned in 2017 / Extension to solvay perimeter planned in 2nd semester of 2016