BW Demand Planning Scheduling (DPS)

Tool Leader: Alexandre Eliane
IT leader of the application: Laura Labbadi (DynaSys DP), Alexandre Eliane (DiP-PP), Mario Simonelli (BW), Craig Wanamaker (BW backup)
Name of project: DynaSys
Reporting Coordinator: PAIVA Diogo <diogo.paiva@solvay.com>
List of GBU deployed in DynaSys, and live modules => b. GBU & BU codes, Product Group et Customer Group
| Role Id | Role Title | Explanation | |
|---|---|---|---|
| SILICA (SI) | 2016 ((DIP-PP + DP) | ERP BU : ENTRP00002 2 DC : 21 for "Tires" + 82 for "Silica Cross Company". In DynaSys workspace filtered on DC 21 "Tires" | WP1 |
| PEROX | beg 2017 (DP) June 2017 (DIP-PP) | ERP BU : PEROX | |
| SODA | June 2017 (DIP-PP) | ERP BU : SDSOA / SDERI 5 April 2022 => migration DP1 to DSCP1 Export DR live the 5th of April 2022 at 6pm / Export FA live 6th of May 2022 | PF1 |
| EP | dec 2017 (DP) | ERP BU : ENTRP00030
EP APAC golive is confirmed to be rescheduled on Apr 6th 2018 EP North Amerciay in June 7th 2018 | WP1 + PF1 (only mexique business) |
| Aroma Performance (PA) | dec 2017 (DP) planned 2018 (DIP-PP) | ERP BU : ENTRP00108 / ENTRP00194 (WP1) + PMEPL / PADIP / PACYT (PF1) | WP1 + PF1 (only mexique business) |
| Fibras | planned dec 2018 (DP) | ||
| Coatis | planned dec 2018 (DP) | ||
| Cytec (TS) | DynaSys DP Go-live June 2018 (DP) | ERP BUs: ENTRP00190 + ENTRP00197 + ENTRP00198 + ENTRP00192 | WP1 |
| Novecare (CS) | DynaSys DP3 Go-live April/May 2019 (DP) by Ship-to Zone Europe : April 22-26 | BW reporting - Forecast Accuracy - Snapshot is done every 6th of the month April 6th 2019 -> Snapshot WW done from APO May 6th 2019 -> Snapshot from APO for NA / LA / AP + Snapshot from Dyn for EU June 6th 2019 -> Snapshot WW from DynaSys BW reporting - Demand Review Switch to DynaSys for all zones from 12th of April 2019 | WP1 + PF1 |
| Composite Material (CM) | DynaSys DP2 Go-live January 2020 (DP) | Janv 2020 - Run 1 Nov 2020 - Run 2 July 2021 - Run 3 | WP1 |
| Special Chem (CH) | DynaSys DP3 Go-live July 2020 (DP) | BW reporting - Forecast Accuracy July 6th 2020 -> Snapshot done from APO August 6th 2019 -> Snapshot done from DynaSys BW reporting - Demand Review Switch to DynaSys from 7th of July 2020 | WP1 + PF1 |
| Specialty Polymers- SPP (SP) | Dedicated DSCP Go-Live April 2022 for DP part | PF1 only |
| WIKI DynaSys for endusers | DynaSys | Useful link to get general information about DynaSys. tool Lexicon part list the notion managed within Interfaces and Reporting. |
Number of users: tbd
Critical period: none
Geographical perimeter: worldwide
InfoArea:

Process chain Display Component:

| Role Id | Role Title | Explanation |
|---|---|---|
| ZBI_RCS_DP_A03 | Demand Planning - Dynasys Keyuser | Authorization object ZBI_DPS_K
|
See also file maintained by Authorization team : BW Catalog of Roles / link: https://drive.google.com/open?id=10GEfKYqrT1eeTO_uHYAheL1GX7L5y_pvH0KQU64qh5I
Dataflow presentation
General presentation
Sales, Deliveries, Stocks, BoM, Recipe...are extracted from several BW application or from SAP directly and stored in DynaSys dedicated DSO, ADSO.
Data are filtered, reworked, and used to generae flat .csv files through APD or ABAP or Hana Application Process (soon).
Files are moved to DynaSys datahub, and loaded in DynaSys modules (DP or DiP).
Useful file to understand dataflow from APD to source, and check filters applied all along the dataflow: (not up to date)
All interfaces flat files are documented in specification googlesheet
MasterData => Master Data Process specification
DP (used for DP module) => DP Process specification
DIP-PP (used for DiP-PP module) => DI-PP Process specification
All amounts transfered to DynaSys are in Euro (EUR).
Many discussions have been led concerning the exchange rate to use. Finally the exchange rate has been set to CAR4 (active since 2018/07/26)
CAR4 exists only on BW side, It handle begin of month rates.
it is created from exchange rate CAR2 via program ZBW_LOAD_EXCHANGE_RATES_CAR4 (old Z_CREATE_EXCHANGE_RATES_CAR4). The creating is handle via a scheduled process chain Z_TAUX_CARAT.

TIP : To check exchange rate on SAP side, use transaction ZRATE (available on WP1 & PF1)
File | Where is the conversion done? | Conversion routine | Exchange rate | Time reference | Comments |
DYS_BW_PNL.csv | Query BW_QRY_MVCOPA01_0017 | CTK_DYN07 | CAR4 | 0CALMONTH (start of month) | CAR4 used since 20180726 (before C) |
DYS_BW_IH.csv | Query BW_QRY_MVSDSO44_0005 | CTK_DYN06 | CAR4 | 0BILL_DATE (to exact day) | CAR4 used since 20180726 (before C) |
DYS_BW_DH_DELDAT.csv DYS_BW_DH_GI.csv DYS_BW_FD_DELDAT.csv DYS_BW_FD_GI.csv | Transformation Transformation DPSDSO05 => IB_DYN_02 | CTK_DYN01 | CAR4 | 0DSDEL_DATE (to exact day) | CAR4 used since 20180726 (before ZRH2) (DSO_SD02 Replaced by DPSDSO45 - 15.11.2021) |
| DSO DBDYN08 (seems not used in any file based on the DSO) | Transformation C_MATPNT2 => IP_DYN_06 | CTK_DYN01 | CAR4 | 0DSDEL_DATE (to exact day) | CAR4 used since 20180726 (before ZRH2) |
DYS_BW_OOB_GI.csv DYS_BW_OOB_DELDAT.csv | Query BW_QRY_MVSDSO41_0005 | CTK_DYN05 | CAR4 | C_TBI5 (start of month) | |
| DYS_BW_RECEIPT_HIST | Transformation DPMMIC03 => DBDYN06 Transformation CUB_IC002 => DBDYN06 | CTK_DYN01 | CAR4 | 0CALDAY (Mouvement day) | |
| DYS_BW_INVOICDAT.csv | Query BW_QRY_MVSDSO41_0011 | CTK_DYN02 | CAR4 | C_TBIDATE (To be invoiced date) | |
| DYS_BW_INVOICDAT.csv | Query BW_QRY_CPSDSO54_0010 | CTK_DYN04 | CAR4 | 0CALDAY |
Report | Where is the conversion done? | Conversion routine | Exchange rate | Time reference | Comments |
Demand Review (core query) | BW_QRY_MVDYN11_0006 | CTK_CAR4_M | CAR4 | 0CALMONTH (start of month) | CAR4 used since 20180726 (before ZRH3) |
Budget Review (core query) | BW_QRY_MVDYN11_0001 | CTK_CAR4_M | CAR4 | 0CALMONTH (start of month) | |
| Demand Review for SBS Dashboard (QV) | QVSBS_BW_QRY_MVDYN11_0001 | CTK_CAR4_M | CAR4 | 0CALMONTH (start of month) | CAR4 used since 20180726 (before ZRHO end of month) |

Only conversion in two steps are managed in Dynasys (UOM then T006; conversion in Three or more steps are not managed in Dynasys and should be updated by the business)
The different step of the routine are the following:
Creation of internal table between T006and T006D (T006D provide the fields MSSIE, base unit of a dimension DIMID)
Creation of internal table for DSO UOMCMAT2, filled with both conversion from UOM to UNIT and UNIT to UOM and joined with T006 to get Dimension DIMID
Quantity needs to be converted to KG.
The routine check:
If no conversion exists, Unit remains empty and will be manage as an error (see below)
The flow uses Error DTP. When Unit can't be converted, the routine raise an exception "cx_rsrout_skip_val". The error is loaded in the error queue with text from the message class ZDYN_CONV_ERROR
Not all error will be fixed. Most of these error are linked with BU outside of Dynasys perimeter.
Functional specification are available in the following spreadsheet:
In the following tabs:

The ZWPPTDYS is loaded on ECC side through the transaction ZWPPTMRPOUT (which load the ZWPPMRPOUT program)
This transaction use the program RMDMRPEXTRACT01 which create a list of material to extract.
Then, for each material, the program RMDMRPEXTRACT01 run through the exit ZCL_PP_IM_MD_SR_LIST_EXTRACT.
This exit reads the database for each material and loads in memory several table among which is table IT_MDPSX.
Then, through specific code, the table ZWPPTDYS is loaded from IT_MDPSX using method IF_EX_MD_SR_LIST_EXTRACT~EXTRACT_SR_LIST_INFOS
This table is loaded from WP1 into WBP in the DPDYN02 DSO (Propagation) and then in the DBDYN14 (Propagation).
This table is loaded from PF1 into WBP in the DPDYN05 DSO (Propagation) and then in the DBDYN14 (Propagation).
All rules are available in following transformations :
ODSO DPDYN02 -> ODSO DBDYN14
ODSO DPDYN05 -> ODSO DBDYN14
See short description of this rules below
Load each required table into hashed table.
Depending on value of field c_delkz:
Remarks:

Example :
If the PARNET_PLANT_ID is 8254, normally COMPL_ID linked to this plant is 61281 (by reading master data C_PLANT).

But for this flow, we previously read master data C_CUSTASS to see if this plant is a specific case :
Current values in C_CUSTASS (Update 09/03/2018 manually)

Previous values to 09/03/2018

And if it's the case, we apply the transcodification => in the example, NDC-66852 replace NDC-61281.
For the moment this master data C_CUSTASS is maintained manually.
Fields are assigned for expert routine (source to result)
System extension is added to field (Material, Plant, Partner plant ID etc) and remove unneeded 0 using function conversion_exit_alpha_output. These new value are stored in dedicated infooject to e used later in Phase 2 of script
A check is done to find any correspondance with content of specific table ZMATPLANT and ZMATVENDOR (see below) :
Two specific table have been created in SM30 to manage following rules


Two customised transaction have been created in SE93:
Once Phase 1 is finished, depending on DELKZ value, several fields are loaded:
All rules are checked one after the other. Once one check is validated, the check stop
Remarks: c_pfctr2 = BU SOURCE and c_recptbu = BU DESTINATION
DSO DBDYN14 is loaded by 4 DSO "Source" :

DSO DPDYN02 & DPDYN05 are loaded in full mode due to modification done on table ZWPPTDYS in ECC systems (adding and deletion lines everyday).
DSO DSO_DLV1 DPSDSO71 & DPSD001 are loaded in delta mode. (DSO_DLV1 Replaced by DPSDSO71 - 15.11.2021)
To not to have to delete data everyday DSO DBDYN14 and reload it from the four sources, we'll use a flag on object C_FLGZWDY (Flag ZWPPTDYS data) wich is equal to 'X' for all data coming from DSO DPDYN02 & DPDYN05.
Program ZBW_DYN001 with variant ZBW_DBDYN14 will be launched everyday (in process chain) before DBDYN14 loading in order to delete data with flag ZWPPTDYS data = 'X'.
After that DTP full will run for DPDYN02 & DPDYN05 and DTP delta for DPSD001 & DSO_DLV1 DPSDSO71. (DSO_DLV1 Replaced by DPSDSO71 - 15.11.2021)
Plant 7525 is not recognized on Dynasys side, deletion or modification are done on BW side following rules like below :
| File | Action done |
| DYS_BW_AS_DELDAT.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_AS_GI.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_EPO.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_FPO.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_FS_RECEIPT.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_FS_SHIPPING.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_ITI_RECEIPT.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_PO.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_PROD_HIST.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_QM.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_SKU_PW.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
These rules are generally applied in transformation (by routine) before DSO source of each file.
For DIP files below, delete line where "Receiving site" = "source site" :
File | APD | Source |
DYS_BW_AS_DELDAT.csv | APD 43 | DBDYN14 |
DYS_BW_AS_GI.csv | APD 45 | DBDYN14 |
DYS_BW_FS_RECEIPT.csv | APD 33 | DBDYN14 |
DYS_BW_FS_SHIPPING.csv | APD 34 | DBDYN14 |
DYS_BW_ITI_RECEIPT.csv | APD 36 | DBDYN14 |
This rule is applied in transformations before DSO DBDYN14 and each APD :

In Dynasys file exported, fields are generaly with an extension S or R corresponding of source system :
These fields are calculated and created in transformation before to be added in their DSO target.
It's also possible in specific dataflow these fields are directly calculated in APD.
Main fields with extension :

Stream: DPS
![]()
Refresh workbook to get current WBP variables => DynaSys Global Filters.xlsx
| Rule | Description | Examples |
| CPFCTR2_2 | BFC BU | SDERI, SDSOA, PEROX, PADIP… |
| C_PFCTR2 | BU | ENTRP00002, PEROX, SDSOA… |
| DEL_TYPE | Delivery Types exclusion | NLC, NLN, ZNL… |
| ITEM_CATE2 | Sales Document Categories exclusion | ZPLG, UNL |
| ITEM_CATEG | Sales Document Categories | ZZXD, ZVSI, ZTRA… |
| C_MAT_GRP | Material Group exclusion | ZM3110, ZM3260, ZM3610, ZM3620… |
| MATL_TYPE | Material Type | Z700, ZMAT, Z714, Z707… |
| PLANT | Plant | 0087, 0257, 0278, 0294… |
| PLANT2 | Plant (following) | |
| REASON_REJ | Rejection for Rejection exclusion | 96, 98, 9A… |
| C_MGN_ACC | BFC Account | N8110, R10000, R15400 |
| REC_TYPE | BFC Account Type | F |
| PNL_BU_TS | BFC BU for TS | TSDPH, TSADT, TSMIN… |
| PNL_DC_TS | Default DC for TS (BFC Activity 1 => DC) | TSME=>9U TSMP=>9S TSAL=>9R |
| PNL_MAT_TS | Default Material for TS (Dummy) | 77269 |
| PNL_SHP_TS | Default Ship-to for TS (Dummy) | 999930 |
Be careful, it's forbidden to have the same filter value twice for a global filter field (Active = Y only one time).
Reload data :
See below all DSO wich are to be reload :
Refer to Paragraph Recurring Procedures for detailed process
=> See Dynasys dataflow document (BW Layer = APD / field =*C_PFCTR2) :

Error stack are used in relation with Unit and Currency conversion.
Most if not all error are linked with BU outside current perimeter of project and won't be fixed.
Each DTP has the following settings:
DTP

Error DTP


Package Size is lower than Maximum Number of Errors per Pack as the number of error won't decrease (example in may 2016: 2567 records from DP_PUSL2 to DPDYN22, 17618 records from DPSD001 to DPDYN21 and 530 from DSO_DLV1 DPSDSO71 to DPDYN21. (DSO_DLV1 Replaced by DPSDSO71 - 15.11.2021)
Dynasys is a MSSQL tool, BW WBP is on an AIX server. No ODBC driver exists between BW and MSSQL server in Linux / AIX.
This problem was solved setting an UD connect connection
Main servers:
Important:
All files are created in the folder /exploit/depart/Dynasys/MASTER or PART1 or PART2 (can be shown via transaction AL11)
Logical path is used (transaction FILE) : one by directory used

Detail for Logical path MASTER (similar for others)

Logical file is used (transaction FILE) : one by .csv file

Detail for Logical file Z_BW_DYNASYS_ALLSHIP_TO (similar for other .csv files)
=> put the .csv file name wanted
=> put the Logical path in which the .csv file has to be generated

Special Format
| Type | Technical Solution |
|---|---|
| Descriptions | To avoid problem with quotes, routines have been added in APD to encapsulate existing quotes in description fields
Sample : APD_DPS_DYNASYS_0002 => file DYS_BW_MATERIAL.csv
|
| Negative figures | Negative sign have to be in front of numbers in file, this is treated directly by routine in APD :
Sample : APD_DPS_DYNASYS_0063 => file DYS_BW_PNL.csv |
| Decimal point / thousand separator |
Sample : APD_DPS_DYNASYS_0063 => file DYS_BW_PNL.csv |
| Decimal place | For amount (EUR), keep 2 decimal places
For quantity (KG), keep 0 decimal places
Sample : APD_DPS_DYNASYS_0063 => file DYS_BW_PNL.csv |
| non significant zero |
Sample : APD_DPS_DYNASYS_0030 => file DYS_BW_SPECIFICATIONS.csv |
| Header line | Via APD, even if no available data, flat file contain header line Via ABAP, code has to be handle to get at least the header line in the flat file. If file is empty, it will not be moved to DynaSys via MFT (Webmethod) exemple ZBW_DYN015 for DYS_BW_SKU_DAILY_DEMAND.csv flat file generation |
Documentation about Dynasys process and Interface here.
GBU CM has been deploied on WP1 and WBP in january 2020 (golive). The project is called Solstice.
Few major enhancements has been done for AERO :
C_SPECLIS / Specification List (Max 15) / CHAR 130
On WP1 side, none, one or several specifications are managed on Sales order item, tab 'Additional data B'
Example WP1 Sales Order 0002994889

Stored in a specific table ZWOCT435 on WP1

Store in C_ITM_SD on WBP side (part of Global Sales steam), concatenated separated by a '|'

This axis has been added as key in several interface files. General file documentation is updated.
Example Material WP1 166422
![]()
Stored on C_MATCLS on BW side
Lots of different Material Base UOMs, and Sales Units, most of them not mass ones

ADSO ABDPDY52 is containing conversion factors to KG.
Most of the efforts to get conversion factor is done here

In other files, containing quantities in KG if rule in place does not get a KG conversion, the KG conversion is read in ADSO ABDPDY52
=> Class : ZBW_DPS_DYNASYS_UTILS + Method : GET_MATERIAL_CONVERSION_FACTOR / Get material conversion from DBDYN02
Daily: launched by the RSP_DAILY process chain around 6am every day from Monday to Friday
![]()
Weekly: launched on saturdays at fixed hour 9am

Remark: DynaSys tool is waiting for files between 6am and 5pm
Flag end of file generation
Files are splitted into 3 groups : MASTER DATA, PART1, PART2, at the end of each group file generation a flag file is generated (used to start automatique import on DynaSys side)
BW_MASTER_COMPLETE
BW_DYN_PART1_COMPLET
BW_DYN_PART2_COMPLETE

Files transfert
After flag file generation, an ABAP step has been added to transfert files from BW to DynaSys via webmethod
ABAP = ZCA_MFT_CALL_RFC
with 3 variants : DYNASYS_MASTER / DYNASYS_PART1 / DYNASYS_PART2
![]()

Flat files are archived at each run in repository /Exploit/BW/archive/DYNASYS during abap ZCA_MFT_CALL_RFC execution
A filesystem cleanup procedure is managed by Adaio based on the File_Retention_Rules file (File maintained by Adagio team)
Rule in place : clean DynaSys files older than 1 month in all BW systems (WBD, WBQ, WBP).
For any change, email Adagio team
Most DSO & Cubes are loaded in full mode due to the low amount of data and/or calculation rules.
Exception:
NB : Statistics dating March, 2017.
Average duration (March 2017):
Remark : On going evolution will change Daily run to take into account the various dependences of DSO source wich are out of Dynasys perimeter (Deliveries, Sales order, Stock...).
Process will be cut in various process : DI-PP / DP / Master data & Reporting. (See part Planned evolution)
No data below 3 year before beginning of current year are kept. Ex: in Aprl 2016, only data greater than or equal to 01.01.2013 are loaded in Dynasys.
It involves that the volume of data loaded increase during the year, until arrived at its maximum at the end of december.
Reporting
No dedicated documentation on queries
Reporting Specification here.
n/a
Broadcast
n/a
Maintenance
In end routine DPDYN22 => DBDYN31 & DBDYN18 => DBDYN31, only ShipTo with a filled country is loaded in target.

To fix the issue, follow the steps bellow :
Due to loading routine in the propagation level of DPSDSO05 / DSO_SD02 DPSDSO45 which are loaded in delta mode, this field is not correctly updated. (DSO_SD02 Replaced by DPSDSO45 - 15.11.2021)
Correction done for 0CUST_SALES (see below), the same dataflow must be done for C_CUSTSAL Master data.
Modification on ZZ fields are not taken by the delta. Only full loading can fix this problem.

A specific extractor has been created based on KNVP table from WP1_400 in order to feed ZZ fields correctly.

This data loading is done everyday with the process chain ZPC_MD_ATTR_RCS.
After that we have to retreat data stored in DSO DPDYN22 to update ZI PArtner only if we have a modification. To do that a new transformation has been created :

A new DTP has been created too, launching it ZI partner is reading into master data 0CUST_SALES and updated in DPDYN22.
This DTP is in daily and weekly Dynasys process chain :
If you have the following DUMP when you execute an APD :

It means the repository where the file generated will be stored is full (/EXPLOIT).
In September 2016, ADAGIO Team added 50GB on WBP server : wbpsapr3.ibm.be.solvay.com
If the issue appears again please contact ADAGIO Team.
The field is linked to the process order and comes from WP1 table AUFK field ZZMDV01 (Production line)
Check the Production Version via transaction C223 is filled.
If not filled, ask 'Agent d'Ordonnancement' to update.
The value stored in table MKAL is then copied at process order level (table AUFK).
To be check if update will impact existing process orders and associated material movement or will be taken into account only for new flow

Issue encouraged 2019/03/26 for Material 76010 / Plant 7525 => value Production Line 'AENSACAG' was missing
Lists are not used anymore, a cleaning has been asked to Adagio
The lists are stored in AL11 directory /exploit/TA/programs/env
For info BW_DYN_COMPLETE.filelist is obsole and you have been removed from all systems.
If a flat file name need to added or removed, send a email to IS-Adagio-SAP-Operations@solvay.com
NB: Adagio does the modification on a separated server which is replicated every hours. You have to wait to see modification.
Example of message :

CAUTION : all delta loading are impacted
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule PLANT
/!\ check requested Plants are not already in DynaSys scope, dupplicates records would make daily chain fails
Please indicates in the description the date and user code to track changes

/! \ Each Rule has 999 lines (Counter), if all the counter are taken for the Rule "PLANT", it will be necessary to increment the rule "PLANT" and create a new one => Example: PLANT2 or PLANT3 etc.
Make sure there are no more counter available before creating a new Rule.
Rule PLANT is full, use PLANT2
Step3) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 30 minutes).
For info, list of Plant (update of 20190412)
Same procedure than 'Adding a plant to DynaSys scope' but with Rule C_PFCTR2
Please indicates in the description the date and user code to track changes

Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule CPFCTR2_2
Please indicates in the description the date and user code to track changes

