Date of last sale for a Material

Hello all,
Is there a place where SAP stores date of Last Sale for a Material ? I am looking for an info structure, where SAP stores date of Last sale for each material and keeps on updating that, for each transaction.
I know that I could get it from VBAK, or VAPMA (If I need to get it plant wise), but to read all the orders, and find one with the highest AUDAT is giving very poor performance. Select MAX and for all entries dont work together.. so system is dying doing this select..
Is there a straight forward way of doing it ?
S032-LETZTABG gives date of Last Issue, but we have stock transfers, intercompany...and so many other stuffs.. so an issue may not necessary be a sale. So that also dont help..
appreciate your inputs.
Thanks

Srinath,
VAPMA or VRPMA ---  either stores all transaction document numbers --  VAPMA stores orders, and VRPMA stores Billing docs.
Hence reading from these tables to get date of last sale is bringing the system down...
What am wondering is whether there is a table at more master data level, say, at Material and plant level, and just store the date of latest sale against Material.
I prefer VAPMA over VRPMA for 2 reasons.
1. I need the result in a plant level.. VRPMA dont have WERKS whereas VAPMA do.
2. I need to grab even the latest sales order created - Even though it is not yet delivered/invoiced...  VRPMA will have it only after billing..
Looks like, SAP is not storing date of last sale anywhere.

Similar Messages

  • Date of last inventory for the storage bin

    Hello,
    We would like confirm that when use the T-code LX26 for Carry out Inventory using the Cycle counting method.
    Date of last inventory for the storage bin i,e. date when inventory was last taken in the Warehouse number for a any storage bin shows as 00.00.0000(It is not displaying the any date).
    Whether this is a System standard behavoiur or Any other reason.
    Please guide me waiting for your reply.
    Regards
    Sarin.

    Hi,
    Thanks for your reply.
    I have checked in the Field,it showing in the Field.
    In T-code LX26 if i take a report for entire WM number it show for some of the Old Inventory date for the some of material
    You mean to Say bins were not taken into account for the cycle counting.
    How it will be,there is any reason for this .
    I am waiting for your reply.
    Regards
    Sridhar

  • Report on sales for Customer - Material wise

    Hi,
    Do we have any std report in SAP.
    So that I can find out what are all the sales for the rel customers & set of products?
    or shall i go for any development?

    Dear SAP Consultant ,
    Try with
    MCTA and MCTC transaction.
    I hope this will help you,
    Regards,
    Murali.

  • Need a report to show the BILL, DELIVERY, SALES for FOC material.

    Dear Expert,
    I am trying to prepare a data source for Sales, Delivery and Billing for FOC ( Free of Charge ) material. I am pulling data from VBFA,VBAK,VBRK anf LIKP table in R/3.
    Now the problem is  Delivery doc (1090024042)  and Billing Doc (1423044803) these , i will pull data from LIKP and VBRK table. And in both the tables , the two fields have the same name VBELN .
    What will I do in such cases, Can I mantain VBELN more than 1 time in the VIEW.
    Please suggest, looking for your response.
    Thanks,
    Sanjana

    Hi Anil,
    Yes , We have the info object in BW side
    for Bill : 0BILL_NUM,
    for delivery : 0REF_DOC,
    for Sales : 0DOC_NUMBER
    But In R/3 Side we can mantain VBELN 3 - 4 time , Won't it make any problem   ?
    Thanks,
    Sanjana.

  • I want to pick up Schedule line Delivery date based on Sales Order of Mater

    Hi Experts,
    I have one scenario like,
    I want to pick up Schedule line Delivery date based on Sales Order of Material.
    For example :
    Go to va03
    Give the order no
    Press the enter
    Double click on material.
    Go to Schedule line Tab
    Then we can find out the Delivery date .
    I want to pick up the that Delivery date. Could you please help on that.
    Thanks,
    Amjad.

    Hi,
    schedule line dates are available in VBEP.
    VBEP-VBELN = sales order number.
    VBEP-EDATU = schedule line date.
    REgards,
    Raghavendra

  • Table to see all screens for particular material, plant combination

    Hi,
    Anyone can help me to in which table i can find all screens(like basic data,purchasing..etc) for particular material, plant combination?
    Regards,
    Praba

    Look into field PSTAT in table MARA, this should tell you in general which views are created.
    Each characters represents a view.
    which character is for vwhich view can be obtained in MM50, hit F4 for the field maintenance status.
    A different view on the same kind of information is with SE16 for table MSTA

  • In the packing list, batch number and expiry date is not appearing for a ma

    Dear Friends,
    I have an issue in the packinglist.
    In the packing list, batch number and expiry date is not appearing for a material.
    But in the delivery the batch number and expiry date is appearing.
    Why this has triggered and how to solve this?
    With regards

    Hi Vamsi,
              Please go through the output type Smart form or script programe of the packing list and check with the abaper If is there any Bug.
    Regard's
    Murali.

  • Date of First Sale

    Hi Friends,
    I need the date of first sale of the material. Please let me know which table i can find this.
    Thanks,
    Rajesh.

    Hi,
    Try table VBAP.
    rgds,
    Paras

  • How to extend Sales org for a material being Changed

    Hi Experts,
    i need to extend sales org , distribution Channel for a material .
    my table look like this and having 6 fields shown below
      1             2         3               4            5                     6
    Sales org | Des | Distn Chnl | desc |  Copy from So | Copy from Dstn Chnl
    If the user enters the existing value in Copy From SO and Copy Fron Distn Chnl  .  Then i need to copy all the values corresponding to the Existing SO and Distrn Chnl to the Newly entered Sales Org . 
    the table im displaying in ALV , if user perss F4 in copy From SO and Copy From Distn  , i need to show the existing values for the material being changed , this is working fine and i am able to get the existing values.
    After user selects one of the existing value for SO and Distrn channel  , i need to copy all the values to newly created So and distrn Chnl  .
    i dont know how to proceed . Please help me to solve this problem.
    Thanks,
    Shrikanth

    You can use AET to extend the sales area data of BP.  However, it wont add the fields automatically in GUI, But the generated fields are available in the relevant DB tables.
    BP GUI transaction is no more supported . Im not sure why you want to work on GUI.
    Regards,
    Shaik

  • Assign different ship to party for each material in a sales order in CRM?

    Hi all,
    I need to create a sales order in CRM, such that the sales order contains more than 100 materials at item level and each material should be shipped to a different ship to party.
    That is for 100 materials in sales order I need to ship to 100 different customers.
    The 100 ship to partyu2019s are maintained for the business partner in relation ships tab in /nBP.
    The CRM configuration is done in such a way that when we enter a material while creating a sales order in CRM,u2026u2026.a window pops up asking us to select the ship to party for that material.
    No I need to replicate this programmatically. I generated a sales order in CRM programmatically using BAPI_SLSTRANSACT_CREATEMULTI. u2026 Now I need to make changes such that I have a provision to assign ship to party for each materialu2026
    How can I do this? Can any one tell me if there is a BAPI or Function Module available so that I can assign a different ship to party for each material in sales order?
    Regards,
    Jessica Sam

    Here is sample code. In that highlighted portion is different. check this out
    DATA: ls_partner TYPE crmt_partner_com,
            ls_input_fields TYPE crmt_input_field,
            lt_fieldname TYPE crmt_input_field_names_tab,
            ls_fieldname LIKE LINE OF lt_fieldname.
      ls_partner-ref_handle = p_iv_handle.
      ls_partner-ref_partner_handle = 1.
      ls_partner-ref_kind = 'A'.
      ls_partner-display_type = 'BP'.
      ls_partner-no_type = 'BP'.
      ls_partner-kind_of_entry = 'C'.
    licensee
      ls_partner-partner_fct = '00000069'.
      ls_partner-partner_no = w_but000-partner.
      INSERT ls_partner INTO TABLE gt_partner.
    Bill to party
      IF NOT w_con_header-billtoparty IS INITIAL.
        ls_partner-partner_fct = '00000003'.
        ls_partner-partner_no = w_but001-partner.
        INSERT ls_partner INTO TABLE gt_partner.
      ENDIF.
      IF w_con_header-billtoparty IS INITIAL.
        ls_partner-partner_fct = '00000003'.
        ls_partner-partner_no = w_but000-partner.
        INSERT ls_partner INTO TABLE gt_partner.
      ENDIF.
    Employee
      ls_partner-partner_fct = '00000014'.
      ls_partner-partner_no = w_con_header-empresp.
      INSERT ls_partner INTO TABLE gt_partner.
      +*lsinput_fields-ref_handle = p_iv_handle.*+_
      +*lsinput_fields-ref_kind = 'A'.*+_
      ls_input_fields-logical_key = ls_partner-ref_partner_handle.
      ls_input_fields-objectname = 'PARTNER'.
      ls_fieldname-fieldname = 'DISPLAY_TYPE'.
      INSERT ls_fieldname INTO TABLE lt_fieldname.
      CLEAR ls_fieldname.
      ls_fieldname-fieldname = 'KIND_OF_ENTRY'.
      INSERT ls_fieldname INTO TABLE lt_fieldname.
      CLEAR ls_fieldname.
      ls_fieldname-fieldname = 'NO_TYPE'.
      INSERT ls_fieldname INTO TABLE lt_fieldname.
      CLEAR ls_fieldname.
      ls_fieldname-fieldname = 'PARTNER_FCT'.
      INSERT ls_fieldname INTO TABLE lt_fieldname.
      CLEAR ls_fieldname.
      ls_fieldname-fieldname = 'PARTNER_NO'.
      INSERT ls_fieldname INTO TABLE lt_fieldname.
      CLEAR ls_fieldname.
      ls_input_fields-field_names = lt_fieldname.
      INSERT ls_input_fields INTO TABLE gt_input_fields.

  • Shipping data could not be determined for the material

    hi all,
    while creating STOs for i get a message that shipping data for the material canoot be determined for the material. the plants are maintained as customers. the shipping tab in item detail in STO order is not appearing. the shipping point is getting dertmined for sales orders from the same plant and material. am also able to ceate STOs between other pair of plants.
    thnx in advance
    saurabh
    Message was edited by:
            saurabh diwakar

    Hi,
    Shipping point is determined by <b>"shipping conditions"</b> + <b>"loading group"</b> + "<b>plant"</b>.
    <b>Shipping conditions</b> are fetched from customer master / or if maintained in the sales doument type they are fetched from there.
    <b>Loading group</b> fetched from material master.
    <b>Plant</b> fetched from CMIR / CMR / MMR.
    You do the shipping point determination using the transaction code <b>"OVL2"</b> If <b>SC or LG or PLANT</b> are deviating from the entries in the customer or material master then also you will not get the shipping point.
    Reward points if solution helps.
    Regards,
    Allabaqsh G. Patil

  • Material Availabilty Date Determination in Sales Order

    Hi Gurus,
    When creating the sales order, if stock is not available then how the material availability date is determined.
    What are the inputs the system consider for calculating the material availability date.
    Even though I am giving the total replenishment leadtime, Inhouse processing time(Lot size independent), GR processing time and even the planned delivery time, the system proposing the current date as material availability date irrespective of the sales order quantity.
    All responses will be rewarded suitably.
    Thanks and Regards,
    Jejesh.
    Edited by: jejesh yal on Sep 12, 2008 6:33 PM

    Available checking rule in SD.
    It depends on the Availability group you have maintained in material master.
    The checking rule specifies the scope of the availability check for the respective transactions in sales and distribution by specifying precisely which stocks, receipt and issue elements should be taken into account during the availability check.
    Every checking rule is allocated to a checking group: together these two elements determine the final inspection requirements. In addition, the checking rule includes a specification whether or not an availability check should take into account the replenishment lead time ( i.e. Total time for the in-house production or for the external procurement of a product. In in-house production the replenishment lead time is determined to cover all BOM levels.)
    Items for which the delivery date falls within the replenishment lead time, but for which there is no inventory, are confirmed for delivery after the replenishment lead time. In the case of items for which the delivery date falls after the end of the replenishment lead time, the system assumes that everything can be confirmed.
    If you want the system to check the replenishment lead time, you should make sure that you have entered a value in at least one of the following three fields in the material master:
    GR (goods receipt) processing time (Purchasing view)
    Planned delivery time (MRP I view)
    GR processing time (MRP II view)
    Otherwise, the system confirms every requirement.
    Ava checking group what you have maintained in material master and the checking rule  for SD (in std system is A)
    --combination of above will decide how the ava check to be carried out and decide the delivery date. This sitting is available in SPRO in OVZ9.
    If you carry out the availability check using the replenishment lead time, you should plan ahead in regular intervals (on a daily basis for individual and daily requirements, on a weekly basis for weekly requirements) to prevent a shortage and therefore a possible delivery block. This shortage could occur if the delivery date of a sales order, which was confirmed the previous day for the replenishment lead time, is already within the replenishment period on the current day and therefore results in a shortage.
    Hence,
    1. Check the configurations for the checking groups which are contained in the standard SAP R/3 System.
    2. Make sure that the checking group is maintained in the material master records. Depending on the plant, you can specify a checking group for each material type
    3. Select the individual stock elements as well as the receipts and issues which should be taken into account during the availability check.
    4. Select the field for replenishment lead time if you do NOT want to take the replenishment lead time into account.
    Depending on above setting delivery date will e determined or delivery block in case no qty available can be designed.

  • Regarding the date of last change in sales order...

    Hi,
    Can anyone help me in the scenario...
    I have to pick the date of last change in sales order...whether it is done on Configuration items ,additional data B or on the ordered quantity...
    the problem is that it has some customized fields that are included in VBAK....
    So i need help regarding this...shud i have to writ a user exit for this....or i hv to do a change in USEREXIT_SAVE_DOCUMENT .
    Plz help me..
    Edited by: Amit Gupta on May 1, 2008 3:02 PM

    VBAK-AEDAT will be updated, evenIf you have your custom fields in Sales Order.
    Regards,
    Naimesh Patel

  • Creditreport that displays Sales Orders with Material Availability Date as

    Hi
    I need input if the following requirement can be met in FSCM credit mgmnt.
    Currently In FDK43 there is a total sales figure that represents the Sales that are consuming the Credit Limit assigned to the customer, unfortunately there is no drill down on this number to see which sales orders are responsible for the consumption of credit
    Do we have any sales report that displays Sales Orders with Material Availability Date as an output in conjunction with Credit limit .

    Not in standard provided. Custom program is required.
    Regards
    Hein

  • Uploading data in MM01 for different material types

    Hi,
    I have a doubt regarding uploading the data in MM01 for different material types.
    Generally in MM01, we have different views for different material types. The number of views will vary depending upon the material type that we select.
    I have a scenario, where in to upload the data, I have a flat file that consists of data for different message types. So, how to upload the data in such case.
    Can anyone help me on the same by providing explanation or sample code...? What would be the possible ways to upload data in such scenario.
    That would be of great help.
    Thanks & Regards,
    Pradeep.

    See the below code and use FM SELECTION_VIEWS_FIND..
    REPORT zjpmuim306 NO STANDARD PAGE HEADING LINE-SIZE 250 MESSAGE-ID
    zjpm001.
    *&   I N B O U N D  V I A   A B A P : Batch input Session method     *
    *&   Development ID: IM_DD_306_LJP                                   *
    *&   Report        : ZJPMUIM306                                      *
    *&   The Purpose of the Object is to interface Create Input Record   *
    *&   for SAP Migration from the Material master of BPCS All the      *
    *&   information received at BPCS is collected into a single record. *
    *&   By using session method upload data from file ,one item is
    *&   created for one record                                          *
    *&   Change Log:                                                     *
    *&   Init       Who              Date         Text                   *
    *&  MALIKDH1   Seshu Reddy    26-07-2003   Initial Version           *
                             Constants                                   *
    CONSTANTS:c_vkorg(4) type c value 'JP20',        " Sales Organization
              c_vtweg(2) type c value 'TR' ,         " Distribution Channel
              c_werks(4) Type c value 'JP01' ,       " Plant
              c_viewlist(15) VALUE 'KDEALBSZXVPCFQG'," View list
              c_scm_view TYPE msichtausw-dytxt VALUE 'SCM View',
              c_sd_view TYPE msichtausw-dytxt VALUE 'SD View',
              c_seq_code(2) VALUE 'Z1',              " Sequential Code
              c_keep(1) TYPE c VALUE  'X',           " Keep
              c_group LIKE apqi-groupid VALUE 'IM306', " Session Name
              c_tcode  LIKE tstc-tcode VALUE 'MM02',  " Transaction Code
              c_blank(1) VALUE ' ',                   " Blank
              c_intls(1) VALUE 'N'.                  " Logistic Status
                  Variables                                      *
    DATA: g_flag1(1),  " Variable to hold
          g_flag(1),   " Variable to hold
          g_file LIKE rlgrap-filename VALUE
         'C:\Documents and Settings\seshur\Desktop\HCLT123.CSV'. " File name
           Internal tables/ Work area                           *
    Internal Table for Delimter
    DATA : BEGIN OF t_delim OCCURS 0,
           text(1000),
           END OF t_delim.
    Internal table for BDC processing
    DATA : t_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    Internal table for holding the data which has to be uploaded.
    DATA: BEGIN OF t_bpcs OCCURS 0,
          matnr(15) TYPE c,  " material no
          dosage(40) TYPE c, " Dosage form(Local)
          appearance(40) TYPE c, " Appearance
          idcode(6) TYPE c,     " Identification Code
          prostformno(10) TYPE c, "SOP
          weitab(7) TYPE c,    " Weight/tablet
          uom1(2) TYPE c,     " UOM of Carton
          uom2(2) TYPE c,     " UOM of Case
          carsize(14) TYPE c, " Carton size
          cassize(14) TYPE c, " Case size
          rupqty(11) TYPE c,  " Round up
          abvname(3) TYPE c,  " Product short name
          END OF t_bpcs.
    *Internal table for t_bpcs
    DATA: BEGIN OF t_mdata OCCURS 0,
          matnr  LIKE marc-matnr, " Material number
          zzjp_dos_frm LIKE marc-zzjp_dos_frm, " Dosage form(Local)
          zzjp_aprn LIKE marc-zzjp_aprn, " Appearance
          zzjp_con_id LIKE marc-zzjp_con_id," Identification Code
          zzjp_nyu_sop LIKE marc-zzjp_nyu_sop,"SOP
          zzjp_wei_tab(10) type c , " Weight/tablet
          zzjp_bio  LIKE marc-zzjp_bio,"Biologics Indicator
          zzjp_itf LIKE marc-zzjp_itf, " ITF code
          zzjp_car(2) type c, " UOM of Carton
          zzjp_cas(2) type c, " UOM of Case
          zzjp_car_size(11) type c," Carton size
          zzjp_cas_size(11) type c, " Case size
          zzjp_rupqty(11) type c,  " Round up
          zzjp_init_ls LIKE marc-zzjp_init_ls, " Logistic Status
          zzjp_re1 LIKE marc-zzjp_re1, "Document type(Local)
          zzjp_re2 LIKE marc-zzjp_re2, "Report type
          zzjp_re3 LIKE marc-zzjp_re3, "Shipping report type
          zzjp_pro_id LIKE mvke-zzjp_pro_id," Product output sequence
          zzjp_bu_id LIKE mvke-zzjp_bu_id, " Business unit indicator
          zzjp_abv_name LIKE mvke-zzjp_abv_name," Product short name
          zzjp_abv_id1 LIKE mvke-zzjp_abv_id1," Product short name output
          zzjp_abv_id2 LIKE mvke-zzjp_abv_id2," Product short name internal
          zzjp_spl_id LIKE mvke-zzjp_spl_id,  " Sample internal order
          END OF t_mdata.
    Internal table for Mara Table
    DATA: BEGIN OF t_mara OCCURS 0,
          matnr LIKE mara-matnr,  " material Number
          vpsta LIKE mara-vpsta,  " Maintenance status of complete material
          pstat like mara-pstat,  " Maintenance status
          END OF t_mara.
    Internal table for Material Master View Selection Screens
    DATA: BEGIN OF t_bildtab OCCURS 0.
            INCLUDE STRUCTURE mbildtab.
    DATA: END OF t_bildtab.
    internal table for T_bildtab
    DATA: t_bildtab_dup LIKE t_bildtab OCCURS 0 WITH HEADER LINE.
    *Work area for T_bildtab internal table(Views Selection)
    DATA: BEGIN OF w_data,
          flag1 type c,
          anzd70 TYPE i,
          field1(20) type c,
          field2(20) type c,
          field3(20) type c,
          field4(20) type c,
          count(2) TYPE c,
          END OF w_data.
                Main Processing                           *
    START-OF-SELECTION.
    Store data from file into internal table
      PERFORM f_uplaod_data.
    Transfer the uploaded data into t_mdata internal Table
      PERFORM f_process_data.
    Selecting The views based on Material number
      PERFORM f_view_list.
    Open a BDC Session
      PERFORM f_bdc_open.
    *Selecting the fields from mara table
      SELECT matnr
             vpsta
             pstat
        FROM mara
      INTO TABLE t_mara
      FOR ALL ENTRIES IN t_mdata
      WHERE matnr = t_mdata-matnr.
      SORT t_mara BY matnr.
      SORT t_mdata BY matnr.
    Transfer the uploaded data into BDCDATA structure
      PERFORM f_process_bdc.
    Close The BDC Session
      PERFORM f_close_group.
    *&      Form  F_VIEW_LIST                                             *
             Routine to used for Calling the function module            *
              Selection_views_find                                      *
    FORM f_view_list.
      CALL FUNCTION 'SELECTION_VIEWS_FIND'
           EXPORTING
                bildsequenz     = c_seq_code
                pflegestatus    = c_viewlist
           TABLES
                bildtab         = t_bildtab
           EXCEPTIONS
                call_wrong      = 1
                empty_selection = 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.
    ENDFORM.                    " F_VIEW_LIST
    *&      Form  f612_view_sort                                          *
      Routine to used for Selecting The views based on Material Number  *
    FORM f612_view_sort.
      t_bildtab_dup[] = t_bildtab[].
    Reading the Internal table t_mara
      READ TABLE t_mara WITH KEY matnr = t_mdata-matnr.
      TRANSLATE t_mara-pstat USING ' $'.
      CLEAR: w_data-flag1, w_data-anzd70.
      LOOP AT t_bildtab_dup.
        IF t_bildtab_dup-pstat CA t_mara-pstat.
          w_data-anzd70 = w_data-anzd70 + 1.
          IF t_bildtab_dup-kzanz IS INITIAL.
            t_bildtab_dup-kzanz = 'X'.
            w_data-flag1 = 'X'.
            MODIFY t_bildtab_dup.
          ENDIF.
        ELSE.
          IF NOT t_bildtab_dup-kzanz IS INITIAL.
            CLEAR t_bildtab_dup-kzanz.
            w_data-flag1 = 'X'.
            MODIFY t_bildtab_dup.
          ENDIF.
        ENDIF.
      ENDLOOP.
      TRANSLATE t_mara-pstat USING '$ '.
      IF NOT w_data-flag1 IS INITIAL.
        SORT t_bildtab_dup BY kzanz DESCENDING idxbd ASCENDING.
      ENDIF.
    *Reading The internal table for T_bildtab_dup
      READ TABLE t_bildtab_dup WITH KEY dytxt = c_scm_view.
      IF t_bildtab_dup-kzanz = 'X'.
        WRITE sy-tabix TO w_data-count.
        w_data-count = w_data-count + 2.
        IF w_data-anzd70 > 18.
          w_data-count = w_data-count - 18.
        ENDIF.
        CONCATENATE 'MSICHTAUSW-DYTXT(' w_data-count ')' INTO w_data-field1.
        CONCATENATE 'MSICHTAUSW-KZSEL(' w_data-count ')' INTO w_data-field2.
      ENDIF.
      READ TABLE t_bildtab_dup WITH KEY dytxt = c_sd_view.
      IF t_bildtab_dup-kzanz = 'X'.
        WRITE sy-tabix TO w_data-count.
        IF w_data-anzd70 > 18.
              w_data-count = w_data-count + 2.
          w_data-count = w_data-count - 18.
        ENDIF.
        CONCATENATE 'MSICHTAUSW-DYTXT(' w_data-count ')' INTO w_data-field3.
        CONCATENATE 'MSICHTAUSW-KZSEL(' w_data-count ')' INTO w_data-field4.
      ENDIF.
    ENDFORM.                    " f612_view_sort
    *&      Form  f_uplaod_data                                           *
    Routine to used for Uploading the data from file to Internal table *
    FORM f_uplaod_data.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                filename                = g_file
                filetype                = 'DAT'
           TABLES
                data_tab                = t_delim
           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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF t_bpcs IS INITIAL.
        LOOP AT t_delim.
          SPLIT t_delim-text AT ',' INTO t_bpcs-matnr
                                         t_bpcs-dosage
                                         t_bpcs-appearance
                                         t_bpcs-idcode
                                         t_bpcs-prostformno
                                         t_bpcs-weitab
                                         t_bpcs-uom1
                                         t_bpcs-uom2
                                         t_bpcs-carsize
                                         t_bpcs-cassize
                                         t_bpcs-rupqty
                                         t_bpcs-abvname.
          APPEND t_bpcs.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " f_uplaod_data
    *&      Form  F_BDC_OPEN
          Routine  to create BDC Session to be processed
    FORM f_bdc_open.
      CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
                client              = sy-mandt
                group               = c_group
                keep                = c_keep
                user                = sy-uname
           EXCEPTIONS
                client_invalid      = 1
                destination_invalid = 2
                group_invalid       = 3
                group_is_locked     = 4
                holddate_invalid    = 5
                internal_error      = 6
                queue_error         = 7
                running             = 8
                system_lock_error   = 9
                user_invalid        = 10
                OTHERS              = 11.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
      MESSAGE S000 WITH 'Batch input session is created successfully'(T02).
      ENDIF.
    ENDFORM.                    " F_BDC_OPEN
    *&      Form  F_PROCESS_BDC
          Processing of BDCDATA Structure
    FORM f_process_bdc.
      LOOP AT t_mdata.
        PERFORM f612_view_sort.
        PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0060'.
        PERFORM f_bdc_field USING 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        PERFORM f_bdc_field USING 'BDC_OKCODE'
                                      '=AUSW'.
        PERFORM f_bdc_field USING 'RMMG1-MATNR'
                                      t_mdata-matnr.
        PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0070'.
        PERFORM f_bdc_field USING 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
        IF w_data-anzd70 > 18.
          PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '=P+'.
          PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0070'.
          PERFORM f_bdc_field  USING 'BDC_OKCODE' '/00'.
        ENDIF.
    reading the t_bildtab internal table
        READ TABLE t_bildtab_dup WITH KEY dytxt = c_scm_view.
        IF t_bildtab_dup-kzanz = 'X'.
          PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                        w_data-field1.
          PERFORM f_bdc_field       USING w_data-field2 'X'.
          g_flag = 'X'.
        ENDIF.
    reading the t_bildtab internal table
        READ TABLE t_bildtab_dup WITH KEY dytxt = c_sd_view.
        IF sy-subrc EQ 0.
          g_flag = 'X'.
        ENDIF.
        IF t_bildtab_dup-kzanz = 'X'.
          PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                        w_data-field3.
          PERFORM f_bdc_field       USING w_data-field4 'X'.
          g_flag1 = 'X'.
        ENDIF.
        IF g_flag = 'X' AND g_flag1 = 'X'.
          PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0080'.
          PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                        'RMMG1-VTWEG'.
          PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                        '=ENTR'.
          PERFORM f_bdc_field       USING 'RMMG1-WERKS'
                                        c_werks.
          PERFORM f_bdc_field       USING 'RMMG1-VKORG'
                                        c_vkorg.
          PERFORM f_bdc_field       USING 'RMMG1-VTWEG'
                                        c_vtweg.
          CLEAR g_flag.
          CLEAR g_flag1.
        ELSE.
          IF g_flag = 'X'.
            PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0080'.
            PERFORM f_bdc_field       USING 'RMMG1-WERKS'
                                        c_werks.
            PERFORM f_bdc_field      USING 'BDC_OKCODE' '/00'.
          ELSE.
            IF g_flag1 = 'X'.
              PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0080'.
              PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                            'RMMG1-VTWEG'.
              PERFORM f_bdc_field       USING 'RMMG1-WERKS'
                                          c_werks.
              PERFORM f_bdc_field       USING 'RMMG1-VKORG'
                                            c_vkorg.
              PERFORM f_bdc_field       USING 'RMMG1-VTWEG'
                                            c_vtweg.
              PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                             '=ENTR'.
            ENDIF.
          ENDIF.
        ENDIF.
    *Processing of SCM View
        PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM f_bdc_field       USING 'BDC_CURSOR' 'MARC-ZZJP_DOS_FRM'.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_DOS_FRM'
                                      t_mdata-zzjp_dos_frm.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_APRN'
                                      t_mdata-zzjp_aprn.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CON_ID'
                                      t_mdata-zzjp_con_id.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_NYU_SOP'
                                      t_mdata-zzjp_nyu_sop.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_WEI_TAB'
                                      t_mdata-zzjp_wei_tab.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAR'
                                      t_mdata-zzjp_car.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAS'
                                      t_mdata-zzjp_cas.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAR_SIZE'
                                      t_mdata-ZZJP_CAR_SIZE.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAS_SIZE'
                                      t_mdata-ZZJP_CAS_SIZE.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RUPQTY'
                                       t_mdata-ZZJP_RUPQTY.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_BIO'
                                      t_mdata-zzjp_bio.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_ITF'
                                      t_mdata-zzjp_itf.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_INIT_LS'
                                      t_mdata-zzjp_init_ls.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RE1'
                                      t_mdata-zzjp_re1.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RE2'
                                      t_mdata-zzjp_re2.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RE3'
                                      t_mdata-zzjp_re3.
        PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
    *Processing of SD View
        PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM f_bdc_field       USING 'BDC_CURSOR' 'MVKE-ZZJP_PRO_ID'.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_PRO_ID'
                                      t_mdata-zzjp_pro_id.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_BU_ID'
                                      t_mdata-zzjp_bu_id.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_ABV_NAME'
                                      t_mdata-zzjp_abv_name.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_ABV_ID1'
                                      t_mdata-zzjp_abv_id1.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_ABV_ID2'
                                      t_mdata-zzjp_abv_id2.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_SPL_ID'
                                      t_mdata-zzjp_spl_id.
        PERFORM f_bdc_field      USING 'BDC_OKCODE' '/00'.
        PERFORM f_bdc_dynpro      USING 'SAPLSPO1' '0300'.
        PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '=YES'.
    perform f_bdc_insert.
    REFRESH T_BDCDATA.
      ENDLOOP.
    ENDFORM.                    " F_PROCESS_BDC
    *&      Form  f_bdc_dynpro
      p_prog is the program name to which data is passed                *
      p_dyno is the screen number to which the data is passed
        Routine for populating the BDCDATA structure with the
        Screen related information
    FORM f_bdc_dynpro USING    p_prog
                               p_dyno.
      t_bdcdata-program  = p_prog.
      t_bdcdata-dynpro   = p_dyno.
      t_bdcdata-dynbegin = 'X'.
      APPEND t_bdcdata.
      CLEAR t_bdcdata.
    ENDFORM.                    " F_bdc_dynpro
    *&      Form  F_BDC_FIELD
          p_fnam is the field name to which value is passed
          p_fval is the field value which is passed
       p_fnam is the field name to which value is passed
       p_fval is the field value which is passed
    FORM f_bdc_field USING    p_fnam
                              p_fval.
      t_bdcdata-fnam = p_fnam.
      t_bdcdata-fval = p_fval.
      APPEND t_bdcdata.
      CLEAR t_bdcdata.
    ENDFORM.                    " F_bdc_field
    *&      Form  F_PROCESS_DATA                                          *
         Routine to used for moving data from T_bpcs internal table to  *
         t_mdata Internal Table                                         *
    FORM f_process_data.
      LOOP AT t_bpcs.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
             EXPORTING
                  input  = t_bpcs-matnr
             IMPORTING
                  output = t_mdata-matnr.
        MOVE t_bpcs-dosage TO t_mdata-zzjp_dos_frm.
        MOVE t_bpcs-appearance TO t_mdata-zzjp_aprn.
        MOVE t_bpcs-idcode  TO t_mdata-zzjp_con_id.
        MOVE t_bpcs-prostformno TO t_mdata-zzjp_nyu_sop.
        MOVE t_bpcs-weitab TO t_mdata-zzjp_wei_tab.
        MOVE c_blank TO t_mdata-zzjp_bio.
        MOVE c_blank TO t_mdata-zzjp_itf.
        MOVE t_bpcs-uom1 TO t_mdata-zzjp_car.
        MOVE t_bpcs-uom2 TO t_mdata-zzjp_cas.
        MOVE t_bpcs-carsize TO t_mdata-zzjp_car_size.
        MOVE t_bpcs-cassize TO t_mdata-zzjp_cas_size.
        MOVE t_bpcs-rupqty TO t_mdata-zzjp_rupqty.
        MOVE c_intls TO t_mdata-zzjp_init_ls.
        MOVE c_blank TO t_mdata-zzjp_re1.
        MOVE c_blank TO t_mdata-zzjp_re2.
        MOVE c_blank TO t_mdata-zzjp_re3.
        MOVE c_blank TO t_mdata-zzjp_pro_id.
        MOVE c_blank TO t_mdata-zzjp_bu_id.
        MOVE t_bpcs-abvname TO t_mdata-zzjp_abv_name.
        MOVE c_blank TO t_mdata-zzjp_abv_id1.
        MOVE c_blank TO t_mdata-zzjp_abv_id2.
        MOVE c_blank TO t_mdata-zzjp_spl_id.
        APPEND t_mdata.
      ENDLOOP.
    ENDFORM.                    " F_PROCESS_DATA
    *&      Form  f_bdc_close
          Routine to close the BDC Session
    FORM f_close_group.
      CALL FUNCTION 'BDC_CLOSE_GROUP'
           EXCEPTIONS
                not_open    = 1
                queue_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.
    ENDFORM.                    " f_close_group
    *&      Form  f_bdc_insert
         routine to input batch data into the Transaction MM02 from the
         session created
    FORM f_bdc_insert.
    CALL FUNCTION 'BDC_INSERT'
             EXPORTING
                  tcode            = c_tcode
             TABLES
                  dynprotab        = t_bdcdata
             EXCEPTIONS
                  internal_error   = 1
                  not_open         = 2
                  queue_error      = 3
                  tcode_invalid    = 4
                  printing_invalid = 5
                  posting_invalid  = 6
                  OTHERS           = 7.
        IF sy-subrc <> 0.
             MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    ENDFORM.                    " f_bdc_insert
    Reward Points if it is useful
    Thanks
    Seshu

Maybe you are looking for

  • Output medium overwritten while changing PO

    Hi All, We are having an issue with PO output. The issue is as below. We are having an output which is created with condition type medium print out with sending with own transaction. When we have created the PO the output is triggered properly. That

  • AD Integration: 1 Forest containing 2 Domains - Run Accounts/Profiles (SCOM 2012)

    I know there are plenty of threads on AD integration & Run As accounts\Profiles, but none quite answering my scenario...so here goes. 1 Forest containing 2 domains - abc.com and def.com. abc.comcontains SCOM 2012 infrastructure (Mgmt Servers (MS1, MS

  • # sign in postal code field.

    Hi Experts, In ADRC table entry for an addr number, there is # sign in postal code field (NG26BJ#). And due to this incorrect # sign, there are issues occuring in the system. Can you suggest where do I search for this # sign in the system? I mean I s

  • Java.lang.Exception: Multiple Matches Found

    Hi, I have written scheduler task to connect people soft DataBase get the users list and disable user accounts in IDM . Below is the peace of code. ============================= ResultSet results = stmt.executeQuery(selectQuery); tcReconciliationOper

  • Tab Pages -- Execute_query

    Hi all, I have several tab pages. Some pages have same table and some do not. I need a best method out of the flg 2. 1. Execute_query in New-form-instance trigger like go_block('blk1); execute_query; go_block('blk2); execute_query; etc... In this met