Urgent!!!Need code to fetch all sales order data and download to flat file

urgent!!!Need code to fetch all sales order data and download to flat file

              D A T A B A S E  T A B L E S                          *
TABLES: vbak,                          "Sales Document: Header Data
        VBAP,                          "Sales Document: Item Data
        MARA,VAPMA,VBPA,VBLB,VBEP,
         VBKD.   "Murali Poli                         .
              I N T E R N A L   T A B L E S                         *
Internal table to hold the Delphi material numbers file
DATA: BEGIN OF tbl_matnr OCCURS 0,
        matnr LIKE mara-matnr,         "Material number
      END   OF tbl_matnr.
Internal table to hold customer cross ref data
DATA: BEGIN OF TBL_CUST_SA OCCURS 0,
        OLD_KUNNR LIKE KNA1-KUNNR,     "Old Customer
        OLD_VKORG LIKE A004-VKORG,     "Old Sales organisation
        OLD_VTWEG LIKE A004-VTWEG,     "Old Distribution channel
        NEW_KUNNR LIKE KNA1-KUNNR,     "New Customer
        NEW_VKORG LIKE A004-VKORG,     "New Sales organisation
        NEW_VTWEG LIKE A004-VTWEG,     "New Distribution channel
        PARVW LIKE VBPA-PARVW ,         "Partner function
END   OF TBL_CUST_SA.
Internal table to check the material numbers of the input file
DATA: tbl_mara LIKE tbl_matnr OCCURS 0 WITH HEADER LINE.
Work area to hold the header record
DATA: BEGIN OF w_sa_header,
         recordtype(1),                "Record type
         schedulingagreement(4),       "SA Type
         contractreference(10),        "Contract Reference
         salesorg(4),                  "Sales Organization
         distrchannel(2),              "Distribution channel
         division(2),                  "Sales division
         PONUMBER(35),                 "Purchase order number"gsbhondave
         soldtoparty(12),              "Sold-to party
         shiptoparty(12),              "Ship-to party
         collectivenumber(10),         "Collective number
         description(40),              "Description
         roundqty(13),                 "Rounding Qty
         pdsi(4),                                           "PDI
         correctiondeliverydate(8),    "Correction Delivery Dt
         correctionqty(13),            "Correction Qty
         cumulativereceivedqty(13),    "Cumulative Received Qty
         forecastdeliveryschedule(17), "Forecast Delivery Schedule
         forecastdelscheddate(8),      "Forecast Delivery Schedule Dt
         jitdeliveryschedule(17),      "JIT Delivery Schedule
         jitdeliveryscheduledate(8),   "JIT Delivery Schedule Dt
         materialnumber(18),           "Material number
         plant(4),                     "Plant
         item_category(4),             "Item Category
         suppliercode(15),             "Supplier code
         scac(4),                      "SCAC
         deloc(12),                    "DELOC
         pkg_id(12),                   "Packaging ID
         catno(30),                    "Ultimate Cust Part
         lgort(4),                     "Storage Location
         vstel(4),                     "Shipping point
Adding fields by Murali Poli
         VSBED(2),                     "Shipping conditions
         INCO1(3),                     "Incoterms (part 1)
         INCO2(28),                    "Incoterms (part 2)
         ZECN(1),                      "Engineering Change Letter
End of Adding fields by Murali Poli
       END OF w_sa_header.
Work area to hold the forecast record
DATA: BEGIN OF w_sa_forecast,
         recordtype(1),                "Record Type
         dateformat(1),                "Date format
         forecastdate(8),              "Forecast date
         forecastorderqty(13),         "Order Qty
       END OF w_sa_forecast.
Work area to hold the jit record
DATA: BEGIN OF w_sa_jit,
         recordtype(1),                "Record Type
         dateformat(1),                "Date format
         jitdate(8),                   "JIT date
         jittime(6),                   "JIT Time
         jitorderqty(13),              "Order Qty
       END OF w_sa_jit.
Internal table to hold the Extracted data
DATA: BEGIN OF tbl_record OCCURS 0,
        record_type,
        DATA(400), " changed from 325 to 400
       END OF tbl_record.
Internal table to capture the errors
DATA: BEGIN OF tbl_error OCCURS 0,
        error_text(135),
      END   OF tbl_error.
Internal table to hold the records of VBAP_VAPMA
DATA: BEGIN OF tbl_vbap_vapma OCCURS 0,
VBELN LIKE VAPMA-VBELN, "Sales and distribution document number
POSNR LIKE VAPMA-POSNR,                "Item number
AUART LIKE VAPMA-AUART,                "SA Type
VKORG LIKE VAPMA-VKORG,                "Sales Organization
VTWEG LIKE VAPMA-VTWEG,                "Distribution channel
SPART LIKE VAPMA-SPART,                "Division
KUNNR LIKE VAPMA-KUNNR,                "Sold-to
       plavo like vbap-plavo, "PDI
MATNR LIKE VAPMA-MATNR,                "Material number
WERKS LIKE VAPMA-WERKS,                "Plant
TRVOG LIKE VAPMA-TRVOG,                "Transaction group
VBTYP LIKE VBAK-VBTYP, "SD document category "Murali Poli
VSBED LIKE VBAK-VSBED, "Shipping conditions   "Murali Poli
BSTNK LIKE VBAK-BSTNK,  " Purchase order number " gsbhondave
KTEXT LIKE VBAK-KTEXT,
VGBEL LIKE VBAP-VGBEL,                 "Reference document no
ABLFZ LIKE VBAP-ABLFZ,                 "Rounding qty
PSTYV LIKE VBAP-PSTYV,                 "Item category
LGORT LIKE VBAP-LGORT,                 "Storage location
VSTEL LIKE VBAP-VSTEL,                 "Shipping point
END   OF TBL_VBAP_VAPMA.
DATA: BEGIN OF TBL_VBAP OCCURS 0,
VBELN LIKE VAPMA-VBELN,
POSNR LIKE VAPMA-POSNR,
VGBEL LIKE VBAP-VGBEL,
ABLFZ LIKE VBAP-ABLFZ,
PSTYV LIKE VBAP-PSTYV,
LGORT LIKE VBAP-LGORT,
VSTEL LIKE VBAP-VSTEL,
END   OF TBL_VBAP.
Adding by Murali Poli
DATA:BEGIN OF TBL_VBKD OCCURS 0,
      VBELN LIKE  VBKD-VBELN,
      POSNR LIKE  VBKD-POSNR,
      INCO1 LIKE  VBKD-INCO1,
      INCO2 LIKE  VBKD-INCO2,
     END OF TBL_VBKD.
End by Murali Poli
Internal table to hold temporarily the records of VBAP_VAPMA
DATA: tbl_vbap_vapma_temp LIKE tbl_vbap_vapma OCCURS 0 WITH HEADER LINE.
Internal table to hold the records of VBPA
DATA: BEGIN OF tbl_vbpa OCCURS 0,
        vbeln LIKE vbpa-vbeln,         "Sales and distribution
                                       "document number
        posnr LIKE vbpa-posnr,         "Item number
        parvw LIKE vbpa-parvw,         "SP Partner type
        kunnr LIKE vbpa-kunnr,         "Customer number
        lifnr LIKE vbpa-lifnr,         "SCAC code     "DN3K923909
      END   OF tbl_vbpa.
Internal table to hold the records of VBLB (Forecast)
DATA: BEGIN OF tbl_vblb_forecast OCCURS 0,
        vbeln  LIKE vblb-vbeln,
        posnr  LIKE vblb-posnr,
        abart  LIKE vblb-abart,        "Release type
        abefz  LIKE vblb-abefz,        "Cumulative Quantity
                                       "Received by Customer
        labnk  LIKE vblb-labnk,        "Delivery schedule
        abrdt  LIKE vblb-abrdt,        "Deivery date
        gjkun LIKE vblb-gjkun,         "Current fiscal year
        vjkun LIKE vblb-vjkun,         "Previous fiscal year
      END   OF tbl_vblb_forecast.
