0% found this document useful (0 votes)
16 views8 pages

SAMPLE CLASS Amdp

This document defines a class and its methods for planning view data manipulation. It contains SQLScript code to copy data from the input view to various output views, performing aggregation and transformations. Temporary views are created to group and select specific subsets of data for further processing.

Uploaded by

Sumit Bhatti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views8 pages

SAMPLE CLASS Amdp

This document defines a class and its methods for planning view data manipulation. It contains SQLScript code to copy data from the input view to various output views, performing aggregation and transformations. Temporary views are created to group and select specific subsets of data for further processing.

Uploaded by

Sumit Bhatti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 8

class ZCL_MT_PLAN_VIEW_D definition

public
final
create public .

public section.
TYPES: BEGIN OF y_s_zmtch_a05,
FISCPER TYPE /BI0/OIFISCPER,
FISCVARNT TYPE /BI0/OIFISCVARNT,
INFOPROV TYPE RSINFOPROV,
WBS_ELEMT TYPE /BI0/OIWBS_ELEMT,
ZADJFL TYPE /BIC/OIZADJFL,
ZCCTR TYPE /BIC/OIZCCTR,
ZCH_ACCT TYPE /BIC/OIZCH_ACCT,
ZCOA_AREA TYPE /BIC/OIZCOA_AREA,
ZDATASO TYPE /BIC/OIZDATASO,
ZGL_ACCT TYPE /BIC/OIZGL_ACCT,
ZMCCTR TYPE /BIC/OIZMCCTR,
ZMCMP_CDE TYPE /BIC/OIZMCMP_CDE,
ZMCOAREA TYPE /BIC/OIZMCOAREA,
ZMEMP TYPE /BIC/OIZMEMP,
ZMVERSION TYPE /BIC/OIZMVERSION,
ZMYEAR TYPE /BIC/OIZMYEAR,
ZM_SCEN TYPE /BIC/OIZM_SCEN,
ZOWNR_ACT TYPE /BIC/OIZOWNR_ACT,
ZSECINCAT TYPE /BIC/OIZSECINCAT,
CURRENCY TYPE /BI0/OICURRENCY,
LOC_CURRC2 TYPE /BI0/OILOC_CURRC2,
AMOUNT TYPE /BI0/OIAMOUNT,
DEB_CRE_L2 TYPE /BI0/OIDEB_CRE_L2,
ZFY2021 TYPE /BIC/OIZFY2021,
END OF y_s_zmtch_a05.

*test*

TYPES: y_t_zmtch_a05 TYPE STANDARD TABLE OF y_s_ZMTCH_A05.


INTERFACES if_rsplfa_srvtype_trex_exec.
INTERFACES if_rsplfa_srvtype_imp_exec.
INTERFACES if_amdp_marker_hdb.
* Insert in Public Section of your Class (ZCL_MT_COPY_DRIVERS)
*
* Insert in Public Section of your Class (ZCL_MT_COPY_DRIVERS)

* ...

CLASS-METHODS: ZFT_MTHR_DRV_COPY IMPORTING VALUE(i_view) TYPE y_t_zmtch_a05


EXPORTING VALUE(e_view) TYPE
y_t_zmtch_a05.
*
*
*
*

*
protected section.
private section.
ENDCLASS.

CLASS ZCL_MT_PLAN_VIEW_D IMPLEMENTATION.

METHOD IF_RSPLFA_SRVTYPE_IMP_EXEC~EXECUTE.

ENDMETHOD.

METHOD IF_RSPLFA_SRVTYPE_IMP_EXEC~FINISH_EXECUTION.

ENDMETHOD.

METHOD IF_RSPLFA_SRVTYPE_IMP_EXEC~INIT_EXECUTION.

ENDMETHOD.

METHOD if_rsplfa_srvtype_trex_exec~init_and_check.
e_trex_supported = 'X'.
ENDMETHOD.

