Using ProductionOrderService for Shop Order Update

Hi,
Im using web Service ProductionOrderService for update of shop order Status. Aim is to Close shop orders with Status 504 for defined SAP ERP Status changes.
Executing web Service delivers the following error message: "Cannot update Status to closed because not all SFCs for this shop order marked as Done".
Do I have the possibility to use an other web Service that also Closes all SFCs of shop order?
Are there any SAP ME web Service documentations that I can use for Research?
Thanks and regards,
Anke

Hi Anke,
This issue will be resolved by the anticipated code change within SAP Note 2115350.
Regards,
Sergiy

Similar Messages

  • Function module for Production order update (Table AFKO)

    Hello All,
    I know similar subject has been posted but please read the following.
    SAP 4.6c doesn't provide BAPI for production order update.
    We did develop an ABAP program that update production order and schedule it in a job.
    We are looking of avoiding direct update in table AFKO which our program do right now.
    We looked (with SE37) at either BAPI or FM to pass parameters to a functioin that would perform that update and ensure data integrity.
    CO_ZV_ORDER_POST seems interesting but is also using a lot of parameters and we have diffiulties to test it and understand it our dev team being fairly new.
    Can somebody tell us how to use this function or tell us another FM that could be used. (ie passing internal table content (New fields values) and a key value (AUFNR)) to update table AFKO and related objects/tables
    Regards
    Marc

    hi,
    TABLE IS AFKO
    rgds
    anver
    if hlped mark points

  • Getting errors when iam using  BAPI_PO_CREATE1 for Purchase Order creation

    Hi sap Gurus,
      I am getting Errors when iam using  BAPI_PO_CREATE1 for Purchase Order creation that Material (144) does not exist but it is alreardy maintained in MM01.
    I dont get how it is coming.and what are the mandatory fields in bapi BAPI_PO_CREATE1 in item level .that is too material only.
    pls let me know .
    thanks in advance.

    Hi,
    Check the sample code..
    report  zpo_test             .
    *DATA DECLARATION
    constants : c_x value 'X'.
    *Structures to hold PO header data
    data : header like bapimepoheader ,
    headerx like bapimepoheaderx .
    *Structures to hold PO account data
    data : account like bapimepoaccount occurs 0 with header line ,
    accountx like bapimepoaccountx occurs 0 with header line .
    *Internal Tables to hold PO ITEM DATA
    data : item like bapimepoitem occurs 0 with header line,
    itemx like bapimepoitemx occurs 0 with header line,
    *Internal table to hold messages from BAPI call
    return like bapiret2 occurs 0 with header line,
    *Internal table to hold messages from BAPI call
    pocontractlimits like bapiesucc occurs 0 with header line.
    data : w_header(40) value 'PO Header',
    purchaseorder like bapimepoheader-po_number,
    delivery_date like bapimeposchedule-delivery_date.
    data : ws_langu like sy-langu.
    *text-001 = 'PO Header' - define as text element
    selection-screen begin of block b1 with frame title text-001.
    parameters : company like header-comp_code default '122' ,
    doctyp like header-doc_type default 'NB' ,
    cdate like header-creat_date default sy-datum ,
    vendor like header-vendor default '2000000012' ,
    pur_org like header-purch_org default 'PU01' ,
    pur_grp like header-pur_group default '005' .
    *sociedad like HEADER-COMP_CODE default '122' ,
    *vendedor like HEADER-SALES_PERS default 'sale person'.
    selection-screen end of block b1.
    selection-screen begin of block b2 with frame title text-002.
    parameters : item_num like item-po_item default '00010',
    material like item-material default '12000000' ,
    tipo_imp like item-acctasscat default 'K' ,
    *pos_doc like ITEM-ITEM_CAT default 'F' ,
    shorttxt like item-short_text default 'PRUEBA BAPI' ,
    grup_art like item-matl_group default '817230000' ,
    plant like item-plant default '3001' ,
    mpe like item-trackingno default '9999' ,
    *contrato like ITEM-AGREEMENT default '4904000003' ,
    *quantity like ITEM-QUANTITY default 1 .
    po_unit like item-po_unit default 'EA'.
    selection-screen end of block b2.
    Par?mnetros de imputaci?n
    selection-screen begin of block b3 with frame title text-004.
    parameters : centro like account-costcenter default '1220813150',
    cuenta like account-gl_account default '6631400' ,
    num_pos like account-po_item default '10' ,
    serial like account-serial_no default '01' ,
    ind_imp like account-tax_code default 'I2' .
    selection-screen end of block b3.
    start-of-selection.
    *DATA POPULATION
      ws_langu = sy-langu. "Language variable
    *POPULATE HEADER DATA FOR PO
    *HEADER-COMP_CODE = sociedad .
      header-doc_type = doctyp .
      header-vendor = vendor .
      header-creat_date = cdate .
      header-created_by = 'TD17191' .
      header-purch_org = pur_org .
      header-pur_group = pur_grp .
      header-comp_code = company .
      header-langu = ws_langu .
    *HEADER-SALES_PERS = vendedor .
    *HEADER-CURRENCY = 'DOP' .
    *HEADER-ITEM_INTVL = 10 .
    *HEADER-PMNTTRMS = 'N30' .
    *HEADER-EXCH_RATE = 1 .
    *POPULATE HEADER FLAG.
      headerx-comp_code = c_x.
      headerx-doc_type = c_x.
      headerx-vendor = c_x.
      headerx-creat_date = c_x.
      headerx-created_by = c_x.
      headerx-purch_org = c_x.
      headerx-pur_group = c_x.
      headerx-langu = c_x.
    *HEADERX-sales_pers = c_x.
    *HEADERX-CURRENCY = c_x.
    *HEADER-ITEM_INTVL = c_x.
    *HEADER-PMNTTRMS = c_x.
    *HEADER-EXCH_RATE = c_x.
    *HEADER-EXCH_RATE = c_x.
    *POPULATE ITEM DATA.
      item-po_item = item_num.
      item-quantity = '1'.
    *ITEM-MATERIAL = material .
      item-short_text = 'prueba bapi_po_create1'.
    *ITEM-TAX_CODE = ''.
      item-acctasscat = 'K' .
    *ITEM-ITEM_CAT = 'D' .
      item-matl_group = '817230000' .
      item-plant = '3001' .
      item-trackingno = '99999'.
      item-preq_name = 'test'.
    *ITEM-AGREEMENT = '' .
    *ITEM-AGMT_ITEM = ''.
      item-quantity = '1' .
      item-po_unit = 'EA'.
    *ITEM-ORDERPR_UN = 'EA'.
      item-conv_num1 = '1'.
      item-conv_den1 = '1'.
      item-net_price = '1000000' .
      item-price_unit = '1'.
      item-gr_pr_time = '0'.
      item-prnt_price = 'X'.
      item-unlimited_dlv = 'X'.
      item-gr_ind = 'X' .
      item-ir_ind = 'X' .
      item-gr_basediv = 'X'.
    *ITEM-PCKG_NO = '' .
      append item. clear item.
    *POPULATE ITEM FLAG TABLE
      itemx-po_item = item_num.
      itemx-po_itemx = c_x.
    *ITEMX-MATERIAL = C_X.
      itemx-short_text = c_x.
      itemx-quantity = c_x.
    *ITEMX-TAX_CODE = C_X.
      itemx-acctasscat = c_x.
    *ITEMX-ITEM_CAT = c_x.
      itemx-matl_group = c_x.
      itemx-plant = c_x.
      itemx-trackingno = c_x.
      itemx-preq_name = c_x.
    *ITEMX-AGREEMENT = C_X.
    *ITEMX-AGMT_ITEM = c_x.
      itemx-stge_loc = c_x.
      itemx-quantity = c_x.
      itemx-po_unit = c_x.
    *ITEMX-ORDERPR_UN = C_X.
      itemx-conv_num1 = c_x.
      itemx-conv_den1 = c_x.
      itemx-net_price = c_x.
      itemx-price_unit = c_x.
      itemx-gr_pr_time = c_x.
      itemx-prnt_price = c_x.
      itemx-unlimited_dlv = c_x.
      itemx-gr_ind = c_x .
      itemx-ir_ind = c_x .
      itemx-gr_basediv = c_x .
      append itemx. clear itemx.
    *POPULATE ACCOUNT DATA.
      account-po_item = item_num.
      account-serial_no = serial .
      account-creat_date = sy-datum .
      account-costcenter = centro .
      account-gl_account = cuenta .
      account-gr_rcpt = 'tester'.
      append account. clear account.
    *POPULATE ACCOUNT FLAG TABLE.
      accountx-po_item = item_num .
      accountx-po_itemx = c_x .
      accountx-serial_no = serial .
      accountx-serial_nox = c_x .
      accountx-creat_date = c_x .
      accountx-costcenter = c_x .
      accountx-gl_account = c_x .
      account-gr_rcpt = c_x.
      append accountx. clear accountx.
    *BAPI CALL
      call function 'DIALOG_SET_NO_DIALOG'.
      call function 'BAPI_PO_CREATE1'
        exporting
          poheader         = header
          poheaderx        = headerx
        importing
          exppurchaseorder = purchaseorder
        tables
          return           = return
          poitem           = item
          poitemx          = itemx
          poaccount        = account
          poaccountx       = accountx.
    *Confirm the document creation by calling database COMMIT
      call function 'BAPI_TRANSACTION_COMMIT'
      exporting
      wait = 'X'
    IMPORTING
    RETURN =
    end-of-selection.
    *Output the messages returned from BAPI call
      loop at return.
        write / return-message.
      endloop.
    Regards
    Sudheer

  • Goods receipt by using Vl31N for production order.

    Hi
    we can do Goods receipt by using inbound delivery VL31N, with confirmation control key in PO, for purchase orders.
    I want to do Goods receipt using Inbound delivery( VL31N), this is my requirement.
    how to do it.

    Hi
    I dont think you will be able to do Goods receipt against prodcution order using inbound delivery VL31N. Inbound deliveries are normally created for Purchase orders and then GR can be posted wrt to the inbound delivery.
    Prod order is normally within warehouse only so you can use MB31 and post GR directly against Prod order.
    If you can explain more about your scenario hope we may help
    Please let us know
    thanks

  • Bizarre situation with the "Where used list" for a table updated by FB50

    Hello all,
    I use the "where used list" (all check boxes selected) function in SE11 to find out where and how the table FMGLFLEXT (General Ledger Public Sector: Total) is being used and updated. All I get is a reference to a function module, namely   “G_POSTING_FMGLFLEXT”. When I do a "where used list" (once again, all check boxes selected) for the FM, I get the message: Function Module G_POSTING_FMGLFLEXT not found in selected search area Message no. ES120“ despite the fact that all check boxes are selected.
    Yet this table contains data which were put in there via transaction FB50 (G/L Acct Pstg: Single Screen Trans.). So somehow, somewhere this data was created and put into the table.
    I don’t get it! What am I missing?
    Thank you for your help

    There could be several reasons for this, including:
    - The cross reference tables (used by the "where used" functionality) have not been updated in the system you are logged into - check with your Basis team on this as the programs that do this (a) run for hours and (b) take up a fair chunk of database space.
    - The data may be stored via dynamic SQL (e.g. "insert into (g_tab_name)") so the table reference doesn't show up
    - The function module may be called dynamically so the FM where used doesn't reflect this
    You could try, instead, using the ST05 SQL Trace to track what code is updating the table when you run FB50.
    Jonathan

  • Is it possible to use IQS1 for purchase orders without material master?

    Hello,
    We are currently trying to come up with a way to send a notification on purchase orders which have GR's posted against them so that the purchasing team/requestor know that products have been shipped.  We have an office in Qatar where we would like to ship products to (which we are purchasing out of a catalog based in the US) and we need a way to track the shipment.  We are currently using T-Code IQS1 for any items which have been created as material master and are in stock within Qatar however we would like to utilize this t-code for products which are pulled in from a supplier catalog, which are not part of the material master.
    Is there a way to use IQS1 for non-material master products?
    Thanks,
    Katie

    Worked with my development team to locate the resolution.

  • Issues with TopLink Cache Coordination using JMS for manual DB updates

    Hi,
    We are having 2 web application using same Database and Toplink library but 2 session objects for both the applications. We are using JMS for cache coordination. JMS propagating messages successfully between the applications and able to see the same object changes in both the applications properly. Now, we are trying to refresh cache for manual updates in Database. We are trying to refresh single object which is modified in database in one application, refreshing in one application from which refresh happened but not in other application (JMS publishing the topic but updating one).
    Our intention is refreshing in one application so that JMS should coordinate and update in others when DB manual updates. Please let us know any comments for the same.
    Database using: Oracle 11g
    Toplink Version:- 9.0.3

    See,
    http://www.coderanch.com/t/592919/ORM/databases/Toplink-Cache-coordination-JMS-manual

  • BAPI / Function Module for Sale order updation

    Hi,
         I need to update sale order details(Reason for rejection)..Can you please tell me any of the existing BAPI's / Function modules to do the same.

    hi,
      try bapi_salesorder_change
        <b>allocate points if useful</b>
    regards,
    pavan

  • Idoc using EDI for purchase order

    hi all,
    could someone explain me all  the steps required in generating purchase order idoc  using EDI butnot using ALE.
    i want all the steps to be in detail.
    thanks in advance
    suma sailaja pvn

    EDI is described as the interchange of structured data according to agreed message standards between computer systems, by electronic means. Structured data equates to a simple and direct method of presenting the data content of a document. The method of ensuring the correct interpretation of the information by the computer system is defined by the EDI standard."
    EDI is a technique used to communicate business transactions between computer systems of different companies and organizations. Note that sometimes the EDI mechanism deployed at a company is often used to interface to other systems within the same organization."
    The difference between ALE and EDI process flows occurs at the communication level. The EDI process transmits IDocs to an EDI subsystem using flat file format. The ALE process transmits IDocs to an SAP system via memory, using asynchronous communication.
    Check the following links
    How Can I transfer invoice details to customer through IDOC in EDI
    Re: IDOC Types and their equivalent messages in EDIFACT and ANSI X12
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    http://www.henrikfrank.dk/abapexamples/IDOC/IDOC.htm
    http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/0b/2a6095507d11d18ee90000e8366fc2/frameset.htm
    Reward Points if useful.

  • Using WSUS for Cluster Aware Updates and SCCM???

    Can WSUS support SCCM and CAU(cluster aware update) from the same WSUS instance? E.G. If I have my SCCM infrastructure getting its patches from a server called SCCM01 lets say and the primary/central site is also on this box, can the WSUS instance on
    this server support CAU or will that break SCCM? I ask because one of our admins did exactly this a few weeks ago and we end up having to reinstall WSUS. It could have been a coincidence but that WSUS instance had been running fine since it was built. Seems
    kina strange it broke relatively quickly.
    I've read plenty of sites that say to avoid meddling in the WSUS console once SCCM is installed but I can't find a specific technet article saying not to do this. I just built the 2012 environment and they're wanting to configure it the same way and I'm
    refusing because I suspect it will break either SCCM 2012 or WSUS or both! Please if someone could point me in the right direction or offer some clarity I would very much appreciate it. So far all I've seen about CAU is that it does support SCCM and WSUS but
    I can't find any documents saying what the repercussions of configuring CAU to use the same WSUS instance that SCCM uses. Thanks in advance. -KR.

    Correct, ConfigMgr is unaware of cluster updating or the WSUS capabilities around clustering.
    Also correct that direct WSUS administration after WSUS is integrated with ConfigMgr is a bad thing. There is no specific article that says don't do "stuff" in the WSUS admin console but it is eluded to in the TechNet docs (http://technet.microsoft.com/en-us/library/gg712696.aspx) and
    I do know that it is specifically unsupported. I also know from experience that it will/can cause issues.
    Cluster patching with ConfigMgr can be done using multiple techniques including maintenance windows, Orchestrator, or other automation tools but there's nothing definitively built in
    Jason | http://blog.configmgrftw.com | @jasonsandys

  • HT4796 When I first bought my iPod, iPhone, and iPad, I had a PC and used that for my updates.  I now have a MacBook Pro and would like to use that for my software updates.  Can I switch from a PC to a Mac for updates, and if so, how do I do it?

    How do change from doing updates on a PC to a Mac?

    Thanks, Sig.  I think I should've been a little clearer.  I've attempted to do the updates on my Mac, but I get a warning that it will erase everything except calenders, email, etc from the iPad.  I've syned the iPad with the Mac with no problem, but get scary messages when I try to do the latest update.

  • BAPI_GOODSMVT_CREATE for production order,not update database

    hi guru,
    i am using BAPI_GOODSMVT_CREATE for production order.When i m testing this BAPI
    at se37 it creates one mat doc no and i m not getting any return messages.Now i m
    writing code for it at se38. but it does not update the database even though i used
    bapi_transaction_commit. here sy-subrc = 0.bt when i m checking MSEG table showing
    that mat doc no does not exists.
    please help me out  asap.
    thanks and regurds,
    manasi

    CHECK THIS CODE
    REPORT ZBAPI_GOODSMVT_CREATE.
    *DECLARING INTERNAL TABLE TO HOLD FILE DATA.
    DATA: BEGIN OF itab OCCURS 0,
              text(200),
          END OF itab.
    *DECLARING INTERNAL TABLE TO PASS FILE DATA.
    TYPES: BEGIN OF tw_goodsmvt,
                pstng_date TYPE budat,
                doc_date TYPE bldat,
                material TYPE matnr,
                plant TYPE werks_d,
                stge_loc TYPE lgort_d,
                move_type TYPE bwart,
    *            entry_qnt TYPE erfmg,
                costcenter TYPE kostl,
            END OF tw_goodsmvt,
            tt_goodsmvt TYPE STANDARD TABLE OF tw_goodsmvt.
    DATA: lt_goodsmvt TYPE tt_goodsmvt,
          lw_goodsmvt TYPE tw_goodsmvt.
    *declaring internal table of bapi structure.
    DATA:s_goodsmvt_header LIKE  bapi2017_gm_head_01,
         lt_goodsmvt_item TYPE STANDARD TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
         lt_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
    DATA:str_filename TYPE string,
         gm_code TYPE gm_code,
          v_head_count TYPE i VALUE 0,
          v_prev_count TYPE i VALUE 1,
          v_qnt TYPE string,
          v_dummy.
    *selection screen
    SELECTION-SCREEN BEGIN OF BLOCK bk with frame title text_001.
    PARAMETERS:p_docdat TYPE bldat,
               p_pstdat TYPE budat,
               fname LIKE rlgrap-filename.
    SELECTION-SCREEN END OF BLOCK bk.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR fname.
    *to provide F4 functionality.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name = syst-cprog
        IMPORTING
          file_name    = fname.
    * start of selection
    START-OF-SELECTION.
      str_filename = fname.
      gm_code = '06'.
    * to upload data
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename            = str_filename
          filetype            = 'ASC'
          has_field_separator = 'X'
          read_by_line        = 'X'
        TABLES
          data_tab            = itab.
    *SPLITING DATA TO INTERNAL TABLES.
      LOOP AT itab.
        IF itab+0(1) EQ 'H'.
          v_head_count =  v_head_count + 1.
          IF v_head_count GT v_prev_count.
            PERFORM bapi_upload.
          ENDIF.
          SPLIT itab-text AT ',' INTO v_dummy
                                      lw_goodsmvt-pstng_date
                                      lw_goodsmvt-doc_date.
          s_goodsmvt_header-doc_date   = lw_goodsmvt-doc_date.
          s_goodsmvt_header-pstng_date = lw_goodsmvt-pstng_date.
          v_prev_count = v_head_count.
      ELSEIF itab+0(1) EQ 'L'.
        SPLIT itab-text AT ',' INTO v_dummy
                                    lw_goodsmvt-material
                                    lw_goodsmvt-plant
                                    lw_goodsmvt-stge_loc
                                    lw_goodsmvt-move_type
                                    v_qnt
                                    lw_goodsmvt-costcenter.
    * PASSING DATA TO INTERNAL TABLE TYPE BAPI STRUCTURE.
        lt_goodsmvt_item-material = lw_goodsmvt-material.
        lt_goodsmvt_item-plant    = lw_goodsmvt-plant.
        lt_goodsmvt_item-stge_loc = lw_goodsmvt-stge_loc.
        lt_goodsmvt_item-move_type = lw_goodsmvt-move_type.
        lt_goodsmvt_item-entry_qnt = v_qnt.
        lt_goodsmvt_item-costcenter = lw_goodsmvt-costcenter.
        APPEND lt_goodsmvt_item.
      ENDIF.
      v_prev_count = v_head_count.
      ENDLOOP.
      PERFORM bapi_upload.
    *&      Form  bapi_upload
    form bapi_upload .
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
        goodsmvt_header             = s_goodsmvt_header
        goodsmvt_code               = gm_code
    *   TESTRUN                     = ' '
    * IMPORTING
    *   GOODSMVT_HEADRET            =
    *   MATERIALDOCUMENT            =
    *   MATDOCUMENTYEAR             =
      tables
        goodsmvt_item               = lt_goodsmvt_item
    *   GOODSMVT_SERIALNUMBER       =
        return                      = lt_return.
            PERFORM commit_work TABLES lt_return.
            CLEAR : lw_goodsmvt, s_goodsmvt_header.
            REFRESH: lt_goodsmvt[], lt_goodsmvt_item[].
    endform.                    " bapi_upload
    *&      Form  commit_work
    *       text
    *      -->P_LT_RETURN  text
    form commit_work  tables   p_lt_return structure bapiret2.
      IF NOT lt_return[] IS INITIAL.
    *error handling
    loop at lt_return.
    CALL FUNCTION 'FORMAT_MESSAGE'
    EXPORTING
       ID              = lt_return-id
       LANG            = sy-langu
       NO              = lt_return-NUMBER
       V1              = lt_return-message_v1
       V2              = lt_return-message_v2
       V3              = lt_return-message_v3
       V4              = lt_return-message_v4
    IMPORTING
       MSG             = lt_return-MESSAGE
    EXCEPTIONS
       NOT_FOUND       = 1
       OTHERS          = 2.
    WRITE: lt_return-id, lt_return-message, lt_return-message_v1, lt_return-message_v2,
                 lt_return-message_v3, lt_return-message_v4.
          CLEAR lt_return.
        ENDLOOP.
      ELSE.
    * commit work
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    *   EXPORTING
    *     WAIT          =
       IMPORTING
         RETURN        = lt_return.
    WRITE: lt_return-id, lt_return-message, lt_return-message_v1, lt_return-message_v2,
                 lt_return-message_v3, lt_return-message_v4.
          CLEAR lt_return.
    endif.
    endform.                    " commit_work

  • I am trying to find a function module or BAPI for internal order change. I

    I am trying to find a function module or BAPI for internal order change. I did come across a function module ALE_INTERNALORDER_DB_CHANGE which directly updates the internal order using insert statements. Can i use this for internal order change or this is any other Function module for updating the internal order.
    I dont want to use BDC as a option. Please suggest.

    This is possible using the Rotator Component Widget from Infosemantics.com.au but it is only compatible with  SWF output, not HTML5.
    Go to this page and scroll down to the video tutorials about the Rotator Component widget:
    http://www.infosemantics.com.au/adobe-captivate/youtube-video-tutorials

  • DTW Template for SALES ORDERS

    Hi All,
                Can anybody give me the name of the DTW template used for Sales Orders Updation.
                 I am Using SAP Business One 2005B version.
    Thanks and Regards,
    Sree.

    Sree,
    This is the key
    1. Fill the DocEntry and LineNum columns in your template to reference the Order and the exact lines you plan to update
    Suda

  • IDOC/BAPI for Production order creation from Legacy system

    Hi all
    We are using an interface to create Production orders from legacy to SAP. Would you recommend an IDOC or a BAPI to create Production orders. If IDOC or BAPI then could you please mention which one?
    thanks a bunch

    Hi John,
    For your purposes, please use BAPI for production order creation from legacy system. There is no standard inbound IDoc available to use. SAP has an IDoc for outbound interface only (message type LOIPRO).
    If there is an inbound IDoc available, I would recommend to use an IDoc.
    IDoc technology has excellent error handling and will allow you to reprocess an error (if any).
    BAPI is also good approach to use and fast in term of  processing.
    For BAPI approach, you can use BAPI BAPI_PRODORD_CREATE.
    Hope this will help.
    Regards,
    Ferry Lianto

Maybe you are looking for