Step3) No more action requiered as BFC BU filter is only used for DSOs loaded via FULL process
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step 2)
Reload the IP of the global Filter with a csv file (Cf Flat file model below) + Run the DTP of the Global filter

Global Filter flat file template:
Below is an example of the contents of the flat file:

NB : The above procedure is to be carried out first in a development / quality environment and if the tests are OK, apply this in production.
If you use an existing key: "STREAM / RULE / C_GLBFILT (Counter)", then the record will be updated with the new information.
/! \ Each Rule has 999 lines (Counter), if all the counter are taken for the Rule "PLANT", it will be necessary to increment the rule "PLANT" and create a new one => Example: PLANT2 or PLANT3 etc.
Make sure there are no more counter available before creating a new Rule.
For BFC BU no more action is required.
For Plant or ERP BU , apply step 3 and 4 below.
Step3) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 3-4h).
Exchange rates are send daily to DynaSys via flat file DYS_BW_CURR.csv.
There are limited to Exchange Rate types CAR4, and several currencies (ZAR, VEF, USD, TWD...). For all, conversion to EUR only.
It is possible to add currency to the current list (From currency / FCURR).
Step1) in WBD : modify 'DTP DAFICE01 -> DBDYN10 - Full limited' / DTP_AKLI1L2RFKV5X4Z6KR11T14Y4
Step2) transport till WBP.

