Form Routine for Versioning
*-----------------------------------------------------------------*
* INCLUDE LZLOCAL_BFP_TESTH01 *
*-----------------------------------------------------------------*
FORM ZVZTEST_LOS_OD_PR_AVOID_DELETE.
DATA: BEGIN OF I_TABLE_DEF.
INCLUDE STRUCTURE ZVZTEST_LOS_OD_PR.
INCLUDE STRUCTURE VIMTBFLAGS.
DATA: END OF I_TABLE_DEF.
DATA: I_TABLE LIKE I_TABLE_DEF OCCURS 0 WITH HEADER LINE,
I_TABLE_UEG LIKE I_TABLE_DEF OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'CACS_DELETE_IN_CUSTOMIZING'
EXPORTING
I_TABNAM = 'ZTEST_LOS_OD'
I_VIEWNAM = VIEW_NAME
TABLES
I_EXTRACT = EXTRACT
I_TOTAL = TOTAL
I_TABLE = I_TABLE
I_TABLE_UEG = I_TABLE_UEG
CHANGING
I_TABLE1 = <TABLE1>
I_VIM_TOTAL_KEY = <VIM_TOTAL_KEY>
I_XACT = <XACT>.
ENDFORM.
*******************************************************************
**********************
Event 05 ZVZTEST_LOS_OD_PR ********************************************************************************
FORM ZVZTEST_LOS_OD_PR_INIT.
DATA:
TS TYPE TIMESTAMP.
IF STATUS-ACTION = 'C'.
GET TIME STAMP FIELD TS.
ZVZTEST_LOS_OD_PR-TECH_BEGIN = TS.
ZVZTEST_LOS_OD_PR-TECH_END = '99991231000000'.
ZVZTEST_LOS_OD_PR-FLG_CANCEL_VERS = ' '.
ZVZTEST_LOS_OD_PR-CHG_USR = SY-UNAME.
ZVZTEST_LOS_OD_PR-VERSION = 1.
ZVZTEST_LOS_OD_PR-STATUS_WORK = 9.
ZVZTEST_LOS_OD_PR-STATUS_VERSION = 1.
PERFORM ZVZTEST_LOS_OD_PR_VERSION.
<F1> = <VIM_TOTAL_KEY>.
ENDIF.
ENDFORM.
*******************************************************************
********************** Event 21 ZVZTEST_LOS_OD_PR *************
*******************************************************************
FORM ZVZTEST_LOS_OD_PR_INIT.
DATA: ACTION,
BEGIN OF I_TABLE_DEF.
INCLUDE STRUCTURE ZVZTEST_LOS_OD_PR.
INCLUDE STRUCTURE VIMTBFLAGS.
DATA: END OF I_TABLE_DEF.
DATA: I_TABLE LIKE I_TABLE_DEF OCCURS 0 WITH HEADER LINE.
* I_CACS_TABLE LIKE TCACS_LOS_ST_OD,
* I_CACS_TABLE1 LIKE ZTEST_LOS_OD.
FIELD-SYMBOLS: <ACT>.
I_TABLE = ZVZTEST_LOS_OD_PR.
APPEND I_TABLE.
MOVE ZVZTEST_LOS_OD_PR TO <VIM_TOTAL_KEY>.
READ TABLE EXTRACT WITH KEY <VIM_TOTAL_KEY>.
* MOVE-CORRESPONDING V_TCACS_TRCAS_AK TO I_CACS_TABLE.
* MOVE EXTRACT TO V_TCACS_TRCAS_AK.
* MOVE-CORRESPONDING V_TCACS_TRCAS_AK TO I_CACS_TABLE1.
*
* IF I_CACS_TABLE = I_CACS_TABLE1.
* IF NOT I_CACS_TABLE-BUSI_BEGIN IS INITIAL.
* <TABLE1> = I_TABLE.
* ELSE.
* READ TABLE TOTAL INDEX 1.
* MOVE TOTAL TO <TABLE1>.
* STATUS = 'EULG'.
* NEUER = 'N'.
* ENDIF.
* ELSE.
ACTION = STATUS-ACTION.
CALL FUNCTION 'CACS_VIEW'
EXPORTING
I_TABNAM = 'ZTEST_LOS_OD'
I_VIEW_NAME = VIEW_NAME
TABLES
T_TABLE = I_TABLE
EXTRACT = EXTRACT
TOTAL = TOTAL
CHANGING
MAXLINES = MAXLINES
TABLE1 = <TABLE1>
ZEILE = ZVZTEST_LOS_OD_PR
ACTION = ACTION
XACT = <XACT>
STATUS_VIEW_DELETE = STATUS_ZVZTEST_LOS_OD_PR-ST_DELETE
VIM_TOTAL_KEY = I_TABLE
KEY = <VIM_TOTAL_KEY>
STATUS_VIEW_UPD_FLG = STATUS_ZVZTEST_LOS_OD_PR-UPD_FLAG
STATUS_VIEW_UPD_CHK =STATUS_ZVZTEST_LOS_OD_PR-UPD_CHECKD
EXIND = EXIND
EXCEPTIONS
ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
<STATUS>-UPD_FLAG = ' '.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 RAISING ERROR.
ELSE.
MOVE EXTRACT TO I_TABLE.
IF I_TABLE-VERSION <> 0.
NEUER = 'N'.
ENDIF.
ENDIF.
* ENDIF.
endform.