Vendor's material

Hi experts,
I am creating vendor's stock report. I am facing problem i am not getting all material for perticular vendor in MSEG but when i am checking standard report ME2O or MB5B it showing the material at vendor. so how can i get all material for perticular vendor. any FM or somthing else plz giv me solution.
SELECT * FROM MKPF
INTO TABLE IT_MKPF
WHERE BUDAT IN PODATE.
  IF NOT IT_MKPF[] IS INITIAL.
     SELECT * FROM MSEG
              INTO TABLE IT_MSEG
              FOR ALL ENTRIES IN IT_MKPF
              WHERE MBLNR = IT_MKPF-MBLNR AND
                    MJAHR = IT_MKPF-MJAHR AND
                    WERKS = PLANT         AND
                    LIFNR = VENDOR        AND
                   (  BWART =  '541' AND SHKZG = 'S'  OR
                      BWART =  '542' AND SHKZG = 'H'  OR
                      BWART =  '543' AND SHKZG = 'H'  OR
                      BWART =  '544' AND SHKZG = 'S'  OR
                      BWART =  '548' AND SHKZG = 'H'  OR
                      BWART =  '549' AND SHKZG = 'S' ) .
  ENDIF. plz giv me solution.
Thanks,
Vishal.

*& Report  Z_MM_STCK_FG_T
report  z_mm_stck_fg_t.
TABLES:mara,marc,mkpf,mseg,komp,vbrp.
TYPE-POOLS:slis.
TYPES :BEGIN OF ty_mb5b,
        matnr   TYPE matnr,
        budat   TYPE budat,
        mb_open  TYPE p DECIMALS 3,
        END OF ty_mb5b.
DATA:wa_mb5b  TYPE ty_mb5b.
DATA:it_mb5b TYPE STANDARD TABLE OF  ty_mb5b  INITIAL SIZE 0.
TYPES:BEGIN OF ty_fgl,
      mblnr  TYPE mblnr,
      vgart TYPE vgart,
      blart TYPE blart,
      bldat TYPE bldat,
      budat TYPE  budat,
      aedat TYPE aedat,
      xblnr TYPE xblnr1,
      bktxt TYPE bktxt,
      zeile TYPE mblpo,
      bwart TYPE bwart,
      xauto TYPE mb_xauto,
      matnr TYPE matnr,
      werks TYPE werks_d,
      lgort TYPE lgort_d,
      charg TYPE charg_d,
      insmk TYPE mb_insmk,
      zusch TYPE dzusch,
      zustd TYPE dzustd,
      sobkz TYPE sobkz,
      lifnr TYPE elifn,
      kunnr TYPE ekunn,
      kdauf TYPE kdauf,
      kdpos TYPE kdpos,
      kdein TYPE kdein,
      plpla TYPE plpla,
      shkzg  TYPE shkzg,
      waers TYPE waers,
      dmbtr TYPE dmbtr,
      bnbtr TYPE bnbtr,
      bualt  TYPE bualt,
      shkum TYPE shkum,
      dmbum TYPE dmbum,
      bwtar TYPE bwtar_d,
      menge TYPE  menge_d,
      meins TYPE meins,
      erfmg TYPE erfmg,
      erfme TYPE erfme,
      bpmng TYPE  bpmng,
      bprme TYPE bbprm,
      ebeln TYPE bstnr,
      ebelp TYPE ebelp,
      lfbja TYPE lfbja,
      lfbnr TYPE lfbnr,
      lfpos TYPE lfpos,
      sjahr TYPE mjahr,
      smbln TYPE mblnr,
      smblp  TYPE mblpo,
      elikz TYPE elikz,
      sgtxt TYPE sgtxt,
      equnr TYPE equnr,
      wempf  TYPE wempf,
      ablad TYPE ablad,
      gsber TYPE gsber,
      kzbew TYPE kzbew,
      tcode2 TYPE  tcode,
      umwrk  TYPE umwrk,
      umcha TYPE umcha,
      END OF ty_fgl.
TYPES:BEGIN OF ty_fgl1,
      mblnr TYPE mblnr,
      vgart TYPE vgart,
      blart  TYPE blart,
      bldat TYPE bldat,
      budat TYPE budat,
      aedat TYPE aedat,
      xblnr TYPE  xblnr1,
      bktxt TYPE bktxt,
      zeile TYPE mblpo,
      bwart TYPE bwart,
      xauto TYPE mb_xauto,
      matnr TYPE matnr,
      werks TYPE werks_d,
      lgort TYPE lgort_d,
      charg TYPE charg_d,
      insmk TYPE mb_insmk,
      zusch TYPE dzusch,
      zustd TYPE dzustd,
      sobkz TYPE sobkz,
      lifnr TYPE elifn,
      kunnr TYPE ekunn,
      kdauf TYPE kdauf,
      kdpos TYPE kdpos,
      kdein  TYPE kdein,
      plpla TYPE plpla,
      shkzg TYPE shkzg,
      waers TYPE waers,
      dmbtr  TYPE dmbtr,
      bnbtr TYPE bnbtr,
      bualt TYPE bualt,
      shkum TYPE shkum,
      dmbum TYPE  dmbum,
      bwtar TYPE bwtar_d,
      menge TYPE menge_d,
      meins TYPE meins,
      erfmg TYPE erfmg,
      erfme TYPE erfme,
      bpmng TYPE bpmng,
      bprme TYPE bbprm,
      ebeln TYPE bstnr,
      ebelp  TYPE ebelp,
      lfbja TYPE lfbja,
      lfbnr TYPE lfbnr,
      lfpos TYPE lfpos,
      sjahr  TYPE mjahr,
      smbln TYPE mblnr,
      smblp TYPE mblpo,
      elikz TYPE elikz,
      sgtxt TYPE  sgtxt,
      equnr TYPE equnr,
      wempf TYPE wempf,
      ablad TYPE ablad,
      gsber TYPE gsber,
      kzbew TYPE kzbew,
      tcode2 TYPE tcode,
      umwrk  TYPE umwrk,
      END  OF ty_fgl1.
TYPES:BEGIN OF ty_bsim,
      belnr TYPE belnr_d,
      matnr  TYPE matnr,
      bwkey TYPE bwkey,
      shkzg TYPE shkzg,
      budat TYPE budat,
      dmbtr TYPE  dmbtr,
      END OF ty_bsim.
TYPES:BEGIN OF ty_shkzg,
      mblnr    TYPE mblnr,
      matnr   TYPE matnr,
      budat   TYPE  budat,
      shkzg   TYPE shkzg,
      s_menge  TYPE menge_d,
      h_menge TYPE menge_d,
      s_dmbtr TYPE dmbtr,
      h_dmbtr TYPE dmbtr,
      lifnr    TYPE elifn,
      kunnr   TYPE ekunn,
      xblnr   TYPE xblnr1,
      charg   TYPE charg_d,
      END  OF ty_shkzg.
TYPES:BEGIN OF ty_shkzg1,
      mblnr   TYPE mblnr,
      matnr   TYPE matnr,
      budat   TYPE budat,
      shkzg   TYPE shkzg,
      s_menge TYPE menge_d,
      h_menge TYPE menge_d,
      s_dmbtr TYPE dmbtr,
      h_dmbtr TYPE dmbtr,
      lifnr   TYPE elifn,
      kunnr   TYPE ekunn,
      xblnr   TYPE xblnr1,
      charg   TYPE charg_d,
      bwart   TYPE bwart,
      ebeln   TYPE ebeln,
      ebelp   TYPE ebelp,
      lgort   TYPE lgort_d,
      umwrk   TYPE umwrk,
      END OF ty_shkzg1.
TYPES:BEGIN OF ty_makt,
      matnr    TYPE matnr,
      maktx   TYPE maktx,
      END OF ty_makt.
TYPES:BEGIN  OF ty_c_shkzg,
      mblnr   TYPE mblnr,
      matnr   TYPE matnr,
      budat   TYPE budat,
      shkzg    TYPE shkzg,
      s_menge TYPE menge_d,
      h_menge TYPE menge_d,
      s_dmbtr TYPE dmbtr,
      h_dmbtr  TYPE dmbtr,
      lifnr   TYPE elifn,
      kunnr   TYPE ekunn,
      xblnr   TYPE xblnr1,
      charg    TYPE charg_d,
      END OF ty_c_shkzg.
TYPES:BEGIN OF  ty_final,
      mblnr   TYPE mblnr,
      matnr   TYPE matnr,
      budat   TYPE budat,
      shkzg   TYPE  shkzg,
      s_menge TYPE menge_d,
      h_menge TYPE menge_d,
      s_dmbtr TYPE dmbtr,
      h_dmbtr TYPE  dmbtr,
      lifnr   TYPE elifn,
      kunnr   TYPE ekunn,
      xblnr   TYPE xblnr1,
      charg    TYPE charg_d,
      balance TYPE menge_d,
      balancev TYPE menge_d,
      open    TYPE menge_d,
      openv    TYPE menge_d,
      mb_open TYPE p DECIMALS 3,
      hsdat   TYPE  hsdat,
      END OF ty_final.
TYPES:BEGIN OF ty_f_shkzg,
      mblnr    TYPE mblnr,        "Material Document
      matnr   TYPE matnr,        "Material Number
      budat    TYPE budat,        "Posting Date
      kbetr   TYPE kbetr,        "MRP Rate
      lifnr   TYPE  elifn,        "Vendor Number
      kunnr   TYPE ekunn,        "Customer Number
      xblnr   TYPE  xblnr1,       "Reference Document Number
      open    TYPE menge_d,      "Opening Stock
      s_menge  TYPE menge_d,      "Reciept Stock
      h_menge TYPE menge_d,      "Issue Stock
      balance  TYPE menge_d,      "Closing Stock
      charg   TYPE charg_d,      "Batch Number
      hsdat   TYPE  hsdat,        "Manufaturing Period
      bwart   TYPE bwart,        "Movement type
      ebeln    TYPE ebeln,        "Purchase order No
      ebelp   TYPE ebelp,        "Purchase order Line item
      lgort    TYPE lgort_d,      "Storage Location
      s_dmbtr TYPE dmbtr,
      h_dmbtr TYPE dmbtr,
      balancev  TYPE dmbtr,
      openv    TYPE dmbtr,
      umwrk   TYPE umwrk,
      vbeln   type VBELN_VF,
      END  OF ty_f_shkzg.
*TYPES:BEGIN OF ty_f_shkzg,
     mblnr   TYPE mblnr,        "Material Document
     matnr   TYPE matnr,        "Material Number
     budat   TYPE budat,        "Posting Date
     kbetr   TYPE kbetr,        "MRP Rate
     lifnr   TYPE elifn,        "Vendor Number
     kunnr   TYPE ekunn,        "Customer Number
     xblnr   TYPE xblnr1,       "Reference Document Number
     open    TYPE p DECIMALS 2,      "Opening Stock
     s_menge TYPE p DECIMALS 2,      "Reciept Stock
     h_menge TYPE p DECIMALS 2,      "Issue Stock
     balance TYPE p DECIMALS 2,      "Closing Stock
     charg   TYPE charg_d,      "Batch Number
     hsdat   TYPE hsdat,        "Manufaturing Period
     bwart   TYPE bwart,        "Movement type
     ebeln   TYPE ebeln,        "Purchase order No
     ebelp   TYPE ebelp,        "Purchase order Line item
     lgort   TYPE lgort_d,      "Storage Location
     s_dmbtr TYPE dmbtr,
     h_dmbtr TYPE dmbtr,
     balancev TYPE dmbtr,
     openv    TYPE dmbtr,
     umwrk   TYPE umwrk,
     END OF ty_f_shkzg.
