Symptom
Environment
This KBA applies for all SAP Products based on NetWeaver and S4H.
Keywords
Message no. TB801
Interner Fehler: WLID
*&---------------------------------------------------------------------*
*& Report ZSLA_CORRECT_CMPPARAM_WLID
*&---------------------------------------------------------------------*
*& Corrects CMPPARAM VALUE corersponding to maximum value of
*& CMPWLH-WLID
*&---------------------------------------------------------------------*
REPORT ZSLA_CORRECT_CMPPARAM_WLID.
DATA: CMPPARAM_ROW LIKE CMPPARAM.
DATA: CMPWLH_TABLE TYPE STANDARD TABLE OF CMPWLH.
DATA: CMPWLH_ROW LIKE CMPWLH.
DATA: CMPWLH_WLID TYPE I.
DATA: CMPPARAM_WLID TYPE I.
DATA: LV_SUBRC TYPE CMPWL_CONST2_TYPE.
DATA: LS_MSG TYPE CMPWL_S_MSG_TYPE.
START-OF-SELECTION.
PERFORM ENQUEUE_DEQUEUE_CMPPARAM
USING 'E'
'WLID'
CHANGING LV_SUBRC
LS_MSG.
IF LV_SUBRC = CMPWL_RC_INTERNAL_ERROR.
MESSAGE ID LS_MSG-MSGID
TYPE LS_MSG-MSGTY
NUMBER LS_MSG-MSGNO
WITH LS_MSG-MSGV1 LS_MSG-MSGV2 LS_MSG-MSGV3 LS_MSG-MSGV4
RAISING INTERNAL_ERROR.
ELSEIF LV_SUBRC = CMPWL_RC_FOREIGN_LOCK.
MESSAGE ID LS_MSG-MSGID
TYPE LS_MSG-MSGTY
NUMBER LS_MSG-MSGNO
WITH LS_MSG-MSGV1 LS_MSG-MSGV2 LS_MSG-MSGV3 LS_MSG-MSGV4
RAISING FOREIGN_LOCK.
EXIT.
ENDIF.
SELECT * FROM CMPWLH APPENDING TABLE CMPWLH_TABLE ORDER BY WLID DESCENDING.
READ TABLE CMPWLH_TABLE INTO CMPWLH_ROW INDEX 1.
CMPWLH_WLID = CMPWLH_ROW-WLID.
SELECT SINGLE * FROM CMPPARAM INTO CMPPARAM_ROW
WHERE PARAMNAME = 'WLID'.
CMPPARAM_WLID = CMPPARAM_ROW-VALUE.
IF CMPWLH_WLID <> CMPPARAM_WLID.
CMPPARAM_ROW-VALUE = CMPWLH_ROW-WLID.
MODIFY CMPPARAM FROM CMPPARAM_ROW.
IF SY-SUBRC = '0'.
WRITE: 'WLID had been corrected to value', CMPWLH_ROW-WLID, 'in table CMPPARAM'.
ENDIF.
ELSE.
WRITE: 'No inconsistency was found'.
ENDIF.
PERFORM ENQUEUE_DEQUEUE_CMPPARAM
USING 'D'
'WLID'
CHANGING LV_SUBRC
LS_MSG.
*----------------------------------------------------------------------*
* Form ENQUEUE_DEQUEUE_CMPPARAM *
*----------------------------------------------------------------------*
* enqueue dequeue cmpparam *
*----------------------------------------------------------------------*
* -->PV_MODUS
* -->PV_PARAM
*----------------------------------------------------------------------*
FORM ENQUEUE_DEQUEUE_CMPPARAM
USING PV_ACTION TYPE C
PV_PARAM LIKE CMPPARAM-PARAMNAME
CHANGING PV_SUBRC TYPE CMPWL_CONST2_TYPE
PS_MSG TYPE CMPWL_S_MSG_TYPE.
DATA: LS_SELLIST LIKE VIMSELLIST.
DATA: LT_SELLIST LIKE VIMSELLIST OCCURS 0.
DATA: LV_UNAME LIKE SY-UNAME.
PV_SUBRC = CMPWL_RC_OKAY.
CLEAR PS_MSG.
LS_SELLIST-VIEWFIELD = 'PARAMNAME'.
LS_SELLIST-OPERATOR = 'EQ'.
LS_SELLIST-VALUE = PV_PARAM.
APPEND LS_SELLIST TO LT_SELLIST.
IF PV_ACTION = 'E'.
CALL FUNCTION 'ENQUEUE_E_TABLEE'
EXPORTING
MODE_RSTABLE = 'E'
TABNAME = 'CMPPARAM'
VARKEY = 'WLID'
_WAIT = 'X'
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
IF SY-SUBRC = 1.
LV_UNAME = SY-MSGV1.
PS_MSG-MSGID = 'TB'.
PS_MSG-MSGTY = 'S'.
PS_MSG-MSGNO = '820'.
PS_MSG-MSGV1 = LV_UNAME.
PV_SUBRC = CMPWL_RC_FOREIGN_LOCK.
ELSEIF SY-SUBRC > 1.
PS_MSG-MSGID = 'TB'.
PS_MSG-MSGTY = 'E'.
PS_MSG-MSGNO = '801'.
PS_MSG-MSGV1 = 'Sperrverwaltung '(005).
PV_SUBRC = CMPWL_RC_INTERNAL_ERROR.
ENDIF.
ELSE.
CALL FUNCTION 'DEQUEUE_E_TABLEE'
EXPORTING
MODE_RSTABLE = 'E'
TABNAME = 'CMPPARAM'
VARKEY = 'WLID'.
ENDIF.
ENDFORM. " ENQUEUE_DEQUEUE_CMPPARAM , KBA , BC-CUS-TOL-CST , Customizing Cross-System Tools , How To
About this page
This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).Search for additional results
Visit SAP Support Portal's SAP Notes and KBA Search.
SAP Knowledge Base Article - Preview