25.2.11

SAP Note 23512 - SAPDBCNJ: Authorization check: work center for oper.

Symptom:

The authorization check "Work center for operation", C_AFVG_APL, does not work in logical database CNJ.

Cause and prerequisites

When function module CNAU_AUTHORITY_AFVG is called in FORM routines AUTHORITYCHECK_ACT01/..02/..03 in DBCNJAUT, field ARBPL (work center, external number) is not filled.

Solution
Program SAPDBCNJ, file DBCNJAUT

Form-Routine ARBEITSPLATZ_SETZEN hinzufügen:
... ENDFORM. "SET_VGTYP

FORM ARBEITSPLATZ_SETZEN USING ARBID
CHANGING ARBPL WERKS.
DATA: BEGIN OF CRHD.
INCLUDE STRUCTURE CRHD.
DATA: END OF CRHD.

CLEAR: ARBPL,
WERKS.

CHECK NOT ARBID IS INITIAL.

CALL FUNCTION 'CR_WORKSTATION_READ'
EXPORTING
ID = ARBID
IMPORTING
ARBPL = ARBPL
ECRHD = CRHD
WERKS = WERKS
EXCEPTIONS
NOT_FOUND = 1.
IF SY-SUBRC <> 0.
CLEAR: ARBPL.
EXIT.
MESSAGE S000 WITH 'Arbeitsplatz nicht gefunden'.
ENDIF.
ENDFORM. "ARBEITSPLATZ_SETZEN

Release 2.2:
In addition, in file DBCNJAUT, insert calls for FORM routine ARBEITSPLATZ_SETZEN in FORM routines AUTHORITYCHECK_ACT01, AUTHORITYCHECK_ACT02, and AUTHORITYCHECK_ACT03.
The corresponding code places are identical in all three form routines up to the lines marked with "!!": insert ACT01 in AUTHORITYCHECK_ACT01 insert ACT02 in AUTHORITYCHECK_ACT02, and insert ACT03 in AUTHORITYCHECK_ACT03.

... PERFORM SET_VGTYP USING ITAB-VNG-STEUS
CHANGING H_VGTYP.
PERFORM ARBEITSPLATZ_SETZEN USING ITAB-VNG-ARBID <=== INSERT
CHANGING ITAB-VNG-ARBPL <=== INSERT
ITAB-VNG-WERKS. <=== INSERT
ACT01-ARBPL = ITAB-VNG-ARBPL. <=== INSERT !!
ACT01-WERKS = ITAB-VNG-WERKS. <=== INSERT !!
CALL FUNCTION 'CNAU_AUTHORITY_AFVG'
EXPORTING
I_AFVGD = ITAB-VNG
...
PERFORM SET_VGTYP USING ITAB-ELM-STEUS
CHANGING H_VGTYP.
PERFORM ARBEITSPLATZ_SETZEN USING ITAB-ELM-ARBID <=== INSERT
CHANGING ITAB-ELM-ARBPL <=== INSERT
ITAB-ELM-WERKS. <=== INSERT
ACT01-ARBPL = ITAB-ELM-ARBPL. <=== INSERT !!
ACT01-WERKS = ITAB-ELM-WERKS. <=== INSERT !!
CALL FUNCTION 'CNAU_AUTHORITY_AFVG'
EXPORTING
I_AFVGD = ITAB-ELM
...
Release 3.0
In file DBCNJAUT, insert calls for FORM routine ARBEITSPLATZ_SETZEN in FORM routines AUTHORITYCHECK_ACT01, AUTHORITYCHECK_ACT02, and AUTHORITYCHECK_ACT03.
The corresponding code places are identical in all three form routines up to the lines marked with "!!": insert ACT01 in AUTHORITYCHECK_ACT01 insert ACT02 in AUTHORITYCHECK_ACT02, and insert ACT03 in AUTHORITYCHECK_ACT03.
... PERFORM SET_VGTYP USING ITAB_VNG-STEUS
CHANGING H_VGTYP.
PERFORM ARBEITSPLATZ_SETZEN USING ITAB_VNG-ARBID <=== INSERT
CHANGING ITAB_VNG-ARBPL <=== INSERT
ITAB_VNG-WERKS. <=== INSERT
ACT01-ARBPL = ITAB_VNG-ARBPL. <=== INSERT "!!"
ACT01-WERKS = ITAB_VNG-WERKS. <=== INSERT "!!"
CALL FUNCTION 'CNAU_AUTHORITY_AFVG'
EXPORTING
I_AFVGD = ITAB_VNG
...
PERFORM SET_VGTYP USING ITAB_ELM-STEUS
CHANGING H_VGTYP.
PERFORM ARBEITSPLATZ_SETZEN USING ITAB_ELM-ARBID <=== INSERT
CHANGING ITAB_ELM-ARBPL <=== INSERT
ITAB_ELM-WERKS. <=== INSERT
ACT01-ARBPL = ITAB_ELM-ARBPL. <=== INSERT "!!"
ACT01-WERKS = ITAB_ELM-WERKS. <=== INSERT "!!"
CALL FUNCTION 'CNAU_AUTHORITY_AFVG'
EXPORTING
I_AFVGD = ITAB_ELM
...

No comments:

Post a Comment