TYPES:BEGIN OF ty_f_shkzg_l,
      mblnr   TYPE mblnr,        "Material Document
      matnr    TYPE matnr,        "Material Number
      budat   TYPE budat,        "Posting Date
      kbetr    TYPE kbetr,        "MRP Rate
      lifnr   TYPE elifn,        "Vendor Number
      kunnr    TYPE ekunn,        "Customer Number
      xblnr   TYPE xblnr1,       "Reference Document Number
       open    TYPE menge_d,      "Opening Stock
      s_menge TYPE menge_d,      "Reciept Stock
      h_menge TYPE menge_d,      "Issue Stock
      balance TYPE menge_d,      "Closing Stock
      charg    TYPE charg_d,      "Batch Number
      hsdat   TYPE hsdat,        "Manufaturing Period
      bwart    TYPE bwart,        "Movement type
      ebeln   TYPE ebeln,        "Purchase order No
      ebelp    TYPE ebelp,        "Purchase order Line item
      lgort   TYPE lgort_d,      "Storage Location
      s_dmbtr  TYPE dmbtr,
      h_dmbtr TYPE dmbtr,
      balancev TYPE dmbtr,
      openv    TYPE dmbtr,
      reswk     TYPE reswk,
      werks    TYPE werks_d,      "Plant
      k_name1(40) TYPE  c,        "Customer Name
      l_name1(40) TYPE c,         "Vendor Name
      p_name1(40) TYPE c,        "Plant Name
      m_name1( 90) TYPE c,        "Material Description
      s_name1(40) TYPE  c,
      vbeln   type VBELN_VF,
      END OF ty_f_shkzg_l.
*TYPES:BEGIN OF ty_f_shkzg_l,
     mblnr   TYPE mblnr,        "Material Document
     matnr   TYPE matnr,        "Material Number
     budat   TYPE budat,        "Posting Date
     kbetr   TYPE kbetr,        "MRP Rate
     lifnr   TYPE elifn,        "Vendor Number
     kunnr   TYPE ekunn,        "Customer Number
     xblnr   TYPE xblnr1,       "Reference Document Number
     open    TYPE p DECIMALS 2,      "Opening Stock
     s_menge TYPE p DECIMALS 2,      "Reciept Stock
     h_menge TYPE p DECIMALS 2,      "Issue Stock
     balance TYPE p DECIMALS 2,      "Closing Stock
     charg   TYPE charg_d,      "Batch Number
     hsdat   TYPE hsdat,        "Manufaturing Period
     bwart   TYPE bwart,        "Movement type
     ebeln   TYPE ebeln,        "Purchase order No
     ebelp   TYPE ebelp,        "Purchase order Line item
     lgort   TYPE lgort_d,      "Storage Location
     s_dmbtr TYPE dmbtr,
     h_dmbtr TYPE dmbtr,
     balancev TYPE dmbtr,
     openv    TYPE dmbtr,
     reswk    TYPE reswk,
     werks    TYPE werks_d,      "Plant
     k_name1(40) TYPE c,        "Customer Name
     l_name1(40) TYPE c,        "Vendor Name
     p_name1(40) TYPE c,        "Plant Name
     m_name1(90) TYPE c,        "Material Description
     s_name1(40) TYPE c,
     END OF ty_f_shkzg_l.
TYPES:BEGIN OF ty_kna1,
      kunnr TYPE  kunnr,
      name1 TYPE ad_name1,
      city1 TYPE ad_city1,
      END OF ty_kna1.
TYPES:BEGIN OF ty_lfa1,
      lifnr TYPE lifnr,
      name1 TYPE ad_name1,
      city1  TYPE ad_city1,
      END OF ty_lfa1.
TYPES:BEGIN OF ty_werks,
      werks  TYPE werks_d,
      name1 TYPE ad_name1,
      city1 TYPE ad_city1,
      END OF  ty_werks.
TYPES:BEGIN OF ty_reswk,
      werks TYPE werks_d,
      name1 TYPE  ad_name1,
      city1 TYPE ad_city1,
      END OF ty_reswk.
TYPES:BEGIN  OF ty_a974,
      kschl TYPE kscha,
      matnr TYPE matnr,
      charg TYPE charg_d,
      datbi  TYPE kodatbi,
      datab TYPE kodatab,
      knumh TYPE knumh,
      kbetr TYPE kbetr,
      END  OF ty_a974.
TYPES:BEGIN OF ty_a926,
      kappl TYPE  kappl,
      kschl  TYPE  kscha,
      matnr TYPE  matnr,
      datbi TYPE  kodatbi,
      datab TYPE  kodatab,
      knumh  TYPE  knumh,
      kbetr TYPE kbetr,
      END OF ty_a926.
TYPES: BEGIN OF ty_konv,
      matnr TYPE matnr,
      knumh TYPE knumh,
      kbetr TYPE kbetr,
       END OF ty_konv.
TYPES:BEGIN OF ty_mch1,
      matnr  TYPE matnr,
      charg TYPE charg_d,
      hsdat TYPE hsdat,
      END OF ty_mch1.
TYPES:BEGIN OF ty_ekko,
      ebeln TYPE ebeln,
      ebelp TYPE ebelp,
      werks  TYPE werks_d,
      reswk TYPE reswk,
      END OF ty_ekko.
TYPES:BEGIN  OF ty_bkpf,
      bukrs TYPE bukrs,
      belnr TYPE belnr_d,
      gjahr TYPE gjahr,
      budat  TYPE budat,
      xblnr TYPE xblnr1,
      bktxt TYPE bktxt,
      tcode TYPE tcode,
      matnr  TYPE matnr,
      dmbtr TYPE dmbtr,
      END OF ty_bkpf.
TYPES:BEGIN  OF ty_bseg,
      bukrs TYPE bukrs,
      belnr TYPE belnr_d,
      gjahr TYPE gjahr,
      budat  TYPE budat,
      matnr TYPE matnr,
      werks TYPE werks,
      dmbtr TYPE dmbtr,
      END  OF ty_bseg.
TYPES : begin of ty_vbrp,
       vbeln type VBELN_VF,
        vgbel( 16) type c ,
        matnr type matnr,
       end of ty_vbrp.
DATA:  wa_shkzg     TYPE   ty_shkzg,
       wa_shkzg1    TYPE   ty_shkzg1,
       wa_c_shkzg   TYPE    ty_c_shkzg,
       wa_final     TYPE   ty_final,
       wa_f_shkzg   TYPE   ty_f_shkzg,
       wa_f_shkzg_l TYPE   ty_f_shkzg_l,
       wa_fgl       TYPE   ty_fgl,
       wa_fglc      TYPE   ty_fgl,
       wa_fgl1      TYPE   ty_fgl1,
       wa_a974       TYPE   ty_a974,
       wa_a926      TYPE   ty_a926,
       wa_konv      TYPE   ty_konv,
       wa_mch1      TYPE   ty_mch1,
       wa_kna1      TYPE   ty_kna1,
       wa_lfa1      TYPE   ty_lfa1,
       wa_werks     TYPE   ty_werks,
       wa_reswk      TYPE   ty_reswk,
       wa_makt      TYPE   ty_makt,
       wa_bkpf      TYPE   ty_bkpf,
       wa_bseg      TYPE   ty_bseg,
       wa_bsim      TYPE   ty_bsim,
       wa_ekko      TYPE   ty_ekko,
       wa_vbrp      type   ty_vbrp.
DATA:  it_fgl       TYPE STANDARD TABLE OF ty_fgl       INITIAL  SIZE 0,
       it_fglc      TYPE STANDARD TABLE OF ty_fgl        INITIAL SIZE 0,
       it_fgl1      TYPE STANDARD TABLE  OF ty_fgl1      INITIAL SIZE 0,
       it_shkzg     TYPE STANDARD  TABLE OF ty_shkzg     INITIAL SIZE 0,
       it_shkzg1    TYPE  STANDARD TABLE OF ty_shkzg1    INITIAL SIZE 0,
       it_c_shkzg    TYPE STANDARD TABLE OF ty_c_shkzg   INITIAL SIZE 0,
       it_final     TYPE STANDARD TABLE OF ty_final     INITIAL SIZE  0,
       it_f_shkzg   TYPE STANDARD TABLE OF ty_f_shkzg    INITIAL SIZE 0,
       it_f_shkzg_l TYPE STANDARD TABLE  OF ty_f_shkzg_l INITIAL SIZE 0,
       it_a974      TYPE STANDARD  TABLE OF ty_a974      INITIAL SIZE 0,
       it_a926      TYPE  STANDARD TABLE OF ty_a926      INITIAL SIZE 0,
       it_konv       TYPE STANDARD TABLE OF ty_konv      INITIAL SIZE 0,
       it_mch1      TYPE STANDARD TABLE OF ty_mch1      INITIAL SIZE  0,
       it_kna1      TYPE STANDARD TABLE OF ty_kna1       INITIAL SIZE 0,
       it_lfa1      TYPE STANDARD TABLE  OF ty_lfa1      INITIAL SIZE 0,
       it_werks     TYPE STANDARD  TABLE OF ty_werks     INITIAL SIZE 0,
       it_reswk     TYPE  STANDARD TABLE OF ty_reswk     INITIAL SIZE 0,
       it_makt       TYPE STANDARD TABLE OF ty_makt      INITIAL SIZE 0,
       it_bkpf      TYPE STANDARD TABLE OF ty_bkpf      INITIAL SIZE  0,
       it_bseg      TYPE STANDARD TABLE OF ty_bseg       INITIAL SIZE 0,
       it_ekko      TYPE STANDARD TABLE  OF ty_ekko      INITIAL SIZE 0,
       it_bsim      TYPE STANDARD  TABLE OF ty_bsim      INITIAL SIZE 0,
       it_vbrp      TYPE  STANDARD TABLE OF ty_vbrp      INITIAL SIZE 0.
*DATA: BEGIN OF bestand OCCURS 100,
       bwkey           LIKE   mbew-bwkey,
       werks           LIKE   mseg-werks,
       matnr           LIKE   mseg-matnr,
       charg           LIKE   mseg-charg,
       endmenge(09)    TYPE   p DECIMALS 3,
       anfmenge(09)    TYPE   p DECIMALS 3,
       meins           LIKE   mara-meins,
       endwert(09)     TYPE   p    DECIMALS 2,
       anfwert(09)     TYPE   p    DECIMALS 2,
       soll(09)        TYPE   p    DECIMALS 3,
       haben(09)       TYPE   p    DECIMALS 3,
       sollwert(09)    TYPE   p    DECIMALS 2,
       habenwert(09)   TYPE   p    DECIMALS 2,
       waers           LIKE        t001-waers,
     END OF bestand.
DATA:temp1    TYPE menge_d,
      temp2   TYPE dmbtr,
      c       TYPE  i,
      count   TYPE i,
      temp    TYPE menge_d,
      tempv    TYPE dmbtr,
      tgjahr  TYPE gjahr.
*For ALV
DATA: gt_fld TYPE slis_t_fieldcat_alv,
      gt_ev TYPE slis_t_event,
      gt_hdr TYPE slis_t_listheader,
      gt_sort TYPE slis_t_sortinfo_alv.
DATA: wa_fld TYPE slis_fieldcat_alv,
      wa_ev TYPE slis_alv_event,
      wa_hdr TYPE slis_listheader,
      wa_sort  TYPE slis_sortinfo_alv,
      wa_layout TYPE slis_layout_alv.
DATA: mtrl LIKE sy-repid,
      title  LIKE sy-title,
      l_matnr LIKE mara-matnr.
DEFINE fld.
  wa_fld-fieldname = & 1.
  wa_fld-tabname = &2.
  wa_fld-outputlen = &3.
  wa_fld-seltext_l = &4.
  wa_fld-seltext_m = & 5.
  wa_fld-seltext_s = &6.
  wa_fld-col_pos = &7.
  wa_fld-fix_column = &8.
  wa_fld-do_sum = & 9.
  append wa_fld to gt_fld.
  clear wa_fld.
END-OF- DEFINITION.
DATA:strtdte TYPE sy-datum.
DATA:strt1dte LIKE mkpf-budat.
RANGES : l_ra_datum FOR mkpf-budat.
CONSTANTS: c_top TYPE slis_formname VALUE 'TOP_OF_PAGE' ,
           c_user_command            TYPE  slis_formname  VALUE 'USER_COMMAND'.
SELECTION-SCREEN  BEGIN OF BLOCK b1 WITH FRAME TITLE  text-001.
SELECT-OPTIONS:matnr FOR mara-matnr." OBLIGATORY.
PARAMETERS :werks LIKE marc-werks OBLIGATORY.
*PARAMETERS:lgort LIKE mseg-lgort.
SELECT-OPTIONS:datum FOR mkpf-budat. " DEFAULT '20060831'.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON matnr.
  IF matnr-low IS INITIAL.
     MESSAGE 'Please Enter the Material Number' TYPE 'E'.
    SET CURSOR  FIELD matnr-low.
  ENDIF.
SELECT matnr
        INTO  (l_matnr)
        FROM mara
        FOR ALL ENTRIES IN matnr
        WHERE matnr = matnr-low.
