Você está na página 1de 3

*&---------------------------------------------------------------------* *& Report YPP_TEST *& *&---------------------------------------------------------------------* REPORT ypp_test TABLES: ekko, ekpo, lfa1, eban, ebkn.

TYPES: BEGIN OF ty_ekko, ebeln TYPE ekko-ebeln, * ebelp TYPE ekpo-ebelp, ekorg TYPE ekko-ekorg, submi TYPE ekko-submi, * matnr TYPE ekpo-matnr, lifnr TYPE lfa1-lifnr, END OF ty_ekko. DATA: it_ekko TYPE STANDARD TABLE OF ty_ekko , wa_ekko TYPE ty_ekko. FIELD-SYMBOLS: <fs_ekko> TYPE ty_ekko. TYPES: BEGIN OF ty_tab, ebeln TYPE ebelp TYPE matnr TYPE banfn TYPE bnfpo TYPE bsart TYPE werks TYPE txz01 TYPE zebkn TYPE ps_psp_pnr TYPE END OF ty_tab. ekpo-ebeln, ekpo-ebelp, ekpo-matnr, eban-banfn, eban-bnfpo, eban-bsart, eban-werks, eban-txz01, ebkn-zebkn, ebkn-ps_psp_pnr, MESSAGE-ID zmsgs.

DATA: it_tab TYPE STANDARD TABLE OF ty_tab, wa_tab TYPE ty_tab. FIELD-SYMBOLS: <fs_tab> TYPE ty_tab. SELECTION-SCREEN BEGIN OF BLOCK a1. SELECT-OPTIONS: SELECT-OPTIONS: SELECT-OPTIONS: SELECT-OPTIONS: s_submi s_ebelp s_matnr s_lifnr FOR FOR FOR FOR ekko-submi OBLIGATORY. ekpo-ebelp. ekpo-matnr. lfa1-lifnr.

SELECTION-SCREEN END OF BLOCK a1. INITIALIZATION. AT SELECTION-SCREEN. * IF s_submi IS INITIAL. * MESSAGE e999 WITH 'Select Collective No.'.

* ENDIF. IF s_submi IS NOT INITIAL. SELECT submi FROM ekko INTO CORRESPONDING FIELDS OF TABLE it_ekko WHERE subm i IN s_submi . IF sy-subrc <> 0 . MESSAGE e999 WITH 'Please check Collective Number '. ENDIF. ENDIF. * * lp * * * * * * * nr * * * * IF s_ebelp IS NOT INITIAL. SELECT ebelp FROM ekpo INTO CORRESPONDING FIELDS OF TABLE it_ekko WHERE ebe IN s_ebelp . IF sy-subrc <> 0 . MESSAGE e999 WITH 'Wrong Item No. '. ENDIF. ENDIF. IF s_matnr IS NOT INITIAL. SELECT matnr FROM ekpo INTO CORRESPONDING FIELDS OF TABLE it_ekko WHERE mat IN s_matnr . IF sy-subrc <> 0 . MESSAGE e999 WITH 'Check the Material no '. ENDIF. ENDIF.

IF s_lifnr IS NOT INITIAL. SELECT lifnr FROM lfa1 INTO CORRESPONDING FIELDS OF TABLE it_ekko WHERE lifn r IN s_lifnr . IF sy-subrc <> 0 . MESSAGE e999 WITH 'Check Vendor No '. ENDIF. ENDIF. START-OF-SELECTION. PERFORM f_get_data. END-OF-SELECTION. *&---------------------------------------------------------------------* *& Form f_get_data *&---------------------------------------------------------------------* FORM f_get_data. SELECT ebeln ekorg submi lifnr INTO CORRESPONDING FIELDS OF TABLE it_ekko FROM ekko WHERE submi IN s_submi AND bsart EQ 'AN' AND EXISTS ( SELECT ekpo~loekz FROM ekpo WHERE ekpo~ebeln = ekko~ebeln AND ekpo~loekz = space ). SELECT ebeln ebelp

FROM INTO FOR WHERE

matnr ekpo CORRESPONDING FIELDS OF TABLE it_tab ALL ENTRIES IN it_ekko ebeln EQ it_ekko-ebeln.

LOOP AT it_tab ASSIGNING <fs_tab>. SELECT SINGLE banfn bnfpo txz01 FROM eban INTO (<fs_tab>-banfn,<fs_tab>-bnfpo,<fs_tab>-txz01) WHERE matnr = <fs_tab>-matnr. SELECT SINGLE ps_psp_pnr INTO <fs_tab>-ps_psp_pnr FROM ebkn WHERE banfn = <fs_tab>-banfn AND bnfpo = <fs_tab>-bnfpo. ENDLOOP. ENDFORM. "f_get_data

Você também pode gostar