SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Return Order Using BAPI



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> SD
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Fri Sep 07, 2007 5:17 pm    Post subject: Return Order Using BAPI Reply with quote

Author: Kannaiah Kavuri

This snippet is for creation of a Return Order using BAPI. Here Return Order is created based on the customer Invoice number. Vendor sends a flat file (CSV format) to the R/3 where an interface updates the corresponding information into the custom table and from the custom table corresponding Return orders will be processed.

Code:
*&---------------------------------------------------------------------*
*&      Form  call_rep_vabapi
*&---------------------------------------------------------------------*
*       Return Order Creation for Reprocessing
*----------------------------------------------------------------------*FORM call_rep_vabapi .  CONSTANTS: lc_ag TYPE char2 VALUE 'AG',
                   lc_sh TYPE char2 VALUE 'SH'.  REFRESH: gt_itab5,gt_vbrp.
* Selecting the data from Record table  SELECT lifnr
         vbeln
         posnr
         augru
         cdate
         kunnr
         kunwe
         bstkd
         docid
         ean11
         part_debit
         quant_debit
         quant_credit
         errcode
    FROM /bmw/atl_zu_i455
    INTO TABLE gt_itab5
   WHERE vbeln EQ s_vbeln
     AND kunnr EQ pa_kunnr
     AND augru EQ s_augru
     AND lifnr EQ pa_lifnr.  IF sy-subrc EQ gc_zero_num.
    SORT gt_itab5 BY vbeln augru kunnr.
  ENDIF.  REFRESH: gt_vbrp.
* Selecting the data from VBRP for material
  SELECT vbeln
         posnr
         vkorg_auft
         vtweg_auft
         spart
         werks
         lgort
         matnr
         ean11
   FROM  vbrp
   INTO  CORRESPONDING FIELDS OF TABLE gt_vbrp
  WHERE  vbeln EQ s_vbeln.  IF sy-subrc EQ gc_zero_num.
    SORT gt_vbrp BY vbeln posnr.
  ENDIF.  LOOP AT gt_itab5 INTO gs_itab5.*------------------------------------------------------------------
* Build partner information
*------------------------------------------------------------------
    CLEAR gs_return_partners.
    gs_return_partners-partn_role = lc_ag.
    gs_return_partners-partn_numb = gs_itab5-kunnr.
    APPEND gs_return_partners TO gt_return_partners.      gs_return_partners-partn_role = lc_sh.
    gs_return_partners-partn_numb = gs_itab5-kunwe.
    APPEND gs_return_partners TO gt_return_partners.*------------------------------------------------------------------
* Build order header
*------------------------------------------------------------------* Sales document type
    gs_return_header_in-doc_type = gc_yr.
    gs_return_header_inx-doc_type = gc_x.*Order Reason
    gs_return_header_in-ord_reason = gs_itab5-augru.
    gs_return_header_inx-ord_reason = gc_x.* SD document Category
    gs_return_header_in-sd_doc_cat = gc_h.
    gs_return_header_inx-sd_doc_cat = gc_x.* Reference Document (Invoice)
    gs_return_header_in-ref_doc = gs_itab5-vbeln.
    gs_return_header_inx-ref_doc = gc_x.* Reference Document Category
    gs_return_header_in-purch_no_c = gs_itab5-docid.
    gs_return_header_inx-purch_no_c = gc_x.* Reference Document Category
    gs_return_header_in-refdoc_cat = gc_m.
    gs_return_header_inx-refdoc_cat = gc_x.* Currency
    gs_return_header_in-currency = text-035.
    gs_return_header_inx-currency = gc_x.    READ TABLE gt_vbrp INTO gs_vbrp WITH KEY vbeln = gs_itab5-vbeln
                                             posnr = gs_itab5-posnr
                                             ean11 = gs_itab5-ean11.    IF sy-subrc EQ gc_zero_num.
      gs_itab5-ean11 = gs_vbrp-matnr.* Sales organization
      gs_return_header_in-sales_org = gs_vbrp-vkorg_auft .
      gs_return_header_inx-sales_org = gc_x.
* Distribution channel
      gs_return_header_in-distr_chan = gs_vbrp-vtweg_auft.
      gs_return_header_inx-distr_chan = gc_x.
* Division
      gs_return_header_in-division = gs_vbrp-spart.
      gs_return_header_inx-division = gc_x.
* Plant
      gs_return_items_in-plant = gs_vbrp-werks.
      gs_return_items_inx-plant = gc_x.
* Storage Location
      gs_return_items_in-store_loc = gs_vbrp-lgort.
      gs_return_items_inx-store_loc = gc_x.
*Material
      gs_return_items_in-material = gs_itab2-ean11.
      gs_return_items_inx-material = gc_x.
    ENDIF.*-----------------------------------------------------------------*
* Build order item(s)                                             *
*-----------------------------------------------------------------*     gs_return_items_in-itm_number = gs_itab5-posnr.
    gs_return_items_inx-itm_number = gc_x .    gs_return_items_in-target_qty = gs_itab5-quant_debit.
    gs_return_items_inx-target_qty = gc_x.    gs_return_items_in-purch_no_c = gs_itab5-docid.
    gs_return_items_inx-purch_no_c = gc_x.    IF gs_itab2-augru EQ gc_yw2
    OR gs_itab2-augru EQ gc_yw3
    OR gs_itab2-augru EQ gc_yw4
    OR gs_itab2-augru EQ gc_yw5
    OR gs_itab2-augru EQ gc_yw7.
      gs_return_items_in-item_categ = gc_yv.
    ELSE.
      gs_return_items_in-item_categ = gc_yv1.
    ENDIF.
    gs_return_items_inx-item_categ = gc_x.    gs_return_items_in-currency = text-035.     gs_return_items_in-ref_doc = gs_itab5-vbeln.
    gs_return_items_inx-ref_doc = gc_x.    APPEND gs_return_items_in TO gt_return_items_in.
    APPEND gs_return_items_inx TO gt_return_items_inx.*Call the BAPI to Create the Return Order
    CALL FUNCTION 'BAPI_CUSTOMERRETURN_CREATE'
      EXPORTING
        return_header_in    = gs_return_header_in
        return_header_inx   = gs_return_header_inx
      IMPORTING
        salesdocument       = gv_salesdocument
      TABLES
        return              = gt_return
        return_items_in     = gt_return_items_in
        return_items_inx    = gt_return_items_inx
        return_partners     = gt_return_partners
        return_schedules_in = gt_bapischdl.* Commit Work
    PERFORM error.  ENDLOOP.ENDFORM.                    " call_rep_vabapi
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> SD All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.