Get Material Type in SRM

Hi Gurus,
How to get the material type in SRM? If we enter the material in the product field in the shopping cart, based upon the material type some validation needs to be done in the shopping cart.
Please advise if anybody is having any clue.
Thanks & Regards,
Aswini

Hi,
Now I got to know how to get the material type in SRM. Would like to share the information.
Material along with the material type get replicated into SRM from R/3 system. In COMMPR01 transaction, we can search for the material by entering the number in the product id and then it will show the detail information. When the material is replicated into srm, it will be tagged to both the hierachies R3MATCLASS as well as R3PRODSTYPE. The category id corresponding to the hierachy R3PRODSTYPE will have the format MAT_XXXX where XXXX denotes the material type. e.g. MAT_ESRA where ESRA denotes the material type in R/3. The characters after MAT_  will vary.
The below step is followed to get the material type in SRM:
1. Get the product GUID of the material (product) used int he shopping cart from the BBP_PD transaction. Or the product GUID can be obtained from table COMM_PRODUCT.
2. Get the Hierarchy GUID of R3PRODSTYPE from COMM_HIERACHY.
3. Get the CATEGORY_ID from the table COMM_PRPRDCATR based upon product GUID and HIERARCHY GUID of R3PRODSTYPE.
It will give the result in MAT_XXXX format. The remaining characters after MAT_ represents the material type.
Hope this information will be useful.
Regards,
Aswini
Edited by: Aswini Kumar Sahoo on Sep 18, 2009 5:29 PM
Edited by: Aswini Kumar Sahoo on Sep 18, 2009 5:30 PM