Internal table to hold the records of VBLB (JIT)
DATA: BEGIN OF tbl_vblb_jit OCCURS 0,
        vbeln  LIKE vblb-vbeln,
        posnr  LIKE vblb-posnr,
        abart  LIKE vblb-abart,        "Release type
        abefz  LIKE vblb-abefz,        "Cumulative Quantity
                                       "Received by Customer
        labnk  LIKE vblb-labnk,        "Delivery schedule
        abrdt  LIKE vblb-abrdt,        "Deivery date
        gjkun LIKE vblb-gjkun,         "Current fiscal year
        vjkun LIKE vblb-vjkun,         "Previous fiscal year
      END   OF tbl_vblb_jit.
Internal table to hold the Forecast Schedule lines
DATA: BEGIN OF tbl_vbep_forecast OCCURS 0,
       vbeln LIKE vbep-vbeln,          "Sales document
       posnr LIKE vbep-posnr,          "Item number
       etenr LIKE vbep-etenr,          "Schedule line
       edatu LIKE vbep-edatu,          "Schedule line date
       ezeit LIKE vbep-ezeit,          "Arrival time       "DN3K923909
       wmeng LIKE vbep-wmeng,          "Order quantity in sales units
       prgrs LIKE vbep-prgrs, "Date type (day, week, month, interval)
       abart LIKE vbep-abart,          "Release type       "DN3K923909
      END   OF tbl_vbep_forecast.
Internal table to hold the JIT Schedule lines
DATA: BEGIN OF tbl_vbep_jit OCCURS 0,
       vbeln LIKE vbep-vbeln,          "Sales document
       posnr LIKE vbep-posnr,          "Item number
       etenr LIKE vbep-etenr,          "Schedule line
       edatu LIKE vbep-edatu,          "Schedule line date
       ezeit LIKE vbep-ezeit,          "Arrival time
       wmeng LIKE vbep-wmeng,          "Order quantity in sales units
       prgrs LIKE vbep-prgrs, "Date type (day, week, month, interval)
       abart LIKE vbep-abart,          "Release type      "DN3K923909
      END   OF tbl_vbep_jit.
Internal table for Long texts
DATA: tbl_tline  LIKE tline OCCURS 0 WITH HEADER LINE.
                V A R I A B L E S                                   *
DATA: v_count               TYPE i,
      V_REPID               LIKE SY-REPID,
      w_eins                LIKE vbap-umvkz VALUE 1,
      v_cumulative_deli_qty LIKE vblb-abefz,
      v_text_name           LIKE thead-tdname,
      v_week                LIKE scal-week,
      v_count_h             TYPE i,    "Count of header records
      v_count_f             TYPE i,    "Count of Forecast records
      v_count_j             TYPE i,    "Count of JIT records
      v_count_t             TYPE i.    "Count of Shipping instructions
TYPES: unixfile LIKE rlgrap-filename,
       unixdir LIKE rlgrap-filename.
DATA: v_file1 TYPE unixfile,
      v_file2 TYPE unixfile.
DATA: tbl_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
*data  tbl_cust_sa.
      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 b1 WITH FRAME TITLE text-001.
         Valid-to date
PARAMETER:
          p_gueen like vbak-gueen obligatory,
         Correction Delivery date
           P_DELDT LIKE VBAK-GUEEN OBLIGATORY.
Begin of Changes - TIR-40266
              Plant
SELECT-OPTIONS: s_werks FOR vbap-werks.
*SD document category
SELECT-OPTIONS: S_VBTYP FOR VBAK-VBTYP OBLIGATORY." Murali Poli
         Sales organization
SELECT-OPTIONS: S_VKORG FOR VBAK-VKORG OBLIGATORY.
End   of Changes - TIR-40266
SELECTION-SCREEN SKIP 1.
PARAMETER:      r1  RADIOBUTTON GROUP rg1.
         Material numbers file
PARAMETER: P_FILE1 LIKE RLGRAP-FILENAME.
PARAMETER: P_FILE6 LIKE RLGRAP-FILENAME.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT  1(32) text-003.
SELECTION-SCREEN POSITION 33.
         SD SA Extract file
PARAMETER: P_FILE2 LIKE RLGRAP-FILENAME
  DEFAULT 'C:\sd_sa_extract.txt'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 2.
PARAMETER:      r2  RADIOBUTTON GROUP rg1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT  1(32) text-004.
SELECTION-SCREEN POSITION 33.
PARAMETER: p_path1 TYPE unixdir OBLIGATORY DEFAULT '/tmp/'.
SELECTION-SCREEN END OF LINE.
         Material numbers file
PARAMETER: PU_FILE1 LIKE RLGRAP-FILENAME.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT  1(32) text-003.
SELECTION-SCREEN POSITION 33.
         SD SA Extract file
PARAMETER: PU_FILE2 LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT  1(64) text-005.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END   OF BLOCK b1.
        A T  S E L E C T I O N   S C R E E N   E V E N T S          *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
  v_repid = syst-repid.
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
       EXPORTING
            program_name  = v_repid
       CHANGING
            file_name     = p_file1
       EXCEPTIONS
            mask_too_long = 1
            OTHERS        = 2.
  IF sy-subrc <> 0.
    MESSAGE e009.
  Message shown as 'Error while getting the file name'
  ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE6.
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
       EXPORTING
            program_name  = v_repid
       CHANGING
            FILE_NAME     = P_FILE6
       EXCEPTIONS
            mask_too_long = 1
            OTHERS        = 2.
  IF sy-subrc <> 0.
    MESSAGE e009.
  Message shown as 'Error while getting the file name'
  ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file2.
  v_repid = syst-repid.
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
       EXPORTING
            program_name  = v_repid
       CHANGING
            file_name     = p_file2
       EXCEPTIONS
            mask_too_long = 1
            OTHERS        = 2.
  IF sy-subrc <> 0.
    MESSAGE e009.
  Message shown as 'Error while getting the file name'
  ENDIF.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP rg1.
  IF r1 = 'X'.
    IF  p_file1 = '' OR p_file2 = ''.
      MESSAGE w000 WITH 'Please select a PC file'.
    ENDIF.
    LOOP AT SCREEN.
      IF screen-name = 'P_FILE1' OR
         screen-name = 'P_FILE2'.
        screen-input = '1'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSEIF r2 = 'X'.
    PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
    PERFORM get_value USING 'PU_FILE1' CHANGING pu_file1.
    PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
    PERFORM get_value USING 'PU_FILE2' CHANGING pu_file2.
    IF  pu_file1 = '' OR pu_file2 = ''.
      MESSAGE w000 WITH 'Please select a UNIX file'.
      LOOP AT SCREEN.
        IF screen-name = 'PU_FILE1' OR
           screen-name = 'PU_FILE2'.
          screen-input = '1'.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pu_file1.
  PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
  PERFORM get_value USING 'PU_FILE1' CHANGING pu_file1.
  PERFORM popup_unix_filename CHANGING p_path1 pu_file1.
  PERFORM set_value USING 'P_PATH1' p_path1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pu_file2.
  PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
  PERFORM get_value USING 'PU_FILE2' CHANGING pu_file2.
  PERFORM popup_unix_filename CHANGING p_path1 pu_file2.
  PERFORM set_value USING 'P_PATH1' p_path1.
                 T O P - O F - P A G E                              *