ENDSELECT.
  IF sy-subrc =  0.
    SELECT matnr
           INTO  (l_matnr)
           FROM mara
            FOR ALL ENTRIES IN matnr
           WHERE matnr = matnr-low
           AND mtart =  'FERT'.
    ENDSELECT.
    IF sy-subrc NE 0.
      MESSAGE  'Please Enter Finished goods Material' TYPE 'E'.
    ENDIF.
  ELSEIF sy-subrc  NE 0.
    MESSAGE 'Material Number Does Not Exists nor Activated' TYPE 'E' .
    SET CURSOR FIELD matnr-low.
  ENDIF.
INITIALIZATION.
  mtrl = sy-repid.
  title = sy-title.
LOOP AT DATUM.
STRTDTE = DATUM-LOW.
DATUM-LOW = '31.08.2006'.
MODIFY DATUM FROM DATUM.
ENDLOOP.
*BREAK-POINT.
START-OF-SELECTION.
  PERFORM select_data_from_mkpf_mseg.
  PERFORM select_data_from_a974.
  PERFORM  select_data_from_a926.
  PERFORM select_data_from_konv.
  PERFORM select_data_from_mch1.
  PERFORM retrive_open_stock.
  PERFORM data_cal_format.
  perform data_vbrp.
  PERFORM data_cal_final.
END -OF-SELECTION.
*BUILDING FIELD CATALOG
  PERFORM build_fieldcat.
*BUILD EVENT
   PERFORM build_event.
*BUILD LISTHEADER
  PERFORM build_listheader.
*SORTING THE FIELDCAT DISPLAY
   PERFORM sort_fieldcat.
*FIELDCAT LAYOUT BUILD
  PERFORM build_layout.
*ALV GRID DISPLAY
  PERFORM  grid_display.
*&      Form  select_data_from_mkpf_mseg
Select data from MKPF and MSEG tables based on the selection parameters
-->  p1        text
<--  p2        text
FORM select_data_from_mkpf_mseg .
  DATA:tempvar TYPE p DECIMALS 3.
  LOOP AT datum INTO  l_ra_datum.
   if  not l_ra_matnr-low     is initial  and
           l_ra_matnr-sign    =  'I'      and
           l_ra_matnr-option  =  'EQ'     and
           l_ra_matnr-high    is initial.
    strtdte = datum-high.
    l_ra_datum-option  =   'BT'.
    l_ra_datum-low = '20060831'.
    l_ra_datum-high = datum-high.
    APPEND  l_ra_datum.
   endif.
    CLEAR l_ra_datum.
  ENDLOOP.
  strt1dte = '20060831'.
  SELECT   a~mblnr
          a~vgart
          a~blart
          a~bldat
          a~budat
          a~aedat
          a~xblnr
          a~bktxt
          a~tcode2
          b~matnr
          b~charg
          b~werks
          b~bwart
          b~lgort
          b~lifnr
          b~kunnr
          b~shkzg
          b~menge
          b~ebeln
          b~ebelp
          b~umwrk
          b~xauto
          b~dmbtr
          b~umcha
          INTO CORRESPONDING FIELDS OF TABLE it_fgl
           FROM mkpf AS a
          INNER JOIN mseg AS b ON a~mblnr = b~mblnr
          WHERE  b~matnr IN matnr
          AND b~werks EQ werks
         AND b~lgort EQ lgort
           AND a~budat IN l_ra_datum
          AND b~bwart NOT IN ('321', '343','344','651').
         and xauto ne 'X'.
  IF sy-subrc  NE 0.
    MESSAGE 'Data does not exists for the entered selection criteria' TYPE  'I'.
    LEAVE LIST-PROCESSING.
  ENDIF.
  it_fglc[] = it_fgl[].
  CLEAR wa_fgl.
   CLEAR wa_fglc.
  LOOP AT it_fgl INTO wa_fgl WHERE bwart = '101'  AND dmbtr EQ space.
    READ TABLE it_fglc INTO wa_fglc WITH  KEY bwart = '641' xauto = 'X' ebeln = wa_fgl-ebeln ebelp = wa_fgl-ebelp. "umcha = wa_fgl-charg.
    IF sy-subrc = 0.
      IF wa_fgl-menge NE wa_fglc-menge.
        tempvar = wa_fglc-dmbtr / wa_fglc-menge.
        wa_fgl-dmbtr = wa_fgl-menge * tempvar.
      ELSE.
        wa_fgl-dmbtr = wa_fglc-dmbtr.
      ENDIF.
    ELSE.
       READ TABLE it_fglc INTO wa_fglc WITH KEY bwart = '643'   xauto = 'X' ebeln = wa_fgl-ebeln ebelp = wa_fgl-ebelp. "umcha = wa_fgl-charg.
      IF sy-subrc = 0 .
        IF wa_fgl-menge NE wa_fglc-menge.
          tempvar = wa_fglc-dmbtr / wa_fglc-menge.
          wa_fgl-dmbtr = wa_fgl-menge * tempvar.
         ELSE.
          wa_fgl-dmbtr = wa_fglc-dmbtr.
        ENDIF.
      ENDIF.
    ENDIF.
    MODIFY  it_fgl FROM wa_fgl.
    CLEAR wa_fgl.
    CLEAR wa_fglc.
  ENDLOOP.
  LOOP  AT it_fgl INTO wa_fgl WHERE bwart = '102' AND dmbtr  EQ space.
    READ TABLE it_fglc INTO wa_fglc WITH KEY bwart =  '642' xauto = 'X' ebeln = wa_fgl-ebeln ebelp = wa_fgl-ebelp. "umcha = wa_fgl-charg.
    IF sy-subrc =  0.
      IF wa_fgl-menge NE wa_fglc-menge.
        tempvar = wa_fglc-dmbtr / wa_fglc-menge.
        wa_fgl-dmbtr = wa_fgl-menge * tempvar.
       ELSE.
        wa_fgl-dmbtr = wa_fglc-dmbtr.
      ENDIF.
    ELSE.
      READ TABLE it_fglc  INTO wa_fglc WITH KEY bwart = '644'  xauto = 'X' ebeln = wa_fgl-ebeln ebelp = wa_fgl-ebelp.  "umcha = wa_fgl-charg.
      IF sy-subrc = 0.
        IF wa_fgl-menge NE wa_fglc-menge.
          tempvar = wa_fglc-dmbtr / wa_fglc-menge.
          wa_fgl-dmbtr = wa_fgl-menge * tempvar.
        ELSE.
          wa_fgl-dmbtr = wa_fglc-dmbtr.
         ENDIF.
      ENDIF.
    ENDIF.
    MODIFY it_fgl FROM wa_fgl.
    CLEAR  wa_fgl.
    CLEAR wa_fglc.
  ENDLOOP.
*DELETE it_fgl WHERE bwart EQ '101' AND DMBTR EQ space.
*DELETE it_fgl WHERE bwart EQ '102' AND DMBTR EQ space.
  SORT it_fgl BY matnr budat.
  DELETE it_fgl WHERE  bwart EQ '641' AND xauto EQ 'X'.
  DELETE  it_fgl WHERE bwart EQ '642' AND xauto EQ 'X' .
  DELETE it_fgl WHERE bwart EQ '643' AND xauto  EQ 'X'.
  DELETE it_fgl WHERE bwart EQ '644'  AND xauto EQ 'X'.
  SELECT matnr
         bwkey
         belnr
         gjahr
         buzei
         buzid
         shkzg
         dmbtr
         budat
         blart
         FROM bsim
         INTO CORRESPONDING FIELDS  OF TABLE it_bsim
         FOR ALL ENTRIES IN it_fgl
         WHERE matnr  EQ it_fgl-matnr
         AND bwkey EQ werks
         AND budat IN l_ra_datum  "EQ it_fgl-budat
         AND blart EQ 'PR'.
  LOOP AT  it_bsim INTO wa_bsim.
    wa_fgl-mblnr = wa_bsim-belnr.
    wa_fgl-matnr = wa_bsim-matnr.
    wa_fgl-bwart = 'PRC'.
    wa_fgl-shkzg = wa_bsim-shkzg.
    wa_fgl-budat = wa_bsim-budat.
    wa_fgl-dmbtr = wa_bsim-dmbtr.
    APPEND wa_fgl TO it_fgl.
    CLEAR wa_fgl.
     CLEAR wa_bsim.
  ENDLOOP.
  SORT it_fgl BY matnr budat.
  it_fglc[] = it_fgl[].
   LOOP AT it_fgl INTO wa_fgl."WHERE tcode2 NE 'MIGO_GR'.
    wa_shkzg-matnr = wa_fgl-matnr.
    wa_shkzg-budat = wa_fgl-budat.
    wa_shkzg1-matnr = wa_fgl-matnr.
    wa_shkzg1-budat = wa_fgl-budat.
    wa_shkzg1-charg = wa_fgl-charg.
    wa_shkzg1-ebeln = wa_fgl-ebeln.
    wa_shkzg1-ebelp = wa_fgl-ebelp.
    wa_shkzg1-lgort = wa_fgl-lgort.
    wa_shkzg1-umwrk = wa_fgl-umwrk.
    IF wa_fgl-shkzg = 'S'.
      wa_shkzg1-s_menge = wa_fgl-menge.
      wa_shkzg-s_menge = wa_fgl-menge.
      wa_shkzg1-s_dmbtr = wa_fgl-dmbtr.
      wa_shkzg-s_dmbtr = wa_fgl-dmbtr.
    ELSEIF wa_fgl-shkzg = 'H'.
      wa_shkzg1-h_menge = wa_fgl-menge.
      wa_shkzg-h_menge = wa_fgl-menge.
      wa_shkzg1-h_dmbtr = wa_fgl-dmbtr.
      wa_shkzg-h_dmbtr = wa_fgl-dmbtr.
    ENDIF.
    wa_fgl1-mblnr = wa_fgl-mblnr.
    wa_fgl1-lifnr = wa_fgl-lifnr.
    wa_fgl1-kunnr = wa_fgl-kunnr.
    wa_fgl1-xblnr = wa_fgl-xblnr.
    wa_fgl1-bwart = wa_fgl-bwart.
    wa_fgl1-ebeln = wa_fgl-ebeln.
    wa_fgl1-ebelp = wa_fgl-ebelp.
    wa_fgl1-umwrk = wa_fgl-umwrk.
    APPEND wa_fgl1 TO it_fgl1.
    APPEND wa_shkzg TO it_shkzg.
    APPEND  wa_shkzg1 TO it_shkzg1.
    CLEAR wa_shkzg.
    CLEAR wa_shkzg1.
    CLEAR wa_fgl1.
     clear wa_fgl.
  ENDLOOP.
  LOOP AT it_shkzg INTO wa_shkzg.
    COLLECT  wa_shkzg INTO it_c_shkzg.
  ENDLOOP.
ENDFORM.                    " select_data_from_mkpf_mseg
*&      Form  select_data_from_a974
      text
-->  p1        text
<--  p2        text
FORM select_data_from_a974 .
   SELECT  kschl
          matnr
          charg
          datbi
          datab
          knumh
             FROM a974
           INTO CORRESPONDING  FIELDS OF TABLE it_a974
           FOR ALL ENTRIES IN it_fgl
           WHERE  matnr EQ it_fgl-matnr
           AND charg EQ it_fgl-charg
            AND  kschl  EQ 'ZMRP'.
ENDFORM.                    " select_data_from_a974
*&      Form  select_data_from_a926
Select KNUMH from a926 table
-->  p1        text
<--  p2        text
FORM select_data_from_a926 .
  SELECT matnr
         knumh
         datbi
         datab
         FROM a953
         INTO CORRESPONDING  FIELDS OF TABLE it_a926
         FOR ALL ENTRIES IN it_fgl
          WHERE  matnr EQ it_fgl-matnr
         AND  kschl  EQ 'ZMRP'.