METHOD if_rsplfa_srvtype_trex_exec~trex_execute.
DATA: l_r_sql_script TYPE REF TO if_rspls_sql_script,
l_procedure_name TYPE string,
l_t_iobj_param TYPE if_rsr_pe_adapter=>tn_t_iobj_param.
l_r_sql_script =
cl_rspls_session_store_manager=>get_sql_script_instance( i_r_store = i_r_store ).
* The method if_rspls_sql_script~get_parameter_values returns a table of
parameters
* with the values given in the function definition
l_r_sql_script->get_parameter_values(
EXPORTING
i_r_param_set = i_r_param_set
i_para_name_for_procedure = 'HANA_PROCEDURE_NAME'
IMPORTING
e_procedure_name = l_procedure_name
e_t_iobj_param = l_t_iobj_param ).
* The function parameter given mehtod paramenter i_para_name_for_procedure
* will not be returned in the table e_t_iobj_param but the value of this
* function parameter will be returned int the mehtod parameter e_procedure_name
* This mechanisme can e.g. be used to define function specific SAP-HANA-procedure
names.
* Other examples to get the name of the SAP-HANA-procedure name which will be
called can be
* - you use the technical name of the planning function type:
* - or you simply give the SAP-HANA procedure name in a string:

* l_procedure_name = 'ZCL_MT_COPY_DRIVERS=>MY_HANA_PROCEDURE'.
* r_s_view-view = l_r_sql_script->execute_sql_script(
* i_view = i_view
* i_t_iobj_param = l_t_iobj_param
* i_proc_name = l_procedure_name
**********************************************************************
i_r_msg = i_r_msg ).

l_procedure_name = 'ZCL_MT_PLAN_VIEW_D=>ZFT_MTHR_DRV_COPY'.
r_s_view-view = l_r_sql_script->execute_sql_script(
i_view = i_view
i_t_iobj_param = l_t_iobj_param
i_proc_name = l_procedure_name
i_r_msg = i_r_msg ).

ENDMETHOD.

METHOD ZFT_MTHR_DRV_COPY BY
DATABASE PROCEDURE
FOR HDB LANGUAGE SQLSCRIPT
* For
Options and declarations check the AMDP documentiation (ABAP Managed Database
Procedure)
OPTIONS READ-ONLY
USING /BIC/MZMVERSION
/BIC/MZMCCTR
/BIC/MZOWNR_ACT
/BIC/AZMT_O10600
.
*
OPTIONS SUPPRESS SYNTAX ERRORS READ-ONLY. "
* USING
db_entities "

*aaa
DECLARE CFY NVARCHAR(4);
DECLARE NFYP1 NVARCHAR(7);
DECLARE VER NVARCHAR(10);
DECLARE DTE1 DATE;
DECLARE TME1 TIME;
DECLARE DTE NVARCHAR( 8 );
DECLARE TME NVARCHAR( 8 );
DECLARE USER1 NVARCHAR( 5000 );
DECLARE USID INTEGER;
DECLARE USERSD INTEGER;
DECLARE USERD VARCHAR( 60 );

SELECT "/BIC/ZMVERSION" into ver FROM "/BIC/MZMVERSION"


WHERE "/BIC/AFIVERSCU" = 'F';

SELECT "/BIC/ZMYEAR" into CFY FROM "/BIC/MZMVERSION"


WHERE "/BIC/AFIVERSCU" = 'F';

NFYP1 = :CFY||'000';
EMP_ID = SELECT "/BIC/ZMT_EMP","/BIC/ZMT_EID" FROM "/BIC/AZMT_O10600";

PLAN_VIEW1 = SELECT
FISCPER,
FISCVARNT,
ZOWNR_ACT,
WBS_ELEMT,
ZMEMP,
CURRENCY,
SUM(AMOUNT) AS AMOUNT FROM :I_VIEW WHERE INFOPROV = 'ZMT_O105' GROUP BY
FISCPER,
FISCVARNT,
ZOWNR_ACT,
WBS_ELEMT,
ZMEMP,
CURRENCY;