CAUTION : It is not possible to change Exchange Rate Type (KURST) or To-currency (TCURR) without impact on the loading flow, and file generation.
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Update C_PLNTCON / Plant for Consignation (Receiving Plant from Delivery)
a) if few values have to be modified, use transaction RSD1, add or modify lines for C_PLNTCON / Plant for Consignation (Receiving Plant from Delivery)
In case of modification, do not forget to launch Change Log.
b) if several values, you can use update by flat file. Format is :
0LOGSYS; C_PLNTCON;C_PARTCUS;C_SHIPTOF
WP1_400;8063;2016260;57295
WP1_400;8039;2013950;57300
WP1_400;8171;2031655;57641
Step3) Delete whole contain of following DSOs
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 3-4h).
On Solvay flow to DBDYN06 / DYN - Actual Prod we were facing many unit conversion issues even if material were Z700 type.
These materials were not relevant for DynaSys process, so we now exclude several Material Group.
The exclusion list can be enhanced or modified changing G_GLBFILT DPS/C_MAT_GRP
caution : it is mandatory to put 'SOLVAY' in high field. Value is checked in transformation

When a system change name or mandant, when a new system is created, check variables in Global Filter (C_GLBFILT)
Variables managed for DPS :
Variables DPS/WBD... where put in place before LANDSCAPE/SOLVAY, so there are still used in DynaSys (It would be good to change it to make maintenance easier)