ENDFORM .                    " select_data_from_a926
*&      Form  select_data_from_konv
select KBETR from table KONV for fetching MRP rate of Material
-->  p1        text
<--  p2        text
FORM select_data_from_konv .
  SELECT knumh
         kbetr
         FROM konp
         INTO  CORRESPONDING FIELDS OF TABLE it_konv
         FOR ALL ENTRIES  IN it_a974
         WHERE knumh = it_a974-knumh.
  SELECT   knumh
           kbetr
           FROM konp
            INTO CORRESPONDING FIELDS OF TABLE it_konv
           FOR ALL  ENTRIES IN it_a926
           WHERE knumh = it_a926-knumh.
  LOOP AT it_a974 INTO  wa_a974.
    READ TABLE it_konv INTO wa_konv WITH KEY knumh = wa_a974-knumh.
    wa_a974-kbetr = wa_konv-kbetr.
    MODIFY it_a974 FROM wa_a974 TRANSPORTING kbetr.
    CLEAR wa_a974.
  ENDLOOP .
  LOOP AT it_a926 INTO wa_a926.
    READ TABLE it_konv  INTO wa_konv WITH KEY knumh = wa_a926-knumh.
    wa_a926-kbetr = wa_konv-kbetr.
    MODIFY it_a926 FROM  wa_a926 TRANSPORTING kbetr.
    CLEAR wa_a926.
  ENDLOOP.
ENDFORM.                     " select_data_from_konv
*&      Form  select_data_from_mch1
      text
-->  p1        text
<--  p2        text
FORM select_data_from_mch1 .
  SELECT
       matnr
       charg
       hsdat
       FROM mch1
        INTO TABLE it_mch1
       FOR ALL ENTRIES IN it_fgl
       WHERE matnr = it_fgl-matnr
       AND charg = it_fgl-charg.
ENDFORM.                    " select_data_from_mch1
*&      Form  retrive_open_stock
      text
-->  p1        text
<--  p2        text
FORM retrive_open_stock .
  it_final[] = it_c_shkzg[].
SORT it_final BY matnr budat.
LOOP AT it_final INTO wa_final.
   ON CHANGE OF wa_final-matnr.
     wa_mb5b-matnr = wa_final-matnr.
     wa_mb5b-budat = wa_final-budat.
     APPEND wa_mb5b TO it_mb5b.
     CLEAR wa_mb5b.
     CLEAR wa_final.
   ENDON.
ENDLOOP.
LOOP AT it_mb5b INTO wa_mb5b.
   SUBMIT zmm_stlg_rm07mlbd
         EXPORTING LIST TO MEMORY WITH matnr EQ wa_mb5b-matnr
         WITH werks EQ werks
         WITH datum = wa_mb5b-budat
         WITH bwbst = 'X' AND RETURN.
   IMPORT bestand FROM MEMORY ID 'stockledger2'.
   LOOP AT bestand.
     wa_mb5b-mb_open = bestand-anfmenge.
     MODIFY it_mb5b FROM wa_mb5b TRANSPORTING mb_open.
   ENDLOOP.
   DELETE FROM MEMORY ID 'stockledger2'.
ENDLOOP.
  LOOP AT it_final INTO  wa_final.
    wa_final-open    = temp.
    wa_final-balance = wa_final-s_menge - wa_final-h_menge.
    temp  = wa_final-balance.
    wa_final-openv    = tempv.
    wa_final-balancev = wa_final-s_dmbtr - wa_final-h_dmbtr.
    tempv  = wa_final-balancev.
    MODIFY it_final FROM wa_final TRANSPORTING balance open.
   ENDLOOP.
ENDFORM.                    " retrive_open_stock
*&      Form  data_cal_format
      text
-->  p1        text
<--  p2        text
FORM data_cal_format .
  CLEAR wa_final.
  CLEAR  wa_shkzg.
  CLEAR wa_shkzg1.
  LOOP AT it_shkzg1 INTO wa_shkzg1.
    c  = c + 1.
    READ TABLE it_fgl1 INTO wa_fgl1 INDEX  c .
    wa_shkzg1-mblnr = wa_fgl1-mblnr.
    wa_shkzg1-lifnr = wa_fgl1-lifnr.
    wa_shkzg1-kunnr = wa_fgl1-kunnr.
    wa_shkzg1-xblnr = wa_fgl1-xblnr.
    wa_shkzg1-bwart = wa_fgl1-bwart.
    wa_shkzg1-ebeln = wa_fgl1-ebeln.
    wa_shkzg1-ebelp = wa_fgl1-ebelp.
    wa_shkzg1-umwrk = wa_fgl1-umwrk.
    MODIFY  it_shkzg1 FROM wa_shkzg1.
     CLEAR wa_shkzg1.
  ENDLOOP.
  LOOP AT it_final INTO wa_final.
     ON CHANGE OF wa_final-matnr.
      clear temp1.
      clear temp2.
       READ TABLE it_mb5b INTO wa_mb5b WITH KEY matnr = wa_final-matnr budat = wa_final-budat.
      temp1 = wa_mb5b-mb_open.
    ENDON.
    wa_f_shkzg-open = temp1.
    wa_f_shkzg-openv = temp2.
    count =  count + 1.
    LOOP AT it_shkzg1 INTO wa_shkzg1 WHERE matnr  EQ wa_final-matnr AND budat EQ wa_final-budat.
      wa_f_shkzg-matnr = wa_shkzg1-matnr.
      wa_f_shkzg-budat = wa_shkzg1-budat.
      wa_f_shkzg-charg = wa_shkzg1-charg.
      wa_f_shkzg-mblnr = wa_shkzg1-mblnr.
      wa_f_shkzg-lgort = wa_shkzg1-lgort.
      wa_f_shkzg-lifnr = wa_shkzg1-lifnr.
      wa_f_shkzg-kunnr = wa_shkzg1-kunnr.
      wa_f_shkzg-xblnr = wa_shkzg1-xblnr.
      wa_f_shkzg-bwart = wa_shkzg1-bwart.
      wa_f_shkzg-ebeln = wa_shkzg1-ebeln.
      wa_f_shkzg-ebelp = wa_shkzg1-ebelp.
      wa_f_shkzg-s_menge = wa_shkzg1-s_menge.
      wa_f_shkzg-h_menge = wa_shkzg1-h_menge.
      wa_f_shkzg-s_dmbtr = wa_shkzg1-s_dmbtr.
      wa_f_shkzg-h_dmbtr = wa_shkzg1-h_dmbtr.
      wa_f_shkzg-umwrk = wa_shkzg1-umwrk.
      APPEND wa_f_shkzg  TO it_f_shkzg.
      CLEAR wa_f_shkzg.
      CLEAR wa_shkzg.
      CLEAR wa_shkzg1.
    ENDLOOP .
    wa_f_shkzg-budat = wa_final-budat.
    wa_f_shkzg-s_menge = wa_final-s_menge.
    wa_f_shkzg-h_menge = wa_final-h_menge.
    wa_f_shkzg-balance = ( ( temp1 + wa_final-s_menge ) - wa_final-h_menge ).
    wa_f_shkzg-open = temp1.
    temp1 = wa_f_shkzg-balance.
    wa_f_shkzg-s_dmbtr = wa_final-s_dmbtr.
    wa_f_shkzg-h_dmbtr = wa_final-h_dmbtr.
    wa_f_shkzg-balancev = ( ( temp2 + wa_final-s_dmbtr ) - wa_final-h_dmbtr ).
    wa_f_shkzg-openv = temp2.
    temp2 = wa_f_shkzg-balancev.
    APPEND wa_f_shkzg TO it_f_shkzg.
    CLEAR wa_final.
    CLEAR wa_f_shkzg.
  ENDLOOP.
  LOOP AT it_f_shkzg INTO wa_f_shkzg.
    READ TABLE it_a974 INTO wa_a974 WITH KEY matnr = wa_f_shkzg-matnr charg = wa_f_shkzg-charg.
    IF wa_f_shkzg-budat BETWEEN wa_a974-datab AND wa_a974-datbi.
      wa_f_shkzg-kbetr = wa_a974-kbetr.
    ENDIF .
    IF wa_a974-kbetr IS INITIAL.
      READ TABLE it_a926  INTO wa_a926 WITH KEY matnr = wa_f_shkzg-matnr.
      IF wa_f_shkzg-budat BETWEEN wa_a926-datab  AND wa_a926-datbi.
        wa_f_shkzg-kbetr = wa_a926-kbetr.
      ENDIF.
    ENDIF.
    MODIFY it_f_shkzg  FROM wa_f_shkzg TRANSPORTING kbetr.
    CLEAR wa_f_shkzg.
    CLEAR wa_a974.
    clear wa_a926.
  ENDLOOP.
  LOOP AT it_f_shkzg INTO wa_f_shkzg.
    READ  TABLE it_mch1 INTO wa_mch1 WITH KEY matnr = wa_f_shkzg-matnr charg = wa_f_shkzg-charg.
    wa_f_shkzg-hsdat = wa_mch1-hsdat.
    MODIFY it_f_shkzg FROM wa_f_shkzg TRANSPORTING hsdat matnr.
    CLEAR wa_f_shkzg.
     CLEAR wa_mch1.
  ENDLOOP.
ENDFORM.                    " data_cal_format
*&      Form  data_vbrp
      text
-->  p1        text
<--  p2        text
FORM data_vbrp .
  select vgbel
            vbeln
            into corresponding fields  of table it_vbrp
            from vbrp.
         for all entries in it_f_shkzg_l
         WHERE matnr EQ it_f_shkzg_l-matnr.
ENDFORM.                    " data_vbrp
*&      Form  data_cal_final
      text
-->  p1        text
<--  p2        text
FORM data_cal_final .
  DATA:enddate LIKE mkpf-budat.
  enddate = datum-low - 1.
  it_f_shkzg_l[] = it_f_shkzg[].
*loop at it_f_shkzg into wa_f_shkzg where budat le strtdte.
*move-corresponding wa_f_shkzg to wa_f_shkzg_l.
*append wa_f_shkzg_l to it_f_shkzg_l.
*clear wa_f_shkzg_l.
*endloop.
  DATA :k_name1( 40) TYPE c,
        l_name1(40) TYPE c,
        i_name1( 40) TYPE c,
        p_name1(40) TYPE c,
        p_city( 10)  TYPE c,
        t_name1(90) TYPE c.
  SELECT  a~reswk
         b~ebeln
         b~ebelp
         b~werks
         INTO CORRESPONDING FIELDS OF TABLE  it_ekko
         FROM ekko AS a
         INNER JOIN ekpo AS b ON a~ebeln = b~ebeln

