Unable to get Material No and Description from VBAP

Hi Gurus
Can anyone please help me to get material number and description from vbap table, The report is fine but I am unable to get material no and description.
regards
report ZCHGDOC_BY_SALES no standard page heading
                          line-size 132.
type-pools:
  slis.                     " ALV types
Tables
tables:
  cdhdr,                    " Change documents: Header
  cdpos,                    " Change documents: Items
  vbak,                     " Sales order: Header
  mara,                     " Material No
  user_addr,                 " User Address
  vbap.                     " Contract order: Items
Types
types:
  begin of ty_cdhdr,
    objectclas like cdhdr-objectclas,     " Object class
    objectid   like cdhdr-objectid,       " Object value
    changenr   like cdhdr-changenr,       " Document change number
    username   like cdhdr-username,       " Changed by
    udate      like cdhdr-udate,          " Changed on
    utime      like cdhdr-utime,          " Changed at
    tcode      like cdhdr-tcode,          " Transaction code
  end of ty_cdhdr,
  ty_it_cdhdr type ty_cdhdr occurs 0,
  begin of ty_cdpos,
    objectclas like cdpos-objectclas,     " Object class
    objectid   like cdpos-objectid,       " Object value
    changenr   like cdpos-changenr,       " Document change number
    tabname    like cdpos-tabname,        " Table name
    tabkey     like cdpos-tabkey,         " Table key
    fname      like cdpos-fname,          " Field name
    chngind    like cdpos-chngind,        " Change indicator
    value_new  like cdpos-value_new,      " New value of field
    value_old  like cdpos-value_old,      " Old value of field
  end of ty_cdpos,
  ty_it_cdpos type ty_cdpos occurs 0,
  begin of ty_dd03l,
    tabname   like dd03l-tabname,
    fieldname like dd03l-fieldname,
    as4local  like dd03l-as4local,
    as4vers   like dd03l-as4vers,
    rollname  like dd03l-rollname,
  end of ty_dd03l,
  ty_it_dd03l type ty_dd03l occurs 0,
  begin of ty_dd04t,
    rollname   like dd04t-rollname,
    ddlanguage like dd04t-ddlanguage,
    as4local   like dd04t-as4local,
    as4vers    like dd04t-as4vers,
    scrtext_l  like dd04t-scrtext_l,
  end of ty_dd04t,
  ty_it_dd04t type ty_dd04t occurs 0,
  begin of ty_kna1,
    kunnr like kna1-kunnr,                 " Customer number
    name1 like kna1-name1,                 " Customer name
  end of ty_kna1,
  ty_it_kna1 type ty_kna1 occurs 0,
   begin of ty_user_addr,
    bname    like user_addr-bname,              " user no
    name_textc like user_addr-name_textc ,      " Username
  end of ty_user_addr,
  ty_it_user_addr type ty_user_addr occurs 0,
  begin of ty_vbap,
    matnr     like vbap-matnr,             " Material No
    arktx     like vbap-arktx,             " Production Description
  end of ty_vbap,
  ty_it_vbap type ty_vbap occurs 0,
  ty_text(500) type c,
  ty_lines type tline,
  ty_it_lines type ty_lines occurs 0,
  begin of ty_merged,
    vbeln     like vbak-vbeln,            " Sales order number
    erdat     like vbak-erdat,            " Created on
    auart     like vbak-auart,            " Order type
    faksk     like vbak-faksk,            " Billing block in SD document
    netwr     like vbak-netwr,            " Net value
    waerk     like vbak-waerk,            " Currency
    vkorg     like vbak-vkorg,            " Sales organisation
    vtweg     like vbak-vtweg,            " Distribution channel
    vkbur     like vbak-vkbur,            " Sales office
    fkara     like vbak-fkara,            " Proposed billing type
    kunnr     like vbak-kunnr,            " Sold-to party
    bname     like vbak-bname ,           " User No
    xblnr     like vbak-xblnr,            " Reference
    fbuda     like vbkd-fbuda,            " Date services rendered
    username  like cdhdr-username,        " Changed by
    udate     like cdhdr-udate,           " Changed on
    utime     like cdhdr-utime,           " Changed at
    tcode     like cdhdr-tcode,           " Transaction code
    tabname   like cdpos-tabname,         " Table name
    tabkey    like cdpos-tabkey,          " Table key
    fname     like cdpos-fname,           " Field name
    chngind   like cdpos-chngind,         " Change indicator
    value_new like cdpos-value_new,       " New value of field
    value_old like cdpos-value_old,       " Old value of field
    scrtext_l like dd04t-scrtext_l,       " Description of field
    intnote   type ty_text,               " Internal note
    hdrnote   type ty_text,               " Header note
    name1     like adrc-name1,            " Sold-to party name
    matnr     like vbap-matnr,            " Material No
    arktx     like vbap-arktx,            " Product Description
  end of ty_merged,
  ty_it_merged type ty_merged occurs 0,
  begin of ty_vbak,
    vbeln    like vbak-vbeln,             " Sales order number
    erdat    like vbak-erdat,             " Created on
    auart    like vbak-auart,             " Order type
    faksk    like vbak-faksk,             " Billing block in SD document
    netwr    like vbak-netwr,             " Net value
    waerk    like vbak-waerk,             " Currency
    vkorg    like vbak-vkorg,             " Sales organisation
    vtweg    like vbak-vtweg,             " Distribution channel
    vkbur    like vbak-vkbur,             " Sales office
    fkara    like vbak-fkara,             " Proposed billing type
    kunnr    like vbak-kunnr,             " Sold-to party
    xblnr    like vbak-xblnr,             " Reference
    objectid like cdhdr-objectid,         " Change document object
  end of ty_vbak,
  ty_it_vbak type ty_vbak occurs 0,
  begin of ty_vbkd,
    vbeln like vbkd-vbeln,                " Sales order number
    posnr like vbkd-posnr,                " Sales order item
    fbuda like vbkd-fbuda,                " Date services rendered
  end of ty_vbkd,
  ty_it_vbkd type ty_vbkd occurs 0.