TOP-OF-PAGE.
PERFORM delphi_header(z_delphi_header_footer)
     USING
     'E & S SD SCHEDULING AGREEMENTS EXTRACT DATA'(016)
      space
      sy-linsz.
           S T A R T - O F  - S E L E C T I O N                     *
START-OF-SELECTION.
  IF r1 = 'X'.
    PERFORM upload_data_from_pc_files.
  ELSEIF r2 = 'X'.
    PERFORM upload_data_from_unix_files.
  ENDIF.
  PERFORM check_input_data.
  PERFORM get_sd_sa_data.
               E N D - O F - S E L E C T I O N                      *
END-OF-SELECTION.
  PERFORM process_data.
                    S U B - R O U T I N E S                          *
*&      Form  get_value
FORM get_value USING value(p_fieldname)
            CHANGING value(p_fieldvalue).
  IF v_repid IS INITIAL.
    v_repid = syst-repid.
  ENDIF.
  REFRESH: tbl_dynpfields.
  CLEAR: tbl_dynpfields.
  tbl_dynpfields-fieldname = p_fieldname.
  APPEND tbl_dynpfields.
  CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
            dyname               = v_repid
            dynumb               = '1000'
       TABLES
            dynpfields           = tbl_dynpfields
       EXCEPTIONS
            invalid_abapworkarea = 1
            invalid_dynprofield  = 2
            invalid_dynproname   = 3
            invalid_dynpronummer = 4
            invalid_request      = 5
            no_fielddescription  = 6
            invalid_parameter    = 7
            undefind_error       = 8
            double_conversion    = 9
            stepl_not_found      = 10
            OTHERS               = 11.
  IF syst-subrc = 0.
    READ TABLE tbl_dynpfields INDEX 1.
    p_fieldvalue = tbl_dynpfields-fieldvalue.
  ENDIF.
  REFRESH: tbl_dynpfields.
ENDFORM.                               " get_value
      FORM POPUP_UNIX_FILENAME                                      *
Pops up dialog box to explore the unix filesystem and select a file *
-->  VALUE(P_PATH)      Path where to start exploring from         *
-->  VALUE(P_FILENAME)  Default filename in the dialog box         *
FORM popup_unix_filename CHANGING value(p_path) TYPE unixdir
                                  value(p_filename) TYPE unixfile.
DATA: v_length TYPE i,
       v_filename TYPE unixfile,
       v_directory LIKE draw-filep,
       v_file LIKE draw-filep.
IF p_filename(1) = '/'  OR
    p_path IS INITIAL.
   v_filename = p_filename.
ELSE.
   v_length = strlen( p_path ) - 1.
   IF p_path+v_length(1) <> '/'.
     CONCATENATE p_path '/' INTO p_path.
   ENDIF.
   CONCATENATE p_path p_filename INTO v_filename.
ENDIF.
CALL FUNCTION 'Z_UNIX_FILENAME_GET'
      EXPORTING
           def_filename     = v_filename
           mask             = ',*.'
           mode             = 'G'
           title            = 'Get UNIX file...'
      IMPORTING
           filename         = v_filename
      EXCEPTIONS
           inv_winsys       = 1
           no_batch         = 2
           selection_cancel = 3
           selection_error  = 4
           OTHERS           = 5.
CHECK syst-subrc = 0.
CALL FUNCTION 'CV120_SPLIT_PATH'
      EXPORTING
           pf_path  = v_filename
      IMPORTING
           pfx_path = v_directory
           pfx_file = v_file
      EXCEPTIONS
           OTHERS   = 1.
CHECK syst-subrc = 0.
IF v_directory = p_path.
   p_filename = v_file.
ELSE.
   p_filename = v_filename.
ENDIF.
ENDFORM.
      FORM SET_VALUE                                                *
Sets the value of a field on the selection screen.                  *
-->  VALUE(P_FIELDNAME)   Name of the field on the selection screen*
-->  VALUE(P_FIELDVALUE)  Value of the field                       *
FORM set_value USING value(p_fieldname)
                     value(p_fieldvalue).
  IF v_repid IS INITIAL.
    v_repid = syst-repid.
  ENDIF.
  CLEAR: tbl_dynpfields.
  tbl_dynpfields-fieldname = p_fieldname.
  tbl_dynpfields-fieldvalue = p_fieldvalue.
  APPEND tbl_dynpfields.
  CALL FUNCTION 'DYNP_VALUES_UPDATE'
       EXPORTING
            dyname               = v_repid
            dynumb               = '1000'
       TABLES
            dynpfields           = tbl_dynpfields
       EXCEPTIONS
            invalid_abapworkarea = 1
            invalid_dynprofield  = 2
            invalid_dynproname   = 3
            invalid_dynpronummer = 4
            invalid_request      = 5
            no_fielddescription  = 6
            undefind_error       = 7
            OTHERS               = 8.
ENDFORM.
*&      Form  upload_data_from_pc_files
This subroutine is used to upload the data from input files
FORM upload_data_from_pc_files.
  REFRESH: tbl_matnr.
  CLEAR:   tbl_matnr.
Upload the data from Delphi Materials file
  CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
            filename                = p_file1
            filetype                = 'DAT'
       TABLES
            data_tab                = tbl_matnr
       EXCEPTIONS
            conversion_error        = 1
            file_open_error         = 2
            file_read_error         = 3
            invalid_type            = 4
            no_batch                = 5
            unknown_error           = 6
            invalid_table_width     = 7
            gui_refuse_filetransfer = 8
            customer_error          = 9
            OTHERS                  = 10.
  IF sy-subrc <> 0.
    MESSAGE e008 WITH 'Materials file'.
  Message shown as "Error while reading Materials file"
  ENDIF.
  IF sy-subrc = 0 AND tbl_matnr[] IS INITIAL.
    MESSAGE e013 WITH 'Materials'.
  Message shown as "No records found in Materials file"
  ENDIF.
  DELETE tbl_matnr WHERE matnr = ''.
  CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
            FILENAME                = P_FILE6
            filetype                = 'DAT'
       TABLES
            DATA_TAB                = TBL_CUST_SA
       EXCEPTIONS
            conversion_error        = 1
            file_open_error         = 2
            file_read_error         = 3
            invalid_type            = 4
            no_batch                = 5
            unknown_error           = 6
            invalid_table_width     = 7
            gui_refuse_filetransfer = 8
            customer_error          = 9
            OTHERS                  = 10.
  IF sy-subrc <> 0.
    MESSAGE E008 WITH 'Customer/Sales Area Cross Reference file'.
  Message shown as "Error while reading Materials file"
  ENDIF.
ENDFORM.                               " upload_data_from_pc_files
*&      Form  upload_data_from_unix_files
This subroutine is used to upload the data from UNIX files
FORM upload_data_from_unix_files.
  REFRESH: tbl_matnr.
  CLEAR:   tbl_matnr.
Get the complete filename for the Materials file
  PERFORM get_full_filename USING pu_file1 CHANGING v_file1.
Open the Materials file
  PERFORM open_dataset USING v_file1 'I' 'T' 1.
  CHECK syst-subrc = 0.
Read the materials file
  DO.
    READ DATASET v_file1 INTO tbl_matnr.
    IF syst-subrc <> 0.
      EXIT.
    ENDIF.
Populate the read data into the internal table
    APPEND tbl_matnr.
  ENDDO.
  PERFORM close_dataset USING v_file1.
ENDFORM.                               " upload_data_from_unix_files
      FORM GET_FULL_FILENAME                                        *
Uses the logical path if necessary to get the full filename         *
If the filename already has a directory specified, that itself will *
  be the full filename                                              *
Else the logical path for Conversions will be prefixed to the given *
  filename                                                          *