PLAN_VIEW = SELECT
FISCPER,
FISCVARNT,
ZOWNR_ACT,
WBS_ELEMT,
ZMEMP,
CURRENCY,
SUM(AMOUNT) AS AMOUNT FROM :I_VIEW WHERE INFOPROV = 'ZMT_O105' GROUP BY
FISCPER,
FISCVARNT,
ZOWNR_ACT,
WBS_ELEMT,
ZMEMP,
CURRENCY;

PLAN_VIEW_ALL = SELECT
FISCPER,
FISCVARNT,
ZOWNR_ACT,
ZMEMP,
CURRENCY,
SUM(AMOUNT) AS AMOUNT FROM :PLAN_VIEW WHERE WBS_ELEMT LIKE '%A%' OR WBS_ELEMT LIKE
'%A' OR WBS_ELEMT LIKE '%X%' OR WBS_ELEMT LIKE '%X' GROUP BY
FISCPER,
FISCVARNT,
ZOWNR_ACT,
ZMEMP,
CURRENCY;

PLAN_VIEW_CAPEX = SELECT
FISCPER,
FISCVARNT,
ZOWNR_ACT,
ZMEMP,
CURRENCY,
SUM(AMOUNT) AS AMOUNT FROM :PLAN_VIEW WHERE WBS_ELEMT LIKE '%A%' OR WBS_ELEMT LIKE
'%A' GROUP BY
FISCPER,
FISCVARNT,
ZOWNR_ACT,
ZMEMP,
CURRENCY;

PLAN_VIEW_OPEX = SELECT
FISCPER,
FISCVARNT,
ZOWNR_ACT,
ZMEMP,
CURRENCY,
SUM(AMOUNT) AS AMOUNT FROM :PLAN_VIEW WHERE WBS_ELEMT NOT LIKE '%A%' OR WBS_ELEMT
NOT LIKE '%A' GROUP BY
FISCPER,
FISCVARNT,
ZOWNR_ACT,
ZMEMP,
CURRENCY;

PLAN_VIEW_OPEX_E = SELECT
FISCPER,
FISCVARNT,
ZMEMP,
CURRENCY,
SUM(AMOUNT) AS AMOUNT FROM :PLAN_VIEW_OPEX GROUP BY
FISCPER,
FISCVARNT,
ZMEMP,
CURRENCY;

PLAN_VIEW_CAPEX_E = SELECT
FISCPER,
FISCVARNT,
ZMEMP,
CURRENCY,
SUM(AMOUNT) AS AMOUNT FROM :PLAN_VIEW_CAPEX GROUP BY
FISCPER,
FISCVARNT,
ZMEMP,
CURRENCY;

HR_DATA_PER = SELECT
"0FISCPER" AS FISCPER,
"0FISCVARNT" AS FISCVARNT,
ZMCCTR,
ZMEMP,
CASE WHEN ZOWNR_ACT IS NULL THEN '' ELSE ZOWNR_ACT END AS ZOWNR_ACT,
ZMCMP_CDE,
SUM(VALUE_AV) AS VALUE_AV
FROM "_SYS_BIC"."PK_MCKESSON.SPEND_ANALYSIS/ZCV_MT_HEADCOUNT_WOD_RPT" WHERE ZMYEAR
= CFY AND ZMHPDRIV = 'STAT_HC' AND ZM_SCEN = 'FINAL' AND ZMCOAREA = 'MCK1' AND
ZMVERSION = :VER
AND ZMCMP_CDE IN ( '9079','9078','7211', '8271', '9077', '9662' ) AND VALUE_AV <> 0
AND ZADJFL = ''
GROUP BY
"0FISCPER",
"0FISCVARNT",
ZMCCTR,
ZMEMP,
ZOWNR_ACT,
ZMCMP_CDE
;