Internal tables
data:
  it_cdhdr    type ty_it_cdhdr,
  it_cdpos    type ty_it_cdpos,
  it_fieldcat type slis_t_fieldcat_alv,
  it_kna1     type ty_it_kna1,
  it_user_addr type ty_it_user_addr,
  it_merged   type ty_it_merged,
  it_vbak     type ty_it_vbak,
Material No
  it_vbap     type ty_it_vbap,
  it_vbkd     type ty_it_vbkd.
data:
  wa_vbak  type ty_vbak.
data:
  st_tvariant  like disvariant,
  st_variant   like disvariant.
constants:
  co_as4local_a           like dd03l-as4local     " Active version
                          value 'A',
  co_objectclas_verkbeleg like cdhdr-objectclas
                          value 'VERKBELEG',
  co_posnr_initial        like vbkd-posnr         " Initial item number
                          value is initial,
  co_posnr_initial_2        like vbap-posnr         " Initial item number
                          value is initial,
  co_save_u               type c                  " User display variant
                          value 'U',              " saving allowed.
  co_trvog_0              like vbak-trvog         " Sales order
                          value '0'.
data:
  va_exit                 type c,                 " ALV display
  va_tabix                like sy-tabix.
selection-screen: begin of block b1 with frame title text-001.
select-options:
  s_vkorg  for vbak-vkorg OBLIGATORY,            " Sales organisation
  s_vkbur  for vbak-vkbur,            " Sales office
  s_vtweg  for vbak-vtweg,            " Distribution channel
  s_vbeln  for vbak-vbeln,            " Sales order number
  s_usrnme for cdhdr-username,        " Changed by
  s_udate  for cdhdr-udate.           " Changed on
selection-screen: end of block b1,
                  begin of block b2 with frame title text-002.
parameters:
  p_varint like disvariant-variant.   " Display variant.
selection-screen: end of block b2.
Initialization
initialization.
Load display variant.
  if not p_varint is initial.
    move st_variant to st_tvariant.
    move p_varint to st_tvariant-variant.
    call function 'REUSE_ALV_VARIANT_EXISTENCE'
         exporting
              i_save     = co_save_u
         changing
              cs_variant = st_tvariant.
    st_variant = st_tvariant.
  else.
    clear st_variant.
    st_variant-report = sy-repid.
  endif.
at selection-screen on value-request for p_varint.
Provide display variant list for this program.
  call function 'REUSE_ALV_VARIANT_F4'
       exporting
            is_variant = st_variant
            i_save     = co_save_u
       importing
            e_exit     = va_exit
            es_variant = st_tvariant
       exceptions
            not_found  = 2.
  if sy-subrc eq 2.
    message id sy-msgid type 'S'
            number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  else.
    if va_exit eq space.
      st_variant = st_tvariant.
      p_varint = st_tvariant-variant.
    endif.
  endif.