FORM get_full_filename USING value(p_file) TYPE unixfile
                    CHANGING value(p_fullfile) TYPE unixfile.
  DATA: v_length TYPE i.
IF p_file(1) = '/'  OR
    p_path1 IS INITIAL.
   p_fullfile = p_file.
ELSE.
   v_length = strlen( p_path1 ) - 1.
   IF p_path1+v_length(1) = '/'.
     CONCATENATE p_path1 p_file INTO p_fullfile.
   ELSE.
     CONCATENATE p_path1 '/' p_file INTO p_fullfile.
   ENDIF.
ENDIF.
ENDFORM.
      FORM OPEN_DATASET                                             *
Opens dataset in the specified mode                                 *
-->  VALUE(P_FILE)    Name of file to be opened                    *
-->  VALUE(P_IOMODE)  'I' for Input / 'O' for Output               *
-->  VALUE(P_BTMODE)  'T' for Text / 'B' for Binary                *
-->  VALUE(P_LEVEL)   If set to > 1, will write error message to   *
                       list Else will supress the error message but *
                       will be available in SYST-MSGV1              *
FORM open_dataset USING value(p_file) TYPE unixfile
                        value(p_iomode) TYPE c
                        value(p_btmode) TYPE c
                        value(p_level) TYPE i.
  DATA: v_rc LIKE syst-subrc,
        v_msg(100),
        v_listmsg(100).
  IF p_iomode = 'O'.
    IF p_btmode = 'B'.
      OPEN DATASET p_file FOR OUTPUT IN BINARY MODE MESSAGE v_msg.
    ELSE.
      OPEN DATASET p_file FOR OUTPUT IN TEXT MODE MESSAGE v_msg.
    ENDIF.
  ELSE.
    IF p_btmode = 'B'.
      OPEN DATASET p_file FOR INPUT IN BINARY MODE MESSAGE v_msg.
    ELSE.
      OPEN DATASET p_file FOR INPUT IN TEXT MODE MESSAGE v_msg.
    ENDIF.
  ENDIF.
  IF syst-subrc <> 0.
    v_rc = syst-subrc.
    syst-msgv1 = v_msg.
    IF p_level > 0.
      CONCATENATE 'Unable to open' p_file
             INTO v_listmsg
        SEPARATED BY space.
      IF p_iomode = 'O'.
        CONCATENATE v_listmsg 'for Output'
               INTO v_listmsg
          SEPARATED BY space.
      ELSE.
        CONCATENATE v_listmsg 'for Input'
               INTO v_listmsg
          SEPARATED BY space.
      ENDIF.
      IF p_iomode = 'B'.
        CONCATENATE v_listmsg 'in Binary mode'
               INTO v_listmsg
          SEPARATED BY space.
      ELSE.
        CONCATENATE v_listmsg 'in Text mode'
               INTO v_listmsg
          SEPARATED BY space.
      ENDIF.
      WRITE: / v_listmsg.
      WRITE: /3 '--', v_msg.
      syst-subrc = v_rc.
    ENDIF.
  ENDIF.
ENDFORM.
      FORM CLOSE_DATASET                                            *
Closes dataset                                                      *
-->  VALUE(P_FILE)  Name of the file to be closed                  *
FORM close_dataset USING value(p_file) TYPE unixfile.
  CLOSE DATASET p_file.
ENDFORM.
*&      Form  check_input_data
This subroutine is used to check the data from X Ref files
FORM check_input_data.
  DESCRIBE TABLE tbl_matnr LINES v_count.
Use the material conversion routine to pad the material numbers
with zeroes
  LOOP AT tbl_matnr.
    CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
         EXPORTING
              input        = tbl_matnr-matnr
         IMPORTING
              output       = tbl_matnr-matnr
         EXCEPTIONS
              length_error = 1
              OTHERS       = 2.
    TRANSLATE tbl_matnr-matnr TO UPPER CASE.
    MODIFY tbl_matnr.
  ENDLOOP.
Get the materials from SAP database using the input materials
  IF NOT tbl_matnr[] IS INITIAL.
    SORT tbl_matnr BY matnr.
    SELECT matnr FROM mara
      INTO TABLE tbl_mara
       FOR ALL ENTRIES IN tbl_matnr
     WHERE matnr = tbl_matnr-matnr.
    SORT tbl_mara BY matnr.
  ENDIF.
Check the existence of input materials in SAP database
  LOOP AT tbl_matnr.
    READ TABLE tbl_mara WITH KEY matnr = tbl_matnr-matnr
         BINARY SEARCH.
    IF sy-subrc <> 0.
      CONCATENATE 'Material' tbl_matnr-matnr 'does not exist'
             INTO tbl_error-error_text
        SEPARATED BY space.
      APPEND tbl_error.
      CLEAR  tbl_error.
      DELETE tbl_matnr.
    ENDIF.
  ENDLOOP.
ENDFORM.                               " check_input_data
*&      Form  get_sd_sa_data
This subroutine is used to get the SD Scheduling data from database
FORM get_sd_sa_data.
*begin of changes - DN3K923909
  DATA: tbl_vbep LIKE tbl_vbep_forecast OCCURS 0 WITH HEADER LINE,
        tbl_vblb LIKE tbl_vblb_forecast OCCURS 0 WITH HEADER LINE.
*end of changes - ND3K923909
  REFRESH: tbl_vbap_vapma, tbl_vbpa, tbl_vblb_forecast,
           tbl_vblb_jit, tbl_vbep_forecast, tbl_vbep_jit.
  CLEAR:   tbl_vbap_vapma, tbl_vbpa, tbl_vblb_forecast,
           tbl_vblb_jit, tbl_vbep_forecast, tbl_vbep_jit.
Get the Scheduling Agreements
  SELECT avbeln aposnr
       a~vgbel
         AAUART avkorg avtweg aspart a~kunnr
        a~ablfz
         A~MATNR
       a~pstyv
         a~werks
       a~lgort
        a~vstel
          ATRVOG BVBTYP BVSBED  BBSTNK B~KTEXT
    FROM VAPMA AS A INNER JOIN VBAK AS B
      ON bvbeln = avbeln
    INTO TABLE tbl_vbap_vapma
     FOR ALL ENTRIES IN tbl_mara
   WHERE a~matnr = tbl_mara-matnr
Begin of Changes - TIR-40266
     AND a~vkorg IN s_vkorg
     AND a~werks IN s_werks
End of Changes - TIR-40266
     AND A~TRVOG = '3'
     AND B~VBTYP IN S_VBTYP.           "Murali Poli
    and a~abgru = ''
    and b~gueen >= p_gueen.
  SORT tbl_vbap_vapma BY vbeln posnr.
  IF NOT tbl_vbap_vapma[] IS INITIAL.
    SELECT VBELN POSNR VGBEL ABLFZ PSTYV LGORT VSTEL FROM VBAP
     INTO TABLE  TBL_VBAP FOR ALL ENTRIES IN TBL_VBAP_VAPMA
       WHERE VBELN = TBL_VBAP_VAPMA-VBELN
        AND POSNR = TBL_VBAP_VAPMA-POSNR.
    LOOP AT TBL_VBAP_VAPMA.
      READ TABLE TBL_VBAP WITH KEY VBELN = TBL_VBAP_VAPMA-VBELN
                                   POSNR = TBL_VBAP_VAPMA-POSNR.
      IF SY-SUBRC = 0 .
        TBL_VBAP_VAPMA-VBELN  = TBL_VBAP-VBELN.
        TBL_VBAP_VAPMA-POSNR  = TBL_VBAP-POSNR.
        TBL_VBAP_VAPMA-VGBEL  = TBL_VBAP-VGBEL.
        TBL_VBAP_VAPMA-ABLFZ  = TBL_VBAP-ABLFZ.
        TBL_VBAP_VAPMA-PSTYV  = TBL_VBAP-PSTYV.
        TBL_VBAP_VAPMA-LGORT  = TBL_VBAP-LGORT.
        TBL_VBAP_VAPMA-VSTEL  = TBL_VBAP-VSTEL.
        MODIFY TBL_VBAP_VAPMA .
      ENDIF.
    ENDLOOP.
    tbl_vbap_vapma_temp[] = tbl_vbap_vapma[].
*--Begin of UnCommentDIR-51476-DN3K932648
-------------- Begin of Comment -----------  CCR-50124  DN3K928457
    SORT tbl_vbap_vapma_temp BY vbeln.
    DELETE ADJACENT DUPLICATES FROM tbl_vbap_vapma COMPARING vbeln.
-------------- End of Comment -----------  CCR-50124  DN3K928457
*--End of UnCommentDIR-51476-DN3K932648
*--Begin of CommentDIR-51476-DN3K932648
-------------- Begin of Insert -----------  CCR-50124  DN3K928457
Duplicate Line Items are being deleted.
   SORT tbl_vbap_vapma BY vbeln posnr.
DELETE ADJACENT DUPLICATES FROM tbl_vbap_vapma COMPARING vbeln posnr.
The field for contract in SA is being modified for uniqueness
   loop at tbl_vbap_vapma.
     clear: v_vgbel, v_posnr.
     v_vgbel = tbl_vbap_vapma-vgbel.
     v_posnr = tbl_vbap_vapma-posnr.
     if not v_vgbel is initial .
       shift v_vgbel left deleting leading v_zero.
       shift v_posnr left deleting leading v_zero.
       v_posnr = v_posnr / 10.
       condense: v_vgbel, v_posnr.
       if v_posnr le 9.
         concatenate v_vgbel '0' v_posnr into v_vgbel.
       else.
         concatenate v_vgbel v_posnr into v_vgbel.
       endif.
     endif.
     tbl_vbap_vapma-vgbel = v_vgbel.
     modify tbl_vbap_vapma.
   endloop.
-------------- End of Insert -----------  CCR-50124  DN3K928457
*--End of CommentDIR-51476-DN3K932648
Get the Partner details
   select vbeln posnr parvw kunnr
*Start of Murali Poli
    SELECT VBELN POSNR INCO1 INCO2
           INTO TABLE TBL_VBKD
           FROM VBKD
           FOR ALL ENTRIES IN TBL_VBAP_VAPMA
           WHERE VBELN = TBL_VBAP_VAPMA-VBELN.
          and posnr  = tbl_vbap_vapma-posnr.
*End of Murali Poli
    SELECT vbeln posnr parvw kunnr lifnr                    "DN3K923909
      INTO TABLE tbl_vbpa
      FROM vbpa
       FOR ALL ENTRIES IN tbl_vbap_vapma_temp
     WHERE vbeln = tbl_vbap_vapma_temp-vbeln
       AND parvw IN ('WE', 'SP').
*begin of changes - DN3K923909
   select vbeln posnr abart abefz labnk abrdt gjkun vjkun
     into table tbl_vblb_forecast
     from vblb
      for all entries in tbl_vbap_vapma
    where vbeln = tbl_vbap_vapma-vbeln
      and posnr = tbl_vbap_vapma-posnr
      and abrli = '0000'
      and abart = '1'.
    SELECT vbeln posnr abart abefz labnk abrdt gjkun vjkun
      INTO TABLE tbl_vblb
      FROM vblb
       FOR ALL ENTRIES IN tbl_vbap_vapma
     WHERE vbeln = tbl_vbap_vapma-vbeln
       AND posnr = tbl_vbap_vapma-posnr
       AND abrli = '0000'
       AND abart IN ('1','2').
    SELECT vbeln posnr etenr edatu ezeit wmeng prgrs abart
      INTO TABLE tbl_vbep
      FROM vbep
       FOR ALL ENTRIES IN tbl_vbap_vapma
     WHERE vbeln = tbl_vbap_vapma-vbeln
       AND posnr = tbl_vbap_vapma-posnr
       AND abart IN ('1','2').
Get the current Forecast delivery schedule
    tbl_vblb_forecast[] = tbl_vblb[].
    DELETE tbl_vblb_forecast WHERE abart = '2'.
Get the current Forecast Schedule lines
    tbl_vbep_forecast[] = tbl_vbep[].
    DELETE tbl_vbep_forecast WHERE abart = '2'.
Get the current JIT delivery Schedule
   select vbeln posnr abart abefz labnk abrdt gjkun vjkun
     into table tbl_vblb_jit
     from vblb
      for all entries in tbl_vbap_vapma
    where vbeln = tbl_vbap_vapma-vbeln
      and posnr = tbl_vbap_vapma-posnr

Similar Messages

  • Fetching the sales order data using both system status and user status

    Hi,
    Could any one tell me how to fetch sales orders using both system status and user status.
    My requirement is to fetch sales order data in a report where the user enters the system status and user status in the selection screen fields.
    For example i need sales orders where the system status is I1002 i.e. OPEN and user status is E0002 (status profile CMSCON0) that is In Process
    Early replies are appreciated.
    Thanks
    Tanveer

    Hi,
    The system status and user status are stored in CRM_JCDS & CRM_JEST tables you can get the all the order GUID on particular status further pass the order GUID in table CRMD_ORDERADM_H to get transaction ID.
    Regards,
    Dipesh.

  • Sales Order Date and Despatch Advice Date

    Hi all,
    I need to create a view that contains Sales Order #, Despatch Advice # , Sales Order Date, Despatch Advice Date and Sales Organization. Please tell me that using which tables, required view can be created?
    Regards,
    AI.

    In table VBAK, you can take the fields Sales Organisation, po # & Date.
    What do you mean by Despatch Advice # ??  If you are referring to delivery which we generate in VL01N, you can make use of table LIKP for header level and LIPS for item level.
    thanks
    G. Lakshmipathi

  • Linking between Sales order data and Biling condition

    Hi Bwers,
    Currently we are geneating a report with Sales order Item level (2lis_11_VAITM) information and Biling conditions(2lis_13_VDKON). We have respective DSO for both datasources (Sales order DSO and Biling Condition DSO). We have to pull both information into a report.
    We have sales order number (0DOC_NUM) in Sales DSO and Biling document number (0BILL_NUMber) in Biling DSO. And we found Sales order Number (0BILL_NUM_0DOC_NUMB) as an navigational attribute for Biling DSO.
    We are trying to extract Billing condition type and Billing condition value from Billing DSO.
    Now the question's are:
    1. Can I use Sales order number as linking field for Both DSO' or not. Though It is an Navigational attribute for Biling document number in Biling DSO.
    2. Is the Sales order number and Billing Document number both are same or not. What is the linking field between sales order info to Biling info.
    2. How to bring Sales order info and Biling info into a report through Infoset. If infoset which link should I use bring both info into a report.
    3. Or Multiprovider is the right one.
    3. Please let me know if any other linking fields are existed between these two datasources other than Sales order.
    All the helpful answers are awareded with full points.
    Regards,
    Venkat

    1. Can I use Sales order number as linking field for Both DSO' or not. Though It is an Navigational attribute for Biling document number in Biling DSO.
    - yes you can link, Navigation attrbute does not matter
    2. Is the Sales order number and Billing Document number both are same or not. What is the linking field between sales order info to Biling info.
    --one sales order number may correspond to different billing number including the one which shares the same number.
    2. How to bring Sales order info and Biling info into a report through Infoset. If infoset which link should I use bring both info into a report.
    -- Multiprovider is the best option while dealing with such cases.
    3. Or Multiprovider is the right one.
    --yes.
    3. Please let me know if any other linking fields are existed between these two datasources other than Sales order.
    there may be possibilty of other fields also like Profit center, Controling area etc depending upon your project requirment

  • BAPI for Create PO from Sales Order Data and POST GR from PO created

    Dear,
             Can u help me how to create BAPI for Purchase Order creation from sales order Data
              what the bapi to Post GR from the PO created.
    Regards,
    Manoj

    Hello Manoj what you have to do to create PO from PR is that
    1) Use   BAPISDORDER_GETDETAILEDLIST (pass sales order number in sales_document table) and then get PR (Purchase requisition number from this BAPI.
    2) Use  BAPI_REQUISITION_GETDETAIL to get PR items
    3) Use BAPI_PO_CREATE1 to craete PO from PR then.
    to create goods movement you can use
    BAPI_GOODSMVT_CREATE
    REWARDS IF USEFUL.

  • Hai all sales order  discription and quantity should not allow modification

    Hi all
    any one plz respond me, my requirement is once the sales order approved then its not allow any modification  like order quantity, discreption and first delivery date in the change mode va02 and va22 plz help me .
    regards,
    venkat.

    You can use user exit   MV45AFZZ and here
    FORM USEREXIT_FIELD_MODIFICATION.
    CASE SCREEN-GROUP3.
      WHEN '900'.
        IF VBAK-VBTYP NE 'A'.
          SCREEN-ACTIVE = 0.
        ENDIF.
    ENDCASE.
    CASE SCREEN-NAME.
      WHEN 'VBAK-VBELN'.
        SCREEN-ACTIVE = 0.
    ENDCASE.
    ENDFORM.
    Write your code between Form and endform.
    try to mention sy-tcode is VA02.
    then it won't distrb others.
    Reward Points if it is helpful
    Thanks
    Seshu

  • Urgently Need Code for Copy & Paste from Html Table in JSP to Excel file

    I am creating a html table in JSP file .
    I need code for 'Cut,Copy,Paste' functions ie. if someone wants to copy data from my table to excel file or from excel file to html table he shud be able to do that.
    Can someone give me code for 'Cut,Copy and Paste' i.e. some javascript functions which can do cut, copy and paste which i can put in my jsp file
    Thanks
    Message was edited by:
    javatechguru2007

    package com.chinmayananda
    public class Tetris{
    // complete here
    code]
    public abstract class AbstractTetris {
       public abstract void start();
       public abstract void stop();
    }nearly done

  • Which t code use before pre sale order

    gud morng to all
          pls tell me. which t. code use before pre sale order (va21) and why this function use and how
    regards,
    gaurav pabreja

    T.Code: VA11
    to create Inquiry
    The document flow is
    IN > QT > OR > LF > F2
    The Inquiry is done in order to get to know the price that the customer is going to get. It can be done over the phone, e-mail or a walk-in.
    Regards
    AK
    reward points if helpful

  • Sales order date should equal to system date

    Hi gurus,
    i have one query realted sales order date:
    my client requirement is in order validity date should be equal or higher to the order creation date.it sholud not allow back date.what could be custmization has to do.

    Dear Kongara,
    Try with,
    T. Code: VOV8
    Select your Sales order Type and duble-click.
    Now, In Tab: Requested delievry date/Pricing date/PO date
    Maintain Field: Prop Vaild from date as A
    Note: This functionality is proposed, when Sales Order is getting created with reference to another Sales Doc, say Quotation. If you are creating Sales Order w/o reference, I doubt how will this behave.
    Reason for being this could be Contract/ Quotations are served as proposals whereas Sales Orders are served as commitment towards Customer.
    Alternatively, refer link:
    Re: Restriction for sales order document date
    In this thread, read Krishnamurthy's post. If you have Field Name for Validity date, you may try his suggestion.
    Best Regards,
    Amit.
    P.S. Wait for other responses from elite members of the forum.

  • Need All Sales Order user exit

    Neeed all Sales Order user exits

    Hi,
    Check these Exits and their corresponding Programs
    User Exits In Sales Document Processing
    This IMG step describes additional installation-specific processing in sales document processing. In particular, the required INCLUDES and user exits are described.
    Involved program components
    System modifications for sales document processing affect different areas. Depending on the modification, you make the changes in the program components provided:
    MV45ATZZ
    For entering metadata for sales document processing. User-specific metadata must start with "ZZ".
    MV45AOZZ
    For entering additional installation-specific modules for sales document processing which are called up by the screen and run under PBO (Process Before Output) prior to output of the screen. The modules must start with "ZZ".
    MV45AIZZ
    For entering additional installation-specific modules for sales document processing. These are called up by the screen and run under PAI (Process After Input) after data input (for example, data validation). The modules must start with "ZZ".
    MV45AFZZ and MV45EFZ1
    For entering installation-specific FORM routines and for using user exits, which may be required and can be used if necessary. These program components are called up by the modules in MV45AOZZ or MV45AIZZ.
    User exits in the program MV45AFZZ
    The user exits which you can use for modifications in sales document processing are listed below.
    USEREXIT_DELETE_DOCUMENT
    This user exit can be used for deleting data which was stored in a separate table during sales document creation, for example, if the sales document is deleted.
    For example, if an additional table is filled with the name of the person in charge (ERNAM) during order entry, this data can also be deleted after the sales order has been deleted.
    The user exit is called up at the end of the FORM routine BELEG_LOESCHEN shortly before the routine BELEG_SICHERN.
    USEREXIT_FIELD_MODIFICATION
    This user exit can be used to modify the attributes of the screen fields.
    To do this, the screen fields are allocated to so-called modification groups 1 - 4 and can be edited together during a modification in ABAP. If a field has no field name, it cannot be allocated to a group.
    The usage of the field groups (modification group 1-4) is as follows:
    Modification group 1: Automatic modification with transaction MFAW
    Modification group 2: It contains 'LOO' for step loop fields
    Modification group 3: For modifications which depend on check tables or on other fixed information
    Modification group 4: is not used
    The FORM routine is called up for every field of a screen. If you require changes to be made, you must make them in this user exit.
    This FORM routine is called up by the module FELDAUSWAHL.
    See the Screen Painter manual for further information on structuring the interface.
    USEREXIT_MOVE_FIELD_TO_VBAK
    Use this user exit to assign values to new fields at sales document header level. It is described in the section "Transfer of the customer master fields into the sales document".
    The user exit is called up at the end of the FORM routine VBAK_FUELLEN.
    USEREXIT_MOVE_FIELD_TO_VBAP
    Use this user exit to assign values to new fields at sales document item level. It is described in the section "Copy customer master fields into the sales document".
    The user exit is called up at the end of the FORM routine VBAP_FUELLEN.
    USEREXIT_MOVE_FIELD_TO_VBEP
    Use this user exit to assign values to new fields at the level of the sales document schedule lines.
    The user exit is called up at the end of the FORM routine VBEP_FUELLEN.
    USEREXIT_MOVE_FIELD_TO_VBKD
    Use this user exit to assign values to new fields for business data of the sales document. It is described in the section "Copy customer master fields into sales document".
    The user exit is called up at the end of the FORM routine VBKD_FUELLEN.
    USEREXIT_NUMBER_RANGE
    Use this user exit to define the number ranges for internal document number assignment depending on the required fields. For example, if you want to define the number range depending on the sales organization (VKORG) or on the selling company (VKBUR), use this user exit.
    The user exit is called up in the FORM routine BELEG_SICHERN.
    USEREXIT_PRICING_PREPARE_TKOMK
    Use this user exit if you want to include and assign a value to an additional header field in the communication structure KOMK taken as a basis for pricing.
    USEREXIT_PRICING_PREPARE_TKOMP
    Use this user exit if you want to include or assign a value to an additional item field in the communication structure KOMP taken as a basis for pricing.
    USEREXIT_READ_DOCUMENT
    You use this user exit if further additional tables are to be read when importing TA01 or TA02.
    The user exit is called up at the end of the FORM routine BELEG_LESEN.
    USEREXIT_SAVE_DOCUMENT
    Use this user exit to fill user-specific statistics update tables.
    The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.
    Note
    If a standard field is changed, the field r185d-dataloss is set to X. The system queries this indicator at the beginning of the safety routine. This is why this indicator must also be set during the maintenance of user-specific tables that are also to be saved.
    USEREXIT_SAVE_DOCUMENT_PREPARE
    Use this user exit to make certain changes or checks immediately before saving a document. It is the last possibility for changing or checking a document before posting.
    The user exit is carried out at the beginning of the FORM routine BELEG_SICHERN.
    User exits in the program MV45AFZA
    USEREXIT_MOVE_FIELD_TO_KOMKD
    Use this user exit to include or assign values to additional header fields in the communication structure KOMKD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
    USEREXIT_MOVE_FIELD_TO_KOMPD
    Use this user exit to include or assign values to additional item fields in the communication structure KOMPD taken as a basis for the material determination. This is described in detail in the section "New fields for material determination".
    USEREXIT_MOVE_FIELD_TO_KOMKG
    Use this user exit to include or assign values to additional fields in the communication structure KOMKG taken as a basis for material determination and material listing. This is described in detail in the section "New fields for listing/exclusion".
    USEREXIT_MOVE_FIELD_TO_KOMPG
    Use this user exit to include or assign values to additional fields in the communication structure KOMPG taken as a basis for material determination and material listung. This is described in detail in the section "New fields for listing/exclusion".
    USEREXIT_REFRESH_DOCUMENT
    With this user exit, you can reset certain customer-specific fields as soon as processing of a sales document is finished and before the following document is edited.
    For example, if the credit limit of the sold-to party is read during document processing, in each case it must be reset again before processing the next document so that the credit limit is not used for the sold-to party of the following document.
    The user exit is executed when a document is saved if you leave the processing of a document with F3 or F15.
    The user exit is called up at the end of the FORM routine BELEG_INITIALISIEREN.
    User-Exits in program MV45AFZB
    USEREXIT_CHECK_XVBAP_FOR_DELET
    In this user exit, you can enter additional data for deletion of an item. If the criteria are met, the item is not deleted (unlike in the standard system).
    USEREXIT_CHECK_XVBEP_FOR_DELET
    In this user exit, you can enter additional data for deletion of a schedule line. If the criteria are met, the schedule line is not deleted (unlike in the standard system).
    USEREXIT_CHECK_VBAK
    This user exit can be used to carry out additional checks (e.g. for completion) in the document header. The system could, for example, check whether certain shipping conditions are allowed for a particular customer group.
    USEREXIT_CHECK_VBAP
    This user exit can be used to carry out additional checks (e.g. for completion) at item level.
    USEREXIT_CHECK_VBKD
    The user exit can be used to carry out additional checks (e.g. for completion) on the business data in the order.
    USEREXIT_CHECK_VBEP
    This user exit can be use to carry out additional checks (e.g. for completion) on the schedule line. During BOM explosion, for example, you may want certain fields to be copied from the main item to the sub-items (as for billing block in the standard system).
    USEREXIT_CHECK_VBSN
    You can use this user exit to carry out additional checks (e.g. for completion) on the serial number.
    USEREXIT_CHECK_XVBSN_FOR_DELET
    In this user exit, you can enter additional criteria for deletion of the serial number. If the criteria are met, the serial number is not deleted (unlike in the standard system).
    USEREXIT_FILL_VBAP_FROM_HVBAP
    You can use this user exit to fill additional fields in the sub-item with data from the main item.
    USEREXIT_MOVE_FIELD_TO_TVCOM_H
    You can use this user exit to influence text determination for header texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
    USEREXIT_MOVE_FIELD_TO_TVCOM_I
    You can use this user exit to influence text determination for item texts. For example, you can include new fields for text determination or fill fields that already exist with a new value.
    User-Exits for product allocation:
    The following user exits all apply to structure COBL, in which the data for account determination is copied to item level.
    USEREXIT_MOVE_FIELD_TO_COBL
    Option to include new fields in structure COBL.
    USEREXIT_COBL_RECEIVE_VBAK
    Option to assign values from the document header to the new fields.
    USEREXIT_COBL_RECEIVE_VBAP
    Option to supply values from the item to the new fields.
    USEREXIT_COBL_SEND_ITEM
    A changed field can be copied from the structure into the item. You could use the user exit to display a certain field in the account assignment block (see also MV45AFZB).
    USEREXIT_COBL_SEND_HEADER
    A changed field can be copied from the structure to the header (see source text MV45AFZB)
    USEREXIT_SOURCE_DETERMINATION
    You can use this user exit to determine which plant will be used for the delivery. In the standard system, the delivering plant is copied from the customer master or the customer-material info record. If you want to use a different rule, then you must enter it in this user exit.
    USEREXIT_MOVE_FIELD_TO_ME_REQ
    With this user exit you can include additional fields for the following fields:
    EBAN (purchase requisition)
    EBKN (purchase requisition-account assignment)
    USEREXIT_GET_FIELD_FROM_SDCOM
    Option to include new fields for the variant configuration. Fields that are included in structure SDCOM can be processed and then returned to the order.
    USEREXIT_MOVE_WORKAREA_TO_SDWA
    You can use this user exit to format additional work areas for the variant configuration. You will find notes on the user exit in MV45AFZB.
    User-Exits for first data transfer:
    The following user exits can only be used for the first data transfer.
    Note
    Only use the user exits if the names/fields do NOT have the same name.
    USEREXIT_MOVE_FIELD_TO_VBAKKOM
    Option to include additional fields in structure VBAKKOM (communiction fields for maintaining the sales document header)
    USEREXIT_MOVE_FIELD_TO_VBAPKOM
    Option to include additional fields in structure VBAPKOM (communication fields for maintaining a sales item)
    USEREXIT_MOVE_FIELD_TO_VBEPKOM
    Option to include additional fields in structure VBEPKOM (communication fields for maintaining a sales document schedule line)
    USEREXIT_MOVE_FIELD_TO_VBSN
    You can use this user exit to include fields in structure VBSN (scheduling agreement-related change status).
    USEREXIT_MOVE_FIELD_TO_KOMKH
    You can use this user exit to include new fields for batch determination (document header).
    USEREXIT_MOVE_FIELD_TO_KOMPH
    You can use this user exit to include new fields for batch determination (document item).
    USEREXIT_CUST_MATERIAL_READ
    You can use this user exit to set another customer number in the customer material info record (e.g. with a customer hierarchy)
    USEREXIT_NEW_PRICING_VBAP
    Option for entry of preconditions for carrying out pricing again (e.g. changes made to a certain item field could be used as the precondition for pricing to be carried out again). Further information in MV45AFZB.
    USEREXIT_NEW_PRICING_VBKD
    Option for entry of preconditions for carrying out pricing again (e.g. changes to the customer group or price group could be set as the preconditions for the system to carry out pricing again). Further information in MV45AFZB.
    User-Exits in Program MV45AFZD
    USEREXIT_CONFIG_DATE_EXPLOSION
    The BOM is exploded in the order with the entry date. You can use this user exit to determine which data should be used to explode the BOM (explosion with required delivery date, for example).
    User exits in the program FV45EFZ1
    USEREXIT_CHANGE_SALES_ORDER
    In the standard SAP R/3 System, the quantity and confirmed date of the sales document schedule line is changed automatically if a purchase requisition is allocated, and it or the sales document is changed (for example, quantity, date).
    If you want to change this configuration in the standard system, you can define certain requirements in order to protect your sales orders from being changed automatically. Use this user exit for this purpose. Decide at this point whether the schedule lines are to be changed.
    User-Exits in Program RV45PFZA
    USEREXIT_SET_STATUS_VBUK
    In this user exit you can you can store a specification for the reserve fields in VBUK (header status). Reserve field UVK01 could, for example, be used for an additional order status (as for rejections status, etc.).
    The following workareas are available for this user exit:
    VBUK (header status)
    FXVBUP (item status)
    FXVBUV (Incompletion)
    USEREXIT_SET_STATUS_VBUP
    In this user exit you can you can store a specification for the reserve fields for VBUP (item status).
    The following workareas are available for this user exit:
    FXVBAP (Item data)
    FXVBAPF (Dynamic part of order item flow)
    FXVBUV (Incompletion)
    USEREXIT_STATUS_VBUK_INVOICE
    You can use this user exit to influence billing status at header level.
    User exits in the screens
    Additional header data is on screen SAPMV45A 0309, additional item data on screen SAPMV45A 0459. These screens contain the Include screens SAPMV45A 8309 or SAPMV45A 8459 as user exits.
    Fields which are also to be included in the sales document for a specific installation should be included on the Include screens for maintaining. If an application-specific check module is needed for the fields, this can be included in the Include MV45AIZZ. The module is called up in the processing logic of the Include screens.
    For field transports, you do not have to make changes or adjustments.
    Example
    A new field, VBAK-ZZKUN, should be included in table VBAK.
    If the check is defined via the Dictionary (fixed values or check table) the field must be included with the fullscreen editor in the Include screen SAPMV45A 8309. In this case, no change has to be made to the processing logic.
    User Exits in Program MV45AFZ4
    USEREXIT_MOVE_FIELD_TO_KOMK
    You can use this user exit to add or edit additional header fields in the communication structure - KOMK- for free goods determination. For more information, see the New Fields for Free Goods Determination IMG activity.
    USEREXIT_MOVE_FIELD_TO_KOMP
    You can use this user exit to add or edit additional item fields in the communication structure KOMP for free goods determination. For more information see the New Fields for Free Goods Determination IMG activity.
    User Exits in the SAPFV45PF0E and SAPFV45PF0C Programs
    EXIT_SAPFV45P_001
    You can use this user exit to decide whether intercompany billing data is used in the profitability segment for cross-company code sales, or whether the data comes from external billing (external customer, sales data from the selling company code.
    Reward points if helpful.
    Regards
    Ravi

  • Is there any FM or BAPI to get list of all sales orders

    Hello all,
            I have the requirement like below.
    Is there any FM if i Pass Drawing document no, type,part,revision level which gives
    the output list as.
    1) all sales orders, where the above drawing document no is attached to the materials
    and these materials are used as one of the lower level components in the Sales order BOM,
    I need to show all those sales orders along with SO number,item,Material,Plant and BOM Item no,
    2)all sales orders, where the above drawing document no is attached to the materials
    and the same material is one of the item in sales order.
    3)all sales orders, where the above drawing document no is used as one of the component in Sales order BOm's
    Addition of 1,2,3 will be the o/p.
    are there any FM or BAPI to get the above list.
    Basically the above report is concatenation of report outputs of t-code CSD5 and CS15.
    Awaiting reply.
    Thanks.

    Hi venkatesh,
       You can use the BAPI
    BAPISDORDER_GETDETAILEDLIST
    to get list of all sales orders.
    Here is a lik which provides you BAPI'S regarding everything.
    [http://www.saptechies.com/sap-bapi-list/]
    Hope this will help you.
    Regards,
    Pavan.

  • Report of all sales orders for a business unit

    I am analyzing revenue, and I would like to run a report that would list all sales orders and the value of those orders in a particular business unit.
    I require the value of each and every sales contract during a certain period. Can I run a report that lists all sales contracts opened during a particular period?

    Hello,
      from the standard SAP menu, under: "Logistics --> Sales and Distribution  --> Sales --> Information System  --> Orders" you can find some transactions reporting sales orders lists, such as VA05 or SDO1, which perhaps could fit your requirements. Otherwise you can create a query to merge the tables containing the information that you need. As of my knowledge there's not an organizational level called "Business unit" in SAP, so you should check if in the transaction mentioned above the field you use to identify the "Business unit" is available.
    Hope to be useful.
    Best regards,
    Andrea

  • List of all Sales Orders

    Hello All
    any ideas, what the transaction code is to view the complete list of all sales orders ever created in R/3 (irrespective of customer)?
    Thanks in advance
    Message was edited by:
            Shovon Banerjee

    Hi
    to get the list of all sales orders irrespective of customers ,follow the given solution
    1. VF04  this if for billing due list, can get all the documents list which are billing  due documents
    ...hope this will give the answer for ur problem.
    bye

  • Std Cost Calculation in Sales Order - EK02 and by T-Code CK11N

    Hi,
    I have repharsed my question and described it point wise as still i am unbale to solve. Please help.
    1. I have defined a new cost relevance indicator Y with 110%. the managements wants to see 10% extra cost in the sales order on some meterials of the BOM. This is working fine with the costing variant defined for sales order costing EK02.
    2. When i run cost by CK11n, it calculates cost based only on indicator X irrespective of what indicator has been defined in the BOM, which is also ok.
    3.Further, the costing variants defined iin steps 1 and 2 are different and both are maintained by different T.Codes, OKY9 & OKKN
    4. We need a new csoting variant for sales order costing that calculates cost same as CK11n, I ahve tried but it calculates cost based on the indicator defined in BOM
    5. I want to understand exactly where in the configuration of casting varaint (OKY9) or configuration of cost relevance indicator (OS21) what do i have to change to take the effect
    Appreciate your support
    SAPXPT

    Hi
       Use substitution method and values arrived  based on 10% of the sale order value and  Use CK74N Additive cost before you run costing run.
    Hope this might help!
    Regards

  • Credit management: how to release all sales order after credit blocking

    Hi,
    Is there a way to release all sales orders that have been blocked (for credit limit or late open items) first and for which invoices have been then  paid.
    That can be done manually with transaction VKM1 but I would like to know if there is any way I could that for all my invoices in the same time and for all my customers?
    Thanks in advance for your help.
    Ronan

    Try using transaction code VKM4.
    Rgds,
    Nagaraj

Maybe you are looking for

  • Bug with "Put Back" feature.

    If I delete file dragging it out from Dock's folder to Trash (checked with Downloads, Applications, custom one, Documents) - file can't be Put Back from Trash (CMD+Z as well). Deleting the same file using Fn+Delete button or opening folder and draggi

  • My external library 100 GB on a 2TB drive is taking a long time to open.

    Hey there, I recently moved my library to an external drive.  When I tried to load the external drive, it said it needed to repair and I let it happen overnight because it was taking a long time. Now it seems to just freeze when I try to load the ext

  • Netflix no longer working on iPad

    Please help. Netflix was working this morning. I deleted the App, cleared the history and cache and reset the network. I then reinstalled the App still not working. Any suggestions please?

  • Voice mail having trouble connecting

    Does anyone else have a problem with voice mail connecting for the first time? After adding my password, it keeps trying to save it and then says it couldn't connect.

  • Mm business flow

    Hello MM Experts, Plz give me details for the following t codes.i.e.tell me the mm business flow for the following....... IH09 - Display Material MM01 - Create Material MM02 - Change Material MM03 - Display Material MM50 - List Extendable Materials M