Common variables (used by DPS also) :

CAUTION : all delta loading are impacted
Step1

Step2) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step3) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule MATL_TYPE
Please indicates in the description the date and user code to track changes

Step4) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step5) Launch the Process Chain PC_DPS_DYNASYS_12 (around 1h).
CAUTION : all delta loading are impacted
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule ITEM_CATEG
Please indicates in the description the date and user code to track changes

Step3) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 3-4h).
WBQ is NOT connected to DynaSys Test for file transfer as there is only one Webmethod Test for QUAL and PRE-PROD
If you temporarly need to change contact <support.xml@solvay.com>
Don't forget to ask them to put it back when you have finished with WBQ
Architecture DEV, QUAL, PRE-PROD, PROD |
WBD-> Webmethod Dev-> DynaSys Dev |
WBQ-> Webmethod Test -> DynaSys Test => not by default |
WBV-> Webmethod Test-> DynaSys Test |
WBP-> Webmethod Prod-> DynaSys Prod + Test (in_prod) |
Several minor evolution managed by the Dynasis project team.
Process chain planning : Take into account various dependences of DSO Source wich are out of DYnasys perimeter (Deliveries, sales order, Stock...)
See the New Dynasys dataflow to implement here.
Originaly, there was a filter on field C_PFCTR2 in DTP linked to transformation between master data C_MATPNT2 and DSO DBDYN08 :

Filter value applied was OLAP variable V_0G_CWWE03_0001.
But the issue is that field C_PFCTR2 is not filled for source system PF1.
When we applied the filter, only data from source system WP1 was loaded in DSO DBDYN08.
To fix the issue, filter value was deleted and a start routine was added in transformation.
In this one, we read the master data C_MATPNT3 to keep C_PFCTR2 value with key Plant & Material.
If an evolution is done to fill C_PFCTR2 value for PF1 System in C_MATPNT2 master data, start routine could be deleted and filter value in DTP will be applied again.
BW Demand Planning Scheduling (DPS)

