Vous êtes sur la page 1sur 7

*&---------------------------------------------------------------------*

*& Report ZREP_FORWARDING_AGENT


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZREP_FORWARDING_AGENT NO STANDARD PAGE HEADING MESSAGE-ID ZMES_CLS_FRWD_
AGENT.
TYPE-POOLS SLIS.
TABLES VBAK.
TYPES: BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
VKORG TYPE VBAK-VKORG,
VTWEG TYPE VBAK-VTWEG,
SPART TYPE VBAK-SPART,
END OF TY_VBAK.
TYPES : BEGIN OF TY_VBFA,
VBELV TYPE VBFA-VBELV,
VBELN TYPE VBFA-VBELN,
VBTYP_N TYPE VBFA-VBTYP_N,
END OF TY_VBFA.
TYPES : BEGIN OF TY_LIKP,
VBELN TYPE LIKP-VBELN,
END OF TY_LIKP.
TYPES : BEGIN OF TY_VTTP,
VBELN TYPE VTTP-VBELN,
TKNUM TYPE VTTP-TKNUM,
END OF TY_VTTP.
TYPES : BEGIN OF TY_VTTK,
TKNUM TYPE VTTK-TKNUM,
TDLNR TYPE VTTK-TDLNR,
END OF TY_VTTK.
TYPES : BEGIN OF TY_LFA1,
LIFNR TYPE LFA1-LIFNR,
NAME1 TYPE LFA1-NAME1,
END OF TY_LFA1.
TYPES : BEGIN OF TY_FINAL,
VBELN TYPE VBAK-VBELN,
VKORG TYPE VBAK-VKORG,
VTWEG TYPE VBAK-VTWEG,
SPART TYPE VBAK-SPART,
VBELN1 TYPE LIKP-VBELN,
TKNUM TYPE VTTK-TKNUM,
TDLNR TYPE VTTK-TDLNR,
NAME1 TYPE LFA1-NAME1,
END OF TY_FINAL.
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA

:
:
:
:
:
:
:
:
:
:
:

IT_VBELN TYPE TABLE OF VBAK-VBELN.


IT_VKORG TYPE TABLE OF VBAK-VKORG.
IT_VTWEG TYPE TABLE OF VBAK-VTWEG.
IT_SPART TYPE TABLE OF VBAK-SPART.
IT_VBAK TYPE TABLE OF TY_VBAK.
IT_VBFA TYPE TABLE OF TY_VBFA.
IT_LIKP TYPE TABLE OF TY_LIKP.
IT_VTTP TYPE TABLE OF TY_VTTP.
IT_VTTK TYPE TABLE OF TY_VTTK.
IT_LFA1 TYPE TABLE OF TY_LFA1.
IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA : IT_FINAL TYPE TABLE OF TY_FINAL.


DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA

:
:
:
:
:
:
:
:
:

WA_FCAT LIKE LINE OF IT_FCAT.


WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
WA_VBAK TYPE TY_VBAK.
WA_VBFA TYPE TY_VBFA.
WA_LIKP TYPE TY_LIKP.
WA_VTTP TYPE TY_VTTP.
WA_VTTK TYPE TY_VTTK.
WA_LFA1 TYPE TY_LFA1.
WA_FINAL TYPE TY_FINAL.

SELECT-OPTIONS : SO_VBELN
SO_VKORG
SO_VTWEG
SO_SPART

FOR
FOR
FOR
FOR

VBAK-VBELN NO-EXTENSION,
VBAK-VKORG,
VBAK-VTWEG,
VBAK-SPART NO INTERVALS.

INITIALIZATION.
CLEAR WA_FCAT.
CLEAR WA_VBAK.
CLEAR WA_VBFA.
CLEAR WA_LIKP.
CLEAR WA_VTTP.
CLEAR WA_VTTK.
CLEAR WA_LFA1.
CLEAR WA_FINAL.
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH
REFRESH

IT_VBELN.
IT_VKORG.
IT_VTWEG.
IT_SPART.
IT_VBAK.
IT_VBFA.
IT_LIKP.
IT_VTTP.
IT_VTTK.
IT_LFA1.
IT_FCAT.
IT_FINAL.