Similar Messages

  • Vendor and material assignment

    Hi all,
    Is there any possibility to assign vendor to materials or material to vendor? our user wants that while taking drop down for vendor in ME21N screen, only vendors who sales materials, mentioned in purchase order, will be listed down.
    Any idea to do this?
    Best Regards,
    AI.

    Hi Al,
    Let me first clear that, vendor and material is possible through the Source List only in case of purchase requisitions i.e. ME51N and not in case of ME21N.
    Still it can be achieved through minor ABAP developement. We can add IF statement in the BADI related to ME21N and give the selection criteria as you desired vendor and material combination, so that same material get copied to PO once you use the particular vendor. As its almost like hard coding, this is not very advisable, but if the requirement is stringent then this is one of the possible solution.
    Moreover Vendor to material combintation is only possible and not material to vendor. As according to transaction flow one need to enter org data and vendor first before proceeding to the further data entry.
    come back in case you need to know more.
    bye,
    sachin

  • Vendor outstanding  - Material Group wise

    Dear experts,
    We have created one vendor account giving the recon account in Master as Sundry creditors.  But he will supplies the packing material, Raw Material, Stores material etc. 
    Requirement is we want to know the outstanding Packing material wise, Raw material wise and stores material wise.  Material groups has been created as Packing material, Raw material and Stores material.  Is there any way to find out the outstanding material group wise. 
    With single vendor master, can we able to take the outstanding material group wise.
    BSR

    ME2L is Material group wise vendor wise purchase order details tracking.
    But the requirement is Vendor outstanding  - Material groupwise if single vendor master is there.
    How best we can generate the report either in standard or ABAP.

  • Hi, Finding fixed vendor for material

    Hi,
    my  requirement is to  copy the fixed vendor address to text object( available in the text tab of the VA01 transaction).
    I am entering the article numbers in the va01 transaction with some 5 item numbers.
    i am getting the Purchase requisition number(BANFN) and BNFPO( purchase req item number) from the VBEP table .
    after getting the BANFN & BNFPO i have to pick the fixed vendor for the corresponding item number from EBAN.
    EBAN is holding the values for only the last item number .
    can u please tell me the internal table associated EBAN.
    I am using the USEREXIT_SAVE_DOCUMENT from the include MV45AFZZ.
    Is there any other way so that i can pick fixed vendor for an given article.?
    Advance thanks
    regards
    paveee....

    Hi
    try this
    1) In sorce list fixed your vendor for material and plant combination ME01
    2) for another source create info record for second vendor and material ,combination in ME11
    Regards
    Kailas ugale

  • Purchasing info record for vendor's material number ONLY?

    Hello gurus,
    we have materials that must be ordered with refernce to a contract. We purchase these materials only from one vendor and exclusively using that contract (only one source of supply). We do need purchasing info records to store the vendor's material number.
    Now, the problem is that if we have one contract and a purchasing info record, the system interprets the PIR as a second dource of supply. So, when I create a new PO, the price is automatically taken from the PIR and not from the contract.
    Is it possible to create PIR's for the vendor's material number without creating a second soucre of supply?
    Thanks in advance
    Alicia
    PS: I do know that i can use order lists but that does not solve the problem when manually creating a new PO...

    why dont you maintain the vendors material number already in the contract item?
    why do you create an info record that has a different price than the contract?
    Edited by: Jürgen L. on Jan 5, 2009 2:21 PM

  • Back Flushing Vendor consigment Material in process order

    Dear Experts,
    I have a question Regarding Vendor consignment back flushing
    while i am doing order confirmation system not proposing vendor name and in good movement tab
    may i know what configuration or master data setup is missing
    My requirment is i need to back flush vendor consginment material automatically
    currently i need to manually choose the vendor while confiming the order
    Thanks in advance
    Rgrds
    Raj

    Dear Experts,
    I manage to use stock determination group for back flushing consignment material
    it works fine system automatically picking up vendor as we do not have multiple vendors
    now i have new issue
    for instance
    i  have a   RAW material A  used in a Product A  when i do confirmation system can able to do back flush with movement type 261 K
    i am using same RAW material A used in product B and when i do confirmation system give me a error
    as below
    Pipeline/consignment movement posted without value
    Message no. M7234Diagnosis
    The system has determined a consignment/pipeline price of 0.00.
    Possible reasons:
    The system could not find any valid condition for the posting date in the consignment/pipeline info record.
    A price of 0.00 was defined in the info record.
    System Response
    Depending on how the system is configured, the message can be either a warning or an error message.
    A withdrawal from this consignment stock or from the pipeline will not create vendor liabilities. For materials with moving average price control, withdrawals are posted without value. For materials with standard price control, a price difference posting is carried out.
    The message is also issued when materials are received into consignment stock, as the system must check whether a consignment price of zero is required.
    Procedure
    If you have authorization, check whether the conditions or the price has been defined correctly in the info record, if necessary. If there is a condition with a price other than zero, check whether the posting date of the movement lies within the condition's validity period.
    Proceed
    just wonder does any one have this issue
    so strange i can issue to product A and not product B
    Please help me if you have any problem
    Rgrds
    Raj

  • Different Pricing Schema in PO and PIR for same vendor and material

    Dear Experts,
    I am facing an issue related to MM.
    I have a vendor and a material under a plant, purchase Org, purchase group.
    When we are creating a Purchase Info Record (PIR), it is picking one pricing schema, while when creating PO for same vendor and material, it is picking another different pricing schema.
    As per my knowledge, pricing schema in PO is picked as per pricing schema group of Vendor and I believe same applies for PIR as well. I have only one vendor pricing schema group.
    Because of this issue, I have to manually key-in condition values in PO for all condition types even though I have maintained a purchase info record.
    Please suggest, what can be reason.
    Regards,
    Praveen

    Hi,
    Thanks for clearing my doubts.
    However, I stuck-up in another issue.
    Problem is that condition type- PB00 is linked with almost all pricing schemas.
    Hence, I can't change pricing procedure  in condition type- PB00.
    Also, I can't include all J* related condition types in RM0002 as well.
    Hence, if PB00 remains as RM0002 and I maintain my pricing procedure- ZJIMPO to all J* condition types, still I am not able to create PIR for all J* conditions. Error "Condition type J1CV is not in procedure A M RM0002".
    How to handle this issue? Please suggest.
    Thanks
    Praveen

  • Vendor and Material group

    Hi Experts
    How do we transfer the Vendor and material groups from ECC to SRM
    Regards

    Hi SAP MAN,
    We do replicate vendors from backend system to SRM via transaction code BBP_GETVD, and products are replicated through middle ware settings.
    These middleware settings are maintained in both ECC and SRM systems.
    regards,
    IGA.

  • Error: Vendor and Material Import tasks fail

    Hi gurus.
    Our CLM Vendor and Material imports tasks have been working fine until recently when we experienced the error:
    Data Import Service: File: Material20150401-101647-817.xml is corrupt and cannot be imported
    We have not done changes to either CLM/PI/ERP. Please can you shed some light what's causing this error? Thanking you in advance.

    HI
    which version and service pack you are using ?
    we are using V9-SP19.
    In SP16 SAP has fix an issue with Vendor import.
    check this :
    Fix has been done to handle the processing of Payment Term field for Vendor import. Vendor XML import file should contain a field tag as
    <PAY_TERM></PAY_TERM> with desired value specified within the tag.
    this might be an issue.
    Thanks
    kanchan

  • Vendor with material

    Hi,
    I have a vendor for one material.
    How can I connect the both (vendor and Material). ?
    Ca I do it In the Material masta data MM01?
    Thanks
    Dede

    Hi,
    You can connect them by creating / maintaining source list (ME01 / ME03 /ME04). If you maintain source list, info records, material masters, vendor masters (quota arrangement in case of several sources of supply) you can convert PR (created during MRP run) to PO very easily.
    BR
    Csaba
    Edited by: Csaba Szommer on Mar 20, 2008 10:59 AM

  • Fixed and Non fixed vendor for material procurement

    Hi,
    We need to have fixed vendors to procure materials but incase if we couldnt find the materials with the fixed vendor or if we need to procure the same material from a different vendor. Please let me know if we need to maintain source list in this scenario, we also dont maintain any agreements with vendors.
    Thank you.

    Hi
    try this
    1) In sorce list fixed your vendor for material and plant combination ME01
    2) for another source create info record for second vendor and material ,combination in ME11
    Regards
    Kailas ugale

  • What is procedure for creating new vendor and material master data in ABAP

    What is procedure for creating new vendor and material master data in ABAP .

    see below code which is used for creation of vendor master as well as extension...
    *& Report  ZFC_VENDOR_CREATE                                           *
    REPORT  ZFC_VENDOR_CREATE  LINE-SIZE 100
                               NO STANDARD PAGE HEADING
                               MESSAGE-ID ZZ.
                         TABLES
    TABLES : SSCRFIELDS.   " Fields on selection screens
                         CONSTANTS
    DATA : C_SPLIT TYPE C VALUE '#'.  " Used for Has Separator in GUI_UPLAOD
                         TYPES
    Int'table to hold Vendor Master Data
    TYPES : BEGIN OF TY_VENDOR_MASTER,
              FLAG  TYPE C,               " Update Flag
              LIFNR TYPE LIFNR,           " Vendor Number
              BUKRS TYPE BUKRS,           " Company Code
              KTOKK TYPE KTOKK,           " Account Group
              ANRED TYPE ANRED,           " Title
              NAME1 TYPE NAME1_GP,        " Name1
              NAME2 TYPE NAME2_GP,        " Name2
              SORTL TYPE SORTL,           " Search Term 1
              SORT2 TYPE AD_SORT2UL,      " Search Term 2
              STRAS TYPE STRAS_GP,        " Street
              PSTLZ TYPE PSTLZ,           " Postal Code
              ORT01 TYPE ORT01_GP,        " City
              REGIO TYPE REGIO,           " Region
              LAND1 TYPE LAND1_GP,        " Country
              SPRAS TYPE SPRAS,           " Language
              VBUND TYPE RASSC,           " Trading Partner
              BANKS TYPE BANKS,           " Country
              BANKL TYPE BANKK,           " Bank Key
              BANKN TYPE BANKN,           " Bank Account
              BKONT TYPE BKONT,           " Bank Control Key
              BANKA TYPE BANKA,           " Name of Bank
              AKONT TYPE AKONT,           " Reconciliation Account
              FDGRV TYPE FDGRV,           " Cash Management Group
              ZTERM TYPE DZTERM,          " Payment Terms
              REPRF TYPE REPRF,           " Check Double Invoice
              ZWELS TYPE DZWELS,          " Payment Methods
              XPORE TYPE XPORE,           " Pay all items separately
            END   OF TY_VENDOR_MASTER,
    Int'table to hold Vendor Extend Data
            BEGIN OF TY_VENDOR_EXTEND,
              FLAG  TYPE C,               " Update Flag
              LIFNR     TYPE LIFNR,           " Vendor Number
              BUKRS     TYPE BUKRS,           " Company Code
              KTOKK     TYPE KTOKK,           " Account Group
              REF_LIFNR TYPE LIFNR,           " Reference Vendor Number
              REF_BUKRS TYPE BUKRS,           " Reference Company Code
              AKONT     TYPE AKONT,           " Reconciliation Account
              FDGRV     TYPE FDGRV,           " Cash Management Group
              ZTERM     TYPE DZTERM,          " Payment Terms
              REPRF     TYPE REPRF,           " Check Double Invoice
              ZWELS     TYPE DZWELS,          " Payment Methods
              XPORE TYPE XPORE,           " Pay all items separately
            END   OF TY_VENDOR_EXTEND,
    Int'table to hold Error Records Data
            BEGIN OF TY_ERROR,
              MSG(200) TYPE C,                " To hold Message
              LIFNR    TYPE LIFNR,            " Vendor Number
              BUKRS    TYPE BUKRS,            " Company Code
            END   OF TY_ERROR.
                         DATA (Simple Fields)
    DATA : W_COUNT TYPE I,               " Variable to hold count of Records
           W_SUCC_REC TYPE I,            " No. of Success Records
           W_SUCC_REC1 TYPE I,           " No. of Updated Records
           W_ERR_REC TYPE I,             " No. of Error Records
           w_noupdate_rec type i.        " No. of Records not Changed
                         INTERNAL TABLES
    Int'table to hold uploaded data from File
    DATA : IT_VENDOR_MASTER    TYPE STANDARD TABLE OF TY_VENDOR_MASTER,
           WA_IT_VENDOR_MASTER TYPE TY_VENDOR_MASTER,
           IT_VENDOR_EXTEND    TYPE STANDARD TABLE OF TY_VENDOR_EXTEND,
           WA_IT_VENDOR_EXTEND TYPE TY_VENDOR_EXTEND,
           WA_IT_BDCDATA       TYPE BDCDATA,
           IT_BDCDATA          TYPE STANDARD TABLE OF BDCDATA,
           WA_IT_MESSTAB       TYPE BDCMSGCOLL,
           IT_MESSTAB          TYPE STANDARD TABLE OF BDCMSGCOLL,
           IT_ERROR            TYPE STANDARD TABLE OF TY_ERROR,
           WA_IT_ERROR         TYPE TY_ERROR,
           it_error_fk01       type standard table of ty_error,
           wa_it_error_fk01    type ty_error,
           it_error_fk02       type standard table of ty_error,
           wa_it_error_fk02    type ty_error,
           it_succ_rec1        type standard table of ty_error,
           wa_it_succ_rec1     type ty_error,
           it_noupdate         type standard table of ty_error,
           wa_it_noupdate      type ty_error.
                         FLAGS
    DATA : FL_FLAG1 TYPE C,          " Flag to check error upload file
           FL_FLAG2 TYPE C,          " Flag to hold value
           FL_FLAG3 TYPE C,          " Flag to hold value
           FL_FLAG4 TYPE C.          " Flag to hold value
                         SELECTION-SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-001,
                POSITION POS_LOW.
    PARAMETERS :       P_FILE(128) DEFAULT 'C:\UPLOAD.TXT' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-002,
                POSITION POS_LOW.
    PARAMETERS :       P_VENMAS RADIOBUTTON GROUP R1 DEFAULT 'X'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-003,
                POSITION POS_LOW.
    PARAMETERS :       P_VENEXT RADIOBUTTON GROUP R1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-004,
                POSITION POS_LOW.
    PARAMETERS :       P_MODE(1) DEFAULT 'N'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-005,
                POSITION POS_LOW.
    PARAMETERS :       P_GROUP(12) DEFAULT 'ZFC_VENDOR_C' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE,
                COMMENT 1(30) TEXT-016,
                POSITION POS_LOW.
    PARAMETERS :       P_GROUP1(12) DEFAULT 'ZFC_VENDOR_U' OBLIGATORY.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN END OF BLOCK B1.
                         AT SELECTION-SCREEN ON
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    Form to get file path for upload of data
      PERFORM GET_FILE_PATH.
    AT SELECTION-SCREEN ON BLOCK B1.
    Form to Validate data specified on Selection Screen
      CHECK SSCRFIELDS-UCOMM EQ 'ONLI'.
      PERFORM VALIDATE_DATA.
                         START - OF - SELECTION
    START-OF-SELECTION.
      IF P_VENMAS = 'X'.
    Form to upload data from Presentation Server for Vendor Master
        PERFORM UPLOAD_DATA TABLES IT_VENDOR_MASTER.
        IF FL_FLAG1 NE 'X'.
          SORT IT_VENDOR_MASTER BY LIFNR BUKRS KTOKK.
          DELETE IT_VENDOR_MASTER WHERE LIFNR = ' '
                                  AND   BUKRS = ' '
                                  AND   KTOKK = ' '.
    Form to process data for Vendor Master
          PERFORM INSERT_VENDOR_MASTER_DATA.
        ENDIF.
      ELSEIF P_VENEXT = 'X'.
    Form to upload data from Presentation Server for Vendor Extend
        PERFORM UPLOAD_DATA TABLES IT_VENDOR_EXTEND.
        IF FL_FLAG1 NE 'X'.
          SORT IT_VENDOR_EXTEND BY LIFNR BUKRS KTOKK.
          DELETE IT_VENDOR_EXTEND WHERE LIFNR = ' '
                                  AND   BUKRS = ' '
                                  AND   KTOKK = ' '.
    Form to process data for Vendor Master
          PERFORM CHK_AND_INS_VENDOR_EXTEND_DATA.
        ENDIF.
      ENDIF.
                         END - OF - SELECTION
    END-OF-SELECTION.
      IF FL_FLAG1 NE 'X'.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O01.           " Total Number of records read :
        FORMAT COLOR OFF.
        WRITE:40 W_COUNT.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O02.           " Total Number of Success records :
        FORMAT COLOR OFF.
        WRITE:40 W_SUCC_REC.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O07.           " Total Number of Updated records :
        FORMAT COLOR OFF.
        WRITE:40 W_SUCC_REC1.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O08.           " Total Number of Unchanged records :
        FORMAT COLOR OFF.
        WRITE:40 W_noupdate_REC.
        FORMAT COLOR 7.
        WRITE:/2 TEXT-O03.           " Total Number of Error records :
        FORMAT COLOR OFF.
        WRITE:40 W_ERR_REC.
        if not it_succ_rec1 is initial.
          skip 1.
          perform display_changed_report.
        endif.
        if not it_noupdate is initial.
          skip 1.
          perform display_nochange_report.
        endif.
        IF NOT IT_ERROR IS INITIAL.
          SKIP 3.
    Form to display error data
          PERFORM DISPLAY_ERROR_REPORT.
        ENDIF.
        IF FL_FLAG2 = 'X'.
          SKIP 2.
          FORMAT COLOR 4.
          WRITE:/2 TEXT-O04.        " BDC Session Name for Creation (FK01) :
          FORMAT COLOR OFF.
          WRITE:40 P_GROUP.
          perform display_error_report_fk01.
        ENDIF.
        IF FL_FLAG3 = 'X'.
          SKIP 2.
          FORMAT COLOR 4.
          WRITE:/2 TEXT-O09.        " BDC Session Name for Updation (FK02) :
          FORMAT COLOR OFF.
          WRITE:40 P_GROUP1.
          perform display_error_report_fk02.
        ENDIF.
      ENDIF.
    *&      Form  GET_FILE_PATH
    This form is used to get the specified path for uploading of data from
    flat file with the help of F4 function key
    FORM GET_FILE_PATH .
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = ' '
        IMPORTING
          FILE_NAME     = P_FILE.
    ENDFORM.                    " GET_FILE_PATH
    *&      Form  VALIDATE_DATA
    This form is used to validate the data given by user on the Selection
    Screen and the appropriate message is been displayed when an wrong
    entry is inputted
    FORM VALIDATE_DATA .
      IF SY-BATCH EQ 'X'.
        CLEAR SSCRFIELDS-UCOMM.
        MESSAGE E001(ZZ) WITH TEXT-011.
        " Excel file not to be used in Batch Mode
      ENDIF.
      IF P_MODE NE 'A' AND P_MODE NE 'N' AND P_MODE NE 'E'.
        MESSAGE E001(ZZ) WITH TEXT-012.
        " Session Mode should be either A or N or E
      ENDIF.
    ENDFORM.                    " VALIDATE_DATA
    *&      Form  UPLOAD_DATA
    This form is used to upload data from Presentation Server for either
    Vendor Master or Vendor Extend
    FORM UPLOAD_DATA TABLES P_IT_VENDOR.
      DATA : L_FILENAME TYPE STRING,
             L_FILETYPE TYPE CHAR10 VALUE 'ASC',
             L_HEADER_LENGTH TYPE I VALUE 0,
             L_READ_BY_LINE TYPE CHAR01 VALUE 'X'.
      MOVE P_FILE TO L_FILENAME.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                = L_FILENAME
          FILETYPE                = L_FILETYPE
          HEADER_LENGTH           = L_HEADER_LENGTH
          READ_BY_LINE            = L_READ_BY_LINE
          HAS_FIELD_SEPARATOR     = C_SPLIT
        TABLES
          DATA_TAB                = P_IT_VENDOR
        EXCEPTIONS
          FILE_OPEN_ERROR         = 1
          FILE_READ_ERROR         = 2
          NO_BATCH                = 3
          GUI_REFUSE_FILETRANSFER = 4
          INVALID_TYPE            = 5
          NO_AUTHORITY            = 6
          UNKNOWN_ERROR           = 7
          BAD_DATA_FORMAT         = 8
          HEADER_NOT_ALLOWED      = 9
          SEPARATOR_NOT_ALLOWED   = 10
          HEADER_TOO_LONG         = 11
          UNKNOWN_DP_ERROR        = 12
          ACCESS_DENIED           = 13
          DP_OUT_OF_MEMORY        = 14
          DISK_FULL               = 15
          DP_TIMEOUT              = 16
          OTHERS                  = 17.
      IF SY-SUBRC <> 0.
       MESSAGE I001(ZZ) WITH TEXT-006 L_FILENAME.
    MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        FL_FLAG1 = 'X'.
      ELSEIF P_IT_VENDOR[] IS INITIAL.
        MESSAGE I001(ZZ) WITH TEXT-014.   " Uploaded File contains no data
        FL_FLAG1 = 'X'.
      ENDIF.
    ENDFORM.                    " UPLOAD_DATA
    *&      Form  INSERT_VENDOR_MASTER_DATA
    This form is used to process BDC data for Vendor Master
    FORM INSERT_VENDOR_MASTER_DATA .
      DATA : L_LIFNR TYPE LIFNR.
      CLEAR : L_LIFNR.
      sort it_vendor_master by flag.
      LOOP AT IT_VENDOR_MASTER INTO WA_IT_VENDOR_MASTER.
        W_COUNT = W_COUNT + 1.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = WA_IT_VENDOR_MASTER-LIFNR
          IMPORTING
            OUTPUT = WA_IT_VENDOR_MASTER-LIFNR.
        if wa_it_vendor_master-flag = 'A'.
        SELECT SINGLE LIFNR
               FROM LFB1
               INTO L_LIFNR
               WHERE LIFNR = WA_IT_VENDOR_MASTER-LIFNR
               AND   BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        IF SY-SUBRC EQ 0.
          WA_IT_ERROR-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
          WA_IT_ERROR-MSG   = TEXT-015.
          APPEND WA_IT_ERROR TO IT_ERROR.
          W_ERR_REC = W_ERR_REC + 1.
          CLEAR : WA_IT_ERROR, L_LIFNR.
        ELSE.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_MASTER.
          PERFORM CALL_TRANSACTION.
        ENDIF.
        CLEAR : WA_IT_VENDOR_MASTER.
        elseif wa_it_vendor_master-flag = 'C'.
          IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
            PERFORM CLOSE_BDC_SESSION.
            fl_flag4 = 'X'.
          ENDIF.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_MASTER.
          PERFORM CALL_TRANSACTION_FK02.
          CLEAR : WA_IT_VENDOR_MASTER.
        elseif wa_it_vendor_master-flag = 'N'.
          WA_IT_noupdate-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_noupdate-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
          WA_IT_noupdate-MSG   = TEXT-018.
          APPEND WA_IT_noupdate TO IT_noupdate.
          W_noupdate_REC = W_noupdate_REC + 1.
          CLEAR : WA_IT_noupdate, WA_IT_VENDOR_MASTER.
        endif.
      ENDLOOP.
      IF FL_FLAG3 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
    ENDFORM.                    " INSERT_VENDOR_MASTER_DATA
    *&      Form  POPULATE_BDC_DATA_VEN_MASTER
    This form is used to populate BDC data of Vendor Master
    FORM POPULATE_BDC_DATA_VEN_MASTER .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = WA_IT_VENDOR_MASTER-ZTERM
        IMPORTING
          OUTPUT = WA_IT_VENDOR_MASTER-ZTERM.
      IF WA_IT_VENDOR_MASTER-REPRF = 'Y'.
        WA_IT_VENDOR_MASTER-REPRF = 'X'.
      ENDIF.
      IF WA_IT_VENDOR_MASTER-XPORE = 'Y'.
        WA_IT_VENDOR_MASTER-XPORE = 'X'.
      ENDIF.
      if wa_it_vendor_master-flag = 'A'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
               BDC_FIELD  USING 'RF02K-KTOKK' WA_IT_VENDOR_MASTER-KTOKK,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      elseif wa_it_vendor_master-flag = 'C'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
               BDC_FIELD  USING 'BDC_OKCODE'  '=MALL',
               BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-D0110' 'X',
               BDC_FIELD  USING 'RF02K-D0120' 'X',
               BDC_FIELD  USING 'RF02K-D0130' 'X',
               BDC_FIELD  USING 'RF02K-D0210' 'X',
               BDC_FIELD  USING 'RF02K-D0215' 'X',
               BDC_FIELD  USING 'RF02K-D0220' 'X',
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      endif.
      perform :BDC_DYNPRO USING 'SAPMF02K' '0110',
               BDC_FIELD  USING 'LFA1-ANRED'  WA_IT_VENDOR_MASTER-ANRED,
               BDC_FIELD  USING 'LFA1-NAME1'  WA_IT_VENDOR_MASTER-NAME1,
               BDC_FIELD  USING 'LFA1-NAME2'  WA_IT_VENDOR_MASTER-NAME2,
               BDC_FIELD  USING 'LFA1-SORTL'  WA_IT_VENDOR_MASTER-SORTL,
               BDC_FIELD  USING 'LFA1-STRAS'  WA_IT_VENDOR_MASTER-STRAS,
               BDC_FIELD  USING 'LFA1-ORT01'  WA_IT_VENDOR_MASTER-ORT01,
               BDC_FIELD  USING 'LFA1-PSTLZ'  WA_IT_VENDOR_MASTER-PSTLZ,
               BDC_FIELD  USING 'LFA1-LAND1'  WA_IT_VENDOR_MASTER-LAND1,
               BDC_FIELD  USING 'LFA1-REGIO'  WA_IT_VENDOR_MASTER-REGIO,
               BDC_FIELD  USING 'LFA1-SPRAS'  WA_IT_VENDOR_MASTER-SPRAS,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00',
               BDC_DYNPRO USING 'SAPMF02K' '0120',
               BDC_FIELD  USING 'LFA1-VBUND'  WA_IT_VENDOR_MASTER-VBUND,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00',
               BDC_DYNPRO USING 'SAPMF02K' '0130',
               BDC_FIELD  USING 'LFBK-BANKS(01)'  WA_IT_VENDOR_MASTER-BANKS,
               BDC_FIELD  USING 'LFBK-BANKL(01)'  WA_IT_VENDOR_MASTER-BANKL,
               BDC_FIELD  USING 'LFBK-BANKN(01)'  WA_IT_VENDOR_MASTER-BANKN,
               BDC_FIELD  USING 'BDC_OKCODE'  '=BANK',
               BDC_DYNPRO USING 'SAPLBANK' '0100',
               BDC_FIELD  USING 'BNKA-BANKA'  WA_IT_VENDOR_MASTER-BANKA,
               BDC_FIELD  USING 'BDC_OKCODE'  '=ENTR',
               BDC_DYNPRO USING 'SAPMF02K' '0130',
               BDC_FIELD  USING 'BDC_OKCODE'  '=ENTR',
               BDC_DYNPRO USING 'SAPMF02K' '0210',
               BDC_FIELD  USING 'LFB1-AKONT'  WA_IT_VENDOR_MASTER-AKONT,
               BDC_FIELD  USING 'LFB1-FDGRV'  WA_IT_VENDOR_MASTER-FDGRV,
               BDC_FIELD  USING 'BDC_OKCODE'  '=/00',
               BDC_DYNPRO USING 'SAPMF02K' '0215',
               BDC_FIELD  USING 'LFB1-ZTERM'  WA_IT_VENDOR_MASTER-ZTERM,
               BDC_FIELD  USING 'LFB1-REPRF'  WA_IT_VENDOR_MASTER-REPRF,
               BDC_FIELD  USING 'LFB1-ZWELS'  WA_IT_VENDOR_MASTER-ZWELS,
               BDC_FIELD  USING 'LFB1-XPORE'  WA_IT_VENDOR_MASTER-XPORE,
               BDC_FIELD  USING 'BDC_OKCODE'  '=UPDA'.
    ENDFORM.                    " POPULATE_BDC_DATA_VEN_MASTER
    *&      Form  BDC_DYNPRO
    This form is used to move data to BDCDATA int'table
    FORM BDC_DYNPRO  USING PROGRAM TYPE BDC_PROG
                           DYNPRO  TYPE BDC_DYNR.
      CLEAR WA_IT_BDCDATA.
      WA_IT_BDCDATA-PROGRAM  = PROGRAM.
      WA_IT_BDCDATA-DYNPRO   = DYNPRO.
      WA_IT_BDCDATA-DYNBEGIN = 'X'.
      APPEND WA_IT_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
    This form is used to move data to BDCDATA int'table
    FORM BDC_FIELD  USING FNAM TYPE ANY
                          FVAL TYPE ANY.
      CLEAR WA_IT_BDCDATA.
      WA_IT_BDCDATA-FNAM = FNAM.
      WA_IT_BDCDATA-FVAL = FVAL.
      APPEND WA_IT_BDCDATA TO IT_BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  CALL_TRANSACTION
    This form is used to Call FK01 for processing of data either for
    Vendor Master or Vendor Extend. The error records are inserted to
    Session which can be processed using SM35
    FORM CALL_TRANSACTION .
      DATA : L_OPTION TYPE CTU_PARAMS,
             L_SUBRC TYPE SYSUBRC.
      REFRESH IT_MESSTAB.
      CLEAR IT_MESSTAB.
      L_OPTION-DEFSIZE = 'X'.
      L_OPTION-DISMODE = P_MODE.
      L_OPTION-UPDMODE = 'S'.
      CALL TRANSACTION 'FK01'
           USING IT_BDCDATA
           MESSAGES INTO IT_MESSTAB
           OPTIONS FROM L_OPTION.
      L_SUBRC = SY-SUBRC.
      IF L_SUBRC = 0.
        W_SUCC_REC = W_SUCC_REC + 1.
      ELSE.
        IF FL_FLAG2 NE 'X'.
          PERFORM OPEN_BDC_SESSION.
          FL_FLAG2 = 'X'.
        ENDIF.
        PERFORM BDC_INSERT.
        W_ERR_REC = W_ERR_REC + 1.
        PERFORM ERROR_RECORD_DATA.
      ENDIF.
    ENDFORM.                    " CALL_TRANSACTION
    *&      Form  OPEN_BDC_SESSION
    Form used to open session for Error out Records
    FORM OPEN_BDC_SESSION .
      DATA : L_USERID TYPE APQ_MAPN,      " Variable to hold user-id
             L_GROUP TYPE APQ_GRPN.       " Variable to hold value
      MOVE P_GROUP TO L_GROUP.
      MOVE SY-UNAME TO L_USERID.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          CLIENT              = SY-MANDT
          GROUP               = L_GROUP
          KEEP                = SPACE
          USER                = L_USERID
        EXCEPTIONS
          CLIENT_INVALID      = 1
          DESTINATION_INVALID = 2
          GROUP_INVALID       = 3
          GROUP_IS_LOCKED     = 4
          HOLDDATE_INVALID    = 5
          INTERNAL_ERROR      = 6
          QUEUE_ERROR         = 7
          RUNNING             = 8
          SYSTEM_LOCK_ERROR   = 9
          USER_INVALID        = 10
          OTHERS              = 11.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-008.              " Unable to open BDC Session
      ENDIF.
    ENDFORM.                    " OPEN_BDC_SESSION
    *&      Form  BDC_INSERT
    This form is used to insert error records to a Session method
    FORM BDC_INSERT .
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE            = 'FK01'
        TABLES
          DYNPROTAB        = IT_BDCDATA
        EXCEPTIONS
          INTERNAL_ERROR   = 1
          NOT_OPEN         = 2
          QUEUE_ERROR      = 3
          TCODE_INVALID    = 4
          PRINTING_INVALID = 5
          POSTING_INVALID  = 6
          OTHERS           = 7.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-009.             " Unable to Insert Data to BDC Session
      ENDIF.
    ENDFORM.                    " BDC_INSERT
    *&      Form  ERROR_RECORD_DATA
    This form is used to process the messages for the error records which
    will be displayed on the output report
    FORM ERROR_RECORD_DATA .
      DATA : L_LINES TYPE I,
             L_MSG(200) TYPE C.
      DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
      READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
      IF SY-SUBRC = 0.
        CLEAR L_MSG.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = WA_IT_MESSTAB-MSGID
            LANG      = SY-LANGU
            NO        = WA_IT_MESSTAB-MSGNR
            V1        = WA_IT_MESSTAB-MSGV1
            V2        = WA_IT_MESSTAB-MSGV2
            V3        = WA_IT_MESSTAB-MSGV3
            V4        = WA_IT_MESSTAB-MSGV4
          IMPORTING
            MSG       = L_MSG
          EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
        IF SY-SUBRC = 0.
          WA_IT_ERROR_fk01-MSG = L_MSG.
        ENDIF.
        IF P_VENMAS = 'X'.
          WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_ERROR_fk01 TO IT_ERROR_fk01.
        CLEAR WA_IT_ERROR_fk01.
      ENDIF.
    ENDFORM.                    " ERROR_RECORD_DATA
    *&      Form  CLOSE_BDC_SESSION
    Form used to close session of the Error Records
    FORM CLOSE_BDC_SESSION .
      CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
          NOT_OPEN    = 1
          QUEUE_ERROR = 2
          OTHERS      = 3.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-010.             " Unable to Close BDC Session
      ENDIF.
    ENDFORM.                    " CLOSE_BDC_SESSION
    *&      Form  CHK_AND_INS_VENDOR_EXTEND_DATA
    This form is used to process BDC data for Vendor Extend
    FORM CHK_AND_INS_VENDOR_EXTEND_DATA .
      DATA : L_LIFNR TYPE LIFNR.
      CLEAR : L_LIFNR, fl_flag4.
      sort it_vendor_extend by flag.
      LOOP AT IT_VENDOR_EXTEND INTO WA_IT_VENDOR_EXTEND.
        W_COUNT = W_COUNT + 1.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = WA_IT_VENDOR_EXTEND-REF_LIFNR
          IMPORTING
            OUTPUT = WA_IT_VENDOR_EXTEND-REF_LIFNR.
        if wa_it_vendor_extend-flag = 'A'.
        SELECT SINGLE LIFNR
               FROM LFB1
               INTO L_LIFNR
               WHERE LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR
               AND   BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
        IF SY-SUBRC NE 0.
          WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR.
          WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
          WA_IT_ERROR-MSG   = TEXT-007.
          APPEND WA_IT_ERROR TO IT_ERROR.
          W_ERR_REC = W_ERR_REC + 1.
          CLEAR : WA_IT_ERROR, L_LIFNR.
        ELSE.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              INPUT  = WA_IT_VENDOR_EXTEND-LIFNR
            IMPORTING
              OUTPUT = WA_IT_VENDOR_EXTEND-LIFNR.
          SELECT SINGLE LIFNR
                 FROM LFB1
                 INTO L_LIFNR
                 WHERE LIFNR = WA_IT_VENDOR_EXTEND-LIFNR
                 AND   BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
          IF SY-SUBRC EQ 0.
            WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
            WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
            WA_IT_ERROR-MSG   = TEXT-015.
            APPEND WA_IT_ERROR TO IT_ERROR.
            W_ERR_REC = W_ERR_REC + 1.
            CLEAR : WA_IT_ERROR, L_LIFNR.
          ELSE.
            REFRESH IT_BDCDATA.
            CLEAR IT_BDCDATA.
            PERFORM POPULATE_BDC_DATA_VEN_EXTEND.
            PERFORM CALL_TRANSACTION.
          ENDIF.
        ENDIF.
        CLEAR : WA_IT_VENDOR_EXTEND.
        elseif wa_it_vendor_extend-flag = 'C'.
          IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
            PERFORM CLOSE_BDC_SESSION.
            fl_flag4 = 'X'.
          ENDIF.
          REFRESH IT_BDCDATA.
          CLEAR IT_BDCDATA.
          PERFORM POPULATE_BDC_DATA_VEN_extend.
          PERFORM CALL_TRANSACTION_FK02.
           CLEAR : WA_IT_VENDOR_EXTEND.
        elseif wa_it_vendor_extend-flag = 'N'.
          WA_IT_noupdate-LIFNR = WA_IT_VENDOR_extend-LIFNR.
          WA_IT_noupdate-BUKRS = WA_IT_VENDOR_extend-BUKRS.
          WA_IT_noupdate-MSG   = TEXT-019.
          APPEND WA_IT_noupdate TO IT_noupdate.
          W_noupdate_REC = W_noupdate_REC + 1.
          CLEAR : WA_IT_noupdate, WA_IT_VENDOR_EXTEND.
        endif.
      ENDLOOP.
      IF FL_FLAG2 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
      if fl_flag3 = 'X'.
        PERFORM CLOSE_BDC_SESSION.
      ENDIF.
    ENDFORM.                    " CHK_AND_INS_VENDOR_EXTEND_DATA
    *&      Form  POPULATE_BDC_DATA_VEN_EXTEND
    This form is used to populate BDC data of Vendor Extend
    FORM POPULATE_BDC_DATA_VEN_EXTEND .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = WA_IT_VENDOR_EXTEND-ZTERM
        IMPORTING
          OUTPUT = WA_IT_VENDOR_EXTEND-ZTERM.
      IF WA_IT_VENDOR_EXTEND-REPRF = 'Y'.
        WA_IT_VENDOR_EXTEND-REPRF = 'X'.
      ENDIF.
      IF WA_IT_VENDOR_extend-XPORE = 'Y'.
        WA_IT_VENDOR_extend-XPORE = 'X'.
      ENDIF.
      if wa_it_vendor_extend-flag = 'A'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_EXTEND-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_EXTEND-BUKRS,
               BDC_FIELD  USING 'RF02K-KTOKK' WA_IT_VENDOR_EXTEND-KTOKK,
               BDC_FIELD  USING 'RF02K-REF_LIFNR'
                                          WA_IT_VENDOR_EXTEND-REF_LIFNR,
               BDC_FIELD  USING 'RF02K-REF_BUKRS'
                                          WA_IT_VENDOR_EXTEND-REF_BUKRS,
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      elseif wa_it_vendor_extend-flag = 'C'.
      PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
               BDC_FIELD  USING 'RF02K-LIFNR' WA_IT_VENDOR_extend-LIFNR,
               BDC_FIELD  USING 'RF02K-BUKRS' WA_IT_VENDOR_extend-BUKRS,
               BDC_FIELD  USING 'RF02K-D0210' 'X',
               BDC_FIELD  USING 'RF02K-D0215' 'X',
               BDC_FIELD  USING 'BDC_OKCODE'  '/00'.
      endif.
      perform :BDC_DYNPRO USING 'SAPMF02K' '0210',
               BDC_FIELD  USING 'LFB1-AKONT'  WA_IT_VENDOR_EXTEND-AKONT,
               BDC_FIELD  USING 'LFB1-FDGRV'  WA_IT_VENDOR_EXTEND-FDGRV,
               BDC_FIELD  USING 'BDC_OKCODE'  '=/00',
               BDC_DYNPRO USING 'SAPMF02K' '0215',
               BDC_FIELD  USING 'LFB1-ZTERM'  WA_IT_VENDOR_EXTEND-ZTERM,
               BDC_FIELD  USING 'LFB1-REPRF'  WA_IT_VENDOR_EXTEND-REPRF,
               BDC_FIELD  USING 'LFB1-ZWELS'  WA_IT_VENDOR_EXTEND-ZWELS,
               BDC_FIELD  USING 'LFB1-XPORE'  WA_IT_VENDOR_extend-XPORE,
               BDC_FIELD  USING 'BDC_OKCODE'  '=UPDA'.
    ENDFORM.                    " POPULATE_BDC_DATA_VEN_EXTEND
    *&      Form  DISPLAY_ERROR_REPORT
    This form is used to display the error records on the output screen
    FORM DISPLAY_ERROR_REPORT .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O05.            " Error List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O06.            " Error List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H03,              " Error Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_ERROR INTO WA_IT_ERROR.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_ERROR-LIFNR,
               17  SY-VLINE,
               18  WA_IT_ERROR-BUKRS,
               31  SY-VLINE,
               32  WA_IT_ERROR-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_ERROR.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    ENDFORM.                    " DISPLAY_ERROR_REPORT
    *&      Form  CALL_TRANSACTION_FK02
    Form used to Call Transaction FK02
    form CALL_TRANSACTION_FK02 .
      DATA : L_OPTION TYPE CTU_PARAMS,
             L_SUBRC TYPE SYSUBRC.
      REFRESH IT_MESSTAB.
      CLEAR IT_MESSTAB.
      L_OPTION-DEFSIZE = 'X'.
      L_OPTION-DISMODE = P_MODE.
      L_OPTION-UPDMODE = 'S'.
      CALL TRANSACTION 'FK02'
           USING IT_BDCDATA
           MESSAGES INTO IT_MESSTAB
           OPTIONS FROM L_OPTION.
      L_SUBRC = SY-SUBRC.
      IF L_SUBRC = 0.
        W_SUCC_REC1 = W_SUCC_REC1 + 1.
        WA_IT_succ_rec1-MSG = Text-017.
        IF P_VENMAS = 'X'.
          WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_succ_rec1 TO IT_succ_rec1.
      ELSE.
        IF FL_FLAG3 NE 'X'.
          PERFORM OPEN_BDC_SESSION_fk02.
          FL_FLAG3 = 'X'.
        ENDIF.
        PERFORM BDC_INSERT_fk02.
        W_ERR_REC = W_ERR_REC + 1.
        PERFORM ERROR_RECORD_DATA1.
      ENDIF.
    endform.                    " CALL_TRANSACTION_FK02
    *&      Form  OPEN_BDC_SESSION_fk02
    Form used to Open session for FK02
    form OPEN_BDC_SESSION_fk02 .
      DATA : L_USERID TYPE APQ_MAPN,      " Variable to hold user-id
             L_GROUP TYPE APQ_GRPN.       " Variable to hold value
      MOVE P_GROUP1 TO L_GROUP.
      MOVE SY-UNAME TO L_USERID.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          CLIENT              = SY-MANDT
          GROUP               = L_GROUP
          KEEP                = SPACE
          USER                = L_USERID
        EXCEPTIONS
          CLIENT_INVALID      = 1
          DESTINATION_INVALID = 2
          GROUP_INVALID       = 3
          GROUP_IS_LOCKED     = 4
          HOLDDATE_INVALID    = 5
          INTERNAL_ERROR      = 6
          QUEUE_ERROR         = 7
          RUNNING             = 8
          SYSTEM_LOCK_ERROR   = 9
          USER_INVALID        = 10
          OTHERS              = 11.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-008.              " Unable to open BDC Session
      ENDIF.
    endform.                    " OPEN_BDC_SESSION_fk02
    *&      Form  BDC_INSERT_fk02
    Form used to insert data into BDC session using FK02
    form BDC_INSERT_fk02 .
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          TCODE            = 'FK02'
        TABLES
          DYNPROTAB        = IT_BDCDATA
        EXCEPTIONS
          INTERNAL_ERROR   = 1
          NOT_OPEN         = 2
          QUEUE_ERROR      = 3
          TCODE_INVALID    = 4
          PRINTING_INVALID = 5
          POSTING_INVALID  = 6
          OTHERS           = 7.
      IF SY-SUBRC <> 0.
        WRITE:/ TEXT-009.             " Unable to Insert Data to BDC Session
      ENDIF.
    endform.                    " BDC_INSERT_fk02
    *&      Form  display_changed_report
    Form to display Updated Vendor data
    form display_changed_report .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O10.          " Updated List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O11.          " Updated List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_succ_rec1 INTO WA_IT_succ_rec1.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_succ_rec1-LIFNR,
               17  SY-VLINE,
               18  WA_IT_succ_rec1-BUKRS,
               31  SY-VLINE,
               32  WA_IT_succ_rec1-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_succ_rec1.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_changed_report
    *&      Form  display_nochange_report
    Form to display No Changed data for Vendors
    form display_nochange_report .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O12.       " No Changes List for Vendor Master
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O13.       " No Changes List for Vendor Master Extended
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_noupdate INTO WA_IT_noupdate.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_noupdate-LIFNR,
               17  SY-VLINE,
               18  WA_IT_noupdate-BUKRS,
               31  SY-VLINE,
               32  WA_IT_noupdate-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_noupdate.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_nochange_report
    *&      Form  ERROR_RECORD_DATA1
    Form to get Error Message for Changed Vendors
    form ERROR_RECORD_DATA1 .
      DATA : L_LINES TYPE I,
             L_MSG(200) TYPE C.
      DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
      READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
      IF SY-SUBRC = 0.
        CLEAR L_MSG.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = WA_IT_MESSTAB-MSGID
            LANG      = SY-LANGU
            NO        = WA_IT_MESSTAB-MSGNR
            V1        = WA_IT_MESSTAB-MSGV1
            V2        = WA_IT_MESSTAB-MSGV2
            V3        = WA_IT_MESSTAB-MSGV3
            V4        = WA_IT_MESSTAB-MSGV4
          IMPORTING
            MSG       = L_MSG
          EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
        IF SY-SUBRC = 0.
          WA_IT_ERROR_fk02-MSG = L_MSG.
        ENDIF.
        IF P_VENMAS = 'X'.
          WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
          WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
        ELSEIF P_VENEXT = 'X'.
          WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
          WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
        ENDIF.
        APPEND WA_IT_ERROR_fk02 TO IT_ERROR_fk02.
        CLEAR WA_IT_ERROR_fk02.
      ENDIF.
    endform.                    " ERROR_RECORD_DATA1
    *&      Form  display_error_report_fk01
    Form to display Error Report for Master Vendors (FK01)
    form display_error_report_fk01 .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O05.     " Error List for Vendor Master (FK01)
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O06.     " Error List for Vendor Master Extended (FK01)
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number
             17  SY-VLINE,
             18  TEXT-H02,              " Company Code
             31  SY-VLINE,
             32  TEXT-H04,              " Message
             100 SY-VLINE.
      FORMAT COLOR OFF.
      WRITE:/ SY-ULINE(100).
      LOOP AT IT_ERROR_fk01 INTO WA_IT_ERROR_fk01.
        FORMAT COLOR 2.
        WRITE:/1   SY-VLINE,
               2   WA_IT_ERROR_fk01-LIFNR,
               17  SY-VLINE,
               18  WA_IT_ERROR_fk01-BUKRS,
               31  SY-VLINE,
               32  WA_IT_ERROR_fk01-MSG,
               100 SY-VLINE.
        CLEAR : WA_IT_ERROR_fk01.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE:/ SY-ULINE(100).
    endform.                    " display_error_report_fk01
    *&      Form  display_error_report_fk02
    Form to display Error Report for changed Vendors (FK02)
    form display_error_report_fk02 .
      IF P_VENMAS = 'X'.
        WRITE:/ TEXT-O14.     " Error List for Vendor Master (FK02)
      ELSEIF P_VENEXT = 'X'.
        WRITE:/ TEXT-O15.     " Error List for Vendor Master Extended (FK02)
      ENDIF.
      WRITE:/ SY-ULINE(100).
      FORMAT COLOR 1.
      WRITE:/1   SY-VLINE,
             2   TEXT-H01,              " Vendor Number

  • Material wise Vendor List & Vendor wise material list

    Hi all,
    Can any body help me how to get the report for
    1) Material wise vendor report: that mean list showing the list of vendors from which that material is purchased and
    2) Vendor wise material list: that mean list of materials purchased from a perticular Vendor...
    Will be rewarded for answers...
    Shash

    Hi ,
    Use T. Code: SE16 and enter EINA table name.
    If u want report for material / vendor, Enter material in MATNR field and execute and get the report.
    If u want report for/ vendor /material, Enter Vendor l in LIFNR field and execute get the report.
    Regards,
    Biju K

  • Difference between Return Delivery to Vendor - Against Material Document &

    Hi,
    Can any body explain in detail what is the difference between the below 2 scenarios-
    Difference between Return Delivery to Vendor - Against Material Document & Return Delivery to Vendor - Against Returns PO
    Thanks in adv
    Reg
    SSK

    Hi,
    Return delivery to Vendor against material document is done when you want to send the entire qty back to vendor and when your vendor invoice is not paid.
    You create Returns order, when you want to return some qty for which you can not trace any material document.
    For eg: During some festival season, you have purchased more stock. After that some stock is left with you which you would like to return to the vendor.
    Or you have found them damaged at a later point of time.

  • Reversal of vendor consigned material stock

    Hi,
    we have one vendor consigned material. In the initial uploading of stocks by 561 k an excessive stock was uploded. now we want to reduce the stock without paying to the vendor. We cannot use 562 k as it is locked now, please help.
    Thanks.
    S J

    Hi,
    This is really very difficult sitution. i can propose you my 2 suggestions to rectify this issue:
    1) First try to know the reason why 562 k is blocked..If possible try to open this MVT type.
    2) Else what you do, book the excess Quantity to scrap..Issue it with mvt 551.
    Hope this helps
    Utsav

  • Vendor return material (urgent)

    Pls guide me Vendor return Business Process.
    What I know:- eg I do the GR for 10 Nos. of any material, Then IV will be done. But some reason Management is decide that 5 Nos. of material has been return to vendor. then I made a PO for Vendor Return. then Done GR to Movement Type 161. Material is exciseable. On the time of GR Part 1 is posted & before IV Prat II also posted. then how cancel these documet. I use J1IEX What doc. no. we Put there PO for return vendor or GR no when posted for return.
    Pls guide me

    Following is the correct process
    Return PO, Tick return material option
    MIGO with Mvt type 161
    Then Go to J1IS transaction and put this material document number. against trans MATD.No need to do j1iex
    follow thios process.
    Regards
    Kedar Kulkarni

Maybe you are looking for

  • Load data from flat file to target table with scheduling in loader

    Hi All, I have requirement as follows. I need to load the data to the target table on every Saturday. My source file consists of dataof several sates.For every week i have to load one particular state data to target table. If first week I loaded AP d

  • FF crashes on start up after install

    FF crashes on startup, no page displayed. Crashes in Safe mode. Un-install, re-install gives same result. Crash report is too obtuse for me to understand.

  • Change Bank Account on Printed Checks via F110

    Hello Gurus- I have a requirement to change the account number on the printed checks which is done by the House Bank configuration.  I was wondering if there was anything else I should consider or keep in mind when making changes to accounts numbers

  • Selecting Datasource Location in Crystal XI causes software to lockup

    Anytime I click on Set Datasource Location in Crystal Reports XI Release 2, the software locks up.  I have to do a CTRL ALT DEL and End Task. Can someone help me? Thanks! Glynn

  • Activites after Upgrading with Support Package

    Hi This week, we upgraded from 8 to 13 SP level in our SCM 5.0 system. Here i am confused what are all activities we have to do as application support ? My BASIS is not really cooperative/ not fully knowledgeable in this. After the implementation of