Tool Leader: Olivier Descamps
IT leader of the application: Laure Pichot-Plasse (DynaSys), Craig Wanamaker (BW)
Name of project: Dynasys
PMO Project: 6046 S&OP with Dynasys - Core model and pilot
UR: UR335513 DYNASYS Sales Forecast / UR333365 DYNASYS Demand Planning
Reporting Coordinator: PAIVA Diogoa <diogo.paiva@solvay.com>
| Role Id | Role Title | Explanation | |
|---|---|---|---|
| SILICA (SI) | 2016 ((DIP-PP + DP) | ERP BU : ENTRP00002 2 DC : 21 for "Tires" + 82 for "Silica Cross Company". In DynaSys workspace filtered on DC 21 "Tires" | WP1 |
| PEROX | beg 2017 (DP) June 2017 (DIP-PP) | ERP BU : PEROX | |
| SODA | June 2017 (DIP-PP) | ERP BU : SDSOA / SDERI | PF1 |
| EP | dec 2017 (DP) | ERP BU : ENTRP00030
EP APAC golive is confirmed to be rescheduled on Apr 6th 2018 EP North Amerciay in June 7th 2018 | WP1 + PF1 (only mexique business) |
| Aroma Performance (PA) | dec 2017 (DP) planned 2018 (DIP-PP) | ERP BU : ENTRP00108 / ENTRP00194 (WP1) + PMEPL / PADIP / PACYT (PF1) | WP1 + PF1 (only mexique business) |
| Fibras | planned dec 2018 (DP) | ||
| Coatis | planned dec 2018 (DP) | ||
| Cytec (TS) | DynaSys DP Go-live June 2018 (DP) | ERP BUs: ENTRP00190 + ENTRP00197 + ENTRP00198 + ENTRP00192 | WP1 |
| Novecare (CS) | DynaSys DP3 Go-live April/May 2019 (DP) by Ship-to Zone Europe : April 22-26 | BW reporting - Forecast Accuracy - Snapshot is done every 6th of the month April 6th 2019 -> Snapshot WW done from APO May 6th 2019 -> Snapshot from APO for NA / LA / AP + Snapshot from Dyn for EU June 6th 2019 -> Snapshot WW from DynaSys BW reporting - Demand Review Switch to DynaSys for all zones from 12th of April 2019 | WP1 + PF1 |
| Composite Material (CM) | DynaSys DP2 Go-live January 2020 (DP) | Janv 2020 - Run 1 Nov 2020 - Run 2 July 2021 - Run 3 | WP1 |
| Special Chem (CH) | DynaSys DP3 Go-live July 2020 (DP) | BW reporting - Forecast Accuracy July 6th 2020 -> Snapshot done from APO August 6th 2019 -> Snapshot done from DynaSys BW reporting - Demand Review Switch to DynaSys from 7th of July 2020 | WP1 + PF1 |
| WIKI DynaSys for endusers | DynaSys | Useful link to get general information about DynaSys. tool Lexicon part list the notion managed within Interfaces and Reporting. |
Number of users: tbd
Critical period: none
Geographical perimeter: worldwide
InfoArea:

Process chain Display Component:

| Role Id | Role Title | Explanation |
|---|---|---|
| ZBI_RCS_DP_A03 | Demand Planning - Dynasys Keyuser | Authorization object ZBI_DPS_K
|
See also file maintained by Authorization team : BW Catalog of Roles / link: https://drive.google.com/open?id=10GEfKYqrT1eeTO_uHYAheL1GX7L5y_pvH0KQU64qh5I
Dataflow presentation
General presentation
Most DSO / Cubes are used to extract data to the Dynasys tool.
Data are extracted from a source outside BW dynasys (it could be another BW application, ECC table, query etc), loaded into DSO and/or Cubes. Then data are transformed through an APD and loaded into flat files which are loaded into the Dynasys tool.
All interfaces flat files are documented in specification googlesheet
MasterData => Master Data Process specification
DP (used for DP module) => DP Process specification
DIP-PP (used for DiP-PP module) => DI-PP Process specification
Useful file to understand dataflow from APD to source, and check filters applied all along the dataflow: (not up to date)
All amounts transfered to DynaSys are in Euro (EUR).
Many discussions have been led concerning the exchange rate to use. Finally the exchange rate has been set to CAR4 (active since 2018/07/26)
CAR4 exists only on BW side, It handle begin of month rates.
it is created from exchange rate CAR2 via program ZBW_LOAD_EXCHANGE_RATES_CAR4 (old Z_CREATE_EXCHANGE_RATES_CAR4). The creating is handle via a scheduled process chain Z_TAUX_CARAT.

TIP : To check exchange rate on SAP side, use transaction ZRATE (available on WP1 & PF1)
File | Where is the conversion done? | Conversion routine | Exchange rate | Time reference | Comments |
DYS_BW_PNL.csv | Query BW_QRY_MVCOPA01_0017 | CTK_DYN07 | CAR4 | 0CALMONTH (start of month) | CAR4 used since 20180726 (before C) |
DYS_BW_IH.csv | Query BW_QRY_MVSDSO44_0005 | CTK_DYN06 | CAR4 | 0BILL_DATE (to exact day) | CAR4 used since 20180726 (before C) |
DYS_BW_DH_DELDAT.csv DYS_BW_DH_GI.csv DYS_BW_FD_DELDAT.csv DYS_BW_FD_GI.csv | Transformation Transformation DPSDSO05 => IB_DYN_02 | CTK_DYN01 | CAR4 | 0DSDEL_DATE (to exact day) | CAR4 used since 20180726 (before ZRH2) (DSO_SD02 Replaced by DPSDSO45 - 15.11.2021) |
| DSO DBDYN08 (seems not used in any file based on the DSO) | Transformation C_MATPNT2 => IP_DYN_06 | CTK_DYN01 | CAR4 | 0DSDEL_DATE (to exact day) | CAR4 used since 20180726 (before ZRH2) |
DYS_BW_OOB_GI.csv DYS_BW_OOB_DELDAT.csv | Query BW_QRY_MVSDSO41_0005 | CTK_DYN05 | CAR4 | C_TBI5 (start of month) | |
| DYS_BW_RECEIPT_HIST | Transformation DPMMIC03 => DBDYN06 Transformation CUB_IC002 => DBDYN06 | CTK_DYN01 | CAR4 | 0CALDAY (Mouvement day) | |
| DYS_BW_INVOICDAT.csv | Query BW_QRY_MVSDSO41_0011 | CTK_DYN02 | CAR4 | C_TBIDATE (To be invoiced date) | |
| DYS_BW_INVOICDAT.csv | Query BW_QRY_CPSDSO54_0010 | CTK_DYN04 | CAR4 | 0CALDAY | |
| DYS_BW_CM_SKU.csv | Query BW_QRY_MVCOPA01_0029 | CTK_DYN07 | CAR4 | 0CALMONTH (start of month) |
Report | Where is the conversion done? | Conversion routine | Exchange rate | Time reference | Comments |
Demand Review (core query) | BW_QRY_MVDYN11_0006 | CTK_CAR4_M | CAR4 | 0CALMONTH (start of month) | CAR4 used since 20180726 (before ZRH3) |
Budget Review (core query) | BW_QRY_MVDYN11_0001 | CTK_CAR4_M | CAR4 | 0CALMONTH (start of month) | |
| Demand Review for SBS Dashboard (QV) | QVSBS_BW_QRY_MVDYN11_0001 | CTK_CAR4_M | CAR4 | 0CALMONTH (start of month) | CAR4 used since 20180726 (before ZRHO end of month) |

Only conversion in two steps are managed in Dynasys (UOM then T006; conversion in Three or more steps are not managed in Dynasys and should be updated by the business)
The different step of the routine are the following:
Creation of internal table between T006and T006D (T006D provide the fields MSSIE, base unit of a dimension DIMID)
Creation of internal table for DSO UOMCMAT2, filled with both conversion from UOM to UNIT and UNIT to UOM and joined with T006 to get Dimension DIMID
Quantity needs to be converted to KG.
The routine check:
If no conversion exists, Unit remains empty and will be manage as an error (see below)
The flow uses Error DTP. When Unit can't be converted, the routine raise an exception "cx_rsrout_skip_val". The error is loaded in the error queue with text from the message class ZDYN_CONV_ERROR
Not all error will be fixed. Most of these error are linked with BU outside of Dynasys perimeter.
Functional specification are available in the following spreadsheet:
In the following tabs:

The ZWPPTDYS is loaded on ECC side through the transaction ZWPPTMRPOUT (which load the ZWPPMRPOUT program)
This transaction use the program RMDMRPEXTRACT01 which create a list of material to extract.
Then, for each material, the program RMDMRPEXTRACT01 run through the exit ZCL_PP_IM_MD_SR_LIST_EXTRACT.
This exit reads the database for each material and loads in memory several table among which is table IT_MDPSX.
Then, through specific code, the table ZWPPTDYS is loaded from IT_MDPSX using method IF_EX_MD_SR_LIST_EXTRACT~EXTRACT_SR_LIST_INFOS
This table is loaded from WP1 into WBP in the DPDYN02 DSO (Propagation) and then in the DBDYN14 (Propagation).
This table is loaded from PF1 into WBP in the DPDYN05 DSO (Propagation) and then in the DBDYN14 (Propagation).
All rules are available in following transformations :
ODSO DPDYN02 -> ODSO DBDYN14
ODSO DPDYN05 -> ODSO DBDYN14
See short description of this rules below
Load each required table into hashed table.
Depending on value of field c_delkz:
Remarks:

Example :
If the PARNET_PLANT_ID is 8254, normally COMPL_ID linked to this plant is 61281 (by reading master data C_PLANT).

But for this flow, we previously read master data C_CUSTASS to see if this plant is a specific case :
Current values in C_CUSTASS (Update 09/03/2018 manually)

Previous values to 09/03/2018

And if it's the case, we apply the transcodification => in the example, NDC-66852 replace NDC-61281.
For the moment this master data C_CUSTASS is maintained manually.
Fields are assigned for expert routine (source to result)
System extension is added to field (Material, Plant, Partner plant ID etc) and remove unneeded 0 using function conversion_exit_alpha_output. These new value are stored in dedicated infooject to e used later in Phase 2 of script
A check is done to find any correspondance with content of specific table ZMATPLANT and ZMATVENDOR (see below) :
Two specific table have been created in SM30 to manage following rules


Two customised transaction have been created in SE93:
Once Phase 1 is finished, depending on DELKZ value, several fields are loaded:
All rules are checked one after the other. Once one check is validated, the check stop
Remarks: c_pfctr2 = BU SOURCE and c_recptbu = BU DESTINATION
DSO DBDYN14 is loaded by 4 DSO "Source" :

DSO DPDYN02 & DPDYN05 are loaded in full mode due to modification done on table ZWPPTDYS in ECC systems (adding and deletion lines everyday).
DSO DSO_DLV1 DPSDSO71 & DPSD001 are loaded in delta mode. (DSO_DLV1 Replaced by DPSDSO71 - 15.11.2021)
To not to have to delete data everyday DSO DBDYN14 and reload it from the four sources, we'll use a flag on object C_FLGZWDY (Flag ZWPPTDYS data) wich is equal to 'X' for all data coming from DSO DPDYN02 & DPDYN05.
Program ZBW_DYN001 with variant ZBW_DBDYN14 will be launched everyday (in process chain) before DBDYN14 loading in order to delete data with flag ZWPPTDYS data = 'X'.
After that DTP full will run for DPDYN02 & DPDYN05 and DTP delta for DPSD001 & DSO_DLV1 DPSDSO71. (DSO_DLV1 Replaced by DPSDSO71 - 15.11.2021)
Plant 7525 is not recognized on Dynasys side, deletion or modification are done on BW side following rules like below :
| File | Action done |
| DYS_BW_AS_DELDAT.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_AS_GI.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_EPO.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_FPO.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_FS_RECEIPT.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_FS_SHIPPING.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_ITI_RECEIPT.csv | Delete the transferts of the source site 7525 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_PO.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_PROD_HIST.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_QM.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
| DYS_BW_SKU_PW.csv | Replace plant 7525 by 7528 for all SILICA material (C_MATPNT2-C_PFCTR2 = ENTRP00002) |
These rules are generally applied in transformation (by routine) before DSO source of each file.
For DIP files below, delete line where "Receiving site" = "source site" :
File | APD | Source |
DYS_BW_AS_DELDAT.csv | APD 43 | DBDYN14 |
DYS_BW_AS_GI.csv | APD 45 | DBDYN14 |
DYS_BW_FS_RECEIPT.csv | APD 33 | DBDYN14 |
DYS_BW_FS_SHIPPING.csv | APD 34 | DBDYN14 |
DYS_BW_ITI_RECEIPT.csv | APD 36 | DBDYN14 |
This rule is applied in transformations before DSO DBDYN14 and each APD :

In Dynasys file exported, fields are generaly with an extension S or R corresponding of source system :
These fields are calculated and created in transformation before to be added in their DSO target.
It's also possible in specific dataflow these fields are directly calculated in APD.
Main fields with extension :

Stream: DPS
![]()
Main filter : C_PFCTR2 (BU) and PLANT
These 2 filter may be extended regularly due to the extension of Dynasys perimeter (RCS in january 2016, Soda in june 2016)
Other filters: C_MGN_ACC, DEL_TYPE, ITEM_CATEG, MATL_TYPE, REASON_REJ, REC_TYPE
Be careful, it's forbidden to have the same filter value twice for a global filter field (Active = Y only one time).
Reload data :
See below all DSO wich are to be reload :
Refer to Paragraph Recurring Procedures for detailed process
=> See Dynasys dataflow document (BW Layer = APD / field =*C_PFCTR2) :

Error stack are used in relation with Unit and Currency conversion.
Most if not all error are linked with BU outside current perimeter of project and won't be fixed.
Each DTP has the following settings:
DTP

Error DTP


Package Size is lower than Maximum Number of Errors per Pack as the number of error won't decrease (example in may 2016: 2567 records from DP_PUSL2 to DPDYN22, 17618 records from DPSD001 to DPDYN21 and 530 from DSO_DLV1 DPSDSO71 to DPDYN21)
(DSO_DLV1 Replaced by DPSDSO71 - 15.11.2021)
Dynasys is a MSSQL tool, BW WBP is on an AIX server. No ODBC driver exists between BW and MSSQL server in Linux / AIX.
This problem was solved setting an UD connect connection
Main servers:
Important:
Files are created in the following folder in AL11 :
An archive is created everyday with generated file in following folder :
Special Format
| Type | Technical Solution |
|---|---|
| Descriptions | To avoid problem with quotes, routines have been added in APD to encapsulate existing quotes in description fields
Sample : APD_DPS_DYNASYS_0002 => file DYS_BW_MATERIAL.csv
|
| Negative figures | Negativ sign have to be at the end of number in file, this is treated directly by routine in APD :
Sample : APD_DPS_DYNASYS_0063 => file DYS_BW_PNL.csv |
| Decimal point / thousand separator |
Sample : APD_DPS_DYNASYS_0063 => file DYS_BW_PNL.csv |
| Decimal place | For amount (EUR), keep 2 decimal places
For quantity (KG), keep 0 decimal places
Sample : APD_DPS_DYNASYS_0063 => file DYS_BW_PNL.csv |
| non significant zero |
Sample : APD_DPS_DYNASYS_0030 => file DYS_BW_SPECIFICATIONS.csv |
Documentation about Dynasys process and Interface here.
GBU CM has been deploied on WP1 and WBP in january 2020 (golive). The project is called Solstice.
Few major enhancements has been done for AERO :
C_SPECLIS / Specification List (Max 15) / CHAR 130
On WP1 side, none, one or several specifications are managed on Sales order item, tab 'Additional data B'
Example WP1 Sales Order 0002994889

Stored in a specific table ZWOCT435 on WP1

Store in C_ITM_SD on WBP side (part of Global Sales steam), concatenated separated by a '|'

This axis has been added as key in several interface files. General file documentation is updated.
Example Material WP1 166422
![]()
Stored on C_MATCLS on BW side
Lots of different Material Base UOMs, and Sales Units, most of them not mass ones

ADSO ABDPDY52 is containing conversion factors to KG.
Most of the efforts to get conversion factor is done here

In other files, containing quantities in KG if rule in place does not get a KG conversion, the KG conversion is read in ADSO ABDPDY52
=> Class : ZBW_DPS_DYNASYS_UTILS + Method : GET_MATERIAL_CONVERSION_FACTOR / Get material conversion from DBDYN02
Daily: launched by the RSP_DAILY process chain around 6am every day from Monday to Friday
![]()
Weekly: launched on saturdays at fixed hour 9am

Remark: DynaSys tool is waiting for files between 6am and 5pm
Flag end of file generation
Files are splitted into 3 groups : MASTER DATA, PART1, PART2, at the end of each group file generation a flag file is generated (used to start automatique import on DynaSys side)
BW_MASTER_COMPLETE
BW_DYN_PART1_COMPLET
BW_DYN_PART2_COMPLETE

Files transfert
After flag file generation, an ABAP step has been added to transfert files from BW to DynaSys via webmethod
ABAP = ZCA_MFT_CALL_RFC
with 3 variants : DYNASYS_MASTER / DYNASYS_PART1 / DYNASYS_PART2
![]()

Flat files are archived at each run in repository /Exploit/BW/archive/DYNASYS during abap ZCA_MFT_CALL_RFC execution
A filesystem cleanup procedure is managed by Adaio based on the File_Retention_Rules file (File maintained by Adagio team)
Rule in place : clean DynaSys files older than 1 month in all BW systems (WBD, WBQ, WBP).
For any change, email Adagio team
Most DSO & Cubes are loaded in full mode due to the low amount of data and/or calculation rules.
Exception:
NB : Statistics dating March, 2017.
Average duration (March 2017):
Remark : On going evolution will change Daily run to take into account the various dependences of DSO source wich are out of Dynasys perimeter (Deliveries, Sales order, Stock...).
Process will be cut in various process : DI-PP / DP / Master data & Reporting. (See part Planned evolution)
No data below 3 year before beginning of current year are kept. Ex: in Aprl 2016, only data greater than or equal to 01.01.2013 are loaded in Dynasys.
It involves that the volume of data loaded increase during the year, until arrived at its maximum at the end of december.
Reporting
No dedicated documentation on queries
Reporting Specification here.
n/a
Broadcast
n/a
Maintenance
In end routine DPDYN22 => DBDYN31 & DBDYN18 => DBDYN31, only ShipTo with a filled country is loaded in target.

To fix the issue, follow the steps bellow :
Due to loading routine in the propagation level of DPSDSO05 / DSO_SD02 DPSDSO45 which are loaded in delta mode, this field is not correctly updated. (DSO_SD02 Replaced by DPSDSO45 - 15.11.2021)
Correction done for 0CUST_SALES (see below), the same dataflow must be done for C_CUSTSAL Master data.
Modification on ZZ fields are not taken by the delta. Only full loading can fix this problem.

A specific extractor has been created based on KNVP table from WP1_400 in order to feed ZZ fields correctly.

This data loading is done everyday with the process chain ZPC_MD_ATTR_RCS.
After that we have to retreat data stored in DSO DPDYN22 to update ZI PArtner only if we have a modification. To do that a new transformation has been created :

A new DTP has been created too, launching it ZI partner is reading into master data 0CUST_SALES and updated in DPDYN22.
This DTP is in daily and weekly Dynasys process chain :
If you have the following DUMP when you execute an APD :

It means the repository where the file generated will be stored is full (/EXPLOIT).
In September 2016, ADAGIO Team added 50GB on WBP server : wbpsapr3.ibm.be.solvay.com
If the issue appears again please contact ADAGIO Team.
The field is linked to the process order and comes from WP1 table AUFK field ZZMDV01 (Production line)
Check the Production Version via transaction C223 is filled.
If not filled, ask 'Agent d'Ordonnancement' to update.
The value stored in table MKAL is then copied at process order level (table AUFK).
To be check if update will impact existing process orders and associated material movement or will be taken into account only for new flow

Issue encouraged 2019/03/26 for Material 76010 / Plant 7525 => value Production Line 'AENSACAG' was missing
https://wiki.solvay.com/x/HICOEw => known issues
The list of BOM loaded into Dynasys used filters and especially attributes from C_MATPNT3. It's possible that the BOM was loaded from the transactional flow and the master data C_MATPNT3 was not yet updated especially during the end frozen period. In this case the data in both ADSO APPPBO01 & APPPBO02 have to deleted and reloaded from Acquisition Layer ADSOs.
Lists are not used anymore, a cleaning has been asked to Adagio
The lists are stored in AL11 directory /exploit/TA/programs/env
For info BW_DYN_COMPLETE.filelist is obsole and you have been removed from all systems.
If a flat file name need to added or removed, send a email to IS-Adagio-SAP-Operations@solvay.com
NB: Adagio does the modification on a separated server which is replicated every hours. You have to wait to see modification.
Example of message :

CAUTION : all delta loading are impacted
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule PLANT
/!\ check requested Plants are not already in DynaSys scope, dupplicates records would make daily chain fails
Please indicates in the description the date and user code to track changes

/! \ Each Rule has 999 lines (Counter), if all the counter are taken for the Rule "PLANT", it will be necessary to increment the rule "PLANT" and create a new one => Example: PLANT2 or PLANT3 etc.
Make sure there are no more counter available before creating a new Rule.
Rule PLANT is full, use PLANT2
Step3) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 3-4h).
For info, list of Plant (update of 20190412)
Same procedure than 'Adding a plant to DynaSys scope' but with Rule C_PFCTR2
Please indicates in the description the date and user code to track changes

Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule CPFCTR2_2
Please indicates in the description the date and user code to track changes

