1.0 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_M09 | PS - Project Costs | Role menu for all project costs queries |
ZBI_RCS_PS_A02 | Project Costs and Structures Analysis - End User role | Application Role:
|
ZBI_RCS_CO_A21 | CBS Project costs Reporting Analysis - End User role | Application Role:
|
List of authorization objects mandatory for the application.
| Authorization object | Explanation |
|---|---|
| 0COMP_CODE;C_COMPCDE;C_PMORDER__0COMP_CODE | Company, role: ZR_*_CA_P01 |
| 0PROFIT_CTR__CPFCTR1_2; 0PROFIT_CTR__C_PFCTR1;CPFCTR1_2;C_AGRITM__CPFCTR1_2; C_ASSET2__C_PFCTR1;C_ASSET__C_PFCTR1;C_MATPLNT__CPFCTR1_2; C_MATPLNT__C_PFCTR1;C_MATPNT2__CPFCTR1_2;C_PFCTR1; C_PMORDER__C_PFCTR1;C_PMORDR__C_PFCTR1;C_PRDEQUI__CPFCTR1_2; C_RECONTR__CPFCTR1_2;C_RESP_CC__CPFCTR1_2;C_SUBACT2__CPFCTR1_2 C_TECMAT__CPFCTR1_2;C_WBS_EL2__CPFCTR1_2;C_WBS_EL2__C_ZSECT;C_WBS_ELE__CPFCTR1_2; C_WBS_ELE__C_ZSECT;C_ZSECT | GBU, role: ZR_*_CA_P05 |
| C_FAMIL;C_WBS_EL2__C_FAMIL;C_WBS_ELE__C_FAMIL | Family, role: ZR_*_CA_P04 |
2.0 DataFlow
2.1 Overview
Use the google presentation below as a template. This google presentation must be saved in the Reporting GDrive folder under the corresponding application. Then post the link to the document here.
Reporting documentation drive folder:
https://drive.google.com/drive/folders/0B0qn89R0RGdqYkZZOFZyYXlXVkE
Exemple of dataflow overview :
Template Application name DataFlow
2.2 Technical Rules on Workbench
6DB_GL_COST_PURCHASE DW2 → DSO_PCP2
Fields routines
There are 3 individual rountines in this transformation to divide the following key figure values that are of currencies Korean Won (KRW) and Japanese Yen (JPY) by 100.
C_AMT_CP
C_AMT_CNP
C_AMT_AMO
DSO_PCP1
1) DTS_KEKO_CKIS → IFS_KEKO_CKIS
Fields routines
Fiscal Variant 0FISCVARNT is fixed to K4.
Cost Component Structure 0CCOMPSTRUC is fixed to Z1.
Fiscal Year/Period required some ABAP codings to convert the incoming data into the correct format to be updated.
For the key figure Variable Amount, abap code is required to take the total amount minus the fixed amount to get just the variable amount. (WRTFW_KPF - WRTFW_KFX).
2) FS_KEKO_CKIS → ODS_PCP1
Start routineA select is done on master data global filter in internal table ITB_PLANT_REPLACE_PLANT
A select is done to take all records from ODS_PCP2 into table gt_matrix.
Delete all records where the amount and quantity is equal to zero.
Fields routines
0COSTCOMP (Cost Component):
If source record for 0COSTCOMP is equal to ' ' (space = null / empty), we make a loop on gt_matrix (Else we keep 0COSTCOMP from source).
If gs_matrix-/BIC/C_COSTEL1 <= SOURCE_FIELDS-COSTELMNT and gs_matrix-/BIC/C_COSTEL2 >= SOURCE_FIELDS-COSTELMNT, we take the COSTCOMP from gt_matrix (ODS_PCP2).
In all cases, if 0COSTCOMP from source or from ODS_PCP2 is equal to ' ', the defaul value = 100.
0PLANT_COMP (Issuing Plant):
If C_MATNR = C_COMPNT and PLANT = PLANT_COMP and PCPITEMCAT = 'L' and VENDOR is not empty.
Read table ITB_PLANT_REPLACE_PLANT with help of field VENDOR (VENDOR from source = C_LOW from master data C_GLBFILT).
If something is found, the PLANT_COMP = PLANT from ITB_PLANT_REPLACE_PLANT (field C_HIGH from master data global filter).
Else, keep source PLANT_COMP.
ODS_PCP1 → ODS_PCP1
Collect into ITB_REF_DATE value from master data global filter (C_GLBFILT) for STREAM = F_COPC and RULE = ODS_PCP1
COSTDATE = low value from ITB_REF_DATE.
DTS_KEKO_CKIS → DSO_PCP1
Start routine
A select is done to take all records from ODS_PCP2 into table gt_matrix.
Delete all records where the amount and quantity is equal to zero.
Delete records with Valuation variants ( BWVAR ) not equal to ZFO, Z25 and ZEP.
Fields routines
Fiscal Variant 0FISCVARNT is fixed to K4.
Cost Component Structure 0CCOMPSTRUC is fixed to Z1.
Costing Variant (0COSTVAR) is fixed to ZIP.
Fiscal Year/Period required some ABAP codings to convert the incoming data into the correct format to be updated.
For the key figure Variable Amount, abap code is required to take the total amount minus the fixed amount to get just the variable amount. (WRTFW_KPF - WRTFW_KFX).
DSO_PCP1 → DSO_PCP1
Start routine
- Load DSO_PCP1 into itself with a look-up at DSO_PCP2 for matching records of the month with the following field value assigments:
- Generic Fields:
- DSO_PCP1-C_PRODVER = ''.
- DSO_PCP1-ACTTYPE = ''.
- DSO_PCP1-C_COSTCTR = ''.
- DSO_PCP1-PCP_RES = ''.
- DSO_PCP1-WORKCENTER = ''.
- DSO_PCP1-C_BOMNUM = ''.
- DSO_PCP1-C_BOMUSAG = ''.
- DSO_PCP1-C_BOMALT = ''.
- DSO_PCP1-PLANT_COMP = DSO_PCP2-PLANT.
- DSO_PCP1-C_COMPNT = DSO_PCP2-/BIC/C_MATPLNT.
- DSO_PCP1-LOTSIZE_IT = DSO_PCP2-LOTSIZE.
- DSO_PCP1-CURRENCY = DSO_PCP2-CURRENCY.
- DSO_PCP1-UNIT = DSO_PCP2-UNIT.
- DSO_PCP1-BASE_UOM = DSO_PCP1-UNIT.
- DSO_PCP1-OI_MENGE = DSO_PCP1-LOTSIZE_IT.
- DSO_PCP1-PRICE_UNIT = DSO_PCP1-LOTSIZE_IT.
- Variable Amount (CP):
- DSO_PCP1-C_KAPOSNR = '1'.
- DSO_PCP1-AMOUNT = DSO_PCP2-C_AMT_CP.
- DSO_PCP1-AMOUNTVR = DSO_PCP1-AMOUNT.
- DSO_PCP1-AMOUNTFX = 0.
- DSO_PCP1-COSTELMNT = '0098150974'.
- DSO_PCP1-COSTCOMP = '100'.
- Fixed Amount (CNP):
- DSO_PCP1-C_KAPOSNR = '2'.
- DSO_PCP1-AMOUNT = DSO_PCP2-C_AMT_CNP.
- DSO_PCP1-AMOUNTVR = 0.
- DSO_PCP1-AMOUNTFX = DSO_PCP1-AMOUNT.
- DSO_PCP1-COSTELMNT = '0099430120'.
- DSO_PCP1-COSTCOMP = '220'.
- DSO_PCP1-PCPITEMCAT = 'E'.
- DSO_PCP1-C_COMPNT = ''.
- Depreciation Amount (AMO):
- DSO_PCP1-C_KAPOSNR = '3'.
- DSO_PCP1-AMOUNT = LV_DSO_PCP2-C_AMT_AMO.
- DSO_PCP1-AMOUNTVR = 0.
- DSO_PCP1-AMOUNTFX = WA_PCP1_SP-AMOUNT.
- DSO_PCP1-COSTELMNT = '0099438000'.
- DSO_PCP1-COSTCOMP = '300'.
- DSO_PCP1-PCPITEMCAT = 'E'.
- DSO_PCP1-C_COMPNT = ''.
- Generic Fields:
0CO_PC_PCP_02 → DSO_PCP3
Keys figures in summation
Start routine
Delete records with KLVAR (Costing Variant) not equal to ZFO and ZEP and Z25.
Delete records with CURTYP (Currency Type) not equal to 10.
Fields routines
Costing Variant (COSTVAR) = ZIP.
AMOUNT = WERTF (Fixed value) + WERTV (Variable value)
K_CCR_100 (100 Raw Materials):
IF SOURCE_FIELDS-ELEMT (Cost Component) = '100'.
RESULT = SOURCE_FIELDS-WERTF (Fixed value) + SOURCE_FIELDS-WERTV (Variable value).
K_CCR_110 (110 Toll Manufacturing):
IF SOURCE_FIELDS-ELEMT = '110'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_120 (120 Utilities - VC):
IF SOURCE_FIELDS-ELEMT = '120'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_200 (200 Labor Costs):
IF SOURCE_FIELDS-ELEMT = '200'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_210 (210 Supplies & Misc.):
IF SOURCE_FIELDS-ELEMT = '210'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_220 (220 Maintenance):
IF SOURCE_FIELDS-ELEMT = '220'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_230 (230 Overheads):
IF SOURCE_FIELDS-ELEMT = '230'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_240 (240 Utilities -FC):
IF SOURCE_FIELDS-ELEMT = '240'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_300 (300 Depreciation):
IF SOURCE_FIELDS-ELEMT = '300'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
K_CCR_310 (310 N/A):
IF SOURCE_FIELDS-ELEMT = '310'.
RESULT = SOURCE_FIELDS-WERTF + SOURCE_FIELDS-WERTV.
2.2 Dependencies with other applications
We should have the information where the application is sending or receiving information (e.g. APD open hub)
3.0 Data Loading
3.1 Info Providers and objects loaded
Detail of process chain, list + link between or special event done for the loading
| Main Process Chain | Final Provider Loading | Frequency | Time start | Duration |
|---|---|---|---|---|
| RSP_COPCP_MONTHLY | DSO_PCP2 DSO_PCP1 / ODS_PCP1 | |||
| RPC_CCR_PCP1_MTHLY_CHAIN | DSO_PCP3 / ODS PCP3 / CUB_PCP1 / | |||
| PC_COPA_PL_46 | ODS_PCP5 | |||
| PC_COPA_PL_21 | DBCOPA24 | |||
| PC_INT_MARGIN | ODS_PCP6 / ODS_PCP4 | |||