AT SELECTION-SCREEN.
PERFORM VALIDATE_SO_VBELN.
PERFORM VALIDATE_SO_VKORG.
PERFORM VALIDATE_SO_VTWEG.
PERFORM VALIDATE_SO_SPART.
START-OF-SELECTION.
PERFORM CREATE_FIELDCATLOG.
PERFORM GET_EVENTS.
PERFORM GET_DATA.
PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*&
Form VALIDATE_SO_VBELN
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*

FORM VALIDATE_SO_VBELN .
SELECT VBELN FROM VBUK INTO TABLE IT_VBELN WHERE VBELN IN SO_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000.
ENDIF.
ENDFORM.
" VALIDATE_SO_VBELN
*&---------------------------------------------------------------------*
*&
Form VALIDATE_SO_VKORG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM VALIDATE_SO_VKORG .
SELECT VKORG FROM TVKO INTO TABLE IT_VKORG WHERE VKORG IN SO_VKORG.
IF SY-SUBRC <> 0.
MESSAGE E001.
ENDIF.
ENDFORM.
" VALIDATE_SO_VKORG
*&---------------------------------------------------------------------*
*&
Form VALIDATE_SO_VTWEG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM VALIDATE_SO_VTWEG .
SELECT VTWEG FROM TVKOV INTO TABLE IT_VTWEG WHERE VTWEG IN SO_VTWEG.
IF SY-SUBRC <> 0.
MESSAGE E002.
ENDIF.
ENDFORM.
" VALIDATE_SO_VTWEG
*&---------------------------------------------------------------------*
*&
Form VALIDATE_SO_SPART
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM VALIDATE_SO_SPART .
SELECT SPART FROM TVTA INTO TABLE IT_SPART WHERE SPART IN SO_SPART.
IF SY-SUBRC <> 0.
MESSAGE E003.
ENDIF.
ENDFORM.
" VALIDATE_SO_SPART
*&---------------------------------------------------------------------*
*&
Form CREATE_FIELDCATLOG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_FIELDCATLOG .
PERFORM CREATE_FIELD USING '1' 'VBELN' 'IT_FINAL' 'SALES DOC'.
PERFORM CREATE_FIELD USING '2' 'VKORG' 'IT_FINAL' 'SAL ORG' .
PERFORM CREATE_FIELD USING '3' 'VTWEG' 'IT_FINAL' 'DIST CHAN'.

PERFORM CREATE_FIELD USING '4' 'SPART' 'IT_FINAL' 'DIVISION' .


PERFORM CREATE_FIELD USING '5' 'VBELN1' 'IT_FINAL' 'DELIVERY' .
PERFORM CREATE_FIELD USING '6' 'TKNUM' 'IT_FINAL' 'SHIPMENT' .
PERFORM CREATE_FIELD USING '7' 'TDLNR' 'IT_FINAL' 'SERVICE AGENT' .
PERFORM CREATE_FIELD USING '8' 'NAME1' 'IT_FINAL' 'NAME'
.
ENDFORM.
" CREATE_FIELDCATLOG
*&---------------------------------------------------------------------*
*&
Form CREATE_FIELD
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0273 text
*
-->P_0274 text
*
-->P_0275 text
*
-->P_0276 text
*
-->P_0277 text
*----------------------------------------------------------------------*
FORM CREATE_FIELD USING F_POS F_FNAME F_ITABNAME F_SELTEXT. "F_EDIT.
WA_FCAT-COL_POS = F_POS.
WA_FCAT-FIELDNAME = F_FNAME.
WA_FCAT-TABNAME = F_ITABNAME.
WA_FCAT-SELTEXT_M = F_SELTEXT.
* WA_FCAT-EDIT
= F_EDIT.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
ENDFORM.
" CREATE_FIELD
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT VBELN VKORG VTWEG SPART
FROM VBAK
INTO TABLE IT_VBAK
WHERE : VBELN IN SO_VBELN AND
VKORG IN SO_VKORG AND
VTWEG IN SO_VTWEG AND
SPART IN SO_SPART AND
VBTYP = 'C'.
IF IT_VBAK IS INITIAL.
MESSAGE E004.
LEAVE TO SCREEN 0.
ELSE.
SELECT VBELV VBELN VBTYP_N
FROM VBFA
INTO TABLE IT_VBFA
FOR ALL ENTRIES IN IT_VBAK
WHERE VBELV = IT_VBAK-VBELN AND VBTYP_N = 'J'.
IF IT_VBFA IS INITIAL.
MESSAGE E004.
LEAVE TO SCREEN 0.
ELSE.
SELECT VBELN
FROM LIKP
INTO TABLE IT_LIKP