Step3) No more action requiered as BFC BU filter is only used for DSOs loaded via FULL process
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step 2)
Reload the IP of the global Filter with a csv file (Cf Flat file model below) + Run the DTP of the Global filter

Global Filter flat file template:
Below is an example of the contents of the flat file:

NB : The above procedure is to be carried out first in a development / quality environment and if the tests are OK, apply this in production.
If you use an existing key: "STREAM / RULE / C_GLBFILT (Counter)", then the record will be updated with the new information.
/! \ Each Rule has 999 lines (Counter), if all the counter are taken for the Rule "PLANT", it will be necessary to increment the rule "PLANT" and create a new one => Example: PLANT2 or PLANT3 etc.
Make sure there are no more counter available before creating a new Rule.
For BFC BU no more action is required.
For Plant or ERP BU , apply step 3 and 4 below.
Step3) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 3-4h).
Exchange rates are send daily to DynaSys via flat file DYS_BW_CURR.csv.
There are limited to Exchange Rate types CAR4, and several currencies (ZAR, VEF, USD, TWD...). For all, conversion to EUR only.
It is possible to add currency to the current list (From currency / FCURR).
Step1) in WBD : modify 'DTP DAFICE01 -> DBDYN10 - Full limited' / DTP_AKLI1L2RFKV5X4Z6KR11T14Y4
Step2) transport till WBP.