PLAN_VIEW_OPEX_REV_DATA = SELECT
A.FISCPER,
A.FISCVARNT,
'ZM_PLAN' AS INFOPROV,
'' AS WBS_ELEMT,
'PV' AS ZADJFL,
B.ZMCCTR AS ZCCTR,
'MCK1' AS ZCH_ACCT,
'MCK1' AS ZCOA_AREA,
'HR' AS ZDATASO,
'0000060296' AS ZGL_ACCT,
B.ZMCCTR,
(SELECT "/BIC/ZMCMP_CDE" FROM "/BIC/MZMCCTR" WHERE "/BIC/ZMCCTR" = B.ZMCCTR AND
"/BIC/ZMCOAREA" = 'MCK1' AND OBJVERS = 'A') AS ZMCMP_CDE,
'MCK1' AS ZMCOAREA,
'' AS ZMEMP,
:VER AS ZMVERSION,
:CFY AS ZMYEAR,
'FINAL' AS ZM_SCEN,
B.ZOWNR_ACT,
(SELECT "/BIC/ZSEC_INC" FROM "/BIC/MZOWNR_ACT" WHERE "/BIC/ZOWNR_ACT" = B.ZOWNR_ACT
AND OBJVERS = 'A') AS ZSECINCAT,
A.CURRENCY,
'' AS LOC_CURRC2,
0 AS AMOUNT,
0 AS DEB_CRE_L2,
(-1 * (A.AMOUNT * B.VALUE_AV)) AS ZFY2021 FROM :PLAN_VIEW_OPEX_E AS A INNER
JOIN :HR_DATA_PER AS B ON
A.FISCPER||A.ZMEMP = B.FISCPER||B.ZMEMP;

PLAN_VIEW_CAPEX_REV_DATA = SELECT
A.FISCPER,
A.FISCVARNT,
'ZM_PLAN' AS INFOPROV,
'' AS WBS_ELEMT,
'PV' AS ZADJFL,
B.ZMCCTR AS ZCCTR,
'MCK1' AS ZCH_ACCT,
'MCK1' AS ZCOA_AREA,
'HR' AS ZDATASO,
'0000060296' AS ZGL_ACCT,
B.ZMCCTR,
(SELECT "/BIC/ZMCMP_CDE" FROM "/BIC/MZMCCTR" WHERE "/BIC/ZMCCTR" = B.ZMCCTR AND
"/BIC/ZMCOAREA" = 'MCK1' AND OBJVERS = 'A') AS ZMCMP_CDE,
'MCK1' AS ZMCOAREA,
'' AS ZMEMP,
:VER AS ZMVERSION,
:CFY AS ZMYEAR,
'FINAL' AS ZM_SCEN,
B.ZOWNR_ACT,
(SELECT "/BIC/ZSEC_INC" FROM "/BIC/MZOWNR_ACT" WHERE "/BIC/ZOWNR_ACT" = B.ZOWNR_ACT
AND OBJVERS = 'A') AS ZSECINCAT,
A.CURRENCY,
'' AS LOC_CURRC2,
0 AS AMOUNT,
0 AS DEB_CRE_L2,
(-1 * (A.AMOUNT * B.VALUE_AV)) AS ZFY2021 FROM :PLAN_VIEW_CAPEX_E AS A INNER
JOIN :HR_DATA_PER AS B ON
A.FISCPER||A.ZMEMP = B.FISCPER||B.ZMEMP;

HR_DATA_PER_CCEMP = SELECT
FISCPER,
ZMCCTR,
ZMEMP,
FISCPER||ZMEMP AS F_EMP FROM :HR_DATA_PER GROUP BY
FISCPER,
ZMCCTR,
ZMEMP;

