Tuesday, November 10, 2009

Execute BW Process Chain Program

*&---------------------------------------------------------------------*
*& Report ZBIIP_TAKIM_AC
*&---------------------------------------------------------------------*

REPORT ZBIIP_TAKIM_AC.
TYPE-POOLS: rsplf.
DATA: l_repid TYPE sy-repid.
DATA: ls_column_selection TYPE baldisp,
ls_display_profile TYPE bal_s_prof.
data: l_local_log TYPE RSPC_LOGID.
data: l_chain_status TYPE RSPC_STATE.
data: start_time like SY-UZEIT.
data: end_time like SY-UZEIT.
data: diff_time like SY-UZEIT.
data: curr_time like SY-UZEIT.
data: polling_interval type i value 30.
DATA: l_c_nm TYPE RSPC_CHAIN.
DATA: l_time like SY-UZEIT.
DATA : ZENQ TYPE STANDARD TABLE OF SEQG3.
DATA : wa_ZENQ TYPE SEQG3.
DATA : ANSWER.

CALL FUNCTION 'RSPC_API_CHAIN_START'
EXPORTING
I_CHAIN = 'ZBIIP_TAKIMAC'
IMPORTING
E_LOGID = l_local_log.

do.
CALL FUNCTION 'RSPC_API_CHAIN_GET_STATUS'
EXPORTING
I_CHAIN = l_c_nm
I_LOGID = l_local_log
IMPORTING
E_STATUS = l_chain_status.

case l_chain_status.
when 'G' or 'F'.
write: / 'Chain OK ', sy-uzeit.
exit.

when 'A' or 'P' or 'S' or 'Q' or 'Y'.
wait up to polling_interval seconds.
* curr_time = sy-uzeit.
* diff_time = curr_time - start_time.
* if diff_time > l_time.
* write: / 'Job timed out for chain ', l_c_nm.
* message: E000(Chain_Timeout).
* exit.
* endif.

when 'R'.
write: / 'LOGID = ', l_local_log.
write: / 'Status = ', l_chain_status.
message: E000(Chain_Failed01).
exit.

when others.
write: / 'LOGID = ', l_local_log.
write: / 'Status = ', l_chain_status.
message: E000(Chain_Failed02).
exit.

endcase.

enddo.

* Process Chain contains Planning function below code shows planning function log

CALL FUNCTION 'APPL_LOG_DISPLAY'
EXPORTING
object = rsplf_c_appl_log_planning
object_attribute = 2
subobject = rsplf_c_appl_log_plsq_exec
subobject_attribute = 2
external_number = ' '
external_number_attribute = 2
title_list_screen = ' '
title_selection_screen = ' '
date_from = sy-datum "#EC DOM_EQUAL
date_to = sy-datum "#EC DOM_EQUAL
time_to = '235959' "#EC DOM_EQUAL
external_number_display_length = 20
column_selection = ls_column_selection
i_s_display_profile = ls_display_profile
i_variant_report = l_repid
EXCEPTIONS
no_authority = 01.

No comments:

Post a Comment