Step3) update interface flow

CAUTION : It is not possible to change Exchange Rate Type (KURST) or To-currency (TCURR) without impact on the loading flow, and file generation.
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Update C_PLNTCON / Plant for Consignation (Receiving Plant from Delivery)
a) if few values have to be modified, use transaction RSD1, add or modify lines for C_PLNTCON / Plant for Consignation (Receiving Plant from Delivery)
In case of modification, do not forget to launch Change Log.
b) if several values, you can use update by flat file. Format is :
0LOGSYS; C_PLNTCON;C_PARTCUS;C_SHIPTOF
WP1_400;8063;2016260;57295
WP1_400;8039;2013950;57300
WP1_400;8171;2031655;57641
Step3) Delete whole contain of following DSOs
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 3-4h).
On Solvay flow to DBDYN06 / DYN - Actual Prod we were facing many unit conversion issues even if material were Z700 type.
These materials were not relevant for DynaSys process, so we now exclude several Material Group.
The exclusion list can be enhanced or modified changing G_GLBFILT DPS/C_MAT_GRP
caution : it is mandatory to put 'SOLVAY' in high field. Value is checked in transformation

When a system change name or mandant, when a new system is created, when a system is refreshed check variables in Global Filter (C_GLBFILT)
Variables managed for DPS :
CAUTION, these variables are still used in CM Aero reporting, Hana view CV_DY_LOGSYS, to risky to be changed
and APD_DPS_DYNASYS_0063 / Dynasys - P&L => to be changed in a futur evolution

Common variables (used by DPS also) :

CAUTION : all delta loading are impacted
Step1

Step2) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step3) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule MATL_TYPE
Please indicates in the description the date and user code to track changes

Step4) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step5) Launch the Process Chain PC_DPS_DYNASYS_12 (around 1h).
CAUTION : all delta loading are impacted
Step1) Check the daily DynaSys chain (PC_DPS_DYNASYS_01) is finished via ST13

Step2) Add a new line in Global Filter (C_GLBFILT) for Stream DPS / Rule ITEM_CATEG
Please indicates in the description the date and user code to track changes

Step3) Delete whole contain of following DSOs:
Reason : part of the loading is via DELTA mode
Step4) Launch the Process Chain PC_DPS_DYNASYS_12 (around 3-4h).
WBQ is NOT connected to DynaSys Test for file transfer as there is only one Webmethod Test for QUAL and PRE-PROD
If you temporarly need to change contact <support.xml@solvay.com>
Don't forget to ask them to put it back when you have finished with WBQ
Architecture DEV, QUAL, PRE-PROD, PROD |
WBD-> Webmethod Dev-> DynaSys Dev |
WBQ-> Webmethod Test -> DynaSys Test => not by default |
WBV-> Webmethod Test-> DynaSys Test |
WBP-> Webmethod Prod-> DynaSys Prod + Test (in_prod) |
1) prepare a flat file to fill Global Filter masterdata
=> put date in description to easily identify new entries
2) upload C_GLBFILT using flat file
3) hold transfert BW>DynaSys step in following chains
PC_DPS_DYNASYS_14 (PART1)
![]()
PC_DPS_DYNASYS_24 (Master Data)
![]()
PC_DPS_DYNASYS_25 (PART2)
![]()
4) Empty delta DSOs
5) Run chains via SE37 using Function Module RSPC_CHAIN_START
PC_DPS_DYNASYS_01 (PART1+MASTERDATA)
PC_DPS_DYNASYS_25 (PART2)
6) Extract all files from /exploit/depart/dynasys/MASTER + PART1 + PART2
7) Remove or unactivate enlarge scope in global filter
8) Empty delta DSOs
9) Run chain via SE37 using Function Module RSPC_CHAIN_START
PC_DPS_DYNASYS_12 to refill emptied DSOs
10) put back skipped processed on chains
PC_DPS_DYNASYS_14
PC_DPS_DYNASYS_24
PC_DPS_DYNASYS_25
GOOD JOB !!
for more info about Structure Freeze => BW Master data Frozen period
1) make sure C_CDSA and 0G_CWWE01 and C_SUBACT2 have been fully loaded
2) make sure C_MATPNT2 and C_MATPNT3 have been fully reloaded, but after 1)
3) empty DSOs loaded in delta mode
4) run Process Chain PC_DPS_DYNASYS_12
5) empty DSOs for BOM
6) reload ABPPBO01 / BOM Level Data - Dynasys from Acquisition Layer ADSOs
7) reload ABDPDY50 / DYN - BOM Level and Item Data, and run program ZBW_DYN011 (DYN - DYS_BW_BOM.csv File) to generate DYS_BW_BOM.csv file
Consider NEW structure is fully available :
In BW => end of freeze + 2 days
In DynaSys => end of freeze + 4 days
Context :
Stocks are not updated in BW during weekends and DynaSys chain PC_DPS_DYNASYS_01 is running generally before first stock upload (6.30 am).
So when 1st of the month is a Saturday or a Sunday, Stock files miss new month’s stock
Example
1st of May 2022 is a Sunday. Monday files will miss May’s stocks
(same behavior expected next Oct 2023 + July 2023 + Oct 2023)
Temporarily solution :
Stock File | APD or ABAP | |
CSTOCK | APD_DPS_DYNASYS_0056 | PCH 14 + 18 |
VSTOCK | APD_DPS_DYNASYS_0067 | PCH 14 + 18 |
| EOMCSTOCK | Prog ZBW_DYN012 | PCH 14 + 18 |
BSTOCK | ZBW_DYN019 | PCH 35 |
HSTOCK | ZBW_DYN020 | PCH 35 |
RSTOCK | ZBW_DYN021 | PCH 35 |
EOMSTOCK | ZBW_DYN022 | PCH 35 |
=> on Sunday it will not block weekly dynamic on DynaSys, but stocks will be the image of ones from Thursday end of day
=> on Monday it will not block Monday dynamic, and dynamic takes only files with today's date and Sunday's ones
2.Check Stocks are uploaded on Monday (around 6 am) + run : (do it is necessary ONLY)

Several minor evolution managed by the Dynasis project team.
Process chain planning : Take into account various dependences of DSO Source wich are out of DYnasys perimeter (Deliveries, sales order, Stock...)
See the New Dynasys dataflow to implement here.
Originaly, there was a filter on field C_PFCTR2 in DTP linked to transformation between master data C_MATPNT2 and DSO DBDYN08 :

Filter value applied was OLAP variable V_0G_CWWE03_0001.
But the issue is that field C_PFCTR2 is not filled for source system PF1.
When we applied the filter, only data from source system WP1 was loaded in DSO DBDYN08.
To fix the issue, filter value was deleted and a start routine was added in transformation.
In this one, we read the master data C_MATPNT3 to keep C_PFCTR2 value with key Plant & Material.
If an evolution is done to fill C_PFCTR2 value for PF1 System in C_MATPNT2 master data, start routine could be deleted and filter value in DTP will be applied again.
In order to reduce the volume of data transferred (zip = 20% of current volum), to reduce transferring duration, to secure reception of whole files inside PART1, PART2 or MASTER we want to work with zip files, 1 by directory PART1, PART2, MASTER.
To create a Zip File :
Go to transaction SE38 then program ZBW_ZIP_FILE

![]()
Go to transaction AL11 -> ZIP file is created

Result:

Same for: PART1 and PART2
The variable names are :
ZIP_PART1_USR / ZIP_DYN_PART1
ZIP_PART2_USR / ZIP_DYN_PART2
ZIP_MASTER_USR / ZIP_DYN_MASTER
For display variant à go to transaction se38 and then program ZBW_ZIP_FILE

Choose variant : example ZIP_MASTER_USR

5 PCs have been modified by adding a new step with the ABAP program ZBW_ZIP_FILE
PC_DPS_DYNASYS_24
PC_DPS_DYNASYS_05
PC_DPS_DYNASYS_14
PC_DPS_DYNASYS_18
PC_DPS_DYNASYS_25

Creation of a new flow from ECC of the TVAST table to feed C_AUFSD
Go to transaction RSO2:

Display data: go to transaction RSA3 :



3. Add C_AUFSD to master data C_CUSTAL
PC_DPS_DYNASYS_23 is modified and add 2 DTPs

Add a new colomn in DYS_BW_SOLDTO_DC.csv