FOR ALL ENTRIES IN IT_VBFA


WHERE VBELN = IT_VBFA-VBELN.
IF IT_LIKP IS INITIAL.
MESSAGE E004.
LEAVE TO SCREEN 0.
ELSE.
SELECT VBELN TKNUM
FROM VTTP
INTO TABLE IT_VTTP
FOR ALL ENTRIES IN IT_LIKP
WHERE VBELN = IT_LIKP-VBELN.
IF IT_VTTP IS INITIAL.
MESSAGE E004.
LEAVE TO SCREEN 0.
ELSE.
SELECT TKNUM TDLNR
FROM VTTK
INTO TABLE IT_VTTK
FOR ALL ENTRIES IN IT_VTTP
WHERE TKNUM = IT_VTTP-TKNUM.
IF IT_VTTK IS INITIAL.
MESSAGE E004.
LEAVE TO SCREEN 0.
ELSE.
SELECT LIFNR NAME1
FROM LFA1
INTO TABLE IT_LFA1
FOR ALL ENTRIES IN IT_VTTK
WHERE LIFNR = IT_VTTK-TDLNR.
IF IT_LFA1 IS INITIAL.
MESSAGE E004.
LEAVE TO SCREEN 0.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
LOOP AT IT_VBAK INTO WA_VBAK.
LOOP AT IT_VBFA INTO WA_VBFA WHERE VBELV = WA_VBAK-VBELN.
LOOP AT IT_LIKP INTO WA_LIKP WHERE VBELN = WA_VBFA-VBELN.
LOOP AT IT_VTTP INTO WA_VTTP WHERE VBELN = WA_LIKP-VBELN.
LOOP AT IT_VTTK INTO WA_VTTK WHERE TKNUM = WA_VTTP-TKNUM.
LOOP AT IT_LFA1 INTO WA_LFA1 WHERE LIFNR = WA_VTTK-TDLNR.
WA_FINAL-VBELN = WA_VBAK-VBELN.
WA_FINAL-VKORG = WA_VBAK-VKORG.
WA_FINAL-VTWEG = WA_VBAK-VTWEG.
WA_FINAL-SPART = WA_VBAK-SPART.
WA_FINAL-VBELN1 = WA_LIKP-VBELN.
WA_FINAL-TKNUM = WA_VTTP-TKNUM.
WA_FINAL-TDLNR = WA_VTTK-TDLNR.
WA_FINAL-NAME1 = WA_LFA1-NAME1.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDLOOP.

ENDLOOP.
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form DISPLAY_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
* SY-LSIND = '0'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
= ' '
* I_BYPASSING_BUFFER
= ' '
* I_BUFFER_ACTIVE
= ' '
* I_CALLBACK_PROGRAM
= ' '
* I_CALLBACK_PF_STATUS_SET
= ' '
* I_CALLBACK_USER_COMMAND
= ' '
* I_CALLBACK_TOP_OF_PAGE
= ' '
* I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
* I_CALLBACK_HTML_END_OF_LIST
= ' '
* I_STRUCTURE_NAME
=
* I_BACKGROUND_ID
= ' '
* I_GRID_TITLE
=
* I_GRID_SETTINGS
=
IS_LAYOUT
= WA_LAYOUT
IT_FIELDCAT
= IT_FCAT
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'
* I_SAVE
= ' '
* IS_VARIANT
=
* IT_EVENTS
=
* IT_EVENT_EXIT
=
* IS_PRINT
=
* IS_REPREP_ID
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* I_HTML_HEIGHT_TOP
= 0
* I_HTML_HEIGHT_END
= 0
* IT_ALV_GRAPHICS
=
* IT_HYPERLINK
=
* IT_ADD_FIELDCAT
=
* IT_EXCEPT_QINFO
=
* IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER
=
* ES_EXIT_CAUSED_BY_USER
=
TABLES
T_OUTTAB
= IT_FINAL
* EXCEPTIONS
* PROGRAM_ERROR
= 1

OTHERS

= 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
" DISPLAY_DATA
*&---------------------------------------------------------------------*
*&
Form GET_EVENTS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_EVENTS .
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM.
" GET_EVENTS

Vous aimerez peut-être aussi