At selection screen
at selection-screen.
Load display variant.
  if not p_varint is initial.
    move st_variant to st_tvariant.
    move p_varint to st_tvariant-variant.
    call function 'REUSE_ALV_VARIANT_EXISTENCE'
         exporting
              i_save     = co_save_u
         changing
              cs_variant = st_tvariant.
    st_variant = st_tvariant.
  else.
    clear st_variant.
    st_variant-report = sy-repid.
  endif.
Start of selection
Extract order details from VBAK
  select vbeln erdat auart faksk netwr waerk vkorg vtweg vkbur fkara
         kunnr xblnr
         from  vbak
         into  table it_vbak
         where vkorg in s_vkorg
         and   vkbur in s_vkbur
         and   vbeln in s_vbeln.
  if sy-subrc ne 0.
  No data found for selection
    message s001(zgen).
    exit.
  endif.
  loop at it_vbak into wa_vbak.
    va_tabix = sy-tabix.
    wa_vbak-objectid = wa_vbak-vbeln.
    modify it_vbak from wa_vbak
                   index va_tabix
                   transporting objectid.
  endloop.
if sy-subrc ne 0.
  No data found for selection
   message s001(zgen).
   exit.
endif.
loop at it_vbak into wa_vbak.
   va_tabix = sy-tabix.
   wa_vbak-objectid = wa_vbak-vbeln.
   modify it_vbak from wa_vbak
                  index va_tabix
                  transporting objectid.
endloop.
Extract  Change data
  select objectclas objectid changenr username udate utime tcode
         from  cdhdr
         into  table it_cdhdr
         for   all entries in it_vbak
         where objectclas eq co_objectclas_verkbeleg
         and   objectid   eq it_vbak-objectid
         and   username   in s_usrnme
         and   udate      in s_udate.
  if sy-subrc eq 0.
    select objectclas objectid changenr tabname tabkey fname chngind
           value_new value_old
           from  cdpos
           into  table it_cdpos
           for   all entries in it_cdhdr
           where fname NE 'CMPRE_FLT'
           and objectclas eq it_cdhdr-objectclas
           and   objectid   eq it_cdhdr-objectid
           and   changenr   eq it_cdhdr-changenr.
  endif.
Extract customer details from KNA1
  select kunnr name1
         from  kna1
         into  table it_kna1
         for   all entries in it_vbak
         where kunnr eq it_vbak-kunnr.
---- Changes are made here -
Extract Material details from vbap
  select matnr arktx
         from  vbap
         into  table it_vbap
         for   all entries in it_vbak
         where
         vbeln eq it_vbak-vbeln
          and   posnr eq co_posnr_initial.
-----------------End of Change ----------------------*
Extract Contract No from vbkd.
  select vbeln posnr fbuda
         from  vbkd
         into  table it_vbkd
         for   all entries in it_vbak
         where vbeln eq it_vbak-vbeln
         and   posnr eq co_posnr_initial.
  perform merge_data tables it_cdhdr
                            it_cdpos
                            it_kna1
                            it_user_addr
                            it_merged
                            it_vbak
                            it_vbap
                            it_vbkd.
  if it_merged[] is initial.
    message s001(zgen).
    exit.
  endif.
Release memory no longer required.
  free: it_cdhdr,
        it_cdpos,
        it_kna1,
        it_user_addr,
        it_vbak,
        it_vbap,
        it_vbkd.
Build field catalog for call to report function
  perform build_field_catalog tables it_fieldcat.
Output report.
  perform output_report tables it_fieldcat
                               it_merged.
*&      Form  merge_data
      text
form merge_data  tables   pa_it_cdhdr  type ty_it_cdhdr
                          pa_it_cdpos  type ty_it_cdpos
                          pa_it_kna1   type ty_it_kna1
                          pa_it_user_addr type ty_it_user_addr
                          pa_it_merged type ty_it_merged
                          pa_it_vbak   type ty_it_vbak
                          pa_it_vbap   type ty_it_vbap
                          pa_it_vbkd   type ty_it_vbkd.
Local internal tables
data:
  lit_dd03l type ty_it_dd03l,
  lit_dd04t type ty_it_dd04t.
Local work areas
data:
  lwa_cdhdr  type ty_cdhdr,
  lwa_cdpos  type ty_cdpos,
  lwa_dd03l  type ty_dd03l,
  lwa_dd04t  type ty_dd04t,
  lwa_kna1   type ty_kna1,
  lwa_user_addr type ty_user_addr,
  lwa_merged type ty_merged,
  lwa_vbak   type ty_vbak,
  lwa_vbap   type ty_vbap,
  lwa_vbkd   type ty_vbkd.