PLAN_VIEW_CAPEX_OPEX_DATA = SELECT
A.FISCPER,
A.FISCVARNT,
'ZM_PLAN' AS INFOPROV,
'' AS WBS_ELEMT,
'PV' AS ZADJFL,
B.ZMCCTR AS ZCCTR,
'MCK1' AS ZCH_ACCT,
'MCK1' AS ZCOA_AREA,
'HR' AS ZDATASO,
'0000060296' AS ZGL_ACCT,
B.ZMCCTR,
(SELECT "/BIC/ZMCMP_CDE" FROM "/BIC/MZMCCTR" WHERE "/BIC/ZMCCTR" = B.ZMCCTR AND
"/BIC/ZMCOAREA" = 'MCK1' AND OBJVERS = 'A') AS ZMCMP_CDE,
'MCK1' AS ZMCOAREA,
'' AS ZMEMP,
:VER AS ZMVERSION,
:CFY AS ZMYEAR,
'FINAL' AS ZM_SCEN,
A.ZOWNR_ACT,
(SELECT "/BIC/ZSEC_INC" FROM "/BIC/MZOWNR_ACT" WHERE "/BIC/ZOWNR_ACT" = A.ZOWNR_ACT
AND OBJVERS = 'A') AS ZSECINCAT,
A.CURRENCY,
'' AS LOC_CURRC2,
0 AS AMOUNT,
0 AS DEB_CRE_L2,
A.AMOUNT AS ZFY2021 FROM :PLAN_VIEW_ALL AS A INNER JOIN :HR_DATA_PER_CCEMP AS B ON
A.FISCPER||A.ZMEMP = B.F_EMP;

PLAN_VIEW_CAPEX_DATA = SELECT
A.FISCPER,
A.FISCVARNT,
'ZM_PLAN' AS INFOPROV,
'' AS WBS_ELEMT,
'PV' AS ZADJFL,
B.ZMCCTR AS ZCCTR,
'MCK1' AS ZCH_ACCT,
'MCK1' AS ZCOA_AREA,
'HR' AS ZDATASO,
'0000060290' AS ZGL_ACCT,
B.ZMCCTR,
(SELECT "/BIC/ZMCMP_CDE" FROM "/BIC/MZMCCTR" WHERE "/BIC/ZMCCTR" = B.ZMCCTR AND
"/BIC/ZMCOAREA" = 'MCK1' AND OBJVERS = 'A') AS ZMCMP_CDE,
'MCK1' AS ZMCOAREA,
'' AS ZMEMP,
:VER AS ZMVERSION,
:CFY AS ZMYEAR,
'FINAL' AS ZM_SCEN,
A.ZOWNR_ACT,
(SELECT "/BIC/ZSEC_INC" FROM "/BIC/MZOWNR_ACT" WHERE "/BIC/ZOWNR_ACT" = A.ZOWNR_ACT
AND OBJVERS = 'A') AS ZSECINCAT,
A.CURRENCY,
'' AS LOC_CURRC2,
0 AS AMOUNT,
0 AS DEB_CRE_L2,
(-1 * A.AMOUNT) AS ZFY2021 FROM :PLAN_VIEW_CAPEX AS A INNER JOIN :HR_DATA_PER_CCEMP
AS B ON
A.FISCPER||A.ZMEMP = B.F_EMP;

E_VIEW = SELECT * FROM :PLAN_VIEW_CAPEX_OPEX_DATA UNION ALL SELECT *


FROM :PLAN_VIEW_OPEX_REV_DATA UNION ALL
SELECT * FROM :PLAN_VIEW_CAPEX_DATA UNION ALL SELECT *
FROM :PLAN_VIEW_CAPEX_REV_DATA;

*aaa

** e_view = select
* aggr_field1
* :i_function_parameter_to as aggr_field2,
* aggr_field3
* ...
* FROM :i_view WHERE aggr_field2 = :i_function_parameter_from;
ENDMETHOD.
ENDCLASS.

You might also like