25.2.11

SAP Note 23485 - RAAEND01 does not select by "Changed by" correctly

Symptom:

The report for change documents displays many more assets than it
should (based on the selection criteria), when you select using
assets and other additional criteria, such as "Last changed by."

Cause and prerequisites

Program error.

Solution
Corrected in 2.2F

Advance correction in RAAEND01
:
:
FORM CHECK_CHANGES.
DATA: AENDERER LIKE SYST-UNAME,
OBJEKT LIKE CDHDR-OBJECTCLAS VALUE 'ANLA',
OBJEKTID LIKE CDHDR-OBJECTID, < FLG_FIRST_ANLA VALUE 'X'. <:
:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING OBJECTCLASS = OBJEKT
OBJECTID = OBJEKTID
USERNAME = AENDERER
TABLES I_CDHDR = XCDHDR
EXCEPTIONS NO_POSITION_FOUND = 1
OTHERS = 2.

CHECK SY-SUBRC = 0.
* perform write_anla. << change
SORT XCDHDR BY UDATE
UTIME
CHANGENR.

*---- Report Changes ---------------------------------------------*
LOOP AT XCDHDR.
CDHDR = XCDHDR.
CHECK S_UNAME.
CHECK S_DATUM.

* CLEAR LST_TABNAME. < PERFORM WRITE_CHANGES USING FLG_FIRST_ANLA. < ENDLOOP.
ENDFORM.

:
:
FORM WRITE_CHANGES USING U_FLG_FIRST_ANLA. <
DATA: BEGIN OF XCDSHW OCCURS 50.
INCLUDE STRUCTURE CDSHW.
DATA: END OF XCDSHW.
DATA: L_FNAME LIKE CDSHW-FNAME.
DATA: L_FLG_FIRST_HEADER VALUE 'X'. <
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING CHANGENUMBER = CDHDR-CHANGENR
IMPORTING HEADER = CDHDR
TABLES EDITPOS = XCDSHW
EXCEPTIONS NO_POSITION_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.

SORT XCDSHW BY TABNAME
TABKEY
CHNGIND
FNAME.

*-- Report line of the change document ------------------------------*
LOOP AT XCDSHW.
IF XCDSHW-TABNAME EQ 'ANEP' OR
XCDSHW-TABNAME EQ 'ANEA'.
CHECK CON_ON = CON_OFF.
ENDIF.

* L_FNAME(4) = XCDSHW-TABNAME. <
* L_FNAME+4(1) = '-'. <* L_FNAME+5(5) = XCDSHW-FNAME. <
L_FNAME = XCDSHW-FNAME. < CHECK L_FNAME IN S_FNAME.
IF U_FLG_FIRST_ANLA EQ 'X'. < PERFORM WRITE_ANLA. < CLEAR U_FLG_FIRST_ANLA. < ENDIF. < CLEAR LST_TABNAME. < IF L_FLG_FIRST_HEADER EQ 'X'. < PERFORM WRITE_DOCU. < CLEAR L_FLG_FIRST_HEADER. < ENDIF. < CDSHW = XCDSHW.
* SKIP 1.
PERFORM PRINT_CHANGES.
ULINE. < ENDLOOP.

*- No cahange documents present for the asset ------------------------*
ELSE.
* SKIP 1.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
WRITE: /1(82) 'No positions found'(101).
FORMAT RESET.
ENDIF.
* ULINE. <
************************************************************************
Release 3.0
RAAEND01
:
:
FORM CHECK_CHANGES.
DATA: AENDERER LIKE SYST-UNAME,
OBJEKT LIKE CDHDR-OBJECTCLAS VALUE 'ANLA',
OBJEKTID LIKE CDHDR-OBJECTID,
FLG_FIRST_ANLA VALUE 'X'. <:
:
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING OBJECTCLASS = OBJEKT
OBJECTID = OBJEKTID
USERNAME = AENDERER
TABLES I_CDHDR = XCDHDR
EXCEPTIONS NO_POSITION_FOUND = 1
OTHERS = 2.

CHECK SY-SUBRC = 0.
SORT XCDHDR BY UDATE
UTIME
CHANGENR.

*---- Änderungen ausgeben --------------------------------------------*
LOOP AT XCDHDR.
CDHDR = XCDHDR.
CHECK S_UNAME.
CHECK S_DATUM.

* if flg_first eq 'X'. <* perform write_anla. <* clear flg_first. <* endif. <

* CLEAR LST_TABNAME. <* perform write_docu.
PERFORM WRITE_CHANGES USING FLG_FIRST_ANLA. < ENDLOOP.
ENDFORM.

:
:
FORM WRITE_CHANGES USING U_FLG_FIRST_ANLA. <
DATA: BEGIN OF XCDSHW OCCURS 50.
INCLUDE STRUCTURE CDSHW.
DATA: END OF XCDSHW.
DATA: L_FNAME LIKE CDSHW-FNAME.
DATA: L_FLG_FIRST_HEADER VALUE 'X'. <
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING CHANGENUMBER = CDHDR-CHANGENR
IMPORTING HEADER = CDHDR
TABLES EDITPOS = XCDSHW
EXCEPTIONS NO_POSITION_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.

SORT XCDSHW BY TABNAME
TABKEY
CHNGIND
FNAME.

*-- Zeilen des Änderungsbeleges ausgeben ------------------------------*
LOOP AT XCDSHW.
IF XCDSHW-TABNAME EQ 'ANEP' OR
XCDSHW-TABNAME EQ 'ANEA'.
CHECK CON_ON = CON_OFF.
ENDIF.

* L_FNAME(4) = XCDSHW-TABNAME. <
* L_FNAME+4(1) = '-'. <* L_FNAME+5(5) = XCDSHW-FNAME. <
L_FNAME = XCDSHW-FNAME. < CHECK L_FNAME IN S_FNAME.
IF U_FLG_FIRST_ANLA EQ 'X'. < PERFORM WRITE_ANLA. < CLEAR U_FLG_FIRST_ANLA. < ENDIF. < CLEAR LST_TABNAME. < IF L_FLG_FIRST_HEADER EQ 'X'. < PERFORM WRITE_DOCU. < CLEAR L_FLG_FIRST_HEADER. < ENDIF. < CDSHW = XCDSHW.
* SKIP 1.
PERFORM PRINT_CHANGES.
ULINE. < ENDLOOP.

*- Keine Änderungsbelege zur Anlage vorhanden -------------------------*
ELSE.
* SKIP 1.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
WRITE: /1(82) 'Keine Positionen gefunden'(101).
FORMAT RESET.
ENDIF.
* ULINE. <(Coding end)

You should enter the field name without the table name during the selection. If the field exists in several tables, and if the fields with this field name were also changed in several tables, then all changes will be displayed.

Additional key words

RAAEND01


No comments:

Post a Comment