Similar Messages

  • Use of showing material types in SRM

    Hello,
    In Monitor shopping cart screen I am searching the shopping cart based on product categories.
    when I search product categories the search showing material types also against the hirerachy R3PRODSTYP
    what is the use of showing material types
    I see that R3PRODSTYP is for service we dnot have any services in our system.
    Thaks,
    Jai

    Hello,
    Usually you set material type as '01' for material and '01' for services in search helps.
    Regards,
    Ricardo

  • Material type not getting displayed in the cube........

    Hi,
    In my infocube material type for one of the material is not getting displayed.
    When I check in the content of the cube for this material all the fileds are getting displayed except material type.
    However it is present in the material master data from which it is put into the update rules to populate in the cube.
    Its getting displayed for some other materials , so we cant say that mapping is wrong or problem with update rules.
    Can some body let me know what could be the reason.
    Thanks,
    Jeetu

    Hi Jeetu,
    can you check in your cube if you have for one material, entries with AND entries without the MATL_TYPE? If this is the case then you were loading transactional data before having the corresponding material master data.
    You should adapt your scenario:
    - first do not use the standard attribute derivation during your URules: performance is very bad.
    - implement a start routine filling an internal table with your material and MATL_TYPE for all entries of material in your datapackage.
    - implement an update routine on the MATL_TYPE with a READ on this internal table an raise an ABORT = 4 if the MATL_TYPE is initial or the material in not found.
    Now to fix your situation you'll have to reload your cube or alternatively just reload your missing MATL_TYPE MATERIAL from your cube itself and selective delete those which are empty.
    hope this helps...
    Olivier.

  • How to get classification for a given material and material type in MM

    Hello Friends,
    One of my developer colleagues is struggling to find out : how to get classification for a given material and material type in MM?
    He is looking for probable table and table fields to Select from.
    I would appreciate seriously any help in this regard.
    ~Yours Sincerely

    Hi
    Below given the flow and table details for a given class and class type.
    - Table KLAH --> This contains the "Internal class no" [ for the given Class & Class type ]
    - Table KSML --> This contains the " internal character numbers " [ nothing but characteristics attached to the class ] , which can be fetched with the above fetched internal class no
    - Table AUSP --> This table contains the objects ( material ) attached to the internal characters of that class
    - Table CABNT --> This table contains the "Description" for the internal character numbers.
    - award points if this is ok

  • How do i get the material type after submitting a create material request?

    Hi All,
    I have to select an agent depending on the material type of the material being created? I'm not using the rule based workflow for material creation in MDG 7.0, I'm using WS46000057. How do I get the material type being used in the workflow so that I can create a rule and select an agent accordingly from a custom table.
    Any kind of help would be sincerely appreciated.
    Regards,
    Tushar..

    Why not use the rule-based workflow template?
    Where do you want the material type? This is a standard workflow template and I'm not sure you can enhance it.
    In any case, in order to read CR details, you need to use the MDG API classes. These are described in this document: Master Data Governance Application Programming Interface Guide. Keep in mind that different API classes were developed for different releases so make sure to pick the class right for your release.

  • Not getting the Link between GEIL and material type: procured  material not

    Hi Friends,
    Some material corresponding to certain G/L Account numbers are not appearing. From Fagll03 I can check the G/L Account number, but how shall be able to get the corresponding table field which holds the material or to check whether that G/L Account number has been properly linked to the material.
    Please suggest what to do. Is this a problem of programming ? or ...
    Thanks,
    Saheli

    Hi Saheli,
    Link b/n GL accounts and Material is in this way.
    Material is created based on material type and material type is connected to Valuation class via Account category reference.
    Now that for each valuation class corresponding GL accounts are defined in customizing.
    you can check the same in Tcode# OBYC.
    To check the posting to Inventory account during GR, select BSX (Inventory posting) and check whether the corresponding valuation class has got the assignment with GL accounts or not.
    Hope this help you out.
    BR,
    Krishna

  • Material type ..? to get 28 views

    hi gurus
    can anybody explain me which material type will show all the view in Material master..?
    Nearly 28 views are there in material master.
    Thanks
    sap-mm

    Hi
    It depends upon number of modules that we will implement if we implement all modules and select all the views available for the material creation then RAW MATERIAL - material type should be used...
    regards,
    senmani.

  • Hierarchy for material types does not exist

    Hi,
    I am doing an intial configuration in SRM 7.0 we have actvated extended classic and PPS activated.
    In the first level of configuration ai heve set up the logical systems and the system landscape.
    when i am in R3AS
    DNL_CUST_BASIS3
    DNL_CUST_PROD0
    DNL_CUST_PROD1
    DNL_CUST_SRVMAS
    the above objects wre green when i executed
    For the object MATERIAL
    I am getting an error
    Hierarchy for material types does not exist
    Message no. COM_PRODUCT_API000
    Diagnosis
    Before materials are imported from the ERP system, the material types from the ERP system must exist as categories in CRM/EBP. When the Customizing object DNL_CUST_PROD1 is imported, the material types are imported automatically and created under the category MAT in the category hierarchy R3PRODSTYP (product subtype).
    Procedure
    Check whether the ERP system material types have been imported successfully and exist as categories.
    Proceed
    If necessary, import the Customizing object DNL_CUST_PROD1.
    Kindly guide me

    Hi,
    It looks you have not configured the middleware basic settings. Queue should be registered in SMQR transaction.
    Please follow the configuration guides in SAP Solution Manager or offline downloaded version in SAP Service Marketplace.
    http://service.sap.com/srm-inst
    Regards,
    Masa

  • Mandatory fields With reference to Material types

    Dear Gurus,
    I need to make few fields as mandatory with reference to material types while creation of the material master data.
    For example:
    For Semi finished and Finished Schedule margin key is required(mandatory)
    For Raw Materials Schedule margin key is optional.
    Regards,
    Siddharth

    Hi
    find  following step to make field mandatory for material type
    Follow the stpes for making field as optional, required entry
    1 click the tab ,(Which is u want to be Required entry )and get the field name by pressing F1 key and then
    2.Go to T.Code: OMSR and enter that field name and get Selection Group
    once you get selection group and field name
    3 Use t.Code: OMS2 and click your material type and in next screen check Field reference ( you have assigned for material type; example :;For ROH material type the Field reference is ROH
    3. Use T.code:OMS9,, Double Click your Field Reference and select field selection Group , & select round box of Required Entry or optional and save
    check following link you will get clear idea [How to configure the fields required for each Material type ?;
    Regards
    Kailas ugale

  • Can any one help me to get Material no in the report

    Hi Gurus
    Can anyone help me to alter and get material number and description from VBAP , This is basically document price change report for users.
    The code is below
    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 -
       select matnr arktx
       from vbap
       into table it_vbap
       for all entries in it_vbak
       where
       vbeln eq it_vbak-vbeln.
    -----------------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 of name from vbap
            clear lwa_vbap.
        read table pa_it_vbap into lwa_vbap
                              with key matnr = lwa_vbap-matnr
                              binary search.
        lwa_merged-arktx = lwa_vbap-arktx.
      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 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     = 'arktx'.
      st_fieldcat-ref_tabname   = 'VBAP'.
      st_fieldcat-ref_fieldname = 'arktx'.
      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 = '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     = 'VALUE_OLD'.
      st_fieldcat-ref_tabname   = 'CDPOS'.
      st_fieldcat-ref_fieldname = 'VALUE_OLD'.
      st_fieldcat-row_pos       = '1'.
      st_fieldcat-outputlen = '6'.
      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.

    Hi Eswar
    According to your instruction I did the modification to add the material no and description but I am unable to get atleast material no seeing below my coding please do some debugging and send to me
    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 Number
      makt,                     " Material Description
      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,
        vbeln like vbap-vbeln,                  " Contract number
        posnr like vbap-posnr,                  " Contract item
        matnr like vbap-matnr,                  " Material
        abgru like vbap-abgru,                  " Reason for rejection
        werks like vbap-werks,                  " Plant
        arktx like vbap-arktx,                  " Product description
        maktx like makt-maktx,                  " Production Description
      end of ty_vbap,
      ty_it_vbap type ty_vbap occurs 0,
      begin of ty_mara,
        matnr like mara-matnr,                  " Material
        extwg like mara-extwg,                  " External material group
        mstav like mara-mstav,                  " Blocking reason
        mstdv like mara-mstdv,                  " Blocking reason valid from
      end of ty_mara,
      ty_it_mara type ty_mara occurs 0,
      begin of ty_marc,
        matnr like marc-matnr,                  " Material
        werks like marc-werks,                  " Plant
        mmsta like marc-mmsta,                  " Blocking reason
        mmstd like marc-mmstd,                  " Blocking reason valid from
      end of ty_marc,
      ty_it_marc type ty_marc 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,
      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
        matnr    like vbap-matnr,
      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_mara     type ty_it_mara,
      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_vkorg  for vbak-vkorg ,           " 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_kunnr  for vbak-kunnr,            " sold to party
       "s_matnr  for vbap-matnr,            " Material No
       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   kunnr in s_kunnr
             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.
    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 general material details from MARA
    select matnr
    from  vbap
            into  table it_vbap
            for   all entries in it_vbap
            where vbeln eq it_vbap-vbeln
            and  matnr eq it_vbap-matnr.
    select maktx from makt
            into  table it_vbap
            for   all entries in it_vbak
            where matnr eq it_vbap-matnr.
    select MAKTX from MAKT
    into table it_vbap  "<<<<<<if you have maktx in the structure
    for all entries in it_vbap
    where
    matnr eq it_vbap-matnr.
    select a~matnr  
    from vbap as a
        inner join makt as b
        on b~matnr = a~matnr
        into table it_vbap
        for all entries in it_vbak
        where
        a~vbeln eq it_vbak-vbeln.
        "and b~spras eq sy-langu.
       select a~matnr
       from vbap as a
       inner join makt as b
       on bmatnr = amatnr
       into table it_vbap
       for all entries in it_vbak
       where
       a~vbeln eq it_vbak-vbeln.
       "and b~spras eq sy-langu.
    Extract general material details from MARA
      select matnr extwg mstav mstdv
             from  mara
             into  table it_mara
             for   all entries in it_vbap
             where matnr eq it_vbap-matnr.
    -----------------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_vbap  by matnr.
      sort pa_it_user_addr by bname.
      sort pa_it_vbak  by vbeln.
       sort pa_it_vbkd  by vbeln.
    Change here 
    loop at pa_it_vbap into lwa_vbap.
       read table pa_it_vbak into lwa_vbak with key vbeln = lwa_vbap-vbeln.
       check sy-subrc eq 0.
       move-corresponding lwa_vbak to lwa_merged.  
    End of Changes here  
      endloop.    
      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-vbeln = lwa_vbap-vbeln.
       lwa_merged-bname = 1wa_user_addr-bname.
        lwa_merged-xblnr = lwa_vbak-xblnr.
    Assgin Material to reporting work area
        lwa_merged-matnr  = lwa_vbap-matnr.
      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 of name from vbap
        clear lwa_vbap.
        read table pa_it_vbap into lwa_vbap
                              with key vbeln = lwa_vbap-vbeln
                              binary search.
        lwa_merged-arktx = lwa_vbap-arktx.
      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 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.
    end of loop
    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     = 'MATNR'.
    st_fieldcat-ref_tabname   = 'MARA'.
    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 = '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     = 'VALUE_OLD'.
      st_fieldcat-ref_tabname   = 'CDPOS'.
      st_fieldcat-ref_fieldname = 'VALUE_OLD'.
      st_fieldcat-row_pos       = '1'.
      st_fieldcat-outputlen = '6'.
      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.

  • 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.

    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

  • Change material type

    When i am changing the material type i am getting this msg. In Po items were deleted.
    Change Material Type
    The material type cannot be changed.
    The reasons for this are:
    Valuated stock exists (see valuation areas below).
    However, account determination for the two material types differs.
    (different account category reference or no valuation data defined)
        Valuation area
        1030
    No open purchase order are there.

    hi
    plz check mmbe for the stock
    check for the open PR and PO in ME5A and me2m
    then try Change material type
    Material Type can be changed using transaction MMAM
    Menu: - Logistics > Material Management > Material Master > Material > Change Material Type
    u can also use MMZ2 to change material type and ind sec
    Refer following link for the same;
    http://www.sap123.com/showthread.php?t=21
    regards
    kunal

  • Material type and account assignment group relation

    Hi,
    Getting an error while creating material master save. Account assignment Zx can't be with Material Type Zxxxx.
    Please advise where is the link maintained between material account assignment group and material type.
    My material is Z service material.
    As I no for plant,industry, material type valuation class quanity update tick required but that is for stockable materials which is not the case above.
    Thanks

    HI,
    You can make the field Account Assignment Group of Material Master as inactive.
    But it depends up on Plant, Industry Sector Type and Material Type.
    You can do this in IMG --> Logistic General --> Material Master --> Field Selection
    Or
    use SHD0.. give T-code MM01. and you can deactivate the field.
    Hope this helps you.
    TC
    BR
    AKS

  • Hello Guru's  Error MSG while creating Material Type HERS

    Hello Guru's,
    While creating material type HERS the system is showing the following error *"The field orign acceptance is defined as a required field; it does't contain an entry'"* will any one give solution.
    even i have filled orign field in info record also still it is giving same error message,  will anyone give solution.
    full points for the answer.

    hers is for the mpn
    note the techincal name of that field and then go to oms9 and there make that filed for the filed selection key of hers as optional
    u can get the field selcton key of hers from the tcode oms2

  • Urgent:Material Type for Packaging Material in WM and MM

    Hi
    There is a place in SPRO where i can define the material type for packaging.
    Logistics - General -> Handling Unit Management -> Basics -> Define Packaging Material Types
    How can i create a material using this material type? What is the use of material type here?
    Whenever i create material in MM01/MM41, i get the standard material type list.
    Thanks & REgards
    Kapil

    Hi,
    In T.code: OMS2, you can get standard material type list.VERP is the standard material type for packing material.You can copy VERP and rename to ur material type( as it is ur business requriement or else u can use same VERP)
    What is the use of material type here?
    With the help of ur Material Type , u can craete material like The material type,will be used while defining the material
    master.At that time,in Tcode:MM01,first screen we need to
    mention,(material type)it show the nature of material
    ex:-engineering product,finished products,semifinished
    product,etc.,
    It also play vital role on material numbering,material type in comination with plant & valuation class, play vital role in inventory & accoputning.
    To Create Material,use t. Code: MM01,
    Step-1
    Enter Material Code: ( example-Polythene Bag, If External Number Range or leave it blnak)
    Enter Industry Sector: ...................
    Enter Material Type: ..........................(VERP- Packing)
    Step-2
    Select
    Views you required( like eample:basic data-1, like basic data-2,purachsing, purchase order text,General plant data, accounting-1, accounting-2 etc)
    Step-3
    Enter Plant,
    Enter Storage location
    {{{Enter Sales organization & Distribution channel(if sales view selected)}}}
    Step-4
    You will have views like (example-1, basic data, enter Base unit of measure, material group and other details as required field,example-2,Accounting data, enter valuation class, price control; S or V & price)
    Step-5
    Save.
    Note: Before creation material you must know which Industry Sector, Material Type ur going to use and material numbering is internal or external.
    For more, check the following link for creation of material
    http://www.synactive.com/docu_e/doc_multi_mm01.html
    Regards,
    Biju K

Maybe you are looking for

  • Need API for creation of tag cloud

    Hi, I have a requirement to create a tag cloud based on a particular business logic. Does Webcenter provide API for the same? Can I customize the "Tagging - Tag Cloud" task flow? If yes, how and to what extent? Thanks in advance, Anurag

  • Work Manager 6.1 and SMP 3.0 with Agentry new features

    Hi, I know that Work Manager 6.1 is expected to be released by the end of June but I can't find any information about the product. Since I'm starting a new project initially thought for Work Manager 6.0 but running in SMP 3.0, I would like to know th

  • Multiple Monitor Video

    We have a media lab with 15 mac G5 towers all linked together by a server. Is it possible to play one video that can span all of the screens. Basically creating a video that will play on one monitor then move to another. Is there a program or another

  • Transfer of inforecord condition records through ALE

    Hi, I want to know how to transfer Info record condition types other than PB00 through ALE.e.g. FRA1,Z cond. types etc. Thanks, Kaveri

  • Nested structure in a BAPI

    Hi, I have a requirement to create a bapi which can hold data in a nested format and output in the same format. Please could you help with any suggestions, or sample code to implement the same. Thanks in advance