EIPO-GRWRT

Hi
In a pro forma invoice, I need to manipiulate the value of EIPO-GRWRT.
The value is read fro condition type GRWR, with SAP exchange rate. But my issue is that I need to determine a special exchange rate for this, for the conversion between the condition type GRWR and teh field EIPO-GRWRT in the pro forma invoice.
In the documentation for FM "EXIT_SAPLV50E_003" and "EXIT_SAPLV50E_001" it says that the value and currency is overwritten.
Do anybody have any experience with this?
Regards
Magnus

Hi
In a pro forma invoice, I need to manipiulate the value of EIPO-GRWRT.
The value is read fro condition type GRWR, with SAP exchange rate. But my issue is that I need to determine a special exchange rate for this, for the conversion between the condition type GRWR and teh field EIPO-GRWRT in the pro forma invoice.
In the documentation for FM "EXIT_SAPLV50E_003" and "EXIT_SAPLV50E_001" it says that the value and currency is overwritten.
Do anybody have any experience with this?
Regards
Magnus

Similar Messages

  • Header is not coming in alv list display- urgent

    hi all,
    i am sending my code below....
    my requirement is in selection screen i have 4 radio buttons . if i click 1 radio button it will duiisplay data and and its header. report is working fine. my requirement id when i click r_mssng radio button(missing radio button) it is showing data correctsly. here i want to show header as 'Missing details report'.
    this is not coming in my report. anybody can suggest me.
    i am sending my code below....
    report zvra0001ftb13  message-id zv.
                            Confidential and Proprietary               
    *                          Celestica Corporation               
    *                           All Rights Reserved
    *ABAP Name:            ZVRA0001FTB13               
    *Created by:            Srinivasa Chakravarthi                    
    *Created on:            26/03/2003                    
    *SAP Version:        4.6 C
    *Description:       This report  displays details of foreign trades
                      and EHS based on the deliveries made to the outside
                      countries.
    *Input:              Selection Screen Criteria includes country of
                       origin,Company code, Sales Organisation,
                       Ship-to-party, Sold-to-paarty, Goods movement date,
                       Invoice number, Invoice type, Material , Material
                       Type, Exporter ID, Province of origin.
    *Output:             ALV output that contains Mode of Transport, Export
                       HS number, Commodity Description, Quantity, UOM,
                       Value, Country of Destination, Goods Origin
    *Dependency:         Nil
    *Modification Log:                              
    *CR#    Date       Coded     Transport     Description
    *====== ======== ========= ============= ===============================
    *5147  26/03/2003 Srinivas   ED1K922286     New Development     
    *8700  02/11/2004 H.Arular   ED1K938380     To check if entries of Comm
                                              Code(HS code)is less than 8
                                             digits and give a warning
                                              message.
    *18684 25/07/2007 MAHEEDHAR                 Merge the logic from report
                                              ZVRA0001FTB13_ERROR into
                                              report ZVRA0001FTB13 and
                                              added two radio buttons
                                              called missing data and non
                                              missing data, addedc logic
                                              accoriding to the radio
                                              buttons.
    *Declaring Tables.
    tables: likp,                         "Delivery document Header
            lips,                         "Delivery Document Item
            vbfa,                         "Sales document Flow
            bkpf,                         "Accounting Document Header
            eikp,                         "Foreign Trade:Export/Import Data
            eipo,                         "Foreign Trade:Export/ Import
                                          "Header data
            t618t,                        "Forein Trade:Mode of Transport
                                          "Description
            t604t,                        "Foreign Trade: Commodity Code/
                                          "Import Code number Description.
            mara,                         "Material master data.
            t005,                         "Countries
            t001,                         "Company Codes
            tvko,                         "Sales Organisations
            kna1,                         "Customer Master
            t003,                         "Document types
            t134,                         "Material types
            tvfk,
            konv,
            vbrk.
    constants : c_rep like vbrk-fkart value 'YGFB',
                c_for(10) value 'Foreign'.
    *Decalre Type pool for ALV
    type-pools: slis.
    *Type declaration for LIKP.
    types: begin of t_data1,
            vbeln  like  likp-vbeln,        "Delivery
            kunnr  like  likp-kunnr,
           end of t_data1.
    *Type declaration for  LIPS,VBFA.
    types: begin of t_data2,
            vbeln  like  lips-vbeln,      "Delivery
            posnr  like  lips-posnr,      "Delivery Item
            vbelv  like  vbfa-vbelv,      "Preceding SD document
            posnv  like  vbfa-posnv,        "Preceding item of SD document
            matnr  like  lips-matnr,        "Material Number
            meins  like  lips-meins,        "Base unit of measure
            lfimg  like  lips-lfimg,        "Actual Quantity Delivered
            mtart  like mara-mtart,
          end of t_data2.
    **Type declaration for  BKPF.
    *types: begin of t_data3,
           belnr  like  bkpf-belnr,        "Accounting Documnet number
           bukrs  like  bkpf-bukrs,        "Company Code
          end of t_data3.
    *Type declaration for  BKPF.
    types: begin of t_data3,
            vbeln like vbrk-belnr,        " Billing Doc
            fkart like vbrk-fkart,
            land1 like vbrk-land1,
           end of t_data3.
    *Type declaration for  EIPO.
    types: begin of t_data4,
           vbeln like lips-vbeln,         "Delivery
           posnr like lips-posnr,         "Delivery Item
           matnr like vbrp-matnr,
           fkimg like vbrp-fkimg,
           meins like vbrp-meins,
           verld like eipo-verld,         "Country of dispatch for Foreign
                                          "trade
           herkl like eipo-herkl,         "Country of origin of material
           grwrt like eipo-grwrt,         "Statistical value for Foreign
                                          " trade
           stawn like eipo-stawn,         "Commodity code for foreign trade
           expvz like eikp-expvz,         "Mode of transport for foreign
                                          "trade
          end of t_data4.
    *Type declaration for  T618T.
    types: begin of t_data5,
           land1 like  t618t-land1,       "Country key
           expvz like  t618t-expvz,       "Mode of Transport
           bezei like  t618t-bezei,       "Description
           end of t_data5.
    *Type declaration for  T604T.
    types: begin of t_data6,
           land1 like  t604t-land1,       "Country key
           stawn like  t604t-stawn,       "Commodity Code
           text1 like  t604t-text1,       "Description
           end of t_data6.
    *Type declaration for  T604T.
    types: begin of t_mara,
            matnr like mara-matnr,
           end of t_mara.
    types : begin of rep_val,
             vbelv like vbfa-vbelv,
             posnv like vbfa-posnv,
             vbeln like vbfa-vbeln,
             posnn like vbfa-posnn,
             uepos like vbap-uepos,
             posnr like vbap-posnr,
             netwr like vbap-netwr,
            end of rep_val.
    types : begin of t_price,
              vbeln like vbak-vbeln,
              posnr like vbap-posnr,
              knumv like konv-knumv,
              kposn like konv-kposn,
              kbetr like konv-kbetr,
              kpein like konv-kpein,
            end of t_price.
    data : t_sord type rep_val occurs 0 with header line.
    data : t_dord type rep_val occurs 0 with header line.
    data : t_rord type rep_val occurs 0 with header line.
    data : t_hord type rep_val occurs 0 with header line.
    data : t_ford type rep_val occurs 0 with header line.
    data : i_price type t_price occurs 0 with header line.
    data : i_price1 type t_price occurs 0 with header line.
    data : i_mara type t_mara occurs 0 with header line.
    data : i_sort     type slis_t_sortinfo_alv.
    DATA: t_layout     TYPE slis_layout_alv.
    *Declaring Selection screen.
    selection-screen begin of block b1 with frame title text-101.
    select-options:
       s_verld      for eipo-verld,                 "Country of Dest.
       s_bukrs      for bkpf-bukrs,                 "Company code
       s_vkorg      for likp-vkorg,                 "Sales Organisation
       s_kunnr     for likp-kunnr,                 "Ship-to-Party
       s_kunag     for likp-kunag,                 "Sold-to-party
       s_wadat     for likp-wadat_ist,             "Goods Movement date
       s_belnr     for vbrk-vbeln,                 "Invoice number
       s_blart     for vbrk-fkart.                 "Invoice type.
    selection-screen end of block b1.
    selection-screen begin of block b2 with frame title text-101.
    select-options:
       s_matnr      for mara-matnr,                 "Material
       s_mtart      for mara-mtart.                 "Material Type
    selection-screen end of block b2.
    selection-screen begin of block b3 with frame title text-101.
    parameters:
      p_export(30) type c default '1366770724RM' obligatory , "Exporter ID
      p_provi(30) type  c default 'ONTARIO' obligatory   ,
      p_sumid(30) type c default 'SUM0704'.
    "Province of Origin
    selection-screen end of block b3.
    selection-screen begin of block b4 with frame title text-104.
    parameters:
    r_summ radiobutton group zsum,
    r_dets radiobutton group zsum,
    r_mssng radiobutton group zsum,  " maheedhar
    R_NMSNG RADIOBUTTON GROUP ZSUM.   " MAHEEDHAR
    selection-screen skip.
    parameter : p_sum as checkbox .
    selection-screen end of block b4.
    selection-screen begin of block b5 with frame title text-105.
    select-options : s_i_kun for likp-kunnr.
    selection-screen end of block b5.
    *Data Declaration
    data: i_fieldcat type slis_t_fieldcat_alv.
    data: l_fieldcat type slis_fieldcat_alv .
    data: v_lin type i.
    data: v_lfstk type c value 'C'.
    data: v_vbtyp type c value 'U'.
    data: i_data1 type t_data1 occurs 0 with header line.
    data : begin of t_T005t occurs 0.
            include structure t005t.
    data : end of t_t005t.
    data: i_data2 type t_data2 occurs 0 with header line.
    data: t_delv type t_data2 occurs 0 with header line.
    data: t_bild type t_data2 occurs 0 with header line.
    data: i_data3 type t_data3 occurs 0 with header line.
    data: i_data4 type t_data4 occurs 0 with header line.
    data: i_data5 type t_data5 occurs 0 with header line.
    data: i_data6 type t_data6 occurs 0 with header line.
    *Declare Internal table for ALV output.
    data:  begin of i_output occurs 0,
           belnr     like  vbrk-vbeln,
           posnr     like  vbrp-posnr,
           bezei     like  t618t-bezei,
           stawn     like  eipo-stawn,
           text1     like  t604t-text1,
           quantity  type  p decimals 2,
           meins     like  lips-meins,
           value     type  p decimals 2,
           verld     like  t_t005t-landx,
           herkl     like  t_t005t-landx,
           strlen,                                              "ED1K938380
          end of i_output.
    maheedhar-start.
    data : i_output1 like i_output occurs 0 with header line,
           i_output2 like i_output occurs 0 with header line.
    maheedhar-end
    data : buff_out like i_output occurs 0 with header line.
    data:  begin of t_outsum occurs 0,
           bezei     like  t618t-bezei,
           stawn     like  eipo-stawn,
           text1     like  t604t-text1,
           quantity  type  p decimals 2,
           meins     like  lips-meins,
           value     type  p decimals 2,
           verld     like  t_t005t-landx,
           herkl     like  t_t005t-landx,
          end of t_outsum.
    data : v_ans.
    data : variante LIKE disvariant.
    data : v_repid LIKE sy-repid.
    data : wa_listheader   TYPE slis_listheader.
    data : t_listheader    TYPE slis_t_listheader.
    data : b_text(250).
    data: evntS type slis_t_event        with header line.  " MAHEEDHAR
          EVENT  AT SELECTION-SCREEN
    at selection-screen.
    *For Autorisation check
      perform authorisation_check.
    Validation of Selection screen
      perform check_entry.
          EVENT  START-OF-SELECTION
    start-of-selection.
    *Get  data
      perform select_data.
    **For calling ALV function modules
    MAHEEDHAR - START
      if r_mssng eq 'X'.
        DELETE I_OUTPUT WHERE BEZEI NE SPACE AND
                             STAWN NE SPACE AND
                             HERKL NE SPACE AND
                             VERLD NE SPACE.
        DESCRIBE TABLE I_OUTPUT LINES V_LIN.
        IF V_LIN > 0.
          PERFORM DISPLAY_OUTPUT.
        ELSE.
          MESSAGE E000 WITH TEXT-130.
        ENDIF.
      elseif R_SUMM eq 'X' OR R_DETS EQ 'X'.   "ENDIF.  " MAHEEDHAR
    MAHEEDHAR-END
        describe table i_output lines v_lin.
        if v_lin > 0.
          buff_out[] = i_output[].
       Begin of ED1K938380
       delete buff_out where stawn ne space or  "ED1K938380
                             verld eq space or
                             herkl eq space.
          delete buff_out where strlen ne 'X' or
                                verld eq space or
                                herkl eq space.
       End of ED1K938380
          describe table buff_out lines v_lin.
    Lines with no commodity code exists.
          if v_lin gt 0.
         concatenate text-902 text-903 into b_text.
            concatenate text-906 text-907 into b_text.          "ED1K938380
            CALL FUNCTION 'POPUP_TO_CONFIRM'
                 EXPORTING
                      TITLEBAR       = Text-901
                      TEXT_QUESTION  = b_text
                      TEXT_BUTTON_1  = 'Yes'
                      TEXT_BUTTON_2  = 'No'
                      DEFAULT_BUTTON = '2'
                 IMPORTING
                      ANSWER         = v_ans.
            if v_ans eq '1'.
              perform display_output.
            endif.
          else.
            perform display_output.
          endif.
        else.  " MAHEEDHAR
          message e000 with text-130.
        endif.
    MAHEEDHAR-START
    *"-- If non missing details radiobutton is selected
      elseif r_nmsng = 'X'.
    *"-- move data from i_output to i_output1.
        i_output1[] = i_output[].
        sort i_output  by belnr.
        sort i_output1 by belnr.
    *"-- to get missing data
        delete i_output1 where bezei ne space and
                               stawn ne space and
                               herkl ne space and
                               verld ne space.
        loop at i_output.
    *"-- compare two int tables with respective document number
          read table i_output1 with key belnr = i_output-belnr.
          if sy-subrc ne 0.
            move-corresponding i_output to i_output2.
            append i_output2.
            clear i_output2.
          endif.
        endloop.
        describe table i_output2 lines v_lin.
        if v_lin gt 0.
          perform display_output.
        else.
          message e000 with text-130.
        endif.
    MAHEEDHAR-END.
      ENDIF.  " MAHEEDHAR
          FORM SELECT_DATA                                              *
    form select_data.
      Data:l_strlen type i.                                     "ED1K938380
    *Get details from  LIKP.
      if s_i_kun[] is initial.
        select  likpvbeln likpkunnr
            into corresponding fields of table i_data1
            from likp
            inner join vbuk on likpvbeln = vbukvbeln
            where
              likp~vkorg in s_vkorg and
                likp~kunnr in s_kunnr and
                likp~kunag in s_kunag and
                likp~wadat_ist in s_wadat and
                vbuk~wbstk = 'C' .
      else.
        select  likpvbeln likpkunnr
             into corresponding fields of table i_data1
             from likp
             inner join vbuk on likpvbeln = vbukvbeln
             where
              (  ( likp~vkorg in s_vkorg and
                 likp~kunnr in s_kunnr and
                 likp~kunag in s_kunag and
                 likp~wadat_ist in s_wadat and
                 vbuk~wbstk = 'C' )
                 or
                 likp~kunnr in s_i_kun and
                 likp~wadat_ist in s_wadat and
                 vbuk~wbstk = 'C' )  .
      endif.
    if sy-subrc ne 0.
       message e000 with text-200.
    endif.
    *Get details from table  LIPS
      select     lips~vbeln
                 lips~posnr
                 vbfa~vbeln
                 vbfa~posnn
                 lips~matnr
                 lips~meins
                 lips~lfimg
                 mara~mtart
                 from lips
                inner join vbfa on   vbfavbelv = lipsvbeln
                                and   vbfaposnv = lipsposnr
                  inner join mara on maramatnr = lipsmatnr
                  into  table i_data2
                  for all entries in  i_data1
                 where
                   lips~vbeln = i_data1-vbeln and
                   lips~matnr in s_matnr and
                   vbfa~vbeln in s_belnr and
                   mara~mtart in s_mtart and
                  vbfa~vbtyp_n = 'U'.
      if sy-subrc ne 0.
        message e000 with text-201.
      endif.
      t_delv[] = i_data2[].
      t_bild[] = i_data2[].
      sort t_delv by vbeln.
      delete adjacent duplicates from t_delv comparing vbeln.
      sort t_bild by vbeln ascending vbelv descending.
      delete adjacent duplicates from t_bild comparing vbeln.
    *Get details of Accounting document number
      select vbeln fkart land1 from vbrk
                 into table i_data3
                 for all entries in t_bild
                 where vbeln = t_bild-vbelv and
                        bukrs in s_bukrs     and
                        fkart in s_blart     and
                        vkorg in s_vkorg     and             " MAHEEDHAR
                        land1 in s_verld.                    " MAHEEDHAR
      sort i_data3.
    *Get details from EIPO.
      select  vbrp~vbeln
              vbrp~posnr
              vbrp~matnr
              vbrp~fkimg
              vbrp~meins
              eipo~verld
              eipo~herkl
              eipo~grwrt
              eipo~stawn
              eikp~expvz
              from eikp
              inner join vbrp on vbrp~vbeln  = eikp~refnr
                    inner join eipo on eikp~exnum = eipo~exnum
                                   and eipo~expos = vbrp~posnr
                      into table i_data4 for all entries in i_data3
                    where vbrp~vbeln = i_data3-vbeln.
                         eipo~verld in s_verld.
      if sy-subrc ne 0.
        message e000 with text-201.
      endif.
      IF R_MSSNG NE 'X' or r_nmsng = 'X'.  " MAHEEDHAR
        perform get_price.
      ENDIF.  " MAHEEDHAR
    Get details from  T618T.
      select land1
             expvz
             bezei
             from  t618t
             into  table i_data5
             for all entries in i_data4
             where
             land1 = 'CA' and                 " Getting for Canada only
             expvz = i_data4-expvz and
             spras = sy-langu.
      select matnr from mara into table i_mara where matnr in s_matnr
                                                  and mtart in s_mtart.
    Get details from  T604T.
      select land1
             stawn
             text1
             from t604t
             into table i_data6
             for all entries in i_data4
             where
             land1 = i_data4-VERLD and
             stawn = i_data4-stawn and
             spras = sy-langu.
      select * from T005t into table t_T005t where spras = sy-langu.
      loop at i_data3.
        loop at i_data4 where vbeln eq i_data3-vbeln.
          clear : i_data1, i_data2.
          read table i_data2 with key vbelv = i_data4-vbeln
                                posnv = i_data4-posnr.
          read table i_data1 with key vbeln = i_data2-vbeln.
          if not s_i_kun[] is initial.
            check  ( ( i_data1-kunnr in s_i_kun ) or
                     ( i_data3-land1 in s_verld ) ).
          else.
            check i_data3-land1 in s_verld .
          endif.
          read table i_mara with key matnr = i_data4-matnr.
          if sy-subrc eq 0.
            read table i_data5 with key expvz = i_data4-expvz .
                                         land1 = i_data3-land1.
            read table i_data6 with key stawn = i_data4-stawn
                                        land1 = i_data4-VERLD.
            move i_data4-vbeln to i_output-belnr.
            move i_data4-posnr to i_output-posnr.
            move i_data5-bezei to i_output-bezei.
            move i_data6-text1 to i_output-text1.
           Begin of ED1K938380.
            l_strlen = strlen( i_data4-stawn ).
            if l_strlen < 8.
              move 'X' to i_output-strlen.
            endif.
           End of ED1K938380.
            move i_data4-stawn to i_output-stawn.
            move i_data4-meins to i_output-meins.
            read table t_T005t with key land1 = i_data3-land1.
            move t_t005t-landx to i_output-verld.
            if p_sum eq space.
              if i_data4-herkl ne 'CA'.
                i_output-herkl = c_for.
              else.
                read table t_T005t with key land1 = i_data4-herkl.
                move t_t005t-landx to i_output-herkl.
              endif.
            else.
              read table t_T005t with key land1 = i_data4-herkl.
              move t_t005t-landx to i_output-herkl.
            endif.
            move i_data4-fkimg to i_output-quantity.
            if i_data3-fkart eq c_rep.
              read table t_dord with key vbeln = i_data4-vbeln
                                         posnn = i_data4-posnr.
              if sy-subrc eq 0.
                read table t_sord with key vbeln = t_dord-vbelv
                                           posnn = t_dord-posnv.
                if sy-subrc eq 0.
                  read table t_hord with key vbeln = t_sord-vbelv
                                             posnr = t_sord-posnv.
                  if sy-subrc eq 0.
                    read table t_ford with key vbeln = t_hord-vbeln
                                               posnr = t_hord-uepos.
                    if sy-subrc eq 0.
                      read table i_price with key vbeln = t_ford-vbeln
                                                  posnr = t_ford-posnr.
                      if sy-subrc eq 0.
                        read table i_price1 with key knumv = i_price-knumv
                                                     kposn = t_ford-posnr.
                        if sy-subrc eq 0.
                          if i_price1-kpein ne 0.
                            i_output-value =
                            ( i_price1-kbetr / i_price1-kpein ) *
                                                      i_data4-fkimg.
                          endif.
                        endif.
                      endif.
                    endif.
                  endif.
                endif.
              endif.
            else.
              move i_data4-grwrt to i_output-value.
            endif.
            append i_output.
            clear  i_output.
            clear : i_data5, i_data6.
          endif.
        endloop.
      endloop.
      sort i_output by verld herkl bezei stawn.
    endform.
          FORM DISPLAY_OUTPUT                                           *
          This form is to create the ALV output
    form display_output.
      data: xevents     type slis_t_event,
                ls_event    type slis_alv_event,
               slis_ev_top_of_page type slis_formname value 'TOP_OF_PAGE',
               slis_ev_end_of_list type slis_formname value 'END_OF_LIST'.
    *Call  Function  'REUSE_ALV_EVENTS' for top of page
      call function 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type     = 0
           IMPORTING
                et_events       = xevents
           EXCEPTIONS
                list_type_wrong = 1
                others          = 2.
      if sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
      read table xevents with key name = slis_ev_top_of_page
                               into ls_event.
      if sy-subrc = 0.
        move slis_ev_top_of_page to ls_event-form.
        append ls_event to xevents.
      endif.
      read table xevents with key name = slis_ev_end_of_list
                                 into ls_event.
      if sy-subrc = 0.
        move slis_ev_end_of_list to ls_event-form.
        append ls_event to xevents.
      endif.
      if r_dets ne space.
    *Call Function 'REUSE_ALV_FIELD_CATALOG_MERGE' for position fixing in
    *the output.
        call function 'REUSE_ALV_FIELDCATALOG_MERGE'
             exporting
                  i_program_name         = 'ZVRA0001FTB13'
                  i_internal_tabname     = 'I_OUTPUT'
                  i_inclname             = 'ZVRA0001FTB13'
              I_STRUCTURE_NAME       =
              I_CLIENT_NEVER_DISPLAY = 'X'
              I_INCLNAME             =
                 i_bypassing_buffer     = 'X'
                 i_buffer_active        = ' '
             changing
                  ct_fieldcat            = i_fieldcat
             exceptions
                  inconsistent_interface = 1
                  program_error          = 2
                  others                 = 3.
        if sy-subrc <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
        loop at i_fieldcat into l_fieldcat.
          l_fieldcat-key = ' '.
          case l_fieldcat-fieldname.
            when 'BELNR'.
              l_fieldcat-seltext_m = text-912.
              l_fieldcat-seltext_l = text-912.
              l_fieldcat-reptext_ddic = text-912.
              l_fieldcat-col_pos   = '1'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-outputlen = '12'..
            when 'POSNR'.
              l_fieldcat-seltext_m = text-913.
              l_fieldcat-seltext_l = text-913.
              l_fieldcat-reptext_ddic = text-913.
              l_fieldcat-col_pos   = '2'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-outputlen = '6'.
            when 'BEZEI'.
              l_fieldcat-seltext_m = text-911.
              l_fieldcat-seltext_l = text-911.
              l_fieldcat-reptext_ddic = text-911.
              l_fieldcat-col_pos   = '3'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-outputlen = '15'..
            when 'STAWN'.
              l_fieldcat-seltext_m = text-111.
              l_fieldcat-seltext_l = text-111.
              l_fieldcat-reptext_ddic = text-111.
              l_fieldcat-col_pos   = '4'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-outputlen = '30'.
            when 'TEXT1'.
              l_fieldcat-seltext_m = text-112.
              l_fieldcat-seltext_l = text-112.
              l_fieldcat-outputlen = '40'.
              l_fieldcat-col_pos   = '5'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-112.
            when 'QUANTITY'.
              l_fieldcat-outputlen = '18'.
              l_fieldcat-reptext_ddic = text-113.
              l_fieldcat-seltext_m = text-113.
              l_fieldcat-col_pos   = '6'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-seltext_l = text-113.
            when 'MEINS'.
              l_fieldcat-outputlen = '8'.
              l_fieldcat-reptext_ddic = text-114.
              l_fieldcat-seltext_m = text-114.
              l_fieldcat-col_pos   = '7'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-seltext_l = text-114.
            when 'VALUE'.
              l_fieldcat-outputlen = '20'.
              l_fieldcat-seltext_m = text-115.
              l_fieldcat-seltext_l = text-115.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-115.
            when 'VERLD'.
              l_fieldcat-outputlen = '20'.
              l_fieldcat-seltext_m = text-116.
              l_fieldcat-seltext_l = text-116.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-116.
            when 'HERKL'.
              l_fieldcat-seltext_m = text-117.
              l_fieldcat-seltext_l = text-117.
              l_fieldcat-outputlen = '30'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-117.
            when others.
              l_fieldcat-no_out = 'X'.
          endcase.
          modify i_fieldcat from l_fieldcat.
        endloop.
    Call Function  'REUSE_ALV_LIST_DISPLAY'  for  dispaly  of data in ALV.
        call function 'REUSE_ALV_LIST_DISPLAY'
             EXPORTING
                  i_callback_program = 'ZVRA0001FTB13'
                  it_fieldcat        = i_fieldcat
                  it_events          = xevents
                  is_layout          = t_layout
                  i_save             = 'A'
                  i_bypassing_buffer = 'X'
                  i_buffer_active    = ' '
             TABLES
                  t_outtab           = i_output
             EXCEPTIONS
                  program_error      = 1
                  others             = 2.
        if sy-subrc <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
    else.  " MAHEEDHAR
      ELSEIF R_SUMM EQ 'X'.  " MAHEEDHAR
        sort i_output by verld herkl stawn bezei.
        loop at i_output.
          move-corresponding i_output to t_outsum.
          collect t_outsum.
        endloop.
    *Call Function 'REUSE_ALV_FIELD_CATALOG_MERGE' for position fixing in
    *the output.
        call function 'REUSE_ALV_FIELDCATALOG_MERGE'
             EXPORTING
                  i_program_name         = 'ZVRA0001FTB13'
                  i_internal_tabname     = 'T_OUTSUM'
                  i_inclname             = 'ZVRA0001FTB13'
                 i_bypassing_buffer     = 'X'
                 i_buffer_active        = ' '
             CHANGING
                  ct_fieldcat            = i_fieldcat
             EXCEPTIONS
                  inconsistent_interface = 1
                  program_error          = 2
                  others                 = 3.
        if sy-subrc <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
        loop at i_fieldcat into l_fieldcat.
          l_fieldcat-key = ' '.
          case l_fieldcat-fieldname.
            when 'BEZEI'.
              l_fieldcat-seltext_m = text-911.
              l_fieldcat-seltext_l = text-911.
              l_fieldcat-reptext_ddic = text-911.
              l_fieldcat-col_pos   = '1'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-outputlen = '15'..
            when 'STAWN'.
              l_fieldcat-seltext_m = text-111.
              l_fieldcat-seltext_l = text-111.
              l_fieldcat-reptext_ddic = text-111.
              l_fieldcat-col_pos   = '2'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-outputlen = '30'.
            when 'TEXT1'.
              l_fieldcat-seltext_m = text-112.
              l_fieldcat-seltext_l = text-112.
              l_fieldcat-outputlen = '40'.
              l_fieldcat-col_pos   = '3'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-112.
            when 'QUANTITY'.
              l_fieldcat-outputlen = '18'.
              l_fieldcat-reptext_ddic = text-113.
              l_fieldcat-seltext_m = text-113.
              l_fieldcat-col_pos   = '4'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-seltext_l = text-113.
            when 'MEINS'.
              l_fieldcat-outputlen = '8'.
              l_fieldcat-reptext_ddic = text-114.
              l_fieldcat-seltext_m = text-114.
              l_fieldcat-col_pos   = '5'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-seltext_l = text-114.
            when 'VALUE'.
              l_fieldcat-outputlen = '20'.
              l_fieldcat-seltext_m = text-115.
              l_fieldcat-seltext_l = text-115.
              l_fieldcat-col_pos   = '6'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-115.
            when 'VERLD'.
              l_fieldcat-outputlen = '20'.
              l_fieldcat-seltext_m = text-116.
              l_fieldcat-seltext_l = text-116.
              l_fieldcat-col_pos   = '7'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-116.
            when 'HERKL'.
              l_fieldcat-seltext_m = text-117.
              l_fieldcat-seltext_l = text-117.
              l_fieldcat-outputlen = '30'.
              l_fieldcat-col_pos   = '8'.
              l_fieldcat-just      = 'C'.
              l_fieldcat-reptext_ddic = text-117.
            when others.
              l_fieldcat-no_out = 'X'.
          endcase.
          modify i_fieldcat from l_fieldcat.
        endloop.
    Call Function  'REUSE_ALV_LIST_DISPLAY'  for  dispaly  of data in ALV.
        call function 'REUSE_ALV_LIST_DISPLAY'
             EXPORTING
                  i_callback_program = 'ZVRA0001FTB13'
                  it_fieldcat        = i_fieldcat
                  it_events          = xevents
                  i_save             = 'A'
                  is_layout          = t_layout
                  i_default          = 'X'
                  is_variant         = variante
                  i_bypassing_buffer = 'X'
                  i_buffer_active    = ' '
             TABLES
                  t_outtab           = t_outsum
             EXCEPTIONS
                  program_error      = 1
                  others             = 2.
        if sy-subrc <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
    MAHEEDHAR-START.
    *"-- if detail summary checkbox is selected
      elseIF R_MSSNG = 'X'.
       PERFORM PREPARE_HEADER.
        call function 'REUSE_ALV_FIELDCATALOG_MERGE'
            exporting
                 i_program_name         = 'ZVRA0001FTB13'
                 i_internal_tabname     = 'I_OUTPUT'
                 i_inclname             = 'ZVRA0001FTB13'
              I_STRUCTURE_NAME       =
              I_CLIENT_NEVER_DISPLAY = 'X'
              I_INCLNAME             =
                i_bypassing_buffer     = 'X'
                i_buffer_active        = ' '
            changing
                 ct_fieldcat            = i_fieldcat
            exceptions
                 inconsistent_interface = 1
                 program_error          = 2
       

    hi,
    *& Report  ZALV_FIELD_GRID1
    REPORT  ZALV_FIELD_GRID1
            NO STANDARD PAGE HEADING.
    TABLES MARA.
    type-pools :slis.
    TYPES : BEGIN OF TMARA ,
            MATNR LIKE MARA-MATNR,
            MEINS LIKE MARA-MEINS,
            ERSDA LIKE MARA-ERSDA,
            color(4) type c,
            SEL type c,
            LIGHT TYPE C,
            END OF TMARA.
    TYPES: BEGIN OF TMAKT,
           MATNR LIKE MAKT-MATNR,
           MAKTX LIKE MAKT-MAKTX,
           MAKTG LIKE MAKT-MAKTG,
           SEL TYPE C,
           COLOR(4),
           END OF TMAKT.
    DATA:  ITAB TYPE TMARA OCCURS 0 WITH HEADER LINE,
           ITAB1 TYPE TMAKT OCCURS 0 WITH HEADER LINE,
           wa_fieldcat type slis_fieldcat_alv,
           fieldcat type slis_fieldcat_alv occurs 0,
           i_layout type slis_layout_alv,
           WA_LISTHEADER TYPE SLIS_LISTHEADER ,
           i_LISTHEADER TYPE SLIS_LISTHEADER OCCURS 0,
           V_EVENTS TYPE SLIS_T_EVENT ,
           WA_EVENT TYPE SLIS_ALV_EVENT,
           I_TITLE_MARA TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED',
           I_TITLE_MAKT TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED',
           SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE,
           PRINT_CONT type slis_print_alv.
    SELECTION SCREE
    selection-screen  begin of block screen1  with frame title TEXT-001.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN COMMENT /32(35) COMM1.
    SELECTION-SCREEN ULINE /27(35).
    SELECTION-SCREEN SKIP.
    SELECT-OPTIONS MATNR FOR MARA-MATNR.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN ULINE.
    SELECTION-SCREEN COMMENT /30(50) COMM2.
    SELECTION-SCREEN ULINE /27(40).
    SELECTION-SCREEN SKIP.
    SELECT-OPTIONS ERSDA FOR MARA-ERSDA.
    SELECTION-SCREEN SKIP.
    selection-screen  end of block screen1.
        INITIALIZATION
    INITIALIZATION.
      MATNR-low = '23'.
      MATNR-high = '1000'.
      MATNR-option = 'BT'.
      MATNR-sign = 'I'.
      APPEND MATNR.
      ERSDA-low = '20030124'.
      ERSDA-high = '20050302' .
      APPEND ERSDA.
      PERFORM FILLFIELD.
      PERFORM FILLLAYOUT.
      PERFORM build_print_params.
      PERFORM FILL_SORT.
      PERFORM EVENT_CALL.
      PERFORM POPULATE_EVENT.
            SELECTION-SCREEN OUTPUT
    AT SELECTION-SCREEN OUTPUT.
      comm1 ='SELECT MATERIAL NUMBER  RANGE'.
      comm2 ='SELECT MATERIAL CREATION DATE'.
               START-OF-SELECTION
    START-OF-SELECTION.
      PERFORM READDATA.
      PERFORM POPDATA.
    *&      Form  READDATA
          text
    FORM READDATA .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = MATNR-LOW
        IMPORTING
          OUTPUT = MATNR-LOW.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          INPUT  = MATNR-HIGH
        IMPORTING
          OUTPUT = MATNR-HIGH.
      SELECT MATNR
             ERSDA
             MEINS
             FROM MARA
             INTO CORRESPONDING FIELDS OF
            TABLE ITAB
            WHERE MATNR IN MATNR AND ERSDA IN ERSDA.
      LOOP AT ITAB.
        data id_color type i VALUE 1.
        data id_colors(2) type c.
        IF ITAB-MATNR < '000000000000000100'.
          ITAB-LIGHT = '1'.
        ELSEIF ITAB-MATNR < '000000000000000150' AND ITAB-MATNR >
       '000000000000000100' .
          ITAB-LIGHT = '2'.
        ELSE.
          ITAB-LIGHT = '3'.
        ENDIF.
        id_color = id_color + 1.
        if id_color > 7.
          id_color = 1.
        endif.
        id_colors = id_color.
        concatenate 'C' id_colors '10' into itab-color.
        modify itab.
        CLEAR ITAB.
      endloop.
    ENDFORM.                    " READDATA
         Form  FILLFIELD
    FORM FILLFIELD .
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-KEY = 'X'.
      WA_FIELDCAT-COL_POS = '1'.
      WA_FIELDCAT-outputlen   = 20.
      WA_FIELDCAT-HOTSPOT = 'X'.
      wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
    *WA_FIELDCAT-EMPHASIZE = 'C210'.
      APPEND WA_FIELDCAT TO FIELDCAT.
      clear wa_fieldcat.
      WA_FIELDCAT-FIELDNAME = 'MEINS'.
      WA_FIELDCAT-COL_POS = '2'.
    *WA_FIELDCAT-EMPHASIZE = 'C510'.
      WA_FIELDCAT-outputlen   = 10.
      wa_fieldcat-seltext_m = 'UNIT'.
      APPEND WA_FIELDCAT TO FIELDCAT.
      clear wa_fieldcat.
      WA_FIELDCAT-FIELDNAME = 'ERSDA'.
      WA_FIELDCAT-COL_POS = '3'.
      WA_FIELDCAT-outputlen   = 15.
    *WA_FIELDCAT-EDIT_MASK  = 'DD.MM.YYYY'.
    *WA_FIELDCAT-EMPHASIZE = 'C710'.
      wa_fieldcat-seltext_m = 'CREAT DATE'.
      APPEND WA_FIELDCAT TO FIELDCAT.
      clear wa_fieldcat.
    ENDFORM.                    "FILLFIELD
          Setup print parameters
    form build_print_params.
      PRINT_CONT-reserve_lines = '3'.   "Lines reserved for footer
      PRINT_CONT-no_coverpage = 'X'.
    endform.                    " BUILD_PRINT_PARAMS
         Form  POPDATA
    FORM POPDATA .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                 =  sy-repid
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND            = 'USER-COMMAND'
         I_CALLBACK_TOP_OF_PAGE             = 'TOPPAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
         I_GRID_TITLE                       = I_TITLE_MARA
      I_GRID_SETTINGS                   =
         IS_LAYOUT                          = I_LAYOUT
         IT_FIELDCAT                        = fieldcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
        IT_SORT                           =  SORT[]
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
         IT_EVENTS                          = V_EVENTS
      IT_EVENT_EXIT                     =
       IS_PRINT                          = PRINT_CONT
        TABLES
          T_OUTTAB                          = ITAB
    EXCEPTIONS
       PROGRAM_ERROR                     = 1
       OTHERS                            = 2
    ENDFORM.                    " POPDATA
         Form  TOPPAGE
    FORM TOPPAGE.
      REFRESH I_LISTHEADER.
      DATA: ld_lines type i,
            ld_linesc(10) type c,
            I_DATE(10) TYPE C,
            I_INFO LIKE WA_LISTHEADER-INFO.
      WA_LISTHEADER-TYP = 'H'.
      WA_LISTHEADER-INFO = 'MATERIAL DETAIL'.
      APPEND WA_LISTHEADER TO I_LISTHEADER.
      CLEAR WA_LISTHEADER.
      WA_LISTHEADER-TYP = 'S'.
      WA_LISTHEADER-KEY = 'DATE :'.
      CONCATENATE SY-DATUM+6(2) '.'
                           SY-DATUM+4(2) '.'
                           SY-DATUM(4) INTO I_DATE.
      WA_LISTHEADER-INFO = I_datE.
      APPEND WA_LISTHEADER TO I_LISTHEADER.
      CLEAR WA_LISTHEADER.
      describe table ITAB lines ld_lines.
      ld_linesc = ld_lines.
      concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
                        into I_INFO separated by space.
      WA_LISTHEADER-TYP  = 'A'.
      WA_LISTHEADER-INFO = I_INFO.
      append WA_LISTHEADER to I_LISTHEADER.
      clear: WA_LISTHEADER , I_INFO.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = I_LISTHEADER
          I_LOGO             = 'ENJOYSAP_LOGO'.
    ENDFORM.                    "TOPPAGE
         Form  FILLLAYOUT
    FORM FILLLAYOUT .
      i_layout-zebra = 'X'.
      i_layout-info_fieldname = 'COLOR'.
      i_layout-box_fieldname = 'SEL'.
      I_LAYOUT-lights_fieldname = 'LIGHT'.
      I_LAYOUT-EDIT ='X'.
      I_LAYOUT-colwidth_optimize = 'X'.
      I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
      I_LAYOUT-no_totalline = 'X'.
    ENDFORM.                    "FILLLAYOUT
        Form  FILL_SORT
    FORM FILL_SORT .
      SORT-DOWN = 'X'.
      SORT-SPOS = 1.
      SORT-FIELDNAME = 'MATNR'.
      SORT-tabname = 'MARA'.
      APPEND SORT.
    ENDFORM.                    " FILL_SORT
         Form  EVENT_CALL
    FORM EVENT_CALL .
      DATA: I_EVENT LIKE V_EVENTS.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE = 0
        IMPORTING
          ET_EVENTS   = V_EVENTS.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " EVENT_CALL
        Form  POPULATE_EVENT
    FORM POPULATE_EVENT .
      READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
      IF SY-SUBRC EQ 0.
        WA_EVENT-FORM = 'USER_COMMAND'.
        MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
        WA_EVENT-NAME.
    READ TABLE V_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
                                          INTO WA_EVENT.
    IF SY-SUBRC = 0.
       move 'END_OF_PAGE' to WA_EVENT-FORM.
       MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
       WA_EVENT-NAME.
      endif.
      ENDIF.
    ENDFORM.                    "POPULATE_EVENT
    FORM END_OF_PAGE.
      write: sy-uline(50).
      skip.
      write:/40 'Page:', sy-pagno .
    ENDFORM.
    *&      Form  USER_COMMAND
    FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN '&IC1'.
          CASE RS_SELFIELD-FIELDNAME.
            when 'MATNR'.
              read table itab with key matnr = RS_SELFIELD-VALUE.
              if sy-subrc = 0.
                PERFORM DATA_RETRIEVAL_MAKT USING RS_SELFIELD-VALUE.
                PERFORM BUILD_FIELDCATLOG_MAKT.
                PERFORM FILLLAYOUT_MAKT.
                PERFORM DISPLAY_ALV_MAKT.
                CLEAR RS_SELFIELD.
              ENDIF.
          ENDCASE.
      ENDCASE.
    ENDFORM.                    "user_command
         Form  DATA_RETRIEVAL_MAKT
    FORM DATA_RETRIEVAL_MAKT USING TMATNR .
      SELECT MATNR
             MAKTX
             MAKTG
             UP TO 100 ROWS
             FROM MAKT
             INTO TABLE ITAB1
             WHERE SPRAS = 'EN' AND MATNR = TMATNR.
      LOOP AT ITAB1.
        data id_color type i VALUE 1.
        data id_colors(2) type c.
        id_color = id_color + 1.
        if id_color > 7.
          id_color = 1.
        endif.
        id_colors = id_color.
        concatenate 'C' id_colors '10' into itab1-color.
        modify itab1.
        CLEAR ITAB1.
      ENDLOOP.
    ENDFORM.                    "DATA_RETRIEVAL_MAKT
         Form  FILLLAYOUT_MAKT
    FORM FILLLAYOUT_MAKT .
      CLEAR I_LAYOUT.
      i_layout-zebra = 'X'.
      i_layout-info_fieldname = 'COLOR'.
      i_layout-box_fieldname = 'SEL'.
      I_LAYOUT-EDIT ='X'.
      I_LAYOUT-colwidth_optimize = 'X'.
      I_LAYOUT-window_titlebar = 'EXAMPLE FOR ALV GRID'.
    ENDFORM.                    " LAYOUT_MAKT
        Form  BUILD_FIELDCATLOG_MAKT
    FORM BUILD_FIELDCATLOG_MAKT .
      REFRESH FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-KEY = 'X'.
      WA_FIELDCAT-COL_POS = '1'.
    *WA_FIELDCAT-EDIT_MASK  = 'DD.MM.YYYY'.
      WA_FIELDCAT-EMPHASIZE = 'C510'.
      wa_fieldcat-seltext_m = 'MATERIAL NUMBER'.
      APPEND WA_FIELDCAT TO FIELDCAT.
      clear wa_fieldcat.
      WA_FIELDCAT-FIELDNAME = 'MAKTX'.
      WA_FIELDCAT-COL_POS = '2'.
      WA_FIELDCAT-EMPHASIZE = 'C710'.
      wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
      APPEND WA_FIELDCAT TO FIELDCAT.
      clear wa_fieldcat.
      WA_FIELDCAT-FIELDNAME = 'MAKTG'.
      WA_FIELDCAT-COL_POS = '3'.
      WA_FIELDCAT-EMPHASIZE = 'C210'.
      wa_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
      APPEND WA_FIELDCAT TO FIELDCAT.
      clear wa_fieldcat.
    ENDFORM.                    " BUILD_FIELDCATLOG_MAKT
         Form  DISPLAY_ALV_MAKT
    FORM TOP-OF-PAGE.
      REFRESH I_LISTHEADER.
      DATA: ld_lines type i,
            ld_linesc(10) type c,
            I_DATE(10) TYPE C,
            I_INFO LIKE WA_LISTHEADER-INFO.
      WA_LISTHEADER-TYP = 'H'.
      WA_LISTHEADER-INFO = 'MATERIAL DESCRIPTION FOR SELECTED NUMBER'.
      APPEND WA_LISTHEADER TO I_LISTHEADER.
      CLEAR WA_LISTHEADER.
      WA_LISTHEADER-TYP = 'S'.
      WA_LISTHEADER-KEY = 'DATE :'.
      CONCATENATE SY-DATUM+6(2) '.'
                           SY-DATUM+4(2) '.'
                           SY-DATUM(4) INTO I_DATE.
      WA_LISTHEADER-INFO = I_datE.
      APPEND WA_LISTHEADER TO I_LISTHEADER.
      CLEAR WA_LISTHEADER.
      describe table ITAB1 lines ld_lines.
      ld_linesc = ld_lines.
      concatenate 'TOTAL NUMBER OF RECORD SELECTED: ' ld_linesc
                        into I_INFO separated by space.
      WA_LISTHEADER-TYP  = 'A'.
      WA_LISTHEADER-INFO = I_INFO.
      append WA_LISTHEADER to I_LISTHEADER.
      clear: WA_LISTHEADER , I_INFO.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = I_LISTHEADER
          I_LOGO             = 'ENJOYSAP_LOGO'.
      I_END_OF_LIST_GRID       =
      I_ALV_FORM               =
    ENDFORM.                    "TOP-OF-PAGE
    *&      Form  DISPLAY_ALV_MAKT
          text
    FORM DISPLAY_ALV_MAKT .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM     = SY-REPID
          I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
          I_GRID_TITLE           = I_TITLE_MAKT
          IS_LAYOUT              = I_LAYOUT
          IT_FIELDCAT                       = fieldcat
        TABLES
          T_OUTTAB               = ITAB1
        EXCEPTIONS
          PROGRAM_ERROR          = 1
          OTHERS                 = 2.
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DISPLAY_ALV_MAKT
    Regards
    Ashok kumar

  • Function module for updating EIPO-STAWN

    Hi all,
    I need to update the standard table EIPO with the field STAWN. If there are any Function Modules existing for this, please do let me know.
    Your inputs are greatly appreciated.
    Thanks in advance,
    Vamsee.

    Hi,
    It looks like there is no FM available for this. Instead please check  the following link.
    Foreign Trade Data
    Thanks
    Ernesto.

  • Problem with field EIPO-SEGAL in Foreing trade

    Hi all,
    We have a problem with a field of foreign trade. The field is the EIPO-SEGAL. We customizing (path: Sales and Distribution -> Foreign Trade / Customs -> Periodic Declarations -> Control Data -> Inclusion and Exclusion Indicators -> Assign Item Categories for SD to Sales Orders / Assign to Item Categories for Deliveries SD) for a standard item category (TAX = Non-stock item) the exclusion indicator (01 = Exclusion indicator INTRASTAT). The material is a service provided to a client community, so it is not necessary to consider the bill in the Intrastat declaration (legal services do not have to testify).
    We have also cleared the GRWR condition for the particular sector of the material (50 = Services)
    The problem we detected is that this field is not automatically determined by generating a delivery document. This causes that when the invoice is generated, with reference to delivery, can not create the accounting document automatically require data on foreign trade.
    We have tried to locate some OSS note but without result for our problem.
    We do not know if it is a problem of customizing or is it a program error.
    Could anyone guide me on how to resolve this?
    I hope I explained it so that it understands (my English is not very good)
    Best Regards.
    Marga Lluva

    Hi all,
    We have a problem with a field of foreign trade. The field is the EIPO-SEGAL. We customizing (path: Sales and Distribution -> Foreign Trade / Customs -> Periodic Declarations -> Control Data -> Inclusion and Exclusion Indicators -> Assign Item Categories for SD to Sales Orders / Assign to Item Categories for Deliveries SD) for a standard item category (TAX = Non-stock item) the exclusion indicator (01 = Exclusion indicator INTRASTAT). The material is a service provided to a client community, so it is not necessary to consider the bill in the Intrastat declaration (legal services do not have to testify).
    We have also cleared the GRWR condition for the particular sector of the material (50 = Services)
    The problem we detected is that this field is not automatically determined by generating a delivery document. This causes that when the invoice is generated, with reference to delivery, can not create the accounting document automatically require data on foreign trade.
    We have tried to locate some OSS note but without result for our problem.
    We do not know if it is a problem of customizing or is it a program error.
    Could anyone guide me on how to resolve this?
    I hope I explained it so that it understands (my English is not very good)
    Best Regards.
    Marga Lluva

  • How to link tables EKKO, EKPO, EIKP and EIPO

    What I'm trying to do is create a view based on these four tables. EKPO contains multiple rows with the same values for EBELN. EKKO contains all distinct values for EBELN. I am trying to pick up all rows from both tables where EBELN in EKPO is the same as in EKKO. This is simple enough for a select statement to handle, without creating a view. The tricky part is linking the relevant rows selected from EKKO and EKPO to EIKP and EIPO. I tried using EXNUM to link EKKO, EIKP and EIPO, but I'm not sure that EXNUM contains distinct values for all 3 tables. In the case of EIKP it doesn't matter because the values for the fields I want (VORNU and VORNA) will be the same for the rows selected from EKKO and EKPO. The problem is with linking EIPO to my selections. If I knew that EXNUM was distinct for all rows in EIPO there would be no problem. However, I have seen some cases where multiple rows in EIPO have the same values for EXNUM. If I am using EXNUM in EIPO as a key field I have no way of being sure that the fields I want to pick up from EIPO (NACNU, BEHOE, NACD2, PRUEL and NACN3) contain the correct values I require. An example of what I am trying to do might make this clearer:
    Table EKKO:
    EBELN     BEDAT      WAERS
    420000001 10.08.2007 USD
    Table EKPO:
    EBELN     WERKS MATNR MENGE NETWR NETPR TXZ01
    420000001   3500  m1    q1    nw1   cnf1  mat1
    420000001   3500  m2    q2    nw2   cnf2  mat2
    420000001   3000  m3    q3    nw3   cnf3  mat3
    Table EIKP:
    VORNU  VORDA
    125/45 12.08.2007
    Table EIPO: (Corresponding to the above three rows in EKPO)
    NACNU BEHOE NACD2      PRUEL      NACN3
    1234  1001  30.08.2007 28.08.2007 xx
    1235  1002  27.08.2007 29.08.2007 yy
    1236  1003  18.08.2007 16.08.2007 zz
    So basically, given the above table entries, I want that the result of my selection should be:
                   | ROW1        | ROW2       | ROW3
    EBELN:   |  420000001   |  420000001  | 420000001
    BEDAT:   |  10.08.2007   |  10.08.2007  | 10.08.2007
    WAERS: |  USD             |  USD           | USD
    WERKS: |  3500             |  3500           | 3000
    MATNR:  |  m1               |  m2              | m3
    MENGE: |  q1                |  q2               | q3
    NETWR: |  nw1              |  nw2             | nw3      
    NETPR:  |  cnf1              |  cnf2            | cnf3
    TXZ01:    |  mat1             |  mat2           | mat3
    VORNU: |  125/45           |  125/45        | 125/45
    VORDA: |  12.08.2007     |  12.08.2007   | 12.08.2007
    NACNU: |  1234              |  1235            | 1236
    BEHOE: |  1001              |  1002            | 1003
    NACD2:  |  30.08.2007     |  27.08.2007   | 18.08.2007
    PRUEL:  |  28.08.2007   | 29.08.2007   | 16.08.2007
    NACN3:  |  xx               | yy                | zz
    Sorry for the extremely long post. If anyone can shed some light on this I'd really appreciate it. Thanks.
    Kal

    select req. fields + a~exnum
    from ekko as a
    inner join ekpo as b
    on aebeln = bebeln
    into table gt_ekko_ekpo
    where.........if u any conditions...
    select req.fields from
    eikp
    into table gt_eikp
    for all entries in gt_ekko_ekpo
    where exnum = gt_ekko_ekpo-exnum.
    select req.fields
    from eipo
    into table gt_eipo
    for all entries in gt_eikp
    where exnum = gt_eikp-exnum.
    and also ekpo and eipo are line items tables , so for each exnum, will have multiple lines items in eipo table.
    imp. the above and check whether, getting the req. result or not.
    next in view , maintain rel. among these 4 tables.
    ekko -ekpo, ekko-eikp, eikp-eiko.

  • How to Update the INTRASTAT field for Inclusion/Exclulsion (EIPO-SEGAL)

    I would need to know how to update this field in transaction ENPA when the invoice is already posted ( so we cannot use the VF02) from an ABAP program that update the INTRASTAT data for an Exportation.
    This field can be found in EIPO-SEGAL
    Thanks in advance.

    Hi
    See the Std Doc of this field
    Exclusion/Inclusion indicator for declara. to authorities
    Using this indicator, you can control if a document or a document item (SD billing document, MM purchase order) will be excluded from or included in one or more types of declarations to the authorities.
    Proceed as follows:
    1. Define the inclusion or exclusion indicator. Define for which declaration type an inclusion or exclusion is to take place.
    2. Assign the indicator to the document or document item that you want to include in or exclude from a declaration. The assignment takes place in the Foreign Trade data of the document.
    3. If you also want to exclude document items with particular item types from a declaration, assign an exclusion indicator to the corresponding item types in Customizing.
    Example
    You want to define an exclusion indicator that excludes documents from the EXTRASTAT and KOBRA declaration. Create an exclusion indicator and select the "exclusion column" in the definition of exclusion indicators for the EXTRASTAT and KOBRA declaration types.
    As soon as this indicator is assigned to a document, this document will not be included in the EXTRASTAT and KOBRA declarations.
    Note
    Inclusion or exclusion indicators assigned at FT data header level in the document apply to all document items if there is no other indicator at item level.
    in our case the values for this field are '01'
    take the help of a functional consultant to populate this field
    Reward if useful
    regards
    Anji

  • How to populate EIPO-HERKL in VL01N for domestic shipments

    hi experts,
    i am trying to populate the field 'country of origin' (EIPO-HERKL) while creating deliveries using VL01N. the field gets populated for export shipments, but remains blank in case of domestic shipments. i tried user exit EXIT_SAPLV50E_003, but it is not getting hit for domestic shipments. kindly advise other alternatives in terms of user exits / BADIs.
    thanks and regards,
    Gurleen

    Hello, I have the same problem , how to populate EIPO-HERKL in VL01N for domestic shipments ?
    感谢您的协助和持续支持
    Thanks again for your assistance & continued support.
    Fiorenzo Di Marco

  • BADI/user exit to be used EIPO-TEXT1 field of the outbound delivery line item?

    Hi ABAPERS,
    Need some help on an enhancement with reference to outbound delivery in SCM module.I have a requirement for an enhancement to ensure that the License Check is performed for each Delivery Item based on the Material`s Export Control Parameters and updating the license number identified against each of the line item in the outbound delivery in a predetermined field.
    Basically, Using enhancement, find the appropriate License based on the information fetched from the Delivery Document and check if this is matching with the available License Information. Then the appropriate License fetched should be visible in the License Log of the Delivery Document.
    The valid License No. fetched should be updated at the Delivery Document Item – Foreign Trade – Comments Tab-Description Field 1.(ie. populate the license T606Z-GENNR in EIPO-TEXT1 field of the outbound delivery line item.).
    Could you please advise on the BADI/user exit to be used in this case. Request your inputs.

    I found the solution myself. I was actually not needing a user-exit to do this. I just simply solved it by using function modules READ_TEXT and SAVE_TEXT in a customer program.
    Regards.

  • User Exit for VL01N/VL2N to modify eipo-herkl

    Hi.
    I want to modify value of eipo-herkl(Country of origin) when save data, in T-CD VL01N/VL02N.
    I find the User-Exit: MV50AFZ1(form: USEREXIT_SAVE_DOCUMENT).
    But it cannot be done.
    Can anybody tell me, how can i update eipo-herkl instead of default value in T-CD VL01N/VL02N when push save button?
    regards,
    Huang

    Hi all, thank you for response.
    The User-Exit EXIT_SAPLV50E_003 is for VL01N only, and executed only one time when you input item data. It is  for export item data default.
    In EXIT_SAPLV50E_003, you can not change the value of eipo-herkl.
    What I want is to change value of eipo-herkl when Save button is pushed, for VL01N and VL02N both.
    Is there any Badi can do it?
    regards,
    Huang

  • Trying to  link EIPO foreign trade data to VBAK,LIPS,LIKP,KNA1,TVROT

    Hi
    I am trying to link table EIKO - Foreign Trade data on delivery item data to my existing Quickview which has the following tables,
    VBAK - Sales Doc header
    LIPS - Delivery item
    LIKP - Delivery header
    TVROT - Route
    KNA1 - general data in customer master
    But when added SAP says 'no relationship Found'
    Do i need to add another table as a common link ?- if so which one?
    Many thanks for your help and advise
    Tony

    Hi
    I'm not sure what you want to do. But the link is in EIKP-REFNR. With this field you can link to PO, deliv, invoice and so on.
    I hope this helps you
    Regards
    Eduardo

  • Retreive company code data  from t001k and plants from t001w based on bwkey

    here is my sample code pls.
      pls look into the  perform <b>PERFORM F_GET_COMPANY_CODE</b>.
    and also the link between the tables (custom) like ysda_exp_prtlog,
         Purpose:  The Monthly export declaration summarizes all SAD     *
                   export documents produced by the system. For each     *
                   plant in France this declaration has to be handed to  *
                   the Customs Authorities, together with copies of all  *
                   invoices mentioned in the report.                     *
         Preds/Successors : -                                            *
         External Datasets: -                                            *
         INCLUDE PROGRAM  : YYSDFORM                                     *
           MODIFICATION LOG
    Date  | Change Number | Initials | Description
    *01/10/03| G9DK943416    | AXJIRAP  | INITIAL PROGRAM                  *
    *03/10/03| G9DK943416    | TXHONGP  | CREATE PRINT-PROGRAM FOR ACCELIO *
    *26/10/03| G9DK943416    | KXSAWAS  | Merge all Accelio forms into one *
    *02/02/04| G9DK959869    | KXSAWAS  | Bug fix for Intercompany invoice *
           |               |          | and updating printing no. in     *
           |               |          | YSDA_DOC_NUMBER.
    *09/02/04| G9DK960368    | KXSAWAS  | TICKET AM6219029 various fix     *
           | G9DK960972    | KXUMNAUY | -Add yuei for download file      *
           | G9DK961073    |          | -Calculate invoice in case       *
           | G9DK961190    |          |  invoce is not yet made          *
           | G9DK961211    |          | -Fixed message type when there is*
           |               |          | no data found                    *
    *18/02/04| G9DK961418    | PXSOPHO  | -Shift the position in download  *
           |               |          | file
    *26/02/04| G9DK962077    | kxumnauy | TICKET AM6219029 various fix     *
           | G9DK962238    |          | TICKET AM6289971 fix export file *
           | G9DK962271    |          |
    *18/03/04| G9DK963806    | PXSOPHO  | TICKET AM6442955,AM6384438
           | G9DK964432    |          | - print only 4 chars of the
           | G9DK964590    |          | export procedure                 *
           |               | KXUMNAUY | - Fix internal report
           |               | KXSAWAS  | - Fix invoice currency to EUR.
           |               |          | - Fix SUASUNIC probelm when
           |               |          |   download file
    *09/06/04| G9DK968994    | KXUMNAUY |TICKET AM6789203
           | G9DK969188    |          |- Fix box 4 to print the department
           | G9DK969246    |          |code(first 2 char of the postal)
           | G9DK969319    |          |- Fix to print all invoice numbers
           | G9DK969345    |          |reported in the section 3
           | G9DK969466    |          |- Fix in case invoice currency is
           |               |          |not EUR, use local currency from
           |               |          |accounting document
           |               |          |- Fix in case there are different
           |               |          |codes are loaded on one truck
           |               |          |- Fix the invoice amount in column
           |               |          |27 has to be the amount relating to
           |               |          |the line item
           |               |          |- Fix the issue that Pro forma
           |               |          |invoice for STO (ZF8)shouldn't be
           |               |          |counted to be the final Interco
           |               |          |invoice
    *20/08/04| G9DK972875    | KXUMNAUY |AM7387219
           | G9DK973032    |          |-Exclude samples from the internal
           |               |          |sections 1 and 2
           |               |          |-Data pages: Column 11. When the
           |               |          |invoice amount is less then 1.000
           |               |          |EUR and the quantity is less then.
           |               |          |1.000 then "******" (6 x *) has to
           |               |          |be printed
    *07/02/05| G9DK983160    | RXBOONG  |AM8522207
           | G9DK983168    |          |Fix download to unix file
    *17/08/06| G9DK9A02DZ    | NKONGNG  |AM1983727:
           | G9DK9A02IK    |          |-do not show sample orders
           |               |          | (order type “FD” or ”ZFD”)
           |               |          |AM2985407:
           |               |          |-skip all “T2L*” documents
    *15/12/06| G9DK9A05GB    | ZZPWANA  | AM10208238
           |               | The Monthly Export Declaration for plant FR95
           |               | is showing invoice amounts in SGD in column
           |               | 27, where amounts in EUR should be shown. As
           |               | the amounts are labeled as EUR in column 26
           |               | this is unacceptable.The second issue is that
           |               | there are no invoice numbers shown in column
           |               | REM.
           |               | >> ZZPWANA:AM10208238:G9DK9A05GB <<
           |               | >> ZZPWANA:AM10208238:G9DK9A05GJ <<
    *05/02/07| G9BK900812    | PPATTAN  |AM10687113
           | G9DK9A0661    |          |Correction to the Monthly Export
           |               |          |Declaration – alpha character to
           |               |          |numeric field
           |               |
    *09/07/07| G9DK9A09ND    |VSRKODA   Replace plant with companycode,add
                                      new  column plant ,add new logic to
                                      verify that we had received *  *
                                      BAEcOMPLETE RESPONSE (fROM FC)
                                      for all the export transactions
    REPORT YSDF5092 LINE-SIZE   310
                    LINE-COUNT   65
                    NO STANDARD PAGE HEADING
                    MESSAGE-ID YSD_GENERAL.
         INCLUDE PROGRAM FOR ACCELIO                                     *
    INCLUDE YYSDFORM.    "Include for Accelio Print Process
    INCLUDE YSDF006B_INCLUDE.
         T A B L E S                                                     *
    TABLES: NAST.
         T Y P E S                                                       *
    TYPES : BEGIN OF TY_RAW,
              WERKS LIKE YSDA_EXP_PRTLOG-YY_PLANT,
    *-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
              BWKEY  LIKE  YSDA_EXP_PRTLOG-YY_PLANT,
              VALUE_FROM  LIKE  YCACEDI-VALUE_FROM,
    *<-- End of G9DK9A09ND
              HEADER_SHT LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
              INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,  "G9DK962238
              PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
              PRINT_TIME LIKE YSDA_EXP_PRTLOG-YY_PRINT_TIME,
              DOCUMENT_CODE LIKE YSDA_EXP_PRTLOG-YY_DOCUMENT_CODE,
              HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
              DELIVERY LIKE YSDA_EXP_PRTLOG-YY_DELIVERY,
              INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
              EX_RATE LIKE YSDA_EXP_PRTLOG-YY_EX_RATE,
              CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
             INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO, "G9DK962238
              EXTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_EXTERNAL_NO,
              COMMODITY LIKE YSDA_EXP_PRTLOG-YY_COMMODITY,
              REPORT_FLAG LIKE YSDA_EXP_PRTLOG-YY_REPORT_FLAG,  "G9DK962077
            END OF TY_RAW.
    TYPES : BEGIN OF TY_DATA,
              HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
              INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
              PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
              ZOLLA LIKE EIKP-ZOLLA,
              STGBE LIKE EIKP-STGBE,
              EXPVZ LIKE EIKP-EXPVZ,
              CONTA LIKE EIKP-CONTA,
              IEVER LIKE EIKP-IEVER,
              PDEST LIKE KNA1-LAND1,
              1DEST LIKE KNA1-LAND1,
              COMMODITY LIKE YSDA_EXP_PRTLOG-YY_COMMODITY,
              STATISTIC TYPE I,
              LFIMG LIKE LIPS-LFIMG,
              L15 TYPE I,
              REGFI(2),
              CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
              INVOICE_AMT TYPE I,
              ZDELN LIKE VBRK-VBELN,
              LIVRE(4),
              EXPRF LIKE EIPO-EXPRF,
              EXART LIKE EIPO-EXART,
              NTGEW LIKE LIKP-NTGEW,
              YY_SEQTAXNO LIKE VBRK-YY_SEQTAXNO,                "G9DK959869
            END OF TY_DATA.
    TYPES : BEGIN OF TY_HEADER,
              HEADER_SHT LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
              HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
              PRINT_NO LIKE YSDA_DOC_NUMBER-YY_PRINT_NO,
              WERKS LIKE T001W-WERKS,
    *-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
              BUKRS  LIKE T001K-BUKRS,
              BWKEY  LIKE  T001K-BWKEY,
              VALUE_FROM LIKE YCACEDI-VALUE_FROM,
    *<-- End of G9DK9A09ND
              NAME1 LIKE T001W-NAME1,
              COM_NAME LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              POST_LOC LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              CUST_OFFICE LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              POST_CODE LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              DATE(25),
              ETAB LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              NO_SIREN LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              TEXT2 LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              TEXT5 LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              TEXT7A LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              TEXT7B LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
              TEXT8 LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
            END OF TY_HEADER.
    TYPES : BEGIN OF TY_DELIVERY,
              VBELN LIKE LIKP-VBELN,
              POSNR LIKE LIPS-POSNR,                            "G9DK961190
              VBUND  LIKE LIKP-VBUND,
              LFIMG LIKE LIPS-LFIMG,
              MEINS LIKE LIPS-MEINS,
              EXNUM LIKE LIKP-EXNUM,
              KUNNR LIKE LIKP-KUNNR,
              KUNAG LIKE LIKP-KUNAG,
              L15 LIKE LIPS-LFIMG,
              WADAT_IST LIKE LIKP-WADAT_IST,
              LDDAT LIKE LIKP-LDDAT,
              NTGEW LIKE LIKP-NTGEW,
              MATNR LIKE MARA-MATNR,
              VRKME LIKE LIPS-VRKME,                            "G9DK960368
              VGBEL LIKE LIPS-VGBEL,                            "G9DK961190
              VGPOS LIKE LIPS-VGPOS,                            "G9DK961190
              UECHA LIKE LIPS-UECHA,                            "G9DK961190
            END OF TY_DELIVERY.
    TYPES : BEGIN OF TY_INVOICE,
              ZDELN LIKE VBRK-VBELN,
              NETWR LIKE VBRK-NETWR,
              WAERK LIKE VBRK-WAERK,
              KURRF LIKE VBRK-KURRF,
              FKIMG LIKE VBRP-FKIMG,
              VRKME LIKE VBRP-VRKME,
            END OF TY_INVOICE.
    TYPES : BEGIN OF TY_INVOICE_TEMP,
              ZDELN LIKE VBRK-VBELN,
              FKART LIKE VBRK-FKART,
              YY_SEQTAXNO LIKE VBRK-YY_SEQTAXNO,
            END OF TY_INVOICE_TEMP.
    TYPES : BEGIN OF TY_EXPORT,
              EXNUM LIKE EIKP-EXNUM,
              ZOLLA LIKE EIKP-ZOLLA,
              STGBE LIKE EIKP-STGBE,
              EXPVZ LIKE EIKP-EXPVZ,
              CONTA LIKE EIKP-CONTA,
              IEVER LIKE EIKP-IEVER,
              EXPRF LIKE EIPO-EXPRF,
              EXART LIKE EIPO-EXART,
              EXPOS LIKE EIPO-EXPOS,                            "G9DK961190
              STAWN LIKE EIPO-STAWN,                            "G9DK961190
            END OF TY_EXPORT.
    TYPES : BEGIN OF TY_HFILE,
              POS1(8),
              POS2(4),
              POS3(2),
              POS4,
              POS5(8),
              POS6(4),
              POS7(14),
              POS8(20),
              POS9(20),
              POS10(20),
              POS11(8),
            END OF TY_HFILE.
    TYPES : BEGIN OF TY_DFILE,
             pos1(18),                                        "G9DK961418
             POS1(19),                                        "G9DK961418
              POS1(18),                                         "G9DK962238
              POS2(4),
              POS3(8),
              POS4(6),
              POS5(6),
              POS5A(4),
              POS6(9),
              POS6A(5),                                         "G9DK962238
              POS7(5),
              POS8(5),
              POS8A(22),
              POS9,
              POS10,
              POS11,
              POS12,
              POS13(5),
              POS13A,
              POS14(13),
              POS14A(31),
              POS15(2),
              POS16(2),
              POS16A(3),
              POS17(4),
              POS17A(3),
              POS18(3),
              POS18A(9),                                        "G9DK962238
              POS19,
              POS20(11),
              POS21(11),
              POS22(10),
              POS23(10),
              POS23A(40),
              POS24(4),
              POS25(3),
              POS26,
              POS26A,
              POS27,
              POS28(3),
              POS29,
            END OF TY_DFILE,
            BEGIN OF TY_TVKO,                                   "G9DK959869
              VKORG     LIKE TVKO-VKORG,                        "G9DK959869
              BUKRS     LIKE TVKO-BUKRS,                        "G9DK959869
              KUNNR     LIKE TVKO-KUNNR,                        "G9DK959869
            END OF TY_TVKO.                                     "G9DK959869
         D A T A                                                         *
    DATA: GV_CUST_NUM LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
          GV_SIREN LIKE YSDA_DOC_FIXTEXT-YY_TEXT,
          GV_REP_NO LIKE YSDA_DOC_NUMBER-YY_PRINT_NO,
          GV_SEQ_NO TYPE I VALUE 0,
          GV_PRNTER     LIKE TSP01-RQDEST,      "Printer Name
          GV_DATE(8)   TYPE C,       "DATE
          GV_MONTH(2)  TYPE C,       "MONTH
          GV_DAY(2)    TYPE C,       "DAY
          GV_YEAR(4)   TYPE C,       "YEAR
          GV_ADD1(30)  TYPE C,       "TEXT-SIMBOL H01A
          GV_ADD2(30)  TYPE C,       "TEXT-SIMBOL H01B
          GV_COUNT     TYPE I,       "COUNT SEQUENCE
          GV_SEQUENCE(5) TYPE C,     "SEQUENCE
          GV_COPYNO    TYPE C,       "NUMBER OF COPY
          GV_DATETEMP(10)  TYPE C,   "DATE
          GV_SECTIONPAGE(2)   TYPE C,   "NO. OF PAGE IN SECTION
          GV_ITEM             TYPE I,   "NO. OF ITEM
          GV_EUR       LIKE VBRK-WAERK VALUE 'EUR',
          GV_INVOICE_NO       LIKE VBRK-VBELN,                  "G9DK959869
          GV_INVOICE_INTERCOM LIKE VBRK-VBELN,                  "G9DK959869
          GV_PRO_FORMA_STO    LIKE VBRK-VBELN,                  "G9DK969466
          GV_TEXT46           LIKE YSDA_DOC_FIXTEXT-YY_TEXT.    "G9DK959869
         C O N S T A N T S                                               *
    CONSTANTS: GC_M VALUE 'M',
               GC_J VALUE 'J',
               GC_C VALUE 'C',
               GC_D VALUE 'D',
               GC_E VALUE 'E',
               GC_F VALUE 'F',
               GC_U VALUE 'U',
               GC_X VALUE 'X',
               GC_0 VALUE '0',
               GC_2 VALUE '2',
               GC_3 VALUE '3',
               GC_MEXP(4) VALUE 'MEXP',
               GC_ZAAD(4) VALUE 'ZAAD',
               GC_ZSAD(4) VALUE 'ZSAD',
               GC_CY(2) VALUE 'CY',
               GC_M1(2) VALUE 'M1',
               GC_M2(2) VALUE 'M2',
               GC_M4(2) VALUE 'M4',
               GC_M5(2) VALUE 'M5',
               GC_M6(2) VALUE 'M6',
               GC_M7(2) VALUE 'M7',
               GC_M8(2) VALUE 'M8',
               GC_M9(2) VALUE 'M9',
               GC_C3(2) VALUE 'C3',
               GC_00(2) VALUE '00',
               GC_C1(2) VALUE 'C1',
               GC_C2(2) VALUE 'C2',
               GC_SI(2) VALUE 'SI',
               GC_N1(2) VALUE 'N1',
               GC_N2(2) VALUE 'N2',
               GC_FR(2) VALUE 'FR',
               GC_EN(2) VALUE 'EN',
               GC_TON LIKE T006-MSEHI VALUE 'TO',
               GC_L15 LIKE T006-MSEHI VALUE 'L15',
               GC_GRWR(4) VALUE 'GRWR',
               GC_SAISUNIC(8) VALUE 'SAISUNIC',
               GC_000000(6) VALUE '000000',
              GC_1 VALUE '1',                                 "G9BK900812
               GC_1 LIKE PLFH-MGVGW VALUE '1',                  "G9BK900812
               GC_DOT(1) VALUE '.',
               GC_TYP_EU(3)  TYPE C VALUE 'EU ',
               GC_TYP_EX(3)  TYPE C VALUE 'EX ',
               GC_TYP_COM(3) TYPE C VALUE 'COM',
               GC_BIS(3)     TYPE C VALUE 'BIS',
               GC_EUR(3)     TYPE C VALUE 'EUR',
               GC_IV(2)      TYPE C VALUE 'IV',
               GC_ZTDR(4)    TYPE C VALUE 'ZTDR',
               GC_ZF8(3)     TYPE C VALUE 'ZF8',
               GC_ZIV(3)     TYPE C VALUE 'ZIV',
               GC_FALSE(1)   TYPE C VALUE ' ',                 "yuie
               GC_STRUCT(31) TYPE C VALUE 'DATA',              "yuie
               GC_TOTAL TYPE VTXTM VALUE 'TOTAL NET UNIT PRICE',"G9DK960368
            GC_INTER_PERCENT TYPE VTXTM VALUE 'Inter-company %'."G9DK960368
         I N T E R N A L  T A B L E S                                    *
    DATA: BEGIN OF IT_DOC OCCURS 0,
            VBELN LIKE LIKP-VBELN,
            FKART LIKE VBRK-FKART,
            ERDAT LIKE VBFA-ERDAT,
            ERZET LIKE VBFA-ERZET,
            ZDELN LIKE VBRK-VBELN,
          END OF IT_DOC,
          BEGIN OF IT_VBRK OCCURS 0,
            ZDELN LIKE VBRK-VBELN,
          END OF IT_VBRK,
          BEGIN OF IT_SALES OCCURS 0,
            VBELN LIKE LIKP-VBELN,
            VBELV LIKE VBAK-VBELN,     "Order Number
            AUART LIKE VBAK-AUART,
            KNUMV LIKE VBAK-KNUMV,
            KALSM LIKE VBAK-KALSM,                              "G9DK960368
            WAERK LIKE VBAK-KALSM,                              "G9DK960368
            KNUMA LIKE VBAK-KNUMA,                              "G9DK960368
          END OF IT_SALES,
    *--> begin of G9DK961190 kxumnauy 13 feb 2004
          BEGIN OF IT_VBAP OCCURS 0,
             VBELN   LIKE  VBAK-VBELN,           " Sale doc.
             POSNR   LIKE  VBAP-POSNR,           " Sales document item
             KNUMV   LIKE  VBAK-KNUMV,           " No. of the document cond.
             KALSM   LIKE VBAK-KALSM,
             WAERK   LIKE VBAK-KALSM,
             KNUMA   LIKE VBAK-KNUMA,
          END OF IT_VBAP,
    *<-- end of G9DK961190
          BEGIN OF IT_KSCHL OCCURS 0,
            KNUMV LIKE KONV-KNUMV,
            KBETR LIKE KONV-KBETR,
            WAERS LIKE KONV-WAERS,                              "G9DK960368
          END OF IT_KSCHL,
          BEGIN OF IT_VBKD OCCURS 0,
            VBELV LIKE VBAK-VBELN,
            INCO1 LIKE VBKD-INCO1,
          END OF IT_VBKD,
          BEGIN OF IT_COUNTRY OCCURS 0,
            KUNNR LIKE KNA1-KUNNR,
            LAND1 LIKE KNA1-LAND1,
          END OF IT_COUNTRY,
          BEGIN OF IT_CNO OCCURS 0,
            HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
            INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
            PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
            INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
            CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
    *-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
            PLANT    LIKE YSDA_EXP_PRTLOG-YY_PLANT,
    *<--End of  G9DK9A09ND
          END OF IT_CNO,
          BEGIN OF IT_LNO OCCURS 0,
            HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
            INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
            PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
            INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
            CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
    *-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
            PLANT    LIKE YSDA_EXP_PRTLOG-YY_PLANT,
    *<--End of  G9DK9A09ND
           END OF IT_LNO,
          BEGIN OF IT_LINV OCCURS 0,
            HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
            INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
            PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
            INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
            CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
    *-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
            PLANT    LIKE YSDA_EXP_PRTLOG-YY_PLANT,
    *<--End of  G9DK9A09ND
            EX_RATE LIKE YSDA_EXP_PRTLOG-YY_EX_RATE,
            LFIMG LIKE LIPS-LFIMG,
            ZDELN LIKE VBRK-YY_SEQTAXNO,
          END OF IT_LINV,
          BEGIN OF IT_DIFF OCCURS 0,
            HEADER_TYP LIKE YSDA_EXP_PRTLOG-YY_HEADER_TYP,
            VBELV LIKE VBAK-VBELN,
            INTERNAL_NO LIKE YSDA_EXP_PRTLOG-YY_INTERNAL_NO,
            PRINT_DATE LIKE YSDA_EXP_PRTLOG-YY_PRINT_DATE,
            INVOICE_AMT LIKE YSDA_EXP_PRTLOG-YY_INVOICE_AMT,
            CURRENCY LIKE YSDA_EXP_PRTLOG-YY_CURRENCY,
    *-->Begin of G9DK9A09ND -VSRKODA -16/07/2007
            PLANT    LIKE YSDA_EXP_PRTLOG-YY_PLANT,
    *<--End of  G9DK9A09ND
            EX_RATE LIKE YSDA_EXP_PRTLOG-YY_EX_RATE,
            LFIMG LIKE LIPS-LFIMG,
            NETWR LIKE VBRK-NETWR,
            WAERK LIKE VBRK-WAERK,
            KURRF LIKE VBRK-KURRF,
            FKIMG LIKE VBRP-FKIMG,
            ZDELN LIKE VBRK-YY_SEQTAXNO,
          END OF IT_DIFF.
    *-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
    Data :Begin  of it_t001k occurs 0,
          bwkey  like t001k-bwkey,
          bukrs   like t001k-bukrs,
          werks   like t001w-werks,
        end of it_t001k.
    TABLES: T001W.
    Data :Begin  of it_t001w occurS 0,
          bwkey  like t001w-bwkey,
         werks   like t001w-werks,
        end of it_t001w.
    *<-- End of G9DK9A09ND
    *-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
    DATA: BEGIN OF IT_SIREN OCCURS 0,
          VALUE_FROM  LIKE YCACEDI-VALUE_FROM,
          MESTYP  LIKE  YCACEDI-MESTYP,
          DIRECT   LIKE YCACEDI-MESTYP,
          ORG_LEVEL  LIKE YCACEDI-ORG_LEVEL,
          ORG_VALUE  LIKE YCACEDI-ORG_VALUE,
          FIELDNAME  LIKE YCACEDI-FIELDNAME,
        END OF IT_SIREN.
    *<-- End of G9DK9A09ND
    *--> Begin of G9DK959869 KXSAWAS 02/02/2004
    DATA: BEGIN OF IT_ORDER OCCURS 0,
            VBELN LIKE VBAK-VBELN,        " Order no.
            VKORG LIKE VBAK-VKORG,        " Sale Org. of order
          END OF IT_ORDER,
          BEGIN OF WA_T001W,
            WERKS  LIKE   T001W-WERKS,    " Plant
            BUKRS  LIKE   T001K-BUKRS,
    *-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
            BWKEY  LIKE   T001K-BWKEY,
    *<-- End of G9DK9A09ND
            VKORG  LIKE   T001W-VKORG,    " Sale Org. of plant
            COUNC  LIKE   T001W-COUNC,    " Country code
            LAND1  LIKE   T001W-LAND1,    "
            ADRNR  LIKE   T001W-ADRNR,
            ORT01  LIKE   T001W-ORT01,
          END OF WA_T001W,
          BEGIN OF IT_LIKP OCCURS 0,
            VBELN  LIKE LIKP-VBELN,        " Delivery
            VKORG  LIKE LIKP-VKORG,        " Sale organization
            KUNNR  LIKE LIKP-KUNNR,        " Ship-to party
            INCO1  LIKE LIKP-INCO1,        " Incoterm part1
            INCO2  LIKE LIKP-INCO2,        " Incoterm part2
          END OF IT_LIKP.
    *<-- End of G9DK959869
    DATA: IT_RAW TYPE TABLE OF TY_RAW WITH HEADER LINE,
          IT_DATA TYPE TABLE OF TY_DATA WITH HEADER LINE,
          IT_EXPORT TYPE TABLE OF TY_EXPORT WITH HEADER LINE,
          IT_DELIVERY TYPE TABLE OF TY_DELIVERY WITH HEADER LINE,
          IT_INVOICE TYPE TABLE OF TY_INVOICE WITH HEADER LINE,
          IT_FILE TYPE TABLE OF TY_DFILE WITH HEADER LINE,
          IT_HEADER TYPE TABLE OF TY_HEADER WITH HEADER LINE,
          IT_SELTAB TYPE TABLE OF RSPARAMS WITH HEADER LINE,
          IT_INVOICE_TEMP TYPE TABLE OF TY_INVOICE_TEMP WITH HEADER LINE,
          IT_TVKO_ORDER   TYPE TABLE OF TY_TVKO WITH HEADER LINE,"G9DK959869
          IT_DEL TYPE TABLE OF TY_DELIVERY WITH HEADER LINE.    "G9DK960368
    *--> Begin of G9DK960368 KXSAWAS 05/02/2004
    DATA: BEGIN OF YUIE_ITAB OCCURS 0,
           RECID(31),
           DATA(1024).
    DATA: END   OF YUIE_ITAB.
    TYPE-POOLS: YUIEX.
    *DATA : it_komv2     LIKE komv   OCCURS 0 WITH HEADER LINE. "G9DK961190
    *<-- End of G9DK960368
    *Begin of G9DK964590 kxumnauy 30 mar 2003
    DATA: BEGIN OF KEY_ZBAT01,
            MANDT           TYPE ZBAT01-MANDT,
            REPID           TYPE ZBAT01-REPID,
            FUNCT           TYPE ZBAT01-FUNCT,
          END OF KEY_ZBAT01.
    *End of G9DK964590
    *--> Begin of G9DK968994 kxumnauy
    DATA: BEGIN OF IT_INVOICE_ITEM OCCURS 0,
            VBELN LIKE VBRP-VBELN,
            POSNR LIKE VBRP-POSNR,
            NETWR LIKE VBRP-NETWR,
            VGBEL LIKE VBRP-VGBEL,
            VGPOS LIKE VBRP-VGPOS,
            MATNR LIKE VBRP-MATNR,
             fkimg LIKE VBRP-fkimg,               "G9DK969188
             vrkme LIKE VBRP-vrkme,               "G9DK969188
            ntgew LIKE VBRP-ntgew,                              "G9DK969188
            gewei LIKE VBRP-gewei,                              "G9DK969188
          END OF IT_INVOICE_ITEM.
    *<-- End of G9DK968994
    RANGES: S_LAST FOR SY-DATUM,
            S_PERIOD FOR SY-DATUM.
         W O R K A R E A S                                               *
    DATA: WA_RAW TYPE TY_RAW,
          WA_DATA TYPE TY_DATA,
          WA_EXPORT TYPE TY_EXPORT,
          WA_DOC LIKE IT_DOC,
          WA_SALES LIKE IT_SALES,
          WA_SALES1 LIKE IT_SALES,                              "G9DK972875
          WA_KSCHL LIKE IT_KSCHL,
          WA_VBKD LIKE IT_VBKD,
          WA_COUNTRY LIKE IT_COUNTRY,
          WA_DELIVERY TYPE TY_DELIVERY,
          WA_INVOICE TYPE TY_INVOICE,
          WA_LINV LIKE IT_LINV,
          WA_CNO LIKE IT_CNO,
          WA_LNO LIKE IT_LNO,
          WA_DIFF LIKE IT_DIFF,
          WA_HEADER TYPE TY_HEADER,
          WA_VBRK LIKE IT_VBRK,
          WA_FILE TYPE TY_DFILE,
          WA_HFILE TYPE TY_HFILE,
          WA_SELTAB TYPE RSPARAMS,
          WA_INVOICE_TEMP TYPE TY_INVOICE_TEMP,
          WA_TVKO_PLANT TYPE TY_TVKO,                           "G9DK959869
          WA_LIKP       LIKE IT_LIKP,                           "G9DK959869
          WA_DEL        LIKE IT_DELIVERY,                       "G9DK960368
          WA_KOMK       LIKE KOMK,                              "G9DK960368
    *-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
          WA_T001K     LIKE T001K.
    *<-- End of G9DK9A09ND
         S E L E C T   -   O P T I O N S   /   P A R A M E T E R S       *
    SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-001.
    *Begin of change  VSRKODA
    PARAMETERS: P_BUKRS LIKE T001K-BUKRS,
               S_WERKS LIKE T001W-WERKS,
    *end of change   VSRKODA
                P_MNR LIKE T247-MNR,
                P_YEAR LIKE VBRK-GJAHR.
    SELECT-OPTIONS:   S_WERKS  FOR T001W-WERKS.
    PARAMETERS: P_PRNTER  LIKE TSP01-RQDEST.  "Printer Name
              p_file AS CHECKBOX.                            "yuie
    SELECTION-SCREEN END OF BLOCK SCR1.
    *--> Begin of G9DK960368 KXSAWAS 05/02/2004
    *--- Comment out ---
    *SELECTION-SCREEN BEGIN OF BLOCK b2
                   WITH FRAME TITLE text-t01.
    *PARAMETERS:     p_fname LIKE rlgrap-filename .
    *SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-T01.
    PARAMETERS: P_FILE AS CHECKBOX.
    PARAMETERS: P_FNAME   TYPE EPSFILNAM LOWER CASE,  "interface UNIX file
                P_SPATH   TYPE EPSDIRNAM DEFAULT
                '/opt/mobil/batch/gem/other/common/data/' LOWER CASE.
    SELECTION-SCREEN END OF BLOCK B2.
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-T03.
    PARAMETERS: P_INTID    TYPE YINT_IDS     DEFAULT 'DCG_REPORT',
                P_SUBID    TYPE YINT_SUB_IDS DEFAULT 'MAIN'.
    SELECTION-SCREEN END OF BLOCK B3.
    *<-- End of G9DK960368
    AT SELECTION SCREEN
    AT SELECTION-SCREEN.
    To validate the data that user entered in the selection screen
      PERFORM F_VALIDATE_DATA.
      PERFORM F_GET_COMPANY_CODE.
         I N I T I A L I Z A T I O N                                     *
    INITIALIZATION.
      P_MNR = SY-DATUM+4(2).
      P_YEAR = SY-DATUM+0(4).
    *--> Begin of G9DK960368 KXSAWAS 05/02/2004
    *---Set default unix file name yuie
      CONCATENATE 'DCG_SAISUNIC' SY-UNAME
                INTO P_FNAME
                SEPARATED BY '_'.
    *<-- End of G9DK960368
         B E G I N - O F - S E L E C T I O N                             *
    START-OF-SELECTION.
      GV_PRNTER = P_PRNTER.
      PERFORM F_INIT_PERIOD.
      PERFORM F_GET_CURRENT_REPORT_NUMBER.
    PERFORM F_GET_COMPANY_CODE.
      PERFORM F_EXTRACT_RAW_DATA.
      PERFORM F_PROCESS_DATA.
      IF SY-BATCH EQ GC_X.
        PERFORM F_UPDATE_REPORT_NUMBER.
      ENDIF.
    END-OF-SELECTION.
      IF NOT ( IT_HEADER[] IS INITIAL AND IT_DATA[] IS INITIAL AND
                  IT_CNO[] IS INITIAL AND IT_LNO[]  IS INITIAL AND
                IT_LINV[] IS INITIAL AND IT_DIFF[] IS INITIAL ).
        PERFORM F_PRINT_ACCELIO.
      ELSE.
        MESSAGE ID 'YM' TYPE 'I' NUMBER '032'                   "G9DK961073
            WITH 'No data found for entered criteria'(E01).
        EXIT.
      ENDIF.
    *If run by batch job print invoice
      IF SY-BATCH EQ GC_X.
        PERFORM F_PRINT_INVOICE.
      ENDIF.
         B E G I N  O F  F O R M                                         *
    *&      Form  F_INIT_PERIOD
          Period
    FORM F_INIT_PERIOD.
      DATA: LV_FIRST LIKE SY-DATUM,
            LV_CURRENT LIKE SY-DATUM,
            LV_LAST LIKE SY-DATUM,
            LV_DTEMP_FIRST(12) TYPE C,
            LV_DTEMP_LAST(12) TYPE C.
      LV_FIRST+0(4) = P_YEAR.
      LV_FIRST+4(2) = P_MNR.
      LV_FIRST+6(2) = '01'.
    LAST DAY OF CURRENT MONTH
      CALL FUNCTION 'LAST_DAY_OF_MONTHS'
           EXPORTING
                DAY_IN            = LV_FIRST
           IMPORTING
                LAST_DAY_OF_MONTH = LV_CURRENT
           EXCEPTIONS
                DAY_IN_NO_DATE    = 1
                OTHERS            = 2.
      IF SY-SUBRC = 0.
        IF P_MNR < '2'.
          LV_FIRST+0(4) = P_YEAR - 1.
          LV_FIRST+4(2) = '12'.
          LV_FIRST+6(2) = '01'.
        ELSE.
          LV_FIRST+0(4) = P_YEAR.
          LV_FIRST+4(2) = P_MNR - 1.
          LV_FIRST+6(2) = '01'.
        ENDIF.
      LAST DAY OF LAST MONTH
        CALL FUNCTION 'LAST_DAY_OF_MONTHS'
             EXPORTING
                  DAY_IN            = LV_FIRST
             IMPORTING
                  LAST_DAY_OF_MONTH = LV_LAST
             EXCEPTIONS
                  DAY_IN_NO_DATE    = 1
                  OTHERS            = 2.
        IF SY-SUBRC = 0.
          LV_FIRST = '20040101'.                                "G9DK973032
    LAST MONTH
          S_LAST-SIGN = 'I'.
          S_LAST-OPTION = 'BT'.
          S_LAST-LOW = LV_FIRST.
          S_LAST-HIGH = LV_LAST.
          APPEND S_LAST.
    LAST MONTH AND CURRENT MONTH
          S_PERIOD-SIGN = 'I'.
          S_PERIOD-OPTION = 'BT'.
          S_PERIOD-LOW = LV_FIRST.
          S_PERIOD-HIGH = LV_CURRENT.
          APPEND S_PERIOD.
        ENDIF.
      ENDIF.
    ENDFORM.                    " F_INIT_PERIOD
    *&      Form  F_GET_CURRENT_REPORT_NUMBER
          Get current Seq. no. from YSDA_DOC_NUMBER
    FORM F_GET_CURRENT_REPORT_NUMBER.
      DATA: LV_RC LIKE SY-SUBRC.
      CHECK SY-BATCH = GC_X.
      DO 3 TIMES.
        PERFORM F_LOCK_OBJECT CHANGING LV_RC.
        IF LV_RC <> 0.
          PERFORM F_WAIT.
        ELSE.
          EXIT.
        ENDIF.
      ENDDO.
      IF LV_RC <> 0.
        PERFORM F_UNLOCK_OBJECT.
        PERFORM F_LOCK_OBJECT CHANGING LV_RC.
      ENDIF.
      SELECT SINGLE YY_PRINT_NO
        INTO GV_REP_NO
        FROM YSDA_DOC_NUMBER
    *-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
        where yy_plant  = P_WERKS
    *<-- End of G9DK9A09ND
       WHERE YY_PLANT IN S_WERKS
        AND YY_YEAR = P_YEAR
         AND YY_DOCUMENT_CODE = GC_MEXP.
    *--> Begin of G9DK959869 KXSAWAS 02/02/2004
      IF SY-BATCH = GC_X.
        GV_REP_NO = GV_REP_NO + 1.
      ELSE.
        GV_REP_NO = 0.
      ENDIF.
    *<-- End of G9DK959869
    ENDFORM.                    " F_GET_CURRENT_REPORT_NUMBER
    *&      Form  F_GET_COMPANY_CODE
          text
    -->  p1        text
    <--  p2        text
    FORM F_GET_COMPANY_CODE.
    CLEAR: it_t001k-bwkey.
    Validate input data against master table of SAP
    Validate company code  against T001k
      IF NOT P_BUKRS IS INITIAL.
        SELECT  T001K~BUKRS
                T001K~BWKEY
                T001W~WERKS
          INTO CORRESPONDING FIELDS OF TABLE IT_T001K
          FROM T001K
      INNER JOIN T001W ON T001W~BWKEY = T001K~BWKEY
          WHERE  BUKRS = P_BUKRS
          AND WERKS IN S_WERKS.
         APPEND IT_T001K.
         select t001kbukrs t001kbwkey t001w~werks
         into corresponding fields of table itab
            from t001w
                  inner join t001k
                      on t001kbwkey = t001wbwkey.
        LOOP AT IT_T001K.
       it_t001k-bwkey = it_t001w-werks.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " F_GET_COMPANY_CODE
    *&      Form  F_EXTRACT_RAW_DATA
          Extract entries from YSDA_EXP_PRTLOG
    FORM F_EXTRACT_RAW_DATA.
      SELECT YY_PLANT
             YY_HEADER_TYP
             YY_INTERNAL_NO
             YY_PRINT_DATE
             YY_PRINT_TIME
             YY_DOCUMENT_CODE
             YY_HEADER_TYP
             YY_DELIVERY
             YY_INVOICE_AMT
             YY_EX_RATE
             YY_CURRENCY
            YY_INTERNAL_NO                  "G9DK962238
             YY_EXTERNAL_NO
             YY_COMMODITY
             YY_REPORT_FLAG                                     "G9DK962077
        INTO corresponding fields of TABLE IT_RAW
        FROM YSDA_EXP_PRTLOG
      WHERE YY_PLANT IN S_WERKS
    **-->Begin of G9DK9A09ND -VSRKODA -09/07/2007
        where yy_plant  = s_werks
    **<-- End of G9DK9A09ND
        and  YY_PRINT_DATE IN S_PERIOD+
         AND YY_REPORT_FLAG <> 'X'                              "G9DK973032
         AND YY_HEADER_TYP <> 'T2L'                           "G9DK9A02DZ
         AND YY_ANNULATION <> 'X'.
    *If run by batch job
    *--> Begin of G9DK959869 KXSAWAS 02/02/2004
    *--- Comment out ---
    IF sy-batch EQ gc_x.
       IF NOT it_raw[] IS INITIAL.
         LOOP AT it_raw.
    **Update YY_REPORT_FLAG EQ 'X'
           UPDATE ysda_exp_prtlog SET yy_report_flag = gc_x
                         WHERE yy_plant  = p_werks
                         AND   yy_print_date = it_raw-print_date
                         AND   yy_print_time = it_raw-print_time
                         AND   yy_document_code = it_raw-document_code.
         ENDLOOP.
       ENDIF.
    ENDIF.
    *<-- End of G9DK959869
      LOOP AT IT_RAW.
        IT_RAW-HEADER_SHT = IT_RAW-HEADER_SHT+0(3).
        MODIFY IT_RAW.
      ENDLOOP.
      SORT IT_RAW BY WERKS HEADER_SHT INTERNAL_NO               "G9DK962271
      PRINT_DATE.                                               "G9DK962238
    ENDFORM.                    " F_EXTRACT_RAW_DATA
    *&      Form  F_PROCESS_DATA
          Extract all required data
    FORM F_PROCESS_DATA.
      PERFORM F_EXTRACT_DOC_FLOW.
      PERFORM F_EXTRACT_INCO_TERM.
      PERFORM F_EXTRACT_DELIVERY_DATA.
      PERFORM F_EXTRACT_INVOICE_DATA.
      PERFORM F_EXTRACT_EXPORT_DATA.
      PERFORM F_EXTRACT_HEADER_DATA.
      PERFORM F_EXTRACT_COMPANY.                                "G9DK959869
      PERFORM F_CLASSIFY_DATA.
    ENDFORM.                    " F_PROCESS_DATA
    *&      Form  F_EXTRACT_DOC_FLOW
          Extract Sale data
    FORM F_EXTRACT_DOC_FLOW.
      IF NOT IT_RAW[] IS INITIAL.
        SELECT VBELV
               VBTYP_N
               ERDAT
               ERZET
               VBELN
          INTO TABLE IT_DOC
          FROM VBFA
          FOR ALL ENTRIES IN IT_RAW
         WHERE VBELV = IT_RAW-DELIVERY
          AND ( VBTYP_N = 'M'
             OR VBTYP_N = '5' ).
        SELECT A~VBELN
               A~VBELV
               B~AUART
               B~KNUMV
               B~KALSM                                          "G9DK960368
               B~WAERK                                          "G9DK960368
               B~KNUMA                                          "G9DK960368
          INTO TABLE IT_SALES
          FROM VBFA AS A INNER JOIN VBAK AS B
            ON AVBELV = BVBELN
          FOR ALL ENTRIES IN IT_RAW
         WHERE A~VBELN = IT_RAW-DELIVERY
           AND A~VBTYP_N = GC_J.
      ENDIF.
      SORT IT_SALES BY VBELN VBELV.
      DELETE ADJACENT DUPLICATES FROM IT_SALES COMPARING ALL FIELDS.
      SORT IT_DOC BY VBELN ASCENDING
                     FKART ASCENDING
                     ERDAT DESCENDING
                     ERZET DESCENDING.
      DELETE ADJACENT DUPLICATES FROM IT_DOC COMPARING ALL FIELDS.
      IF NOT IT_SALES[] IS INITIAL.
        SELECT KNUMV
               KBETR
               WAERS                                            "G9DK960368
          INTO TABLE IT_KSCHL
          FROM KONV
          FOR ALL ENTRIES IN IT_SALES
         WHERE KNUMV = IT_SALES-KNUMV
           AND KSCHL = GC_GRWR.
      ENDIF.
      SORT IT_KSCHL BY KNUMV.
    ENDFORM.                    " F_EXTRACT_DOC_FLOW
    *&      Form  F_EXTRACT_INCO_TERM
          Extract inco term
    FORM F_EXTRACT_INCO_TERM.
      IF NOT IT_SALES[] IS INITIAL.
        SELECT VBELN
      

    What's wrong with F_GET_COMPANY_CODE ?  Below is similar code - try running this and seeing what you get:
    report zlocal_jc_t001w.
    tables:
      t001k,     "Valuation area
      t001w.     "Plants/Branches
    parameters:
      p_bukrs          like t001k-bukrs default '1000'.
    select-options:
      s_werks          for t001w-werks.
    start-of-selection.
      perform get_data.
    *&      Form  get_data
    form get_data.
      data:
        begin of gt_t001k occurs 10,
          bukrs             like t001k-bukrs,
          bwkey             like t001k-bwkey,
          werks             like t001w-werks,
        end of gt_t001k.
      select
        t001k~bukrs
        t001k~bwkey
        t001w~werks
        into corresponding fields of table gt_t001k
        from t001k as t001k
        inner join t001w as t001w on t001w~bwkey = t001k~bwkey
        where t001k~bukrs = p_bukrs
        and   t001w~werks in s_werks.
      loop at gt_t001k.
        write: /
          gt_t001k-bukrs,
          gt_t001k-bwkey,
          gt_t001k-werks.
      endloop.
    endform.                    "get_data
    As for links to locally defined database tables, that will depend on what the keys defined in SE11 are e.g. there will be a primary key plus relationships to other tables (for example "WERKS LIKE YSDA_EXP_PRTLOG-YY_PLANT" indicates YY_PLANT relates to T001W).
    Jonathan

  • Foreign Trade / Intrastat - data order-related billing (downpayments)

    Hi,
    Shortly we have implemented the down payment functionality in our flows. Because downpayments require order-related billing the intrastat/foreign trade data is not copied into the closing invoice.
    Apparently it is only possible to copy the data from a delivery.
    We are in a make-to-order environment and we still create deliveries but because of the down payments, the invoice is created from the sales order and hence no intrastat data is copied which ofcourse is required ...
    Can't find a suitable user exit for filling this data into the billing document. Also tried using copy data transfer (vofm) filling up tables eikp and eipo but that didn't work.
    The only option open for me at the moment is creating a proforma invoice automatically from the delivery. This document can then be included in the intrastat reporting.
    Is there another solution ?
    with regards

    Hi,
    in the copy control between order and invoice you need to set the 'determine export data' to 'B' so that it will be redetermined in the invoice. After that the relevant foreign trade userexits will work as well.
    Balazs

  • Periodic Declarations Intrastat reporting.

    Periodic Declarations Intrastat reporting. -
    The purchase order beeing reported har the following information:
    Country of origin (EIPO-HERKL) has the value country DK
    Country of destination (RL50E-HLAND) has the value country SE
    When running the intrastat report the fields for the above mentioned give the wrong value for country of destination
    Country of origin field URSPRSLND gives the value DK (correct)
    Country of destination BESTILAND gives the value DK (wrong)
    It looks wright when you see it in SAP but it is wrong when it is send via EDICOM to the receiver in SCB.se.
    Has anybody had simular problems sending the periodic report of intrastat.

    I assume you do Intrastat for country SE.
    Is your PO a standard PO or a third party PO?
    In a standard PO the Country of destination is not changable and should default from the receiving plant.
    You may check the Intrastat record in transaction VEFU  if the destination country is wrong in the record, too.
    If you see this wrong destination country just in the list, then see OSS note  393569 - Intrastat:List output-Country of destinatn instd of dispatch

  • Print out every delivery

    Dear All.
    Till this day the duty-form for a company were performed through a
    special Form Program, it is performed via processing routines.
    The first Form Routine's name is entry.
    Form was printed-out for each Transport up to now.
    Current Requirements are for next time as follows:
    Printing out one form for every delivery (shipment) instead of
    for each Transport as so far. Please notice one Transport may
    consist of many deliveries (Shipment). 1 Transport : n Shipment.
    DATA:
          lc_wa_usrdata  TYPE /Z2a/ty_lw_usrdata.
    INCLUDE rvadtabl.
    SET EXTENDED CHECK OFF.
    TABLES: vbpla, thead, ttxer, ttxit, t005, vbddl, stxh, sadr."SADR40A
    INCLUDE vttkdata.                      "Shipment Header
    INCLUDE vttsdata.                      "Shipment Segment
    INCLUDE vttpdata.                      "Shipment Items
    INCLUDE vbpadata.                      "Partner
    INCLUDE vtfadata.                      "Flow
    INCLUDE sadrdata.                      "Address
    INCLUDE vtlfdata.                      "Delivery Selection
    INCLUDE vsedata.                       "shipping units
    INCLUDE rv56acom.                      "I/O-Structure
    SET EXTENDED CHECK ON.
    TABLES: /Z2a/tv_schein.
    FORM entry USING return_code us_screen.
      DATA: lf_retcode TYPE sy-subrc.
      screen = us_screen.
      PERFORM processing USING    us_screen
                         CHANGING lf_retcode.
      IF lf_retcode NE 0.
        return_code = 1.
      ELSE.
        return_code = 0.
      ENDIF.
    ENDFORM.
    FORM processing USING    proc_screen
                    CHANGING cf_retcode.
      DATA: ls_print_data_to_read TYPE ledlv_print_data_to_read.
      DATA: ls_dlv_delnote        TYPE ledlv_delnote.
      DATA: lf_fm_name            TYPE rs38l_fnam.
      DATA: ls_control_param      TYPE ssfctrlop.
      DATA: ls_composer_param     TYPE ssfcompop.
      DATA: ls_recipient          TYPE swotobjid.
      DATA: ls_sender             TYPE swotobjid.
      DATA: lf_formname           TYPE tdsfname.
      DATA: ls_addr_key           LIKE addr_key.
      DATA: ls_header             LIKE /Z2a/ss_pv_kopf.
      DATA: tb_daten              LIKE /Z2a/ss_pv_daten OCCURS 1.
      DATA: lc_va_lfnr            TYPE nrlevel.
      DATA: lc_va_year            TYPE char4.
      DATA: lc_va_keyseg_pv       TYPE /dca/p000_keyseg.
      DATA: lc_tb_bwdat_pv        TYPE /dca/p000_ty_tb_bwdat.
      DATA: lc_wa_bwdat_pv        TYPE /dca/p000_ty_wa_bwdat.
      DATA: lc_wa_bwm_res_pv      TYPE /Z2a/dat_cu_pvschein.
      DATA: lc_va_lifnr           TYPE kunnr.
      DATA: lc_va_nr              TYPE nrnr.
      DATA: lc_va_anz             TYPE /Z2a/anz_pv.
      DATA: lc_va_no              TYPE /Z2a/anz_kein_pv.
      DATA: lc_wa_pvschein        LIKE /Z2a/tv_schein.
      DATA: lc_va_line            LIKE sy-tabix.
      DATA: lc_va_flag_zoll       TYPE segal,
            lc_va_rqident         TYPE rspoid,
            lc_va_vsart           TYPE vsarttr,
            lc_va_tknum           TYPE tknum.
      DATA: lc_va_obj             TYPE nrobj.
      DATA: lc_va_printer         TYPE rspopname.
      DATA: lc_va_pv_kz           TYPE char4.
      DATA: lc_va_tplst           TYPE tplst.
    * SmartForm from customizing table TNAPR
      lf_formname = tnapr-sform.
    * determine print data
      PERFORM set_print_data_to_read USING    lf_formname
                                     CHANGING ls_print_data_to_read
                                     cf_retcode.
      IF cf_retcode = 0.
    * select print data
        PERFORM get_data_pv TABLES   tb_daten
                            CHANGING ls_header
                                     lc_va_flag_zoll
                                     lc_va_vsart
                                     lc_va_tplst
                                     cf_retcode.
      ENDIF.
      lc_va_tknum = nast-objky.
      IF cf_retcode = 0.
      ELSE.
        PERFORM protocol_nast_update.
        cf_retcode = 4.
        EXIT.
      ENDIF.
      IF cf_retcode = 0.
    * determine smartform function module for delivery note
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
             EXPORTING  formname           = lf_formname
             IMPORTING  fm_name            = lf_fm_name
             EXCEPTIONS no_form            = 1
                        no_function_module = 2
                        OTHERS             = 3.
        IF sy-subrc <> 0.
        ENDIF.
      ENDIF.
      DESCRIBE TABLE tb_daten LINES lc_va_line.
      IF lc_va_line <> 0.
        lc_va_pv_kz = 'JA'.
        SELECT SINGLE lifnr
          FROM vtpa
          INTO lc_va_lifnr
         WHERE vbeln = nast-objky
           AND parvw = 'YL'.
        lc_va_keyseg_pv = ls_header-kunnr.
        lc_va_keyseg_pv+10(10) = lc_va_lifnr.
        lc_va_keyseg_pv+20(2)  = lc_va_vsart.
        lc_va_keyseg_pv+22(4)  = lc_va_pv_kz.
        CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
             EXPORTING
                  cv_va_keytyp = '/Z2a/KEY_CU_PVSCHEIN'
                  cv_va_keyseg = lc_va_keyseg_pv
             TABLES
                  cr_tb_bwdat  = lc_tb_bwdat_pv.
        IF lc_tb_bwdat_pv[] IS INITIAL.
          cf_retcode = 4.
        ELSE.
          LOOP AT lc_tb_bwdat_pv INTO lc_wa_bwdat_pv.
            lc_wa_bwm_res_pv = lc_wa_bwdat_pv-datseg.
            lc_va_obj = lc_wa_bwm_res_pv(10).
            lc_va_nr  = lc_wa_bwm_res_pv+10(2).
            lc_va_anz = lc_wa_bwm_res_pv+12(8).
            lc_va_printer  = lc_wa_bwm_res_pv+20(4).
            SELECT SINGLE pvno
              FROM /Z2a/tv_schein
              INTO lc_va_lfnr
             WHERE tknum = nast-objky.
            IF sy-subrc = 0.
            ELSE.
              CALL FUNCTION 'NUMBER_GET_NEXT'
                EXPORTING
              nr_range_nr                   = lc_va_nr
              object                        = lc_va_obj
               IMPORTING
                 number                     = lc_va_lfnr
              IF sy-subrc <> 0.
              ENDIF.
            ENDIF.
          ENDLOOP.
        ENDIF.
    *   call smartform delivery note
        ls_composer_param-tddest = lc_va_printer.
    *    ls_control_param-device  = lc_va_printer.
        lc_va_year = sy-datum(4).
        PERFORM set_print_param USING    ls_addr_key
                                         lc_va_lfnr
                                CHANGING ls_control_param
                                         ls_composer_param
                                         ls_recipient
                                         ls_sender
                                         cf_retcode.
        lc_wa_usrdata-mandt  = sy-mandt.
        lc_wa_usrdata-udate  = sy-datum.
        lc_wa_usrdata-uzeit  = sy-uzeit.
        lc_wa_usrdata-usr    = sy-uname.
        lc_wa_usrdata-sysid  = sy-sysid.
        DO lc_va_anz TIMES.
          CALL FUNCTION lf_fm_name
               EXPORTING
                        archive_index        = toa_dara
                        archive_parameters   = arc_params
                        control_parameters   = ls_control_param
                        mail_recipient       = ls_recipient
                        mail_sender          = ls_sender
                        output_options       = ls_composer_param
                        user_settings        = ' '
                        ls_header            = ls_header
                        lc_va_lfnr           = lc_va_lfnr
                        lc_va_year           = lc_va_year
                        lc_va_tplst          = lc_va_tplst
                        lc_wa_usrdata        = lc_wa_usrdata
              TABLES
                        tb_daten             = tb_daten
             EXCEPTIONS formatting_error     = 1
                        internal_error       = 2
                        send_error           = 3
                        user_canceled        = 4
                        OTHERS               = 5.
          IF sy-subrc <> 0.
          ENDIF.
        ENDDO.
      ELSE.
        lc_va_pv_kz = 'NEIN'.
        SELECT SINGLE lifnr
          FROM vtpa
          INTO lc_va_lifnr
         WHERE vbeln = nast-objky
           AND parvw = 'YL'.
        lc_va_keyseg_pv = ls_header-kunnr.
        lc_va_keyseg_pv+10(10) = lc_va_lifnr.
        lc_va_keyseg_pv+20(2)  = lc_va_vsart.
        lc_va_keyseg_pv+22(4)  = lc_va_pv_kz.
        CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
             EXPORTING
                  cv_va_keytyp = '/Z2a/KEY_CU_PVSCHEIN'
                  cv_va_keyseg = lc_va_keyseg_pv
             TABLES
                  cr_tb_bwdat  = lc_tb_bwdat_pv.
        IF lc_tb_bwdat_pv[] IS INITIAL.
          cf_retcode = 4.
        ELSE.
          LOOP AT lc_tb_bwdat_pv INTO lc_wa_bwdat_pv.
            lc_wa_bwm_res_pv = lc_wa_bwdat_pv-datseg.
            lc_va_obj = lc_wa_bwm_res_pv(10).
            lc_va_nr  = lc_wa_bwm_res_pv+10(2).
            lc_va_anz = lc_wa_bwm_res_pv+12(8).
            lc_va_printer  = lc_wa_bwm_res_pv+20(4).
            SELECT SINGLE pvno
              FROM /Z2a/tv_schein
              INTO lc_va_lfnr
             WHERE tknum = nast-objky.
            IF sy-subrc = 0.
              UPDATE /Z2a/tv_schein
              SET flag_pv = ' '
              WHERE tknum = nast-objky.
            ELSE.
    * laufende nummer füllen, bei keinen PV-Teilen Nummernkreis 99
              CALL FUNCTION 'NUMBER_GET_NEXT'
                EXPORTING
              nr_range_nr                   = lc_va_nr
              object                        = lc_va_obj
    *    QUANTITY                      = '1'
    *   SUBOBJECT                     = ' '
    *   TOYEAR                        = '0000'
    *   IGNORE_BUFFER                 = ' '
               IMPORTING
                 number                     = lc_va_lfnr
    *   QUANTITY                      =
    *   RETURNCODE                    =
    * EXCEPTIONS
    *   INTERVAL_NOT_FOUND            = 1
    *   NUMBER_RANGE_NOT_INTERN       = 2
    *   OBJECT_NOT_FOUND              = 3
    *   QUANTITY_IS_0                 = 4
    *   QUANTITY_IS_NOT_1             = 5
    *   INTERVAL_OVERFLOW             = 6
    *   BUFFER_OVERFLOW               = 7
    *   OTHERS                        = 8
              IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
              ENDIF.
            ENDIF.
          ENDLOOP.
          lc_va_year = sy-datum(4).
          ls_composer_param-tddest = lc_va_printer.
          PERFORM set_print_param USING    ls_addr_key
                                           lc_va_lfnr
                                  CHANGING ls_control_param
                                           ls_composer_param
                                           ls_recipient
                                           ls_sender
                                           cf_retcode.
          lc_wa_usrdata-mandt  = sy-mandt.
          lc_wa_usrdata-udate  = sy-datum.
          lc_wa_usrdata-uzeit  = sy-uzeit.
          lc_wa_usrdata-usr    = sy-uname.
          lc_wa_usrdata-sysid  = sy-sysid.
          DO lc_va_anz TIMES.
            CALL FUNCTION lf_fm_name
                 EXPORTING
                          archive_index        = toa_dara
                          archive_parameters   = arc_params
                          control_parameters   = ls_control_param
                          mail_recipient       = ls_recipient
                          mail_sender          = ls_sender
                          output_options       = ls_composer_param
                          user_settings        = ' '
                          ls_header            = ls_header
                          lc_va_lfnr           = lc_va_lfnr
                          lc_va_year           = lc_va_year
                          lc_va_tplst          = lc_va_tplst
                          lc_wa_usrdata        = lc_wa_usrdata
                TABLES
                          tb_daten             = tb_daten
               EXCEPTIONS formatting_error     = 1
                          internal_error       = 2
                          send_error           = 3
                          user_canceled        = 4
                          OTHERS               = 5.
            IF sy-subrc <> 0.
            ENDIF.
          ENDDO.
        ENDIF.
      ENDIF.
      SELECT SINGLE *
        FROM /Z2a/tv_schein
        INTO lc_wa_pvschein
       WHERE tknum = nast-objky.
      IF sy-subrc = 0.
      ELSE.
        IF NOT lc_va_lfnr IS INITIAL.
          lc_wa_pvschein-mandt = sy-mandt.
          lc_wa_pvschein-tknum = nast-objky.
          INSERT INTO /Z2a/tv_schein
          VALUES lc_wa_pvschein.
          UPDATE /Z2a/tv_schein SET
          pvno  = lc_va_lfnr
          vsart = lc_va_vsart
          exti1 = ls_header-schiffname
          signi = ls_header-siegel
          flag_zoll = lc_va_flag_zoll
          exti2 = ls_header-contnr
          lifex = ls_header-mbcnr
          dalen = ls_header-dalen
          dptbg = ls_header-dptbg
          kunnr = ls_header-kunnr
          add03 = ls_header-add03
          parnr = lc_va_lifnr
          datum_druck = sy-datum
          uzeit_druck = sy-uzeit
          ernam_druck = sy-ucomm
          WHERE tknum = nast-objky.
          IF tb_daten IS INITIAL.
            UPDATE /Z2a/tv_schein SET
           flag_pv = ' '
           WHERE tknum = nast-objky.
          ELSE.
            UPDATE /Z2a/tv_schein SET
            flag_pv = 'X'.
          ENDIF.
        ENDIF.
      ENDIF.
    * get SmartForm protocoll and store it in the NAST protocoll
    * PERFORM ADD_SMFRM_PROT.                       DEL_HP_335958
    ENDFORM.
    FORM get_data_pv TABLES   lc_tb_daten
                     CHANGING cs_header TYPE /Z2a/ss_pv_kopf
                              lc_va_flag_zoll TYPE segal
                              lc_va_vsart TYPE vsarttr
                              lc_va_tplst TYPE tplst
                              cf_retcode.
      TYPES: BEGIN OF ty_wa_vbeln,
             vbeln TYPE vbeln_vl,
             END OF ty_wa_vbeln,
             ty_tb_vbeln TYPE STANDARD TABLE OF ty_wa_vbeln
                         WITH DEFAULT KEY
                         INITIAL SIZE 0,
             ty_wa_lips LIKE lips,
             ty_tb_lips TYPE STANDARD TABLE OF ty_wa_lips
                        WITH DEFAULT KEY
                        INITIAL SIZE 0.
      DATA: lc_tb_cond  LIKE /Z2a/ss_pv_daten OCCURS 1.
      DATA: lc_wa_daten TYPE /Z2a/ss_pv_daten.
      DATA: lc_wa_cond  TYPE /Z2a/ss_pv_daten.
      DATA: lc_va_tknum TYPE tknum,
            lc_tb_lips  TYPE ty_tb_lips,
            lc_wa_lips  TYPE ty_wa_lips,
            lc_va_kunnr TYPE kunnr,
            lc_va_pvvkz TYPE /Z2a/pvvkz,
            lc_va_exprf TYPE exprf,
            lc_va_matnr TYPE matnr,
            lc_va_menge TYPE lfimg.
      DATA: lc_tb_vbeln TYPE ty_tb_vbeln,
            lc_wa_vbeln TYPE ty_wa_vbeln,
            lc_va_land1 TYPE land1,
            lc_va_lifnr TYPE lifnr.
      DATA: lc_va_exnum TYPE exnum.
      DATA: lc_va_keyseg TYPE /dca/p000_keyseg.
      DATA: lc_tb_bwdat  TYPE /dca/p000_ty_tb_bwdat.
      DATA: lc_wa_bwdat  TYPE /dca/p000_ty_wa_bwdat.
      DATA: lc_wa_bwm_result TYPE /Z2a/dat_cu_pvabwicklung.
      DATA language LIKE nast-spras.
      DATA shipment_number LIKE vttk-tknum.
      CLEAR cf_retcode.
    * get data
      language = nast-spras.
      shipment_number = nast-objky.
      CALL FUNCTION 'RV_SHIPMENT_PRINT_VIEW'
           EXPORTING
                shipment_number     = shipment_number
                option_tvtk         = 'X'  "Shipmenttype J/N
                option_ttds         = 'X'  "Disposition J/N
                language            = language
                option_items        = 'X'  "Transport Items J/N
                option_segments     = 'X'  "Transport Segments J/N
                option_partners     = 'X'  "Partners J/N
                option_sales_orders = 'X'  "Sales orders J/N
                option_export_data  = 'X'  "Export data J/N
                option_packages     = 'X'  "Packages J/N
                option_flow         = ' '  "Flow J/N
                option_no_refresh   = ' '  "Refresh Tables J/N
           IMPORTING
                f_vttkvb            = vttkvb  "Shipment Header
                f_tvtk              = tvtk  "Shipmenttype
                f_tvtkt             = tvtkt  "Description Shipmenttype
                f_ttds              = ttds  "Disposition
                f_ttdst             = ttdst  "Description Disposition
                f_vbpla             = vbpla  "Packages
           TABLES
                f_vttp              = xvttp  "Shipment Items
                f_trlk              = slk  "Delivery
                f_trlp              = slp  "Delivery Item
                f_vtts              = xvtts  "Shipment Segments
                f_vtsp              = xvtsp  "Segments/Items
                f_vbpa              = xvbpa  "Partner
                f_vbadr             = xvbadr  "Address
                f_vtfa              = xvtfa  "Flow
                f_vbplk             = xvbplk  "Shipment Unit Header
                f_vbplp             = xvbplp  "Shipment Unit
                f_vbpls             = xvbpls  "Shipment Unit Sum
           EXCEPTIONS
                not_found           = 1.
      cs_header-tknum      = nast-objky.
      cs_header-schiffname = vttkvb-exti1.
      cs_header-abfahrt    = vttkvb-dptbg.
      cs_header-contnr     = vttkvb-exti2.
      cs_header-normt      = vttkvb-add01.
      cs_header-siegel     = vttkvb-signi.
      cs_header-gewbr      = vttkvb-text2.
      cs_header-gewnt      = vttkvb-text3.
      cs_header-dalen      = vttkvb-dalen.
      cs_header-dptbg      = vttkvb-dptbg.
      cs_header-add03      = vttkvb-add03.
      lc_va_tplst          = vttkvb-tplst.
      lc_va_vsart = vttkvb-vsart.
      SELECT vbeln
        FROM vttp
        INTO TABLE lc_tb_vbeln
       WHERE tknum = lc_va_tknum.
      LOOP AT lc_tb_vbeln INTO lc_wa_vbeln.
        SELECT SINGLE kunnr lifex
          FROM likp
          INTO (lc_va_kunnr, cs_header-mbcnr)
         WHERE vbeln = lc_wa_vbeln-vbeln.
        SELECT *
          FROM lips
          INTO TABLE lc_tb_lips
         WHERE vbeln = lc_wa_vbeln-vbeln.
      ENDLOOP.
      LOOP AT lc_tb_lips INTO lc_wa_lips.
        SELECT SINGLE pvvkz
          FROM /Z2a/ldm_kun
          INTO lc_va_pvvkz
         WHERE kunnr = lc_va_kunnr.
        IF lc_va_pvvkz NE 'X'.
          cf_retcode = 4.
          EXIT.
        ELSE.
          SELECT SINGLE exnum segal
           FROM eikp
           INTO (lc_va_exnum, lc_va_flag_zoll)
          WHERE refnr = lc_wa_lips-vbeln.
          SELECT SINGLE exprf
            FROM eipo
            INTO lc_va_exprf
           WHERE exnum = lc_va_exnum
             AND expos = lc_wa_lips-posnr.
          lc_va_keyseg = lc_va_exprf.
          CALL FUNCTION '/ZTR/P000_MCDATA_FROM_'
               EXPORTING
                    cv_va_keytyp = '/Z2a/KEY_CU_PVABWICKLUNG'
                    cv_va_keyseg = lc_va_keyseg
               TABLES
                    cr_tb_bwdat  = lc_tb_bwdat.
          IF NOT lc_tb_bwdat[] IS INITIAL.
            LOOP AT lc_tb_bwdat INTO lc_wa_bwdat.
              lc_wa_bwm_result = lc_wa_bwdat-datseg.
              IF lc_wa_bwm_result-pv_relevant = 'X'.
    * Kumulieren
                lc_wa_cond-matnr = lc_wa_lips-matnr.
                SELECT SINGLE maktx
                  FROM makt
                  INTO lc_wa_cond-arktx
                 WHERE matnr = lc_wa_lips-matnr
                   AND spras = 'DE'.
                lc_wa_cond-menge = lc_wa_lips-lfimg.
                lc_wa_cond-me    = lc_wa_lips-meins.
                COLLECT lc_wa_cond INTO lc_tb_cond.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ENDIF.
      ENDLOOP.
      cs_header-kunnr = lc_va_kunnr.
      SELECT SINGLE name1 name2 land1
        INTO (cs_header-name1,
              cs_header-name2,
              lc_va_land1)
         FROM kna1
        WHERE kunnr = lc_va_kunnr.
      SELECT SINGLE landx
        INTO cs_header-land
        FROM t005t
       WHERE spras = sy-langu
         AND land1 = lc_va_land1.
    * Sortieren Aufsteigend nach Materialnr
      SORT lc_tb_cond ASCENDING BY matnr.
    * Übergabe an Ausgabetabelle
      LOOP AT lc_tb_cond INTO lc_wa_cond.
        MOVE-CORRESPONDING lc_wa_cond TO lc_wa_daten.
        APPEND lc_wa_daten TO lc_tb_daten.
      ENDLOOP.
    ENDFORM.                    " get_data_spat
    FORM set_print_data_to_read
             USING    if_formname LIKE tnapr-sform
             CHANGING cs_print_data_to_read TYPE ledlv_print_data_to_read
                      cf_retcode.
      FIELD-SYMBOLS: <fs_print_data_to_read> TYPE xfeld.
      DATA: lt_fieldlist TYPE tsffields.
      DATA: ls_fieldlist TYPE LINE OF tsffields.
      DATA: lf_field1 TYPE LINE OF tsffields.
      DATA: lf_field2 TYPE LINE OF tsffields.
      DATA: lf_field3 TYPE LINE OF tsffields.
      CALL FUNCTION 'SSF_FIELD_LIST'
        EXPORTING
          formname                = if_formname
    *     VARIANT                 = ' '
        IMPORTING
          fieldlist               = lt_fieldlist
       EXCEPTIONS
         no_form                  = 1
         no_function_module       = 2
         OTHERS                   = 3.
      IF sy-subrc <> 0.
        cf_retcode = sy-subrc.
        CLEAR lt_fieldlist.
      ELSE.
    * set print data requirements
        LOOP AT lt_fieldlist INTO ls_fieldlist.
          SPLIT ls_fieldlist AT '-' INTO lf_field1 lf_field2 lf_field3.
    * <<<< START_OF_INSERTION_HP_350342 >>>>
          IF lf_field1 = 'IS_DLV_DELNOTE' AND lf_field2 = 'IT_SERNR'.
            lf_field2 = 'IT_SERNO'.
          ENDIF.
    * <<<< END_OF_INSERTION_HP_350342 >>>>
          ASSIGN COMPONENT lf_field2 OF STRUCTURE
                           cs_print_data_to_read TO <fs_print_data_to_read>.
          IF sy-subrc = 0.
            <fs_print_data_to_read> = 'X'.
          ENDIF.
        ENDLOOP.
    * header data is always required
        cs_print_data_to_read-hd_gen = 'X'.
    * adress is always required for print param
        cs_print_data_to_read-hd_adr = 'X'.
    * organisational data is always required for include texts
        cs_print_data_to_read-hd_org = 'X'.
      ENDIF.
    ENDFORM.                    " set_print_data_to_read
    *&      Form  set_print_param
    *       text
    *      -->P_LS_ADDR_KEY  text
    *      <--P_LS_CONTROL_PARAM  text
    *      <--P_LS_COMPOSER_PARAM  text
    *      <--P_LS_RECIPIENT  text
    *      <--P_LS_SENDER  text
    *      <--P_CF_RETCODE  text
    FORM set_print_param USING    is_addr_key LIKE addr_key
    *                              lc_va_tknum
                                  lc_va_lfnr TYPE nrlevel
                         CHANGING cs_control_param TYPE ssfctrlop
                                  cs_composer_param TYPE ssfcompop
                                  cs_recipient TYPE  swotobjid
                                  cs_sender TYPE  swotobjid
                                  cf_retcode TYPE sy-subrc.
      DATA: ls_itcpo     TYPE itcpo.
      DATA: lf_repid     TYPE sy-repid.
      DATA: lf_device    TYPE tddevice.
      DATA: ls_recipient TYPE swotobjid.
      DATA: ls_sender    TYPE swotobjid.
      DATA: lc_va_suffix TYPE rspo2name.
      lf_repid = sy-repid.
      CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
           EXPORTING
                pi_nast       = nast
                pi_addr_key   = is_addr_key
                pi_repid      = lf_repid
           IMPORTING
                pe_returncode = cf_retcode
                pe_itcpo      = ls_itcpo
                pe_device     = lf_device
                pe_recipient  = cs_recipient
                pe_sender     = cs_sender.
      SHIFT lc_va_lfnr LEFT DELETING LEADING '0'.
      CONCATENATE 'PV' lc_va_lfnr INTO lc_va_suffix.
      IF cf_retcode = 0.
        MOVE-CORRESPONDING ls_itcpo TO cs_composer_param.
        cs_composer_param-tdsuffix2   = lc_va_suffix.
        cs_control_param-device      = lf_device.
        cs_control_param-no_dialog   = 'X'.
        cs_control_param-preview     = screen.
        cs_control_param-getotf      = ls_itcpo-tdgetotf.
        cs_control_param-langu       = nast-spras.
      ENDIF.
    ENDFORM.                    " set_print_param
    FORM protocol_nast_update.
      CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
           EXPORTING
                msg_arbgb = '/Z2a/PVSCHEIN'
                msg_nr    = '001'
                msg_ty    = 'E'
    *              MSG_V2    = SYST-MSGV2
    *              MSG_V3    = SYST-MSGV3
    *              MSG_V4    = SYST-MSGV4
    *              MSG_V1    = SYST-MSGV1
           EXCEPTIONS
                OTHERS    = 1.
    ENDFORM.                   

    Hello!
    I have to customize the enclosed source code so it does the following:
    print out for each shipment (see FuBa:RV_SHIPMENT_PRINT_VIEW
    parameter slp) really seperated by for every shipment item LIKP-VBELN
    and not for the whole VTTP-TKNUM.
    The parameter "slp" must be stripted so by leaving
    of the routine "get_data_pv" has only the datas of the current
    LIKP-VBELN, and in the next step taking the next LIKP-VBELN
    and so on. Right now it performs only one time for one  VTTP-TKNUM.
    If you don't understand VTTP-TKNUM and LIKP-VBELN please refer
    to Transaction SE11.
    Reagrds
    Ilhan

  • Looking for a FM to download entirely PO/CTR data from R/3

    Hi all gurus,
    as told in subject, I'm looking for a way to dowload all the data of a contract or a purchase order into a local file on my client.
    For those who are familiar with SRM, there's a transaction, BBP_PD, which - given a contract or po number - offers all the data of the documents splitted into corresponding DB tables, e.g:
    - for what concerns the header: BBP_PDHGP, CRMD_ORDERADM_H and so on...
    - for what concerns the items: BBP_PDIGP, CRMD_ORDERADM_I etc....
    Now, assuming I'm dealing with a certain R/3 document and that this backend doesn't support versioning ( = there's only a single version for each document), how can I export - say in an EXCEL/csv file - all the data of that document splitted into corresponding tables?
    Is there something standard? I could code such a report but I actually don't know all the DB tables involved in Contract/PO creation/modification but only the major ones, like EKKO, EKPO, ESLL, ESKL... I'm sure I will miss some information. Moreover, not all the links which connect the tables are straightforward and clear to rebuild.
    Of course, a getdetail() is not a solution as the sensation is that it doesn't extract everything but only the relevant data.
    Thanks in advance.

    Hi,
    If you want to know absolutely ALL the tables that are related to a purchase order you can execute transaction SARA. It will give you the list of all the tables related to a particular object. For purchase order use MM_EKKO in the initial screen and press 'DB Tables'. The complete listing is this:
    A068, A081, A082, A215, ADR10, ADR11, ADR12, ADR13, ADR2, ADR3, ADR4, ADR5, ADR6, ADR7, ADR8, ADR9, ADRCOMC, ADRCT, ADRG, ADRGP, ADRT, ADRU, ADRV, ADRVP, AUSP, CDCLS, CDHDR, CDPOS_STR, CDPOS_UID, CMFK, CMFP, DJEST, EIKP, EIPO, EKAB, EKBE, EKBEH, EKBZ, EKBZH, EKEH, EKEK, EKES, EKET, EKETH, EKKN, EKKO, EKPA, EKPO, EKPV, EKUB, EREV, ESKL, ESKN, ESLH, ESLL, ESSR, ESUC, ESUH, FPLA, FPLT, IBADDR, IBIB, IBIBOBS, IBIBT, IBIN, IBINDOMAINS, IBINOBS, IBINOWN, IBINT, IBINTX, IBINVALUES, IBSP, IBST, IBSTREF, IBSYMBOL, INOB, JCDO, JCDS, JEST, JSTO, KAPOL, KOCLU, KONH, KONM, KONP, KONW, KSSK, MLBE, MLBECR, MLWERE, NAST, RESB, S111, STXB, STXH, STXL
    Of course, there may be tables you are not interested in such as pricing (konm, konp, know, konh), adresses (ADR*), sapscript texts (STXH, stxl), messages (NAST), etc..

Maybe you are looking for

  • IPhone driver not recognized in windows 7

    When I plugin my iphone 4s to windows 7, it is detected as generic usb device and is not shown up in itunes..Itunes is able to detect my iPod classic device though..

  • AS2 Sender Adapter -- Need few details.

    Hi Seeburger Experts, Im new to seeburger and i just to know regarding AS2 adapter. Im a bit clear about the AS2 receiver adapter there we have an option of giving partner Server,URL and Port to send the messages from XI. In the same way, I couldn't

  • Refreshing materialized view fails

    Hi, I'm trying to refresh a materialized view. I've set up everything according to the documentation but when I try to do a refresh of the MV I get an end-of-file on communication channel. I know there is not a single cause of this error but maybe so

  • EAI viewer Display Problem

    Hello Guys, We are using SAP ECC 6.00 version.I use SAP IN BUILT integrated viewer to view the auto CAd files.i have customized relevent info in DC30 for the workstation network. My problem is ,when i open any Original of autocad from DIR ,it opens t

  • Downloaded Photos but did not save, all lost?

    I'm new to iPhoto and to my Nikon CoolPix995 Camera.  I transfered 63 pictures to iPhoto and, thinking they  were on my computer,  erased them from my camera.  I've searched all my gif, tiff, pic, picture, etc., files in my Finder without any luck. I