This document explains, "How to implement dynamic check for locks on InfoObject/DSO/InfoCube in Process Chain".
Two process chains has Loading step for same InfoObject/DSO/InfoCube. Process Chain-1 runs data load to InfoObject/DSO/InfoCube and Process Chain-2 runs Attribute Change Run/Activates/Delete Index for the same object.
In this document we have taken example on conflict between Data loading and Activation on the DSO. But this will also be applicable for InfoObject & InfoCube.
1. Create Implementation for the standard BAdi RSAR_CONNECTOR.
Remember the name of the implementing class from the previous screenshot (ZCL_IM_CHECK_DSO), which we need to use later for adding our new custom methods.
2. Create custom methods i.e. custom formula
method C_DSO_CHECK.
DATA L_OBJNAME TYPE SEQG3-GARG.
DATA L_SUBRC LIKE SY-SUBRC.
DATA T_ENQ TYPE TABLE OF SEQG3. CLEAR: L_OBJNAME, L_SUBRC, T_ENQ.
CONCATENATE '*' I_OBJNAME '*' INTO L_OBJNAME.
CALL FUNCTION 'ENQUEUE_READ'
EXPORTING
GCLIENT = SY-MANDT
* GNAME = ' '
GARG = L_OBJNAME
GUNAME = '*'
* LOCAL = ' '
* FAST = ' '
IMPORTING
NUMBER = E_FLAG
SUBRC = L_SUBRC
TABLES ENQ = T_ENQ
EXCEPTIONS COMMUNICATION_FAILURE = 1 SYSTEM_FAILURE = 2 OTHERS = 3.
IF L_SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endmethod.
method IF_EX_RSAR_CONNECTOR~GET.DATA: L_FUNCTION TYPE SFBEOPRND. CASE I_KEY.WHEN 'CUSTOM'.
CLEAR: L_FUNCTION.
L_FUNCTION-CLASS = 'ZCL_IM_CHECK_DSO'.
L_FUNCTION-METHOD = 'C_DSO_CHECK'.
L_FUNCTION-TECH_NAME = 'C_DSO_CHECK'.
L_FUNCTION-DESCRIPTN = 'CHECK DSO LOCK'.
APPEND L_FUNCTION TO C_OPERANDS.
ENDCASE.
endmethod.
3. Add DECISION STEP in Process Chain before DSO activation
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
37 | |
10 | |
6 | |
4 | |
3 | |
3 | |
3 | |
2 | |
2 | |
2 |