Local variables
data:
  lva_dd03l_tabix like sy-tabix,
  lva_dd04t_tabix like sy-tabix.
Sort Data
  sort pa_it_cdhdr by objectid changenr.
  sort pa_it_cdpos by objectid changenr tabname tabkey fname.
  sort pa_it_kna1  by kunnr.
  sort pa_it_user_addr by bname.
  sort pa_it_vbak  by vbeln.
   sort pa_it_vbkd  by vbeln.
  loop at pa_it_vbak into lwa_vbak.
    clear lwa_merged.
  Assign sales order fields to reporting work area
    lwa_merged-vbeln = lwa_vbak-vbeln.
    lwa_merged-erdat = lwa_vbak-erdat.
    lwa_merged-auart = lwa_vbak-auart.
    lwa_merged-faksk = lwa_vbak-faksk.
    lwa_merged-netwr = lwa_vbak-netwr.
    lwa_merged-waerk = lwa_vbak-waerk.
    lwa_merged-vkorg = lwa_vbak-vkorg.
    lwa_merged-vtweg = lwa_vbak-vtweg.
    lwa_merged-vkbur = lwa_vbak-vkbur.
    lwa_merged-fkara = lwa_vbak-fkara.
    lwa_merged-kunnr = lwa_vbak-kunnr.
   lwa_merged-bname = 1wa_user_addr-bname.
    lwa_merged-xblnr = lwa_vbak-xblnr.
Assgin Material to reporting work area
   lwa_merged-matnr  = lwa_vbap-vbeln.
  Get name of sold-to party from PA_IT_KNA1
    clear lwa_kna1.
    read table pa_it_kna1 into lwa_kna1
                          with key kunnr = lwa_vbak-kunnr
                          binary search.
    lwa_merged-name1 = lwa_kna1-name1.
  Get name  from PA_it_user_addr
   clear lwa_user_addr.
   read table pa_it_user_addr into lwa_user_addr
                         with key  = lwa_user_addr-bname
                         binary search.
   lwa_merged-username = lwa_user_addr-name_textc.
  Get business data from PA_IT_VBKD.
    clear lwa_vbkd.
    read table pa_it_vbkd into lwa_vbkd
                          with key vbeln = lwa_vbak-vbeln
                          binary search.
    lwa_merged-fbuda = lwa_vbkd-fbuda.
Get Material Data
  clear lwa_vbap.
    read table pa_it_vbap into lwa_vbap
                         with key matnr = lwa_vbap-matnr
                            with key vbeln = lwa_vbak-vbeln
                          binary search.
    lwa_merged-arktx = lwa_vbap-arktx.
  Get internal note text for sales order
    perform read_text using '0002'
                            '1'
                            lwa_merged-vbeln
                            'VBBK'
                            lwa_merged-intnote.
  Get header note 1 text for sales order
    perform read_text using 'Z002'
                            '1'
                            lwa_merged-vbeln
                            'VBBK'
                            lwa_merged-hdrnote.
  Determine if change documents exist for sales order.
    clear lwa_cdhdr.
    read table pa_it_cdhdr into lwa_cdhdr
                           with key objectid = lwa_vbak-objectid.
    if sy-subrc ne 0.
      continue.
    endif.
    loop at pa_it_cdhdr into lwa_cdhdr
                        from sy-tabix.
      lwa_merged-username = lwa_cdhdr-username.
      lwa_merged-udate    = lwa_cdhdr-udate.
      lwa_merged-utime    = lwa_cdhdr-utime.
      lwa_merged-tcode    = lwa_cdhdr-tcode.
      clear lwa_cdpos.
      read table pa_it_cdpos into lwa_cdpos
                             with key objectid = lwa_cdhdr-objectid
                                      changenr = lwa_cdhdr-changenr
                             binary search.
      loop at pa_it_cdpos into lwa_cdpos
                          from sy-tabix.
        lwa_merged-tabname   = lwa_cdpos-tabname.
        lwa_merged-tabkey    = lwa_cdpos-tabkey.
        lwa_merged-fname     = lwa_cdpos-fname.
        lwa_merged-chngind   = lwa_cdpos-chngind.
        lwa_merged-value_new = lwa_cdpos-value_new.
        lwa_merged-value_old = lwa_cdpos-value_old.
      Get description for field - determine date element
        clear lwa_dd03l.
        read table lit_dd03l into lwa_dd03l
                             with key tabname   = lwa_cdpos-tabname
                                      fieldname = lwa_cdpos-fname
                             binary search.
        lva_dd03l_tabix = sy-tabix.
        if sy-subrc ne 0.
          select single tabname fieldname as4local as4vers rollname
                 from   dd03l
                 into   lwa_dd03l
                 where  tabname   eq lwa_cdpos-tabname
                 and    fieldname eq lwa_cdpos-fname
                 and    as4local  eq co_as4local_a.
          if sy-subrc eq 0.
            insert lwa_dd03l into lit_dd03l
                             index lva_dd03l_tabix.
          endif.
        endif.
      If data element was found, get description
        if not lwa_dd03l is initial.
          clear lwa_dd04t.
          read table lit_dd04t into lwa_dd04t
                               with key rollname   = lwa_dd03l-rollname
                                        ddlanguage = sy-langu
                               binary search.
          lva_dd04t_tabix = sy-tabix.
          if sy-subrc ne 0.
            select single rollname ddlanguage as4local as4vers scrtext_l
                   from  dd04t
                   into  lwa_dd04t
                   where rollname   eq lwa_dd03l-rollname
                   and   ddlanguage eq sy-langu.
            if sy-subrc eq 0.
              insert lwa_dd04t into lit_dd04t
                               index lva_dd04t_tabix.
            else.
              lwa_dd04t-scrtext_l = 'Description for field not found'.
            endif.
          endif.
        endif.
        lwa_merged-scrtext_l = lwa_dd04t-scrtext_l.
        append lwa_merged to pa_it_merged.
        at end of changenr.
        Only process field changes for this change document.
          exit.
        endat.
      endloop.
      at end of objectid.
      Initialise work area so we know change document for order has
      been processed.
        clear lwa_merged.
      Only process change documents for this sales order.
        exit.
      endat.
    endloop.
  endloop.
endform.                    " merge_data
*&      Form  build_field_catalog
      text
form build_field_catalog tables pa_it_fieldcat type slis_t_fieldcat_alv.
data:
Local variable
  lva_col_pos   type slis_fieldcat_alv-col_pos,
Local structure
  st_fieldcat   type slis_fieldcat_alv.
  lva_col_pos = 0.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'VBELN'.
  st_fieldcat-ref_tabname   = 'VBAK'.
  st_fieldcat-ref_fieldname = 'VBELN'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'VKBUR'.
  st_fieldcat-ref_tabname   = 'VBAK'.
  st_fieldcat-ref_fieldname = 'VKBUR'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '6'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'VKORG'.
  st_fieldcat-ref_tabname   = 'VBAK'.
  st_fieldcat-ref_fieldname = 'VKORG'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '6'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'KUNNR'.
  st_fieldcat-ref_tabname   = 'VBAK'.
  st_fieldcat-ref_fieldname = 'KUNNR'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-col_pos       = lva_col_pos.
    st_fieldcat-outputlen = '6'.
  append st_fieldcat to pa_it_fieldcat.
clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'NAME1'.
  st_fieldcat-ref_tabname   = 'KNA1'.
  st_fieldcat-ref_fieldname = 'NAME1'.
  st_fieldcat-row_pos       = '1'.
    st_fieldcat-outputlen = '15'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'MATNR'.
  st_fieldcat-ref_tabname   = 'VBAP'.
  st_fieldcat-ref_fieldname = 'MATNR'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-col_pos       = lva_col_pos.
    st_fieldcat-outputlen = '6'.
  append st_fieldcat to pa_it_fieldcat.
clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'SCRTEXT_L'.
  st_fieldcat-ref_tabname   = 'DD04T'.
  st_fieldcat-ref_fieldname = 'SCRTEXT_L'.
  st_fieldcat-row_pos       = '1'.
   st_fieldcat-outputlen = '20'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'UDATE'.
  st_fieldcat-ref_tabname   = 'CDHDR'.
  st_fieldcat-ref_fieldname = 'UDATE'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '10'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'USERNAME'.
  st_fieldcat-ref_tabname   = 'CDHDR'.
  st_fieldcat-ref_fieldname = 'USERNAME'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '6'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'FNAME'.
  st_fieldcat-ref_tabname   = 'CDPOS'.
  st_fieldcat-ref_fieldname = 'FNAME'.
  st_fieldcat-row_pos       = '4'.
  st_fieldcat-outputlen = '8'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'CHNGIND'.
  st_fieldcat-ref_tabname   = 'CDPOS'.
  st_fieldcat-ref_fieldname = 'CHNGIND'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '8'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'WAERK'.
  st_fieldcat-ref_tabname   = 'VBAK'.
  st_fieldcat-ref_fieldname = 'WAERK'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '5'.
  st_fieldcat-col_pos       = lva_col_pos..
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'VALUE_NEW'.
  st_fieldcat-ref_tabname   = 'CDPOS'.
  st_fieldcat-ref_fieldname = 'VALUE_NEW'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '20'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
  clear st_fieldcat.
  add 1 to lva_col_pos.
  st_fieldcat-tabname       = 'PA_IT_MERGED'.
  st_fieldcat-fieldname     = 'VALUE_OLD'.
  st_fieldcat-ref_tabname   = 'CDPOS'.
  st_fieldcat-ref_fieldname = 'VALUE_OLD'.
  st_fieldcat-row_pos       = '1'.
  st_fieldcat-outputlen = '20'.
  st_fieldcat-col_pos       = lva_col_pos.
  append st_fieldcat to pa_it_fieldcat.
endform.                    " build_field_catalog
*&      Form  output_report
      text
form output_report tables pa_it_fieldcat type slis_t_fieldcat_alv
                          pa_it_merged   type ty_it_merged.
Local variables
data:
  lva_formname type slis_formname,
  lva_repid    like sy-repid.
  lva_repid = sy-repid.
  lva_formname = 'ALV_USER_COMMAND'.
  call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
      i_callback_program = lva_repid
      i_callback_user_command = lva_formname
      i_save             = 'A'
      is_variant         = st_variant
      it_fieldcat        = pa_it_fieldcat[]
    tables
      t_outtab           = pa_it_merged
    exceptions
      program_error      = 1
      others             = 2.
endform.                    " output_report
*&      Form  alv_user_command
      text
form alv_user_command using pa_ucomm    like sy-ucomm
                            pa_selfield type slis_selfield.
Local work areas
data:
  lwa_merged type ty_merged.
  clear lwa_merged.
  read table it_merged into lwa_merged
                       index pa_selfield-tabindex.
  case pa_selfield-fieldname.
    when 'VBELN'.
    Contract Number
      set parameter id 'AUN' field lwa_merged-vbeln.
     call transaction 'VA03' and skip first screen.
S_BCE_68001393
when 'USERNAME'.
    Username
      set parameter id 'username' field lwa_merged-username.
      call transaction 'S_BCE_68001393' and skip first screen.
    when 'KUNNR'.
    Customer number
      set parameter id 'KUN' field lwa_merged-kunnr.
      set parameter id 'VKO' field space.
      set parameter id 'VTW' field space.
      set parameter id 'SPA' field space.
      call transaction 'XD03' and skip first screen.
  endcase.
endform.                    " alv_user_command
*&      Form  read_text
      text
form read_text  using    pa_id
                         pa_inline_count
                         pa_name
                         pa_object
                         pa_text.
Local internal tables
data:
  lit_inlines type ty_it_lines,
  lit_lines   type ty_it_lines.
Local work areas
data:
  lwa_lines   type ty_lines.
Local variables
data:
  lva_tdname    like thead-tdname.
  refresh: lit_inlines,
           lit_lines.
  lva_tdname = pa_name.
  call function 'READ_TEXT_INLINE'
    exporting
      id                    = pa_id
      inline_count          = pa_inline_count
      language              = sy-langu
      name                  = lva_tdname
      object                = pa_object
    tables
      inlines               = lit_inlines
      lines                 = lit_lines
    exceptions
      id                    = 1
      language              = 2
      name                  = 3
      not_found             = 4
      object                = 5
      reference_check       = 6
      others                = 7.
  loop at lit_lines into lwa_lines.
    concatenate pa_text
                lwa_lines-tdline
                into pa_text separated by space.
  endloop.
endform.                    " read_text ENDLOOP.
Advertisement
Reply

Hi
As per your code here:
"-------------- Changes are made here ----------------
*Extract Material details from vbap
select matnr arktx
from vbap
into table it_vbap
for all entries in it_vbak
where
vbeln eq it_vbak-vbeln
and posnr eq co_posnr_initial.   " Here the condition specifies you want to select sales order items where there is no item number, which i beleive shouldnt be the case
" -----------------End of Change ----------------------
Try as below by commenting the Item Number is INITIAL condition:
select matnr arktx
   from vbap
   into table it_vbap
   for all entries in it_vbak
   where
   vbeln eq it_vbak-vbeln.
"and posnr eq co_posnr_initial.
Regards
Eswar