REPORT ZUJD_TEST_PACKAGE.
DATA: LF_EXISTS TYPE UJ_FLG,
LF_DEBUG TYPE UJ_FLG,
LF_SCHEDULE TYPE UJ_FLG,
L_ERRORMSG TYPE UJ_STRING,
L_RESULT TYPE UJ_STRING,
L_STATUS_STR TYPE UJ_STRING,
L_LOG_CONTENT TYPE UJ_STRING,
L_LOG_FILE TYPE UJF_DOC-DOCNAME,
L_INSTANCE_ID TYPE RSPC_LOGID,
L_LOG_XCONTENT TYPE UJF_DOC-DOC_CONTENT,
LS_PACKAGE_STATUS TYPE UJD_STATUS,
LS_USER TYPE UJ0_S_USER,
LS_SCHEDULE_INFO TYPE UJD_S_SCHEDULE_INFO,
LS_SCHEDULE_INFO2 TYPE UJD_S_SCHEDULE_INFO2,
LTH_ANSWER_PROMPT TYPE UJD_TH_VALUE,
LS_ANSWER_PROMPT LIKE LINE OF LTH_ANSWER_PROMPT,
LT_MESSAGE TYPE UJ0_T_MESSAGE,
LO_FILE_MGR TYPE REF TO CL_UJF_FILE_SERVICE_MGR,
LO_CONTEXT TYPE REF TO IF_UJ_CONTEXT,
LO_PACKAGE TYPE REF TO CL_UJD_PACKAGE,
L_OX TYPE REF TO CX_ROOT,
LF_RAISE_MSG TYPE UJ_FLG VALUE ABAP_FALSE,
LT_LOG TYPE STRING_TABLE,
L_LOG TYPE STRING,
LV_BPCPERIOD(7) TYPE C,
LF_IF_SYNC TYPE UJ_BOOL,
L_USER TYPE UJ_USER_ID,
L_PACKAGE TYPE UJ_PACKAGE_ID,
L_APPSET TYPE UJ_APPSET_ID,
L_APPL TYPE UJ_APPL_ID,
L_TEAM TYPE UJ_TEAM_ID,
L_GROUP TYPE UJ_PACK_GRP_ID,
L_SCHEDULE TYPE STRING,
L_MEMBERS TYPE STRING,
LF_IF_MSG TYPE UJ_BOOL.
LF_IF_SYNC = UJ00_CS_BOOL-YES.
L_USER = 'SUPPORT_EXT'.
L_PACKAGE = 'Clear'.
L_APPSET = 'SHELLTEST'.
L_APPL = 'Planning'.
L_TEAM = ''. "Team Company is empty
L_GROUP = 'Data Management'.
L_SCHEDULE = '<SCHEDULING><IMMEDIATE>Y</IMMEDIATE><STATE>0</STATE><PERIOD>N</PERIOD></SCHEDULING>'. "end frp270312
LF_IF_MSG = UJ00_CS_BOOL-NO.
L_MEMBERS = '/SHELLTEST/Planning/PRIVATEPUBLICATIONS/SUPPORT_EXT/TempFiles/FROM.TMP@@@SAVE@@@@@@EXPAND@@@|DIMENSION:ACCOUNT|PL110|DIMENSION:AUDITTRAIL|Input|' &&
'DIMENSION:CATEGORY|Budget|DIMENSION:ENTITY|DE|DIMENSION:INTERCO|ThirdParty|DIMENSION:PRODUCT|ProductA|DIMENSION:RPTCURRENCY|LC|DIMENSION:TIME|'.
LV_BPCPERIOD = SY-DATUM(4) && '.' && SY-DATUM+4(2). "Convert system date to BPC period YYYY.MM
LS_ANSWER_PROMPT-FIELDNAME = '%SELECTION%'.
LS_ANSWER_PROMPT-VALUE = L_MEMBERS && LV_BPCPERIOD.
INSERT LS_ANSWER_PROMPT INTO TABLE LTH_ANSWER_PROMPT.
LS_ANSWER_PROMPT-FIELDNAME = '%SELECTION_KEYDATE%'.
LS_ANSWER_PROMPT-VALUE = ''.
INSERT LS_ANSWER_PROMPT INTO TABLE LTH_ANSWER_PROMPT.
LS_ANSWER_PROMPT-FIELDNAME = '%ENABLETASK%'.
LS_ANSWER_PROMPT-VALUE = '1'.
INSERT LS_ANSWER_PROMPT INTO TABLE LTH_ANSWER_PROMPT.
LS_ANSWER_PROMPT-FIELDNAME = '%CHECKLCK%'.
LS_ANSWER_PROMPT-VALUE = '1'.
INSERT LS_ANSWER_PROMPT INTO TABLE LTH_ANSWER_PROMPT.
LS_USER-USER_ID = L_USER.
CALL METHOD CL_UJ_CONTEXT=>SET_CUR_CONTEXT
EXPORTING
I_APPSET_ID = L_APPSET
IS_USER = LS_USER
I_APPL_ID = L_APPL.
IF LF_IF_SYNC = UJ00_CS_BOOL-YES.
LF_DEBUG = ABAP_TRUE.
ELSE.
LF_DEBUG = ABAP_FALSE.
ENDIF.
TRY.
CL_UJD_SCHEDULE_PARSE=>PARSE_7X_FORMAT( EXPORTING I_SCHEDULE_STR = L_SCHEDULE
IMPORTING ES_SCHEDULE_INFO = LS_SCHEDULE_INFO
ES_SCHEDULE_INFO_NEW = LS_SCHEDULE_INFO2 ).
IF LS_SCHEDULE_INFO-IFIMMEDIATE = UJ00_CS_BOOL-YES.
LF_SCHEDULE = ABAP_FALSE.
ELSE.
LF_SCHEDULE = ABAP_TRUE.
LS_SCHEDULE_INFO2-MODULE_ID = UJD0_CS_MODULE_ID-PACKAGE.
ENDIF.
CREATE OBJECT LO_PACKAGE.
CALL METHOD LO_PACKAGE->RUN_PACKAGE
EXPORTING
I_APPSET_ID = L_APPSET
I_APPL_ID = L_APPL
I_TEAM_ID = L_TEAM
I_GROUP_ID = L_GROUP
I_PACKAGE_ID = L_PACKAGE
ITH_ANSWER_PROMPT = LTH_ANSWER_PROMPT
IS_SCHEDULE_INFO = LS_SCHEDULE_INFO2
IF_SCHEDULE = LF_SCHEDULE
IF_DEBUG = LF_DEBUG.
cl_uja_actvty_mgr=>record_logon_activity(
exporting
i_appset_id = L_APPSET
i_activity = cl_uja_actvty_mgr=>gc_act_report_ujd_test_package ).
CATCH CX_ROOT INTO L_OX. "#EC CATCH_ALL
CALL FUNCTION 'UJ0_CONV_EX2MSG'
EXPORTING
IO_EXCEPTION = L_OX
IMPORTING
ET_MESSAGE_LINES = LT_MESSAGE.
CALL FUNCTION 'UJ0_CONV_MSG2STR'
EXPORTING
IT_MSG = LT_MESSAGE
IMPORTING
E_STR = L_ERRORMSG.
CALL FUNCTION 'DB_ROLLBACK'.
RETURN.
ENDTRY.
CALL FUNCTION 'DB_COMMIT'.
IF L_ERRORMSG IS NOT INITIAL.
WRITE:/ L_ERRORMSG.
ELSE.
WRITE:/ L_RESULT.
ENDIF.
TRY.
CL_UJD_PACKAGE_CONTEXT=>GET_INSTANCE_ID(
IMPORTING E_INSTANCE_ID = L_INSTANCE_ID ).
CL_UJD_PACKAGE_STATUS_DAO=>GET_PACKAGE_STATUS(
EXPORTING I_LOG_ID = L_INSTANCE_ID
IMPORTING ES_PACKAGE_STATUS = LS_PACKAGE_STATUS ).
CASE LS_PACKAGE_STATUS-STATUS.
WHEN UJD0_CS_PACKAGE_STATUS-EXCUTE OR
UJD0_CS_PACKAGE_STATUS-SUCCEED.
L_STATUS_STR = 'Success'. "#EC NOTEXT
WHEN UJD0_CS_PACKAGE_STATUS-WARNING.
L_STATUS_STR = 'Warning'. "#EC NOTEXT
WHEN UJD0_CS_PACKAGE_STATUS-FAILED.
L_STATUS_STR = 'Error'. "#EC NOTEXT
LF_RAISE_MSG = ABAP_TRUE.
WHEN OTHERS.
L_STATUS_STR = 'Cancel'. "#EC NOTEXT
LF_RAISE_MSG = ABAP_TRUE.
ENDCASE.
CONCATENATE 'Package status =>' L_STATUS_STR INTO L_STATUS_STR.
"#EC NOTEXT
WRITE:/ L_STATUS_STR.
L_LOG_FILE = LS_PACKAGE_STATUS-LOG_FILE.
IF L_LOG_FILE IS INITIAL.
RETURN.
ENDIF.
LO_CONTEXT = CL_UJ_CONTEXT=>GET_CUR_CONTEXT( ).
CONCATENATE UJ00_C_WEB_ROOT LO_CONTEXT->D_APPSET_ID
UJD0_CS_FILE_PATH_SLASH LO_CONTEXT->D_APPL_ID
UJD0_CS_FILE_PATH_SLASH UJ00_C_PRIV_PUBLICATION
UJD0_CS_FILE_PATH_SLASH LO_CONTEXT->DS_USER-USER_ID
UJD0_CS_FILE_PATH_SLASH UJ00_C_TEMPFILES
UJD0_CS_FILE_PATH_SLASH L_LOG_FILE INTO L_LOG_FILE.
LO_FILE_MGR = CL_UJF_FILE_SERVICE_MGR=>FACTORY(
IS_USER = LO_CONTEXT->DS_USER
I_APPSET = LO_CONTEXT->D_APPSET_ID ).
TRY.
LO_FILE_MGR->CHECK_DOCUMENT_EXIST(
EXPORTING I_DOCNAME = L_LOG_FILE
IMPORTING E_RESULT = LF_EXISTS ).
CATCH CX_UJF_FILE_SERVICE_ERROR.
RETURN.
ENDTRY.
IF LF_EXISTS = ABAP_TRUE.
LO_FILE_MGR->GET_DOCUMENT(
EXPORTING I_DOCNAME = L_LOG_FILE
I_RETZIP = ABAP_FALSE
IMPORTING E_DOCUMENT_CONTENT = L_LOG_XCONTENT ).
L_LOG_CONTENT = CL_UJ_UTL_CONV=>XSTRING_TO_STRING( I_XSTR = L_LOG_XCONTENT ).
"WRITE:/ L_LOG_CONTENT.
REPLACE ALL OCCURRENCES OF '<' IN L_LOG_CONTENT WITH '<'.
REPLACE ALL OCCURRENCES OF '>' IN L_LOG_CONTENT WITH '>'.
SPLIT L_LOG_CONTENT AT CL_ABAP_CHAR_UTILITIES=>CR_LF INTO TABLE LT_LOG.
LOOP AT LT_LOG INTO L_LOG.
WRITE:/ L_LOG.
ENDLOOP.
ENDIF.
CATCH CX_ROOT. "#EC CATCH_ALL
LF_RAISE_MSG = ABAP_TRUE.
ENDTRY.
IF LF_IF_SYNC = UJ00_CS_BOOL-YES AND LF_IF_MSG = UJ00_CS_BOOL-YES AND LF_RAISE_MSG = ABAP_TRUE.
MESSAGE A001(00) ##MG_MISSING
WITH 'Package Failed'. "#EC NOTEXT
ENDIF.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.