Problem while changing Sales order using 'BAPI_SALESORDER_CHANGE'

Hi all,
Below is my code to update delivery block value:
FORM call_bapi_salesorder_change .
DATA:  iv_bapi_view  LIKE order_view.
DATA: gt_sales_doc TYPE STANDARD TABLE OF sales_key, " Document Numbers to Be Selected
        gt_items TYPE STANDARD TABLE OF bapisdit. " Order Item Data for Document Numbers
*************************************************************8
DATA:order_headers_out LIKE bapisdhd OCCURS 0 WITH HEADER LINE.
DATA:order_header_inx LIKE bapisdh1x.
  DATA: lv_salesdocument LIKE bapivbeln-vbeln.
  data: lv_matnr(10) type c.
  DATA:
gt_schdule TYPE STANDARD TABLE OF bapischdl, " for gl date & load date
gt_schdulex TYPE STANDARD TABLE OF bapischdlx, " for partner role and partner function.
        gt_return TYPE STANDARD TABLE OF bapiret2,
        gt_itemin TYPE STANDARD TABLE OF bapisditm,
        gt_iteminx TYPE STANDARD TABLE OF bapisditmx ,
        gt_bapisdh1 TYPE STANDARD TABLE OF  bapisdh1.
  DATA:gs_head_bapi TYPE bapisdh1x,
       gs_schdule TYPE bapischdl,
       gs_schdulex TYPE bapischdlx,
       gs_return TYPE bapiret2,
       gs_itemin TYPE bapisditm,
       gs_iteminx TYPE bapisditmx,
       gs_bapisdh1 TYPE bapisdh1.
  CLEAR : gt_schdule,gt_schdulex,gs_return.
  REFRESH gt_return.
  gs_head_bapi-updateflag = 'U'.
SORT gt_final BY vbeln.
CLEAR gs_vbep.
REFRESH gt_vbep[].
  CLEAR gs_final.
  LOOP AT gt_final1 INTO gs_final.
    gs_itemin-itm_number = gs_final-posnr.
*move gs_final-matnr to lv_matnr."qx94162
   gs_itemin-material = gs_final-matnr.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        input  = gs_final-matnr
      IMPORTING
        output = gs_final-matnr.
   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = lv_matnr
    IMPORTING
     output = lv_matnr.
   gs_itemin-material = lv_matnr.
    gs_itemin-material = gs_final-matnr.
    gs_iteminx-itm_number = gs_final-posnr.
    gs_iteminx-updateflag = 'U'.""changed to I
    gs_iteminx-material = 'X'.
    " gs_schdule-req_dlv_bl = gs_final-lifsp. " Delivery block
    gs_schdule-itm_number = gs_final-posnr.
    gs_schdulex-itm_number = gs_final-posnr.
    gs_schdule-sched_line = '0001'.
    gs_schdulex-sched_line = '0001'.
   MOVE gs_final-lifsp to gs_schdule-req_dlv_bl.
    gs_schdule-req_dlv_bl = gs_final-lifsp.
    gs_schdulex-req_dlv_bl = 'X'. " Delivery block
    gs_schdulex-updateflag = 'U'.
    gs_bapisdh1-sales_org = gs_final-vkorg.
    APPEND gs_schdule TO gt_schdule.
    APPEND gs_schdulex TO gt_schdulex.
    APPEND gs_itemin TO gt_itemin.
    APPEND gs_iteminx TO gt_iteminx.
   Append gs_BAPISDH1 to gt_BAPISDH1.
    lv_salesdocument = gs_final-vbeln.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
      EXPORTING
        salesdocument               = lv_salesdocument     
       ORDER_HEADER_IN             = gs_BAPISDH1
        order_header_inx            = gs_head_bapi         
  SIMULATION                  =
  BEHAVE_WHEN_ERROR           = ' '
  INT_NUMBER_ASSIGNMENT       = ' '
  LOGIC_SWITCH                =
  NO_STATUS_BUF_INIT          = ' '
      TABLES
        return                      = gt_return            
   order_item_in               =    gt_itemin
   order_item_inx              = gt_iteminx
  PARTNERS                    =
  PARTNERCHANGES              =
  PARTNERADDRESSES            =
  ORDER_CFGS_REF              =
  ORDER_CFGS_INST             =
  ORDER_CFGS_PART_OF          =
  ORDER_CFGS_VALUE            =
  ORDER_CFGS_BLOB             =
  ORDER_CFGS_VK               =
  ORDER_CFGS_REFINST          =
      schedule_lines                = gt_schdule           
      schedule_linesx               = gt_schdulex          
  ORDER_TEXT                  =
  ORDER_KEYS                  =
  CONDITIONS_IN               =
  CONDITIONS_INX              =
  EXTENSIONIN                 =
  NFMETALLITMS                =
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    REFRESH: gt_schdule, gt_schdulex, gt_itemin , gt_iteminx.
    LOOP AT gt_return INTO gs_return.
      WRITE / gs_return-message .
    ENDLOOP .
  ENDLOOP.
ENDFORM.                    " CALL_BAPI_SALESORDER_CHANGE
When I am using material value as 18342 using CONVERSION_EXIT_ALPHA_OUTPUT:
ORDER_HEADER_IN has been processed successfully
Material  is not defined for sales org.A101,  distr.chan.00,  language DE
Error in ITEM_IN 000030
SCHEDULE_IN has been processed successfully
The sales document is not yet complete: Edit data
Sales document 5010000715 was not changed
and when I am using CONVERSION_EXIT_ALPHA_INPUT (000000000000018342)or  while debuging when I am changing value to  0018342 :
I am getting below dump:
Runtime Errors         DATA_LENGTH_0
Exception              CX_SY_RANGE_OUT_OF_BOUNDS
Date and Time          21.10.2010 07:22:17
Information on where terminated
     Termination occurred in the ABAP program "SAPLVBAK" - in
      "MAP_VBAP_TO_BAPISDIT".
     The main program was "RS_TESTFRAME_CALL ".
     In the source code you have the termination point in line 168
     of the (Include) program "LVBAK001".
     The termination is caused because exception "CX_SY_RANGE_OUT_OF_BOUNDS"
      occurred in
     procedure "MAP_VBAP_TO_BAPISDIT" "(FORM)", but it was neither handled local
      nor declared
     in the RAISING clause of its signature.
     The procedure is in program "SAPLVBAK "; its source code begins in line
     99 of the (Include program "LVBAK001 ".
The same dump I am getting while executing this above BAPI from SE37 tcode with the same test data.
but I am able to change it though Va02 tcode.
Edited by: Arora26 on Oct 21, 2010 7:58 AM

Hi,
have you searched for OSS notes? The note 1137897 looks like related to your problem. It mentions different BAPI but I assume that both BAPI reuse same routines and therefore it might solve your problem as well.
Cheers

Similar Messages

  • Change sales order using BAPI_SALESORDER_CHANGE

    Hi i want to add a new line item to the existing sales order using BAPI_SALESORDER_CHANGE
    but when i am trying it is giving
    'Schedule line 0001 for item 000020 does not exist ' error..
    please help me..

    *********I wanted to add an new line item.***.. this is my code..********
    LOOP AT gt_input3 INTO st_input3.
    *Finding Max No of line Items
        IF fl_set IS INITIAL.
          READ TABLE gt_vbap INTO st_vbap WITH KEY vbeln = st_input3-vbeln.
          IF sy-subrc EQ 0.
            lv_posnr = st_vbap-posnr.
            fl_set = 'X'.
          ENDIF.
        ENDIF.
    *Populate Item details
        lv_posnr = lv_posnr + 10.
        lv_vbeln = st_input3-vbeln.
        lv_order_header_inx-updateflag = 'U'.
        st_order_item_in-itm_number = lv_posnr.
        st_order_item_in-material  = st_input3-matnr.
        st_order_item_in-target_qty = st_input3-imv_qty.
        st_order_item_in-plant = st_input3-werks.
        st_order_item_in-store_loc = st_input3-lgort.
       st_order_item_in-store_loc = st_input3-lgort.
        APPEND st_order_item_in TO lt_order_item_in.
    *Populate item updation Details
        st_order_item_inx-itm_number = lv_posnr.
        st_order_item_inx-updateflag = 'U'.
        st_order_item_inx-material = 'X'.
        st_order_item_inx-plant = 'X'.
        st_order_item_inx-store_loc = 'X'.
        st_order_item_inx-target_qty = 'X'.
        APPEND st_order_item_inx TO lt_order_item_inx.
    *Populate the Schedule Lines
        st_schedule_lines-itm_number = lv_posnr.
        st_schedule_lines-sched_line = '0001'.
        st_schedule_lines-req_qty = st_input3-imv_qty.
        APPEND st_schedule_lines TO lt_schedule_lines.
    *Populate the update details of schedule lines
        st_schedule_linesx-itm_number = lv_posnr.
        st_schedule_linesx-sched_line = '0001'.
        st_schedule_linesx-req_qty = 'X'.
        st_schedule_linesx-updateflag = 'U'.
        APPEND st_schedule_linesx TO lt_schedule_linesx.
           AT END OF vbeln.
    *Call BAPI Sales order change
          CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
            EXPORTING
              salesdocument    = lv_vbeln
              order_header_inx = lv_order_header_inx
            TABLES
              return           = lt_return
              order_item_in    = lt_order_item_in
              order_item_inx   = lt_order_item_inx
              schedule_lines   = lt_schedule_lines
              schedule_linesx  = lt_schedule_linesx.
    *Save Sales Order
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              wait = 'X'.
          CLEAR lv_posnr.
          READ  TABLE lt_return INTO st_return WITH KEY type = 'E'.
          st_ipfile_err3-message = st_return-message.
    *Error Log
          LOOP AT gt_temp3 INTO st_temp3.
            IF st_ipfile_err3-message IS NOT INITIAL.
              MOVE st_temp3-record TO st_ipfile_err3-record.
              IF fl_set1 IS INITIAL.
                APPEND st_temp_err TO gt_ipfile_err3.
                fl_set1 = 'X'.
              ENDIF.
              APPEND st_ipfile_err3 TO gt_ipfile_err3.
            ELSE.
              APPEND st_temp3 TO gt_audit3.
            ENDIF.
            CLEAR : st_temp3,
                    st_temp_err,
                    st_ipfile_err3,
                    fl_set.
          ENDLOOP.
          REFRESH : gt_zrman,

  • Problem while creating sales order using BAPI

    Hi all,
    i am creating a sales order from the purchase order data.
    when my client will send a PO in EDI format, my 3rd party edi tool will convert that edi formatted PO to text format. then i will upload that text formatted PO to my program then i will create a SO from those uploaded PO data using BAPI BAPI_SALESORDER_CREATEFROMDAT2.
      but,no sales order is being created.& also i am not getting any return message.by debugging also, i am not getting the error.plz suggest where i am doing mistake.below is the coding.
    DATA:
      gfilename LIKE rlgrap-filename.
    *--Internal tables
    DATA: BEGIN OF i_item OCCURS 50.    "Create Material Document Item
            INCLUDE STRUCTURE BAPISDITM .
    DATA: END OF i_item .
    DATA: BEGIN OF i_partner OCCURS 20.  "Return parameter
            INCLUDE STRUCTURE BAPIPARNR.
    DATA: END OF i_partner.
    DATA: BEGIN OF i_schedule OCCURS 20.  "Return parameter
            INCLUDE STRUCTURE BAPISCHDL .
    DATA: END OF i_schedule.
    DATA: BEGIN OF i_cond OCCURS 20.  "Return parameter
            INCLUDE STRUCTURE BAPICOND .
    DATA: END OF i_cond.
    DATA: BEGIN OF i_part OCCURS 0,     " Internal table for split data
            part(20),
          END OF i_part.
    DATA: BEGIN OF i_return OCCURS 20.  "Return parameter
            INCLUDE STRUCTURE bapiret2.
    DATA: END OF i_return.
    *-- Work areas
    DATA: BEGIN OF wa_header .       "sales Document Header Data
            INCLUDE STRUCTURE BAPISDHD1.
    DATA: END OF wa_header .
    *DATA: BEGIN OF wa_return .       "Output Structure
           INCLUDE STRUCTURE BAPIRET2.
    *DATA: END OF wa_return .
    DATA: begin of sorder.
         INCLUDE STRUCTURE BAPIVBELN.
    DATA: end of sorder.
    data:begin of t_upload,
         ebeln(10),  "PO no(seagate)
         aedat like sy-datum , "PO date
         bsart(4) , "PO type
         vdatu like sy-datum , "requested delivery date
         kunnr(10) , "customer no-sold-to-party
        kunak like vbak-kunnr, "bill-to-party
         name1_s(20), "name1 of sold-to-party
         name2_s(15), "name2 of sold-to-party
         land1_s(3), "country
         ort01_s(10),  "city
         regio_s(3), "region(state/province)
         pstlz_s(10), "postal code
         adrnr_s(10), "address
         bstkd_e(10), "end customer purchase order
         posex(6),     "end customer PO line no(item no)
         kdmat(18),     "end customer material no(part no)
         kunag(10),     "ship-to-party
         name1_c(20),   "name1 of ship-to-party
         name2_c(15),   "name2 of ship-to-party
         land1_c(3),   "country
         ort01_c(10),    "city
         regio_c(3),   "region(state/province)
         pstlz_c(10),   "postal code
         adrnr_c(10),   "address
         posnr(6), "item no(seagate PO line no)
         pstyv(4), "item category
         matnr(18), "material no(seagate 9 digit part no)
         zmeng(13), "Target quantity in sales unit
        vrkme like vbap-vrkme, "sales unit
         meins(3), "UOM
        posnr_tot like vbap-posnr,"Total no. of line items
         werks(4), "plant
        vstel like vbap-vstel, "shipping point
         empst(10), "receiving point
         shtyp(4), "shipment type
         route(6), "route
         vsbed(2), "shipping conds
        rkfkf like vbap-rkfkf, "method of billing for co/ppc orders
         zterm(4), "terms of payment key
         inco1(3), "F.O.B inco term1
         inco2(3), "F.O.B inco term2
         end of t_upload.
    Data: wa_upload like t_upload,
           i_upload like standard table of t_upload.
    Data:v_kunnr like kna1-kunnr,
          v_posnr like vbap-posnr,
          v_matnr like vbap-matnr,
          v_zmeng like vbap-zmeng,
          v_kunag like kna1-kunnr.
    *---Constants
    CONSTANTS: c_comma TYPE c VALUE ',',   " For splitting data at commas
               c_01(2) TYPE c VALUE '01',  " For movement code in Bapi
               c_b     TYPE c VALUE 'B',   " For mvt. Indicator in Bapi
               c_creat(5) TYPE c VALUE 'CREAT', " For button text
               c_clear(5) TYPE c VALUE 'CLEAR', " For clear button
               c_mvmt(4) TYPE c VALUE 'MVMT',
               c_ok(2)   TYPE c VALUE 'OK',
               c_error(5) TYPE c VALUE 'Error'.
    *--SELECTION SCREEN DESIGN--
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
    PARAMETERS:     
                p_auart LIKE vbak-auart, " order type
                p_vkorg LIKE vbak-vkorg, " sales org
                p_vtweg LIKE vbak-vtweg, " dist channel
                p_spart LIKE vbak-spart, " division
                p_vkgrp LIKE vbak-vkgrp, " sales group
                p_vkbur LIKE vbak-vkbur, "sales office
                p_file(256) default 'c:/saleorder.txt'.         "File name
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN PUSHBUTTON 15(10) v_create USER-COMMAND creat.
    SELECTION-SCREEN PUSHBUTTON 40(10) v_clear USER-COMMAND clear.
      INITIALIZATION -
    INITIALIZATION.
      v_create = c_creat .
      v_clear = c_clear.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    PERFORM selectfile USING p_file.
    *--AT SELECTION_SCREEN--
    AT SELECTION-SCREEN .
      IF sy-ucomm = c_clear.
        PERFORM f_clear.
    ELSE.
       IF sy-ucomm <> c_mvmt.
    **--- Validating the input data.
         PERFORM f_check_inputs.
        ELSEif sy-ucomm = c_creat.
    *--- Validating the input data.
          PERFORM f_check_inputs.
    *-- Uploading the PO data.
          PERFORM f_PO_upload.
    *---checking the PO data
         PERFORM f_check_upload_data.
    *---create sales order from PO data
        PERFORM f_Sales_order_create.
        ENDIF.
    FORM f_PO_upload.
    gfilename = p_file.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                filename                = gfilename
                filetype                = 'DAT'
           TABLES
                data_tab                = i_upload
           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 i398(00) WITH '(WS_UPLOAD)'
        ' Errors occured with exception '
         sy-subrc.
      ENDIF.
    ENDFORM.                    " f_PO_upload
    *&      Form  selectfile
          text
         -->P_P_FILE  text
    FORM selectfile CHANGING value(filename) TYPE c.
    CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
                def_filename     = gfilename
                def_path         = 'C:\'
                mask             = ',*.txt.'
                mode             = 'O'
                title            = 'Select File Name'
           IMPORTING
                filename         = filename
           EXCEPTIONS
                inv_winsys       = 1
                no_batch         = 2
                selection_cancel = 3
                selection_error  = 4
                OTHERS           = 5.
    ENDFORM.                    " selectfile
    FORM f_Sales_order_create.
      PERFORM f_fill_header.
      PERFORM f_fill_partner.
      PERFORM f_fill_item.
      PERFORM f_call_BAPI.
    ENDFORM.                    " f_Sales_order_create
    *&      Form  f_fill_header
          text
    -->  p1        text
    <--  p2        text
    FORM f_fill_header.
    move p_auart to wa_header-doc_type.
    move p_vkorg to wa_header-sales_org.
    move p_vtweg to wa_header-distr_chan.
    move p_spart to wa_header-division.
    move p_vkgrp to wa_header-sales_grp.
    move p_vkbur to wa_header-sales_off.
    Read table i_upload into wa_upload index 1.
    move wa_upload-ebeln to wa_header-purch_no_c.
    move wa_upload-aedat to wa_header-purch_date.
    move wa_upload-bsart to wa_header-po_method.
    move wa_upload-vdatu to wa_header-req_date_h.
    move wa_upload-bstkd_e to wa_header-purch_no_s.
    *move wa_upload-route to wa_header-route.
    move wa_upload-vsbed to wa_header-ship_cond.
    move wa_upload-empst to wa_header-rec_point.
    move wa_upload-shtyp to wa_header-ship_type.
    move wa_upload-zterm to wa_header-pmnttrms.
    move wa_upload-inco1 to wa_header-incoterms1.
    move wa_upload-inco2 to wa_header-incoterms2.
    ENDFORM.                    " f_fill_header
    *&      Form  f_fill_partner
          text
    -->  p1        text
    <--  p2        text
    FORM f_fill_partner.
    if not wa_upload-kunnr is initial.
    select single kunnr from kna1 into v_kunnr
                where kunnr = wa_upload-kunnr.
    if sy-subrc <> 0.
    Message E014 with 'customer does not exist'.
    else.
    move 'AG' to i_partner-partn_role.
    move wa_upload-kunnr to i_partner-partn_numb.
    move wa_upload-land1_s to i_partner-country.
    move wa_upload-name1_s to i_partner-name.
    move wa_upload-name2_s to i_partner-name_2.
    move wa_upload-ort01_s to i_partner-city.
    move wa_upload-regio_s to i_partner-region.
    move wa_upload-pstlz_s to i_partner-postl_code.
    move wa_upload-adrnr_s to i_partner-address.
    append i_partner.
    endif.
    endif.
    if not wa_upload-kunag is initial.
    select single kunnr from kna1 into v_kunag
                where kunnr = wa_upload-kunag.
    if sy-subrc <> 0.
    Message E015 with 'end customer does not exist'.
    else.
    move 'WE' to i_partner-partn_role.
    move wa_upload-kunag to i_partner-partn_numb.
    move wa_upload-land1_c to i_partner-country.
    move wa_upload-name1_c to i_partner-name.
    move wa_upload-name2_c to i_partner-name_2.
    move wa_upload-ort01_c to i_partner-city.
    move wa_upload-regio_c to i_partner-region.
    move wa_upload-pstlz_c to i_partner-postl_code.
    move wa_upload-adrnr_c to i_partner-address.
    append i_partner.
    endif.
    endif.
    ENDFORM.                    " f_fill_partner
    *&      Form  f_fill_item
          text
    -->  p1        text
    <--  p2        text
    FORM f_fill_item.
    loop at i_upload into wa_upload.
    if not wa_upload-matnr is initial.
    select single  maramatnr msegmenge into (v_matnr, v_zmeng) from
                       mara inner join mseg on maramatnr = msegmatnr
                       where mara~matnr = wa_upload-matnr.
    if sy-subrc <> 0.
    Message E016 with 'material no does not exist'.
    elseif v_zmeng LT wa_upload-zmeng.
    Message E017 with 'order quantity is greater than the quantity present'.
      endif.
    endif.
    move wa_upload-posnr to i_item-itm_number.
    move wa_upload-pstyv to i_item-item_categ.
    move wa_upload-matnr to i_item-material.
    move wa_upload-zmeng to i_item-target_qty.
    move wa_upload-meins to i_item-target_qu.
    move wa_upload-werks to i_item-plant.
    *move wa_upload-meins to wa_vbap-meins.
    *move wa_upload-posnr_tot to wa_vbap-posnr_tot.
    move wa_upload-posex to i_item-po_itm_no.
    move wa_upload-kdmat to i_item-cust_mat22.
    move wa_upload-inco1 to i_item-incoterms1.
    move wa_upload-inco2 to i_item-incoterms2.
    move wa_upload-zterm to i_item-pmnttrms.
    move wa_upload-empst to i_item-rec_point.
    move wa_upload-shtyp to i_item-ship_type.
    move wa_upload-route to i_item-route.
    append i_item.
    PERFORM f_fill_schedule_line.
    PERFORM f_fill_conditions.
    ENDLOOP.
    ENDFORM.                    " f_fill_item
    *&      Form  f_fill_schedule_line
          text
    -->  p1        text
    <--  p2        text
    FORM f_fill_schedule_line.
    move wa_upload-matnr to i_schedule-itm_number.
    move sy-datum to i_schedule-req_date.
    move wa_upload-zmeng to i_schedule-req_qty.
    append i_schedule.
    ENDFORM.                    " f_fill_schedule_line
    *&      Form  f_fill_conditions
          text
    -->  p1        text
    <--  p2        text
    FORM f_fill_conditions.
    move wa_upload-matnr to i_cond-itm_number.
    move sy-datum to i_cond-conpricdat.
    append i_cond.
    ENDFORM.                    " f_fill_conditions
    *&      Form  f_clear
          text
    -->  p1        text
    <--  p2        text
    FORM f_clear.
    clear:p_auart,
          p_vkorg,
          p_vtweg,
          p_spart,
          p_vkgrp,
          p_vkbur.
    ENDFORM.                    " f_clear
    *&      Form  f_call_BAPI
          text
    -->  p1        text
    <--  p2        text
    FORM f_call_BAPI.
    clear:i_item,i_partner,i_schedule.
    CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
      EXPORTING
      SALESDOCUMENTIN               =
        ORDER_HEADER_IN               = wa_header
      ORDER_HEADER_INX              =
      SENDER                        =
      BINARY_RELATIONSHIPTYPE       =
      INT_NUMBER_ASSIGNMENT         =
      BEHAVE_WHEN_ERROR             =
      LOGIC_SWITCH                  =
      TESTRUN                       =
      CONVERT                       = ' '
    IMPORTING
       SALESDOCUMENT                  = sorder
      TABLES
      RETURN                        =
       ORDER_ITEMS_IN                 = i_item
      ORDER_ITEMS_INX               =
        ORDER_PARTNERS                = i_partner
       ORDER_SCHEDULES_IN             = i_schedule
      ORDER_SCHEDULES_INX           =
      ORDER_CONDITIONS_IN            = i_cond.
      ORDER_CFGS_REF                =
      ORDER_CFGS_INST               =
      ORDER_CFGS_PART_OF            =
      ORDER_CFGS_VALUE              =
      ORDER_CFGS_BLOB               =
      ORDER_CFGS_VK                 =
      ORDER_CFGS_REFINST            =
      ORDER_CCARD                   =
      ORDER_TEXT                    =
      ORDER_KEYS                    =
      EXTENSIONIN                   =
      PARTNERADDRESSES              =
    if not ( sorder-vbeln is initial ).
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    write: /'Order number:', sorder.
    else.
    loop at i_return.
    write: / i_return-id, i_return-number, i_return-message(80).
    endloop.
    *write: /'Error'.
    endif.
    *loop at i_return.
    *write: / i_return-id, i_return-number, i_return-message(80).
    *endloop.
    ENDFORM.                    " f_call_BAPI

    HI
      Pricing will be carried basing on the pricing
    procedure.
    Case1: Prices will be carried out automatically if
    necessary condition records are maintained for the
    condition type.
      For this you can go to Sales Order-> Item Conditions
    In the screen you can click on command button Analysis,
    which gives you the list of condition types associated
    to the pricing procedure. By clicking on the condition
    type you can know the action that has taken place.
    Case2: Manually forcing prices for Items.
      To do this, you have to populate ORDER_CONDITIONS_IN &
    ORDER_CONDITIONS_INX. Also note to identify the item
    numbers, you manually pass the item number for each item
    in the sales order, use the same item number for
    populating conditions.
      Parameters required:
    ORDER_CONDITIONS_IN:
      ITM_NUMBER, COND_TYPE, COND_VALUE, CURRENCY
    ORDER_CONDITIONS_INX:
      ITM_NUMBER, COND_TYPE, UPDATEFLAG, COND_VALUE,CURRENCY.
       Hope the above info helps you. Do revert back if you
    need more info.
    Kind Regards
    Eswar

  • Change Sales order using BAPI

    When trying to change a Sales order using BAPI_SALESORDER_CHANGE, I am getting the following error.
    SD document 15704 is not in the database or has been archived.
    Please let me know what could be the problem

    you have the error message, which is self explanatory.
    SD document 15704 is not in the database or has been archived.
    if you knat that the sales document indeed exists, and the  message is deceiving, then check why are yopu gettign that. maybe you didn;t provide the order# will leading zeros, or you are tryingto change an order immediately after creating, in which case DB commit might not be completed.

  • Update ship-to partner in sales order using BAPI_SALESORDER_CHANGE

    Dear all,
    We are trying to update the ship-to partner in a sales order using BAPI_SALESORDER_CHANGE. This is working correctly for most of our orders, so we do fill the BAPI correctly. However for some of our orders on item level a different payer is specified than on header level. However in that case the BAPI will not update the ship-to partner, but given an error message VPD 034 u2018The document must contain the same credit control areas for all payersu2019. Debugging already learned that actually the message is given not because of different credit control areas, but due to the fact that the payers and therefore the credit customers are different (although in the same credit control areas). For this reason we can not update the ship-to party of a large number of our sales orders with this BAPI. Actually we have 2 questions:
    ·         Has somebody experienced the same issue and did you manage to solve it somehow, so the BAPI could be used for this purpose of updating partner data?
    ·         Do you know other ways of updating the partners or partner address of an existing sales order in the background?
    Thanks in advance for your assistance.
    Regards,
    Satish.

    It was caused by standard SAP.

  • Error received while changing sales order.

    Hi All,
    while changing sales order we have received error message "An internal program error has occured.See note 44283".
    So could you plesae explain me what needs to be done.
    Thanks in advance.

    To avoid to store inconsistent data in the future, activate the following method of the BADI                           BADI_SD_SALES:                                                          
    > 1 - Transaction SE18                                         
    > 2 - Definition name: BADI_SD_SALES Menu: Implementation -> Overview double-click on implementation: IM_CORE_CHECK
    > 3 - Now you will get an overview on the methods and you see also that the implementation IM_CORE_CHECK is inactive    
    > 4 - Press the change button and activate                                                                               
    This check works in the following way:
    > 1 - if the number of items is less than 10 and there is an inconsistency the system will not store the data and an A-message  will occur.
    > 2 - If the number of items is greater than 10 and less than 50 and there is an inconsistency the data will be stored and an I-message will occur.
    > 3 - if the number of items is greater than 50 there is no check because performance.
    Edited by: Gerard Magorrian on Aug 6, 2010 4:01 PM

  • Problem in updating Billing plan while changing Sales order

    Hi All,
            I am using the BAPI 'BAPI_SALESORDER_CHANGE' to change a Prepaid Sale order.After calling this BAPI ,I am calling the function module <b>'BILLING_SCHEDULE_SAVE'</b> to update the Billing plan of the changed Sale order(Billing plan dates for Billing type ZF1 are changed).
         The updated date values are getting reflected in the screen when I view through the transaction VA02 and the values are also updated in FPLT table but the values are not getting reflected in the table VKDFS.
       Since the values are not getting reflectedin the table VKDFS the billing date is not correct while we view in the transaction VF04.
       Please provide your valuable suggestions for updating the Billing date in VKDFS table.
        Thanks in advance for your help.
    Thanks and regards,
    Siva

    Hi,
    I had the same problem. Here is an example code to resolve it:
    REPORT  ytestfg.
    DATA: i_bsid LIKE bsid OCCURS 0,
          i_bsid2 LIKE bsid OCCURS 0.
    TABLES: bsid.
    DATA: doc     LIKE     vbak-vbeln,
          pos(6) TYPE n.
    DATA e_fpla     LIKE     fpla.
    DATA e_fplt     LIKE     fpltvb OCCURS 0 .
    DATA: zfpla     LIKE     fplavb OCCURS 0,
    zfplt     LIKE     fpltvb OCCURS 0.
    DATA zfplt2     LIKE     fpltvb OCCURS 0 WITH HEADER LINE.
    doc = 'G03060619'.
    pos = '000010'.
    CALL FUNCTION 'SD_SALES_DOCUMENT_READ'
      EXPORTING
        document_number = doc.
    CALL FUNCTION 'SD_SALES_BILLINGPLAN_READ'
      EXPORTING
        i_vbeln                = doc
        i_posnr                = pos
      IMPORTING
        e_fpla                 = e_fpla
      TABLES
        e_fplt                 = e_fplt
      EXCEPTIONS
        no_billingplan_allowed = 1
        no_billingplan_found   = 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.
    Read the billing plan
    CALL FUNCTION 'BILLING_SCHEDULE_READ'
      EXPORTING
        fplnr          = e_fpla-fplnr
      I_VFKDAT       =
      I_BFKDAT       =
      TABLES
       zfpla          = zfpla
        zfplt          = zfplt
    Upddate the ZFPLT2 table with the new values
    MOVE zfplt[] TO zfplt2[].
    READ TABLE zfplt2 INDEX 1.
    zfplt2-afdat = '20080927'.
    Very important to set field updkz = 'U' ***
    zfplt2-updkz = 'U'. "--> UPDATE!!
    MODIFY zfplt2 INDEX 1.
    CALL FUNCTION 'BILLING_SCHEDULE_SAVE'
      TABLES
        fpla_new = zfpla
        fpla_old = zfpla
        fplt_new = zfplt2 " --> NEW
        fplt_old = zfplt.
    CALL FUNCTION 'SD_SALES_DOCUMENT_SAVE'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    Regards,
    Edited by: PHO_BA on Mar 9, 2009 5:28 PM

  • Getting error in while changing sales order which is created using BAPI

    Hi All,
       I have created the sales order using BAPI ( BAPI_SALESORDER_CREATEFROMDAT1 ) and i am successfully creating sales order using this BAPI. But while i want to change sales order iam changing Shipping Conditions in Header Data of sales order .its giving an error .can any know any thing about this.
    Error mesage :    No status object is available for SDI 300082407/10    (Order Number/Item Number)
    In Header i  am passing these values ...
         wa_order_header_in-doc_type = vbak-auart.
        wa_order_header_in-sales_org = vbak-vkorg.
        wa_order_header_in-distr_chan = vbak-vtweg.
        wa_order_header_in-division = vbak-spart.
    Do i required to pass the below values ? in Header structure ( BAPISDHEAD1 ).
    REFOBJECTTYPE
    REFOBJECTKEY
    REFDOCTYPE
    Regards,
    Sudhakar Reddy A

    rectified

  • Confirmation Quantity issue while creating Sales order using BAPI

    Hi SDN,
    Can anyone of you help mein the below issue:
    I have a program to create a sales order using upload file. for this i use "BAPI_SALESORDER_CREATEFROMDAT2" & for changing existing "BAPI_SALESORDER_CHANGE".
    Now If the upload file contains the Same Material, Based on other conditions, it needs to create Multiple sales order.
    When the first Salesorder is created, the Quantity is getting confirmed (Confirmed quantity VBEP-BMENG). But during actual run, since the confirmation is getting done for the same material in the above Sales order, the confirmation is not being done in the subsequent Sales order".
    This poses a problem for business, user need to manual refresh the u201Cconfirmed quantity for each line item in the particular SO where it failed during program upload.
    Also while uploading using the BAPI, if we wait forsometime after creating the first sales order in Debug, then the above material is unlocked & the confirmation quantity is done for the subsequent sales order also.
    But in the actual run, this is creating a problem. Some Refresh or Unlocking problem.
    Can you please suggest a suitable solution for this issue.
    Thanks & regrads,
    Chaitanya LBK

    Have you tried backorder processing?
    V_V1
    V_V2
    V_RA
    V_R1
    V_R2

  • Setting user specific contract data while creating sales order using BAPI

    Hi all,
    I am creating sales order using BAPI - BAPI_SALESORDER_CREATEFROMDAT2.
    Now my problem is that there is no structure for contract data (i.e. VEDA), system automatically set contract data using customization values.
    I am doing some validations on cotract data in MV45AFZZ which fails, because these validations are performed on standard values, user specific values r not set.
    How to handle this issue, your small clue may help a lot.
    Regards,
    S@meer

    HI
      Pricing will be carried basing on the pricing
    procedure.
    Case1: Prices will be carried out automatically if
    necessary condition records are maintained for the
    condition type.
      For this you can go to Sales Order-> Item Conditions
    In the screen you can click on command button Analysis,
    which gives you the list of condition types associated
    to the pricing procedure. By clicking on the condition
    type you can know the action that has taken place.
    Case2: Manually forcing prices for Items.
      To do this, you have to populate ORDER_CONDITIONS_IN &
    ORDER_CONDITIONS_INX. Also note to identify the item
    numbers, you manually pass the item number for each item
    in the sales order, use the same item number for
    populating conditions.
      Parameters required:
    ORDER_CONDITIONS_IN:
      ITM_NUMBER, COND_TYPE, COND_VALUE, CURRENCY
    ORDER_CONDITIONS_INX:
      ITM_NUMBER, COND_TYPE, UPDATEFLAG, COND_VALUE,CURRENCY.
       Hope the above info helps you. Do revert back if you
    need more info.
    Kind Regards
    Eswar

  • Error While Creating Sales Order Using OE_ORDER_PUB.PROCESS_ORDER

    Hi All,
    I am trying to create a sales order using oe_order_pub.process_order api..
    The Procedure i had written is as follows.
    CREATE OR REPLACE PROCEDURE TEST_PROC
    AS
    x_return_status VARCHAR2(250);
    x_msg_count NUMBER;
    x_msg_data VARCHAR2(250);
    F varchar2(2000);
    --out parameters
    x_header_rec OE_Order_PUB.Header_Rec_Type;
    x_header_val_rec OE_Order_PUB.Header_Val_Rec_Type;
    x_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
    x_Header_Adj_val_tbl OE_Order_PUB.Header_Adj_Val_Tbl_Type;
    x_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type;
    x_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type;
    x_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
    x_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
    x_Header_Scredit_val_tbl OE_Order_PUB.Header_Scredit_Val_Tbl_Type;
    x_line_tbl OE_Order_PUB.Line_Tbl_Type;
    x_line_val_tbl OE_Order_PUB.Line_Val_Tbl_Type;
    x_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
    x_Line_Adj_val_tbl OE_Order_PUB.Line_Adj_Val_Tbl_Type;
    x_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type;
    x_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type;
    x_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
    x_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
    x_Line_Scredit_val_tbl OE_Order_PUB.Line_Scredit_Val_Tbl_Type;
    x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
    x_Lot_Serial_val_tbl OE_Order_PUB.Lot_Serial_Val_Tbl_Type;
    x_action_request_tbl OE_Order_PUB.Request_Tbl_Type;
    --in parameters
    l_header_rec OE_Order_PUB.Header_Rec_Type;
    t_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
    BEGIN
    apps.mo_global.set_org_context(204,null,'ONT');
    l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;
    l_header_rec.ORG_ID := 204;
    l_header_rec.ORDER_TYPE_ID := 1437;
    l_header_rec.SOLD_TO_ORG_ID := 1290;
    l_header_rec.SHIP_TO_ORG_ID:=1425;
    l_header_rec.INVOICE_TO_ORG_ID:=1424;
    l_header_rec.PRICE_LIST_ID := 1000;
    l_header_rec.salesrep_id := 1006;
    l_header_rec.ORDER_CATEGORY_CODE := 'MIXED';
    l_header_rec.VERSION_NUMBER := 0;
    l_header_rec.OPEN_FLAG := 'Y';
    l_header_rec.BOOKED_FLAG := 'Y';
    l_header_rec.PRICING_DATE := sysdate;
    l_header_rec.TRANSACTIONAL_CURR_CODE := 'USD';
    l_header_rec.created_by := FND_GLOBAL.USER_ID;
    l_header_rec.creation_date := sysdate;
    l_header_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
    l_header_rec.LAST_UPDATE_DATE := sysdate;
    l_header_rec.attribute1 := '250';
    l_header_rec.operation := 'CREATE';
    t_line_tbl(1) := OE_ORDER_PUB.G_MISS_LINE_REC; ---check
    t_line_tbl(1).inventory_item_id := 193742;
    t_line_tbl(1).ordered_quantity := 1;
    t_line_tbl(1).operation := 'CREATE';
    oe_debug_pub.initialize;
    --oe_debug_pub.SetDebugLevel(1);
    OE_MSG_PUB.INITIALIZE();
    OE_Order_PUB.Process_Order
    ( -- p_org_id =>          204,
    --p_operating_unit                =>          'ONT',
    p_api_version_number =>          1.0,
    p_init_msg_list =>          FND_API.G_TRUE,
    p_return_values =>          FND_API.G_TRUE,
    p_action_commit =>          FND_API.G_TRUE,
    x_return_status =>          x_return_status,
    x_msg_count =>          x_msg_count,
    x_msg_data =>          x_msg_data,
    p_header_rec =>          l_header_rec,
    p_old_header_rec =>          OE_Order_PUB.G_MISS_HEADER_REC,
    p_header_val_rec =>          OE_Order_PUB.G_MISS_HEADER_VAL_REC,
    p_old_header_val_rec =>          OE_Order_PUB.G_MISS_HEADER_VAL_REC,
    p_Header_Adj_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_TBL,
    p_old_Header_Adj_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_TBL,
    p_Header_Adj_val_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL,
    p_old_Header_Adj_val_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL,
    p_Header_price_Att_tbl =>          OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL,
    p_old_Header_Price_Att_tbl =>          OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL,
    p_Header_Adj_Att_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL,
    p_old_Header_Adj_Att_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL,
    p_Header_Adj_Assoc_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL,
    p_old_Header_Adj_Assoc_tbl =>          OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL,
    p_Header_Scredit_tbl =>          OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL,
    p_old_Header_Scredit_tbl =>          OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL,
    p_Header_Scredit_val_tbl =>          OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL,
    p_old_Header_Scredit_val_tbl =>          OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL,
    p_line_tbl =>          t_line_tbl,
    p_old_line_tbl =>          OE_Order_PUB.G_MISS_LINE_TBL,
    p_line_val_tbl =>          OE_Order_PUB.G_MISS_LINE_VAL_TBL,
    p_old_line_val_tbl =>          OE_Order_PUB.G_MISS_LINE_VAL_TBL,
    p_Line_Adj_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_TBL,
    p_old_Line_Adj_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_TBL,
    p_Line_Adj_val_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL,
    p_old_Line_Adj_val_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL,
    p_Line_price_Att_tbl =>          OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL,
    p_old_Line_Price_Att_tbl =>          OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL,
    p_Line_Adj_Att_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL,
    p_old_Line_Adj_Att_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL,
    p_Line_Adj_Assoc_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL,
    p_old_Line_Adj_Assoc_tbl =>          OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL,
    p_Line_Scredit_tbl =>          OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL,
    p_old_Line_Scredit_tbl =>          OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL,
    p_Line_Scredit_val_tbl =>          OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL,
    p_old_Line_Scredit_val_tbl =>          OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL,
    p_Lot_Serial_tbl =>          OE_Order_PUB.G_MISS_LOT_SERIAL_TBL,
    p_old_Lot_Serial_tbl =>          OE_Order_PUB.G_MISS_LOT_SERIAL_TBL,
    p_Lot_Serial_val_tbl =>          OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL,
    p_old_Lot_Serial_val_tbl =>          OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL,
    p_action_request_tbl     =>          OE_Order_PUB.G_MISS_REQUEST_TBL,
    x_header_rec =>          x_header_rec,
    x_header_val_rec =>          x_header_val_rec,
    x_Header_Adj_tbl =>          x_Header_Adj_tbl,
    x_Header_Adj_val_tbl =>          x_Header_Adj_val_tbl,
    x_Header_price_Att_tbl =>          x_Header_price_Att_tbl,
    x_Header_Adj_Att_tbl =>          x_Header_Adj_Att_tbl,
    x_Header_Adj_Assoc_tbl =>          x_Header_Adj_Assoc_tbl,
    x_Header_Scredit_tbl =>          x_Header_Scredit_tbl,
    x_Header_Scredit_val_tbl =>          x_Header_Scredit_val_tbl,
    x_line_tbl =>          x_line_tbl,
    x_line_val_tbl =>          x_line_val_tbl,
    x_Line_Adj_tbl =>          x_Line_Adj_tbl,
    x_Line_Adj_val_tbl =>          x_Line_Adj_val_tbl,
    x_Line_price_Att_tbl =>          x_Line_price_Att_tbl,
    x_Line_Adj_Att_tbl =>          x_Line_Adj_Att_tbl,
    x_Line_Adj_Assoc_tbl =>          x_Line_Adj_Assoc_tbl,
    x_Line_Scredit_tbl =>          x_Line_Scredit_tbl,
    x_Line_Scredit_val_tbl =>          x_Line_Scredit_val_tbl,
    x_Lot_Serial_tbl =>          x_Lot_Serial_tbl,
    x_Lot_Serial_val_tbl =>          x_Lot_Serial_val_tbl,
    x_action_request_tbl     =>          x_action_request_tbl,
    --For bug 3390458
    p_rtrim_data => 'N',
    p_validate_desc_flex => 'Y' -- bug4343612
    COMMIT;
    if x_msg_count > 0 then
    for l_index in 1..x_msg_count loop
    x_msg_data := oe_msg_pub.get(p_msg_index => l_index, p_encoded => F);
    PRINT('x_msg_data: '||x_msg_data);
    end loop;
    end if;
    -- Check the return status
    if x_return_status = FND_API.G_RET_STS_SUCCESS then
    PRINT('success');
    else
    PRINT('failure');
    end if;
    PRINT('x_return_status: '||x_return_status);
    PRINT('x_msg_count: '||x_msg_count);
    PRINT('x_msg_data: '||x_msg_data);
    PRINT('x_header_val_rec: '||x_header_val_rec.accounting_rule);
    PRINT('x_header_rec header_id: ' ||x_header_rec.header_id);
    PRINT('x_header_rec order_number: ' ||x_header_rec.order_number);
    PRINT('x_header_rec ship_to_org_id: ' ||x_header_rec.ship_to_org_id);
    PRINT('x_header_rec payment_term_id: ' ||x_header_rec.payment_term_id);
    PRINT('x_header_rec order_source_id: ' ||x_header_rec.order_source_id);
    PRINT('x_header_rec order_type_id: ' ||x_header_rec.order_type_id);
    PRINT('x_header_rec price_list_id: ' ||x_header_rec.price_list_id);
    PRINT('x_header_rec invoicing_rule_id: ' ||x_header_rec.invoicing_rule_id);
    PRINT('x_header_rec accounting_rule_id: ' ||x_header_rec.accounting_rule_id);
    PRINT('x_header_rec org_id: ' ||x_header_rec.org_id);
    PRINT('x_header_rec sold_to_org_id: ' ||x_header_rec.sold_to_org_id);
    PRINT('x_header_rec invoice_to_org_id: ' ||x_header_rec.invoice_to_org_id);
    PRINT('x_header_rec salesrep_id: ' ||x_header_rec.salesrep_id);
    PRINT('x_header_rec invoice_to_org_id: ' ||x_header_rec.invoice_to_org_id);
    PRINT('x_header_rec operation: ' ||x_header_rec.operation);
    PRINT('x_header_rec transactional_curr_code: ' ||x_header_rec.transactional_curr_code);
    PRINT('x_header_rec orig_sys_document_ref: ' ||x_header_rec.orig_sys_document_ref);
    PRINT('x_header_rec request_date: ' ||x_header_rec.request_date);
    PRINT('x_header_rec conversion_rate_date: ' ||x_header_rec.conversion_rate_date);
    PRINT('x_header_rec last_update_date: ' ||x_header_rec.last_update_date);
    PRINT('x_header_rec ordered_date: ' ||x_header_rec.ordered_date);
    PRINT('x_header_rec creation_date: ' ||x_header_rec.creation_date);
    PRINT('x_header_rec created_by: ' ||x_header_rec.created_by);
    END;
    It is throwing the following Error.
    SQL> exec TEST_PROC;
    x_msg_data: ORA-01403: no data found in Package OE_ORDER_WF_UTIL Procedure
    Create_HdrWorkItem
    x_msg_data: User-Defined Exception in Package OE_ORDER_WF_UTIL Procedure
    Start_HdrProcess
    failure
    x_return_status: U
    x_msg_count: 2
    x_msg_data: User-Defined Exception in Package OE_ORDER_WF_UTIL Procedure
    Start_HdrProcess
    x_header_val_rec: Immediate
    x_header_rec header_id: 156408
    x_header_rec order_number: 64097
    x_header_rec ship_to_org_id: 1425
    x_header_rec payment_term_id: 4
    x_header_rec order_source_id: 0
    x_header_rec order_type_id: 1437
    x_header_rec price_list_id: 1000
    x_header_rec invoicing_rule_id: -2
    x_header_rec accounting_rule_id: 1
    x_header_rec org_id: 204
    x_header_rec sold_to_org_id: 1290
    x_header_rec invoice_to_org_id: 1424
    x_header_rec salesrep_id: 1006
    x_header_rec invoice_to_org_id: 1424
    x_header_rec operation: CREATE
    x_header_rec transactional_curr_code: USD
    x_header_rec orig_sys_document_ref: OE_ORDER_HEADERS_ALL156408
    x_header_rec request_date: 02-APR-09
    x_header_rec conversion_rate_date:
    x_header_rec last_update_date: 02-APR-09
    x_header_rec ordered_date: 02-APR-09
    x_header_rec creation_date: 02-APR-09
    x_header_rec created_by: 13615
    Any help on this would be appreciated.
    I am using R12..

    Pl see if MOS Doc 117313.1 (Booking Order from Order Capture Errors at OE_ORDER_WF_UTIL) can help
    HTH
    Srini

  • Problem while updating Item category using Bapi_salesorder_change

    Hi,
    Iam facing a probelm while updating item category using bapi Bapi_salesorder_change
    In the Return table iam getting the folowing mesages.
    Inforation mesage : Field 'PSTYV' cannot be changed, VBAPKOM 000010  ready for input
    Error Message : Item 000010 cannot be processed.
    Please find the code below
    CLEAR wa_bapisdh1x.
      wa_bapisdh1x-updateflag = 'U'.
      CLEAR wa_order_item_inx.
      wa_order_item_inx-itm_number = wa_vbap-posnr.
      wa_order_item_inx-item_categ = 'X'.
      wa_order_item_inx-UPDATEFLAG = 'U'.
      APPEND  wa_order_item_inx TO it_order_item_inx.
      CLEAR wa_order_item_inx.
      CLEAR wa_order_item_in.
      wa_order_item_in-itm_number = wa_vbap-posnr.
      wa_order_item_in-item_categ = 'ABC'.
      APPEND wa_order_item_in TO it_order_item_in.
      CLEAR wa_order_item_in.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
        EXPORTING
          salesdocument    = w_vbeln
          order_header_inx = wa_bapisdh1x
        TABLES
          return           = it_return
          order_item_in    = it_order_item_in
          order_item_inx   = it_order_item_inx
    How can i correct it..
    Regards
    Kumar

    Actually iam facing a strange problem here.
    When i copy the program into another sample program and execute it iam able to change both the item catgegory and delivery block for particular sales order and item number.
    But in my main program i have BDC for MB1B transaction to create the material document.
    Once the material document is created succesfully iam using BAPI Sales_order_change to change the item category and delivery block..
    In my main program iam not to change the item catgeory getting an error field PSTYV cannot be changed.
    But the same code is running percfectly in the copied one..
    How can i correct that..
    Regards
    Kumar

  • Change sales orders using ORDCHG Message type

    Hi,
    I am trying to test the changing of quantity on sales order items using message type ORDCHG and process code ORDC. In segment E1EDP01 the action code is set to 002 - item changes. However when the IDoc is posted a new line is created in the order rather than the existing one being changed. The action code in the header is set to 003 - one or more items changed. Does anybody know how to control the change of quantity for an existing item?
    Many Thanks
    Caroline

    Hi,
    Try to populate Logical message code 'CHG' in the EDIDC-MESCOD while you are creating the IDoc.
    If a message code has been entered in the (inbound) partner profiles, the external system must fill the field during IDoc inbound processing.
    Regards,
    Yogesh

  • Facing the problem while creating sales order

    Hi,
    I am facing the problem while saving the sales order.
    Error in system  xxx/400 while copying the document
    Message no. CRM_ORDER_MISC 020
    Diagnosis
    Errors occurred while transferring the document into another system. To view the error messages, see the enclosed log.
    Transmission log
    u2022Product  cannot be recoded for ERP System xxx/400(Notification E CRM_ORDER_MISC 015)
    u2022Product  cannot be recoded for ERP System xxx/400 (Notification E CRM_ORDER_MISC 015)
    Kindly assist me.
    Madhu

    Hi Madhusadan,
    Can you check whether the product exists in the ERP System or not? You can take the product names and can check the same using the Tcode: MM03 in ECC System. Also, it would be good if you have a look at the product from the CRM System if there are any errors or the product is already archived.
    Is the Sales Order you are creating from a Preceding Transaction ?
    Hope this helps.
    Thanks,
    Samantak.

  • Problem while creating sales order

    Hi
       We are facing a problem while creating a sales order in R/3. The sales order number is getting generated. But we are not able to view the same in the backend meaning it is not there in the database. Any inputs would be of help.
    regs
    Steve

    Hi everybody,
    I've got a problem with this too. I use the BAPI_SALESORDER_CREATEFROMDAT2 with BAPI_TRANSACTION_COMMIT and the webdynpro shows me the document number created in R3 with a Success message. But when I go to R3 and try to display the created sales order, it doesn't exists. So... Maybe I'm doing something wrong with the BAPI_TRANSACTION_COMMIT. ¿Can anybody help me with this?
    The code I use is this:
    When the user pushes the SAVE button in the WebDynpro, this code executes:
        //@@begin onActionSave(ServerEvent)
         wdThis.wdGetSOCreaCustController().executeBapi_Salesorder_Createfromdat2();
         wdThis.wdGetSOCreaCustController().executeBapi_Transaction_Commit();
        //@@end
    In the custom Controller I've got the code for those executions:
      public void executeBapi_Salesorder_Createfromdat2( )
        //@@begin executeBapi_Salesorder_Createfromdat2()
         try {
              wdContext.currentBapi_Salesorder_Createfromdat2Element().modelObject().execute();
         catch (Exception ex) {
              wdComponentAPI.getMessageManager().reportException(ex.getMessage(), false);
         wdContext.nodeOutput().invalidate();
        //@@end
      public void executeBapi_Transaction_Commit( )
         try {
              wdContext.currentBapi_Transaction_CommitElement().modelObject().execute();
         catch (Exception ex) {
              wdComponentAPI.getMessageManager().reportException(ex.getMessage(), false);
         wdContext.nodeOutput().invalidate();   
        //@@end
    ¿Is something wrong? ¿Is something missing?

Maybe you are looking for