Access Management
List of application role + menu role and explanation if we have several applications role with specials rules.
| Role Code | Role Description | Explanation |
|---|---|---|
ZR_RCS_CA_M432 | P&L – Upload Data - Non-ERP ZPL_FILE | Role menu for non ERP |
ZR_RCS_CA_M12 | PL - P&L Reporting | Role menu |
ZBI_RCS_FI_A33 | P & L – Profit and Loss - End User role | End user role |
List of authorization objects mandatory for the application.
| Authorization object | Explanation |
|---|---|
| GBU | ZR_*_CA_P05 |
| PRS Company | ZR_*_CA_P07 |
| PRS Area(C_COMPCDE__C_MNGAREA) | ZR_*_CA_P08 |
| GL Type(0GL_ACCOUNT__C_GL_TYPE) | ZR_*_CA_P10 |
| Plant (C_PLANT) | ZR_*_CA_P02 |
| Company (C_COMPCDE) | ZR_*_CA_P01 |
| Authorization Scope (C_AUTHMA) | ZR_*_CA_P00 |
Data Flow
Explanation for the process on the technical side. Can be specific cases or general rules depending on the scope.
Proposal: to put the main rules of transformation ???
Question: do we put the rules of query here or in the functional doc ?
General informations
PQ1 providers are not loaded since end of 2018. Only historical data → obsolete.
DBCOPA37 & DBCOPA39 are not loaded since January 2019.
Technicals rules linked to Integrated Margin providers (with IM in red in the data flows) are in Profit and Loss Integrated Costs wiki
Overview main technical rules
Rhodia
DPCOPA01 → DBCOPA01
A transposition of data is done between DPCOPA01 and DBCOPA01. In propagation layer, we have multiple key figures (one per value field C_FIELDN).
In business layer, the value field is added in the key of the dso, like that it's possible to regroup the quantities and amounts in one key figure with C_FIELDN to identify them.
Start routine
Determination if field in source is a quantity or amount field to assing to the good target quantity or amount field.
End routine
The field /BIC/C_TECPARA "Technic Partn Activ" is cleared.
DBCOPA01 → IB_COPA_01
Before load data in DBCOPA02, DBCOPA03, ABCOPA03 and DBCOPA40, transformation goes through infosource IB_COPA_01. The idea is to have in transformation one transformation TRSF: DBCOPA01 -> IB_COPA_01 same rules that will applied to the different targets
Start routine
Internal tables from master data c_compprs (company code prs), g_cwwe01 (Sub-activity) and DSOs DPCOPAA1, DPCOPAB1, DPCOPAE1, DPCOPAD1, DPCOPAC1, DCOPAG1, DCOPAF1, DCOPAH1 are filled.
Data with currency type = B0 are deleted.
End routine
If C_FIELDN is present in internal table itb_fieldn, if the currency is not the same as document currency and if the record mode is not equal to X (it means the data is changed), module function ZFM_BW_CONVERT_TO_FOREIGN_CURR is used to convert the amount from local to document currency in internal table itb_h_conv_currency. The data for excahnge rate conversion is the date when the loading is done (sy-datum).
Field "Technic Partn Activ" C_TECPARA and "Partner Activity" C_PACTIV are determined in function of "movement type" G_CWWE10.
- If G_CWWE10 is empty C_PACTIV is empty and C_TECPARA = 'BLANK'.
- If G_CWWE10 is 01, field "Sub Actvity" 0G_CWWE01 is used.
- If the "BFC Activity 1" C_MAGNITU of 0G_CWWE01 is not empty C_PACTIV = C_MAGNITU. C_TECPARA is a concatenation of '01' and 0G_CWWE01.
- In other cases, C_PACTIV and C_TECPARA = ZZ01.
- If G_CWWE10 is 10:
- Determination of profit center with reading of internal table with data from DPCOPAH1 or DPCOPAF1 or DPCOPAG1 or DPCOPAC1. If in the first internal table, in function of the condition of reading, no data is found, we check in the next internal table. The profit center is a concatenation of GBU from DSO (internal table where the conditions of reading are ok) + '00'.
- If a profit center is found and not equal to '00', C_PACTIV = profit center else C_PACTIV = 'ZZ10'.
- C_TECPARA in a concatenation of '10' & compcde & cwwe01 & pcompan & cwwe04 & shipid & cwwe03.
- If G_CWWE10 is 13 C_PACTIV and C_TECPARA = 'MZ00'.
- If G_CWWE10 is 15:
- Determination of BFC Activity 1 (magnitu) with reading of internal table with data from DPCOPAD1 or DPCOPAE1 or DPCOPAG1 or DPCOPAC1. If in the first internal table, in function of the condition of reading, no data is found, we check in the next internal table.
- C_PACTIV = magnitu if at least one entry wwas found in an internal table. If not, C_PACTIV = 'ZZ15'.
- C_TECPARA in a concatenation of '15' & compcde & cwwe01 & pcompan & cwwe04 & shipid & cwwe03.
- In all others values of G_CWWE10: C_PACTIV = ' ' and C_TECPARA = 'OTHER'.
If the sign of the amount is negative, the amount is multiplied by - 1.
If currency is equal to the document currency, a read from internal table itb_h_conv_currency created in start routine with module function ZFM_BW_CONVERT_TO_FOREIGN_CURR to determine the Amount in document currency.
Company code PRS comes from master data C_PCOMPAN (Partner Company).
If version is empty, the default value is '000'.
IB_COPA_01 → DBCOPA02
Start routine
If transaction type = F or Z AND distribution chanel is not empty AND material is not empty AND if bill_type not dso AACOPA01R, the record is deleted.
If transaction type = B or C or D or E or G or H or I AND distribution chanel is not empty AND material AND if value field is not present in master data global filter c_glbfilt (stream = C_FIELDN, rule = RHODIA), the record is deleted.
End routine
Delete data when GBU from subactivity is IN master data global filter c_glbfilt (stream = PAX, rule = GBU).
If it's not the case, if C_TECPARA is not empty and if the GBU (CPFCTR1_2) from TECPARA = GBU from CWWE01 AND if the scope from C_COMPCDE is equal to the scope from C_PCOMPAN then C_INTGBUF (Intra GBU Flag) = 'Y'.
IB_COPA_01 → DBCOPA03
Start routine
If transaction type = F or Z AND distribution chanel is not empty AND material is not empty AND if bill_type = (ZSL2 or ZGL2 or ZSS4 or ZSS5), the record is deleted.
If transaction type = B or C or D or E or G or H or I AND if value field is not present in master data global filter c_glbfilt (stream = C_FIELDN, rule = RHODIA), the record is deleted.
If transaction type = B or C or D or E or G or H or I AND distribution chanel is not empty AND material is not empty AND if value field is not present in master data global filter c_glbfilt (stream = C_FIELDN, rule = RHODIA), the record is deleted.
End routine
If C_TECMAT "Technical material" is not empty, take the GBU from master data C_TECMAT.
If C_TECPARA "Technical Partner Activity" is not empty, take the GBU from master data C_TECPARA.
If the GBUs are te same (and not empty), AND if the scope from company code = scope from Partner Company, C_INTGBUF (Intra GBU Flag) = 'X'.
If the GBUs are not te same (and not empty), C_INTGBUF (Intra GBU Flag) = 'Y'.
If the cwwe01 (sub activity) is not empty and the GBU from Sub Activity is in master data global filter (stream = PAX, Rule = GBU), the data is deleted.
IB_COPA_01 → ABCOPA03
Start routine
If transaction type = F or Z AND distribution chanel is not empty AND material is not empty AND if bill_type not dso AACOPA01R, the record is deleted.
If transaction type = B or C or D or E or G or H or I AND if value field is not present in master data global filter c_glbfilt (stream = C_FIELDN, rule = RHODIA), the record is deleted.
If transaction type = B or C or D or E or G or H or I AND distribution chanel is not empty AND material is not empty AND if value field is not present in master data global filter c_glbfilt (stream = C_FIELDN, rule = RHODIA), the record is deleted.
End routine
If C_TECMAT "Technical material" is not empty, take the GBU from master data C_TECMAT.
If C_TECPARA "Technical Partner Activity" is not empty, take the GBU from master data C_TECPARA.
If the GBUs are te same (and not empty), AND if the scope from company code = scope from Partner Company, C_INTGBUF (Intra GBU Flag) = 'X'.
If the GBUs are not te same (and not empty), C_INTGBUF (Intra GBU Flag) = 'Y'.
If the cwwe01 (sub activity) is not empty and the GBU from Sub Activity is in master data global filter (stream = PAX, Rule = GBU), the data is deleted.
IB_COPA_01 → DBCOPA40
End routine
Delete Data where calyear is equal to value in master data global filter (stream = PAX , rule = YEAR). If nothing found in master data global filter, the default year is 2019.
If GBU from sub activity is not empty:
Delete data when GBU from subactivity is IN master data global filter c_glbfilt (stream = PAX, rule = GBU).
If it's not the case, if C_TECPARA is not empty and if the GBU (CPFCTR1_2) from TECPARA = GBU from CWWE01 then C_INTGBUF (Intra GBU Flag) = 'X'.
If the GBUs are not te same (and not empty), C_INTGBUF (Intra GBU Flag) = 'Y'.
If GBU from sub activity is empty, the data is deleted.
DBCOPA02 → DBCOPA02 & ABCOPA03 → ABCOPA03 & DBCOPA03 → DBCOPA03
Transformations on DBCOPA02 → DBCOPA02 and ABCOPA03 → ABCOPA03 are used to determine the flag intra gbu (C_INTGBUF).
It compares the GBU ( 0g_cwwe01__cpfctr1_2 for DBCOPA02 and c_tecmat for ABCOPA03 and DBCOPA03) and the partner GBU ( c_tecpara__cpfctr1_2).
It was not possible to use a technical Master Data to fill this requirement as the needed key (the keys that would permit to determine the combination GBU and partner GBU) would have been too long. These loadings are done only once a week.
Datasources -> APDPDY01 → ABDPDY01
Some rules exist, but not P&L flow, it's dynasis flow.
Datasources → APDPDY02 → ABDPDY02
Some rules exist, but not P&L flow, it's dynasis flow.
ABDPDY01 → ABCOPA03
Expert routine
Source data from ABDPDY01 is sorted by logsys, /bic/c_matnr2, /bic/c_shipid, /bic/c_distchn and calmonth. Then adjacent data are deleted (in function of: logsys, /bic/c_matnr2, /bic/c_shipid, /bic/c_distchn, calmonth).
In function of data that remain, a select from dso abcopa03 is done and records found are added in the result package.
ABDPDY02 → ABCOPA03
Expert routine
Source data from ABDPDY02 is sorted by logsys, /bic/c_matnr2, /bic/c_shipid, /bic/c_distchn. Then adjacent data are deleted (in function of: logsys, /bic/c_matnr2, /bic/c_shipid, /bic/c_distchn).
In function of data that remain, a select from dso abcopa03 is done and records found are added in the result package.
ADPSDAE01→ ABCOPA03
Expert routine
Source data from ADPSDAE01 is sorted by logsys, doc_num, c_itm_a ( Order Line (SO+PO) - Aero ). Then adjacent data are deleted (in function of: logsys, doc_num, c_itm_a).In function of data that remain, a select from dso abcopa03 is done and records found are added in the result package.
ABCOPA03 → ABCOPA01
Start routine:
Internal tables ITB_SPEC & ITB_TARGET are filled with data comes from aDSO ABDPDY01.
End routine:
Fields Main Specification, Specification list, Program, Market, and Program percentage (/BIC/C_SPECIDM, /BIC/C_SPECLIS, /BIC/C_PROGID, /BIC/C_MARKET, and /BIC/K_PROGPER) are taken from ITB_SPEC.
The key figures (G_QVVA01, G_QVVA04, AMOUNT, /BIC/K_AMNTDC, and /BIC/K_AMNTNDC) are then updated based on the Program percentage (/BIC/K_PROGPER) using multiplication.
For all records in ITB_TARGET, we check if an equivalent exists in the data loaded. If yes, the record is updated in DSO ABCOPA01, if no, the record is deleted.
If field C_PROGID is empty, default value is 'N/A'.
ABCOPA03 → ABCOPA04
Start routine
Collect data in ITB_SPEC from Dynasys ( ABDPDY01 ) and Aero ( ADPSDAE01 ) with a join on Source System (LOGSYS) & Main Specification ID (C_SPECID).
If a record in source exists in ITB_SPEC in funciton of LOGSYS, DOC_NUMBER, C_ITM_A, C_DISTCHN, C_MATNR2, C_SHIPID the record is deleted.
DBCOPA02 → CRCOPA01 & DBCOPA03 → CRCOPA02 & ABCOPA04 → CRCOPA02
Field routine
C_PROLINE (product line) is determined from master data C_MATCLS (Material Classificat) in funciton of C_MATNR2 (material).
DBCOPA02 → IB_COPA_03 & ABCOPA03 → IB_COPA_03 & ABCOPA04 → IB_COPA_03
Before load data in DBCOPA18, DBCOPA19, DBCOPA20, DBCOPA21, DBCOPA22, DBCOPA23 transformation goes through infosource IB_COPA_03.
The idea is to have in one transformation TRSF: DBCOPA02 -> IB_COPA_03 / TRSF: ABCOPA03 -> IB_COPA_03 / TRSF: ABCOPA04 -> IB_COPA_03 same rules that will applied to the different targets.
Start routine
Record are deleted if same record (in funciton of C_PABELNR (COPA doc number), C_PAPOSNR (COPA item number) and CO_AREA (Controlling Area) exists in dso ABCOPA07.
Internal table itb_glbfilt is created with values from master data global filter ( c_glbfilt ) for STREAM = 'LER'.
Internal table itb_plant is created with values from master data Plant( c_plant ) in function of logsys and where field C_SORT2 (Search Term 2) = 'NDIR'.
End routine
A module function ZDETERMINE_LER is used to determine C_LERFLAG (Flag for LER) in function of itb_plant and itb_glbfilt:
DBCOPA03 -> IB_COPA_03
Before load data in DBCOPA18, DBCOPA19, DBCOPA20, DBCOPA21, DBCOPA22, DBCOPA23 transformation goes through infosource IB_COPA_03.
The idea is to have in one transformation TRSF: DBCOPA03 -> IB_COPA_03 same rules that will applied to the different targets.
Start routine
Internal table itb_glbfilt is created with values from master data global filter ( c_glbfilt ) for STREAM = 'LER'.
Internal table itb_plant is created with values from master data Plant( c_plant ) in function of logsys and where field C_SORT2 (Search Term 2) = 'NDIR'.
End routine
A module function ZDETERMINE_LER is used to determine C_LERFLAG (Flag for LER) in function of itb_plant and itb_glbfilt.
DBCOPA37 → DBCOPA39
Start routine
Fields LOGSYS, DOC_NUM, DOC_ITEM, CO_AREA, C_TYPDOC and CG_CWWE02 (Sub-activity Target) from dso DBCOPA38 are stored in internal table ITB_TRANSCO_IECRA_DOC.
Fields LOGSYS, C_COMPCDE, C_PLANT, C_PAYER, G_CWWE01 (Sub-Activity) and CG_CWWE02 (Sub-activity Target) from dso DBCOPA38 are stored in internal table ITB_TRANSCO_IECRA .
Field routine
0G_CWWE01 (Sub-activity):
Check if we have data in internal table ITB_TRANSCO_IECRA_DOC in function of fields LOGSYS, DOC_NUM, DOC_ITEM, CO_AREA and for C_TYPDOC = 'COPA'. If record found, 0G_CWWE01 = CG_CWWE02 from ITB_TRANSCO_IECRA_DOC.
If nothing found, check in table if we have data in internal table ITB_TRANSCO_IECRA in function of fields LOGSYS, C_COMPCDE, C_PLANT, G_CWWE01 for C_PAYER empty. If record found, 0G_CWWE01 = CG_CWWE02 from ITB_TRANSCO_IECRA.
If nothing found, check in table if we have data in internal table ITB_TRANSCO_IECRA in function of fields LOGSYS, C_COMPCDE, G_CWWE01 for C_PAYER and C_PLANT empty. If record found, 0G_CWWE01 = CG_CWWE02 from ITB_TRANSCO_IECRA.
If nothing found, keep G_CWWE01 from DBCOPA37.
ABCOPA01 -> IB_COPA_07 & DBCOPA23 -> CRCOPA15 & DBCOPA18 -> CRCOPA16 & DBCOPA19 -> CRCOPA17 & DBCOPA40 -> CRCOPA29 & ABCOPA01 -> CRCOPA31
Start routine
Internal table itb_glbfilt is created with values from master data global filter ( c_glbfilt ) for STREAM = 'LER'.
Internal table itb_plant is created with values from master data Plant( c_plant ) in function of logsys and where field C_SORT2 (Search Term 2) = 'NDIR'.
End routine
A module function ZDETERMINE_LER is used to determine C_LERFLAG (Flag for LER) in function of itb_plant and itb_glbfilt.
Solvay
ZZCON_ACT Solvay -> DPCOPA23
Start routine
Variable w_firstfyearper is filled with record from master data global filter (c_glbfilt) for rule INIT_PER and stream PL_SOLV. Variable splitted in two to have w_firstfyear with the year and w_firstfper with the period
If source record where field gjahr (fiscal year) < w_firstfyear AND perde (Period) < w_firstfper, the data is deleted.
Field routine
Because of limitation on number of primary keys in DSO, some fields are concatened to allow to have unique records:
- C_ORGKEY2 = conctenation of BUKRS (CoCode) + GSBER (Bus. Area) + VKBUR (Sales Off.)
- C_MATKEY2 = conctenation of ARTNR (Product) + MVGR1 (Ind.Or.) + PRCTR (Profit Ctr) + SPART (Division) +WERKS (Plant)
- C_CUSKEY2 = conctenation of CONSIGNEE (Customer) + KNDNR (Customer) + KUNRG (Payer) + KUNWE (Ship-To) + LAND1 (Country) + VKGRP (Sales Grp) + VSBED (Shp.Cond.) + ZZINTMAK (Inter mark) + ZZINTMAKD (Intr mkt d).
- C_KEY01 = conctenation of INCO1 (Incoterms) + INCO2 (Inco. 2) + MVGR2 (PckType) + MVGR3 (Qual.) + SD_DIVISION (Sales order division) + WWACT (Activity1) + WWERK (Orig Plant) + ZTERM (Pmnt Terms)
- C_KEY02 = conctenation of KAUFN (Sales Ord.) + KDPOS (SO item) + VKORG (Sales org.) + VTWEG (Distr. Chl) + WWPIF (PIF code)
CO_AREA (COntrolling Area) = 'CHEF'
DPCOPA15→DBCOPA29
Start routine
Internal table itb_dd03l loaded from table DD03L with tabname = DPCOPA15.
Source data with Curr type not equal to 10 are deleted.
A loop is done in itb_dd03l,
if field name is equal to K_AABSMG (Sales quantity): g_qvva01 (qty invoice) is filled from itb_dd03l, c_fieldn (value field) = ' QUANTITY ', amount and g_qvva04 (Qty unit base) = 0.
If field name is equal to K_VVQRU (QRU Qty report. Unit): g_qvva04 (Qty unit base) is filled from itb_dd03l, c_fieldn (value field) = ' QUANTITY ', amount and g_qvva01 (qty invoice) = 0.
In other cases, amout is filled from itb_dd03l.
DBCOPA29 -> DBCOPA30
Start routine
Source data with Curr type not equal to 10 are deleted.
Internal table itb_dpcopa14 is filled from DSO dpcopa14 where c_bffam = 'BF' AND c_bfschem = 'SA0' AND c_bforig = 'O' AND co_area = 'FO01' AND validto = '99991231'.
Internal table itb_glbfilt is filled from master data c_glbfilt where c_stream = 'C_FIELDN' AND c_rule = 'AMOUNTDC' AND c_active = 'Y'.
Internal table itb_fieldn is filled from master data c_fieldn for all entries in itb_glbfilt.
Internal table itb_dpsdso06 is filled fromDSO dpsdso06 where docnumb = doc_number from source AND c_cndtyp2 = 'R409'.
End routine
If C_FIELDN is present in internal table itb_fieldn, and if the currency is not the same as document currency, module function ZFM_BW_CONVERT_TO_FOREIGN_CURR is used to convert the amount from local to document currency in internal table itb_h_conv_currency.
If in internal table itb_dpcopa14 a record is found and if source field c_wwsat (Activity(OECD)) is not empty, the sign is taken from itb_dpcopa14 and if the sign is equal to "-", the amount in source is multiplied by -1.
If in internal table itb_fieldn a record is found and if the currency is not equal to the document currency, we take the amount converted from itb_h_conv_currency.
A read of internal table with data from dpsdso06 is done to populate field c_cndtyp2 with c_cndtyp2 from dpsdso06.
Start routine
Data is deleted if GBU in source is not present in master data global filter (C_GLBFILT) for stream = COPA and rule = DBCOPA35.
Function module Z_CROSS_SYSTEM_MATERIAL is used to determine the cross system material
If a WP1(Rhodia) Material exists:
For each entry, find Manufacturing Plant in C_BATCH and check if it exists for source Batch and WP1 Material
If Batch is a dead and if Industrial Origin is initial the data is deleted, else the data is keepted.
If it's not a material cross syetm, the data is deleted.
DBCOPA30 → CRCOPA22
Field routineC_PROLINE (product line) is determined from master data C_MATCLS (Material Classificat) in funciton of C_MATNR2 (material).
UPIS
DTS_DPCOPA04_0001 → DPCOPA04
Key figures in summation
Field routine
Currency = EUR
CPFCTR1_3 (BFC GBU (Resp.)) = 2 characters after the first 25 from field c_low in master data C_GLBFILT for stream 'UPIS', rule 'FF_DATA', and C_GLBFILT = 1:
DPCOPA04 -> DBCOPA17
Key figures in summation
Field routine
C_MGNACC (Magnitude Account) = R15430
C_MGN_ACC (Magnitude account) = R15430
C_PCOMPRS = Attribute from master data C_COMPCDE
C_COMPPRS = Attribute from master data C_COMPCDE
K_AMNTEUR = K_AMNTEUR * 1000
K_AMTMEUR = K_AMTMEUR * 1000
K_AMTM1EU = K_AMTM1EU * 1000
VTYPE = 10
DBCOPA17 → CRCOPA21
Field routine
C_PROLINE (product line) is determined from master data C_MATCLS (Material Classificat) in funciton of C_MATNR2 (material).
BFC
DTS_BFC_PL_0001 → DPCOPA02
Start routine
Module function RSDRD_SEL_DELETION is used to make a selective deletion on DSO DPCOPA02 to delete the data in function of calmonths present in source package.
Currency = EUR
DPCOPA02 → IB_COPA_02
Before load data in DBCOPA04, DBCOPA05, DBCOPA06, DBCOPA07, DBCOPA11, DBCOPA12 transformation goes through infosource IB_COPA_02.
Start routine
Internal tables filled used in end routine.
End routine
c_bfcnat = c_natmag(1)
If company = '005720' AND calmonth < '201501' the c_compprs = '5720'.
Else the C_COMPPRS comes from master data C_COMPPRS (with C_LANDSCP (landscape) = 'CICC') in function of the company.
Else C_COMPPRS comes from master data C_GLBFILT with stream BFC_COMP.
Else, default value for C_COMPPRS is 'NPRE'.
If c_pactiv and pcompany and c_mvtca are empty c_versn2 = 'FC1'.
Else if c_pactiv is not empty AND pcompany is empty AND c_mvtca (Sales Types) is empty AND c_azone is not empty.
If a value linked to C_MGNACC is present in master data global filter for stream 'C_MGN_ACC' and rule = 'BFC'. And if it's not empty, C_VERSN2 = 'FC2'.
Else if c_pactiv is not empty AND c_mvtca (Sales Types) is empty AND C_dstctry is not empty.
If a value linked to C_MGNACC is present in master data global filter for stream 'C_MGN_ACC' and rule = 'BFC'. And if it's not empty, C_VERSN2 = 'FC3'.
c_mgn_acc =c_mgnacc.
The key figures ( k_amtm1 , k_amtm, deb_cre_lc) are multiplied by 10 if currencies are KRW or JPY or CLP.
Multiplied by 10000 if currency is IDR.
Multiplied by 1000 for others currencies.
If C_COMPPRS is present in master data C_COMPPRS for landscape CICC AND IF the CSMTEH from c_compprs = 10 or 30 AND IF the record loaded is on the validity period from c_compprs C_FLCICC (Flag CICC) = 'X'.
If c_azone = 'AMNC', c_zone = 'NA'.
If c_azone = 'AMSU', c_zone = 'LA'.
If c_azone = 'ASIA', c_zone = 'AP'.
If c_azone = 'EUR', c_zone = 'EU'.
c_intgbu2 = cpfctr1_2
If c_pactiv is not empty, cpfctr1_2 is equal to cpfctr1_2 from master data C_MAGNITU.
The key figures ( K_AMTM, K_AMTM1, K_CAMTM, K_CAMTM1, K_CONSOL, DEB_CRE_LC) are multiplied by -1 if C_FLOW = FF99EX.
IB_COPA_02 -> DBCOPA04
Start routine
Data with c_versn2 <> 'FC1' are deleted.
IB_COPA_02 -> DBCOPA05
Start routine
Data with c_versn2 <> 'FC2' are deleted.
IB_COPA_02 -> DBCOPA06
Start routine
Data with c_versn2 <> 'FC3' are deleted.
IB_COPA_02 -> DBCOPA07
Start routine
Data with c_versn2 = 'FC1' or 'FC2' or 'FC3' are deleted.
IB_COPA_02 -> DBCOPA12
Start routine
Delete data if:
Data with c_versn2 <> 'FC1'
or
c_flcicc <> 'X' AND company not in master data global filter (Stream = 'PL_BFC_ADJ' and Rule = 'COMPANY')
or
c_flcicc = 'X' AND c_natmag <> '0LIA01'
or
c_flcicc <> 'X' AND c_natmag not in master data global filter (Stream = 'PL_BFC_ADJ' and Rule = ' NATMAG')
Module function Z_WBW_SOURCE_SYSTEM is executed to retreive the source system CICC.
Field routine
logsys: if c_flcicc = 'X', the logsys is the CICC source system, if not it's the source system assoctaed to the company code PRS.
NON-ERP
DTS_DPCOPA03_0001 PC_FILE -> DPCOPA03
Start routine
All key figures are summed in function of primary keys: logsys, calmonth, c_company, c_magnitu, c_plant, profit_ctr, c_wrk02, c_shipid, c_soldid, c_pcompan, c_pactiv, c_matnr2, doc_currcy, g_uvva01.
DPCOPA03 -> DBCOPA09
Start routine
Internal table itb_dd03l loaded from table DD03L with tabname = DPCOPA03.
C_WRK02ID = C_PRPLANT from master data C_MATPNT2.
Inside a loop in source package, another loop is done in itb_dd03l,
If field is equal to '/BIC/K_N8110'
c_mgn_acc = 'N8110'.
amount = 0.
k_amntdc = 0.
If field is equal to '/BIC/K_AMNTDC'
c_mgn_acc = 'R10000'.
g_qvva01 = 0.
amount = 0.
If field is equal '/BIC/K_R11XXX'
c_mgn_acc = 'R11200'.
g_qvva01 = 0.
k_amntdc = 0.
If field is equal '/BIC/K_R26XXX'
c_mgn_acc = 'R26152'.
g_qvva01 = 0.
k_amntdc = 0.
Others cases:
g_qvva01 = 0.
k_amntdc = 0.
Field routine
C_GRCUST (SAP Customer Corp. Group (PRS)) = C_GRCUST from DPCOPA06 in function of LOGSYS and C_SHIPID. If nothing found in DPCOPA06 AND LOGSYS of record = 'NERP001' C_GRCUST = 'GRCL999999'.
C_GBUZONE (GBU Spec. zone (ship-to)): If C_SHIPID is not empty, read master data C_CUSTID in function of LOGSYS and C_SHIPID, if a result is found, C_GBUZONE = COUNTRY from C_CUSTID.
CPFCTR1_2 (BFC Global Business Unit): If C_MAGNITU is not empty, read master data C_MAGNITU in function of LOGSYS and C_MAGNITU, if a result is found, CPFCTR1_2 = CPFCTR1_2 from C_MAGNITU.
C_ZONE (BFC Geographie/Zone): If C_SHIPID is not empty, read master data C_CUSTID in function of LOGSYS and C_SHIPID, if a result is found, C_GBUZONE =ZONE from C_CUSTID.
0COUNTRY (Country key): If C_SHIPID is not empty, read master data C_CUSTID in function of LOGSYS and C_SHIPID, if a result is found, C_GBUZONE = COUNTRY from C_CUSTID.
DBCOPA09 -> DBCOPA10
Field routine
Version = 000
VTYPE = 10
C_PROD comes from master data C_MATNR2.
C_MAGNIT2 (BFC Activity 1): If GBU from master data CPFCTR1_2 found in function of C_MAGNITU = CS, C_MAGNITU2 = C_MAGNITU (from source package), else c_magnitu2 is empty.
End routine
doc_date and pstng_date are determined with module function ' SLS_MISC_GET_LAST_DAY_OF_MONTH'
If company = '005720' AND calmonth < '201501', the c_compprs = '5720'.
Else the C_COMPPRS comes from master data C_COMPPRS in function of the company prs.
Else C_COMPPRS = 'NPRS'.
If c_pcompan = '005720' AND calmonth < '201501', the c_compprs = '5720'.
Else the C_COMPPRS comes from master data C_PCOMPAN in function of the partner company.
Else C_COMPPRS = 'NPRS'.
If c_magnitu is not empty. Check in master data C_MAGNITU if a record is found in function of source field C_MAGNITU. If yes, CPFCTR1_2 = CPFCTR1_2 from C_MAGNITU.
If c_pactiv is not empty. Check in master data C_MAGNITU if a record is found in function of source field C_PACTIV. If yes, C_INTGBU2 = CPFCTR1_2 from C_MAGNITU.
If c_pfctr1_2 = 'CS', c_entseg & c_entseg2 come from DSO AASDSO09.
c_zoneh1 & c_zoneh2 come from master data c_gbuzone.
If c_zone & c_gbuzone are empty, they are filled with zone and country from master data C_COMPPRS (in function of c_compprs zone).
If c_gzone is empty, she is filled with c_gzone from c_country filled with country from master data COUNTRY (in function of c_compprs country).
IB_COPA_02 -> DBCOPA11
Start routine
Data is deleted when c_versn2 <> 'FC1' OR c_natmag <> '0LIA01' OR (two first characters of c_mgn_acc <> 'R3' AND <> 'R4' AND <> 'R5').
Data from dpcopa03 are stored in inetrnal table in funciton of calmonth defined in table TVARVC (name = 'Z_PL_CALMONTH') and where c_fullff is empty.
For the couple of company and motnh from source data, if an equivalent exist in the internal table with data from dpopa03, the source data is deleted.
DBCOPA10 -> CRCOPA09
Field routine
C_PROLINE (product line) is determined from master data C_MATCLS (Material Classificat) in funciton of C_MATNR2 (material).
DBCOPA10 -> CRCOPA09
Field routine
C_PROLINE (product line) is determined from master data C_MATCLS (Material Classificat) in funciton of C_MATNR2 (material).
C_PROD comes from master data C_MATNR2.
C_PFCTR1_2: If C_MAGNITU is not empty, read master data C_MAGNITU in function of LOGSYS and C_MAGNITU, if a result is found, CPFCTR1_2 = CPFCTR1_2 from C_MAGNITU.























