Any standard process to update Sales Order in SAP via XI / Idoc ?

Hello,
Currently one of our end customer is creating Sales Order in Oracle system. Once the Order is created there, they send the Order information to our XI system via flat file. XI system processes the flat file and then it calls order creation function using rfc / BAPI - BAPI_SALESORDER_CREATEFROMDAT2. This works just fine.
But now the customer wants an ability to update sales order, cancel certain line or even cancel the whole order in their Orcale system. And once that happens, they want the same thing to happen in SAP via some kind of interface automatically in the background.
So my question is :
what is the best way to do it ?
Is it possible to do via idoc ? The reason I am asking it via idoc is because it sounds that's the most standard way of doing it in SAP.
What idocs can I use ?
Has any one implemented such interface ? And if so, can you share some info ?
Any response is highly appreciate.
thanks,
Dipankar

I woudl suggest you check ORDERS05 IDOC type (ORDCHG message type).
FM - idoc_input_ordchg

Similar Messages

  • Creating a sales order in sap via bapi

    Hi all,
    I need to create a sales order through internet in sap.
    What do I need?
    I can write programs both with abap and C#(as well as VB) well and had the knowledge a little, introduction level of java.
    How can I interact with sap from C#, is there any intermediary packet programs?
    And any code sample please?
    Thanks.
    Deniz.

    Hello Denis.
    I hope RFC has been always to the rescue in such terms.
    I have come across, "Connector"
    [SAP HELP Library - Standard Reference - RFC Parameter Mapping to C#|http://help.sap.com/saphelp_nw04/helpdata/en/0c/c59f7cd9648f408fe4943fc9dab264/frameset.htm]
    Hope that's usefull.
    Good Luck & Regards.
    Harsh Dave

  • Upload file and link to sales order in SAP via rfc (C#)

    Hello all,
    In my company we have the possibility to attach files to sales orders, e.g. pdf files with the printing details.
    These files are added by the GUI user, this works fine.
    Now we have an extra order creation stream in which a pdf file has to be added to the SO without user interaction.
    In a previous question I had a little question about the linking, that has been solved, I will post the test program later.
    I now can link front end files (pdf's in this case) to the sales orders and it works fine.
    Now we are developing a frontend in C# (build by a third party) which creates a sales order via a RFC. We also want that RFC to include the PDF file and link it to the created order.
    In the interface of the RFC I included a table with 255 char lines. That is the same as in the example program. the problem is that our partner is yet unable to fill the interface in exact the same way as the example program does, so the linked pdf file is corrupted.
    Does anyone have hints how C# should fill the interface table, or how I can change the interface?
    code snippid table declaration for pdf table:
    IT_PDF     LIKE     ZETEX_TAB_PDF
    and
    structure ZETEX_TAB_PDF consists of
    LINE     CHAR255
    the sample program (see other topic on where I got it)
    REPORT  zzfb_brc LINE-SIZE 260.
    * Report  Z_RMTIWARI_ATTACH_DOC_TO_BO
    * Written By : Ram Manohar Tiwari
    * Function   : We need to maintain links between Business Object and
    *              the attachment.Attachment document is basiclally a
    *              business object of type 'MESSAGE'.In order to maintain
    *              links, first the attachment will be crated as Business
    *              Object of type 'MESSAGE' using Message.Create method.
    *              Need to check if we can also use FM
    *              'SO_DOC_INSERT_WITH_ORIG_API1' or SO_OBJECT_INSERT rather
    *              than using Message.Create method.
    * I took this program and removed all the parts for adding URL's and
    * notes.
    * Include for BO macros
    INCLUDE : <cntn01>.
    * Load class.
    CLASS cl_binary_relation DEFINITION LOAD.
    CLASS cl_obl_object      DEFINITION LOAD.
    PARAMETERS:
    *  Object_a
       p_botype LIKE obl_s_pbor-typeid DEFAULT 'BUS2032',    "SO
       p_bo_id  LIKE obl_s_pbor-instid DEFAULT '0000757830', "example number
    *  Object_b
       p_docty  LIKE obl_s_pbor-typeid DEFAULT 'MESSAGE' NO-DISPLAY,
       p_msgtyp LIKE sofm-doctp        DEFAULT 'EXT'     NO-DISPLAY,
    *  Relationship
       p_reltyp  LIKE mdoblrel-reltype DEFAULT 'ATTA'.
    TYPES: BEGIN OF ty_message_key,
            foltp     TYPE so_fol_tp,
            folyr     TYPE so_fol_yr,
            folno     TYPE so_fol_no,
            doctp     TYPE so_doc_tp,
            docyr     TYPE so_doc_yr,
            docno     TYPE so_doc_no,
            fortp     TYPE so_for_tp,
            foryr     TYPE so_for_yr,
            forno     TYPE so_for_no,
           END OF ty_message_key.
    DATA : lv_message_key TYPE ty_message_key.
    DATA : lo_message TYPE swc_object.
    DATA : lt_doc_content TYPE STANDARD TABLE OF soli-line,
           ls_doc_content TYPE soli-line.
    * Create an initial instance of BO 'MESSAGE' - to call the
    * instance-independent method 'Create'.
    swc_create_object lo_message 'MESSAGE' lv_message_key.
    * Upload the pdf file, for now from the frontend, in the future from
    * the server.
    DATA:
    *  dsn(40) TYPE C VALUE '/usr/sap/trans/convert/1.pdf', "server location
    l_lines TYPE i. "filelenght
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename   = 'c:tsimple.pdf'
        filetype   = 'BIN'
      IMPORTING
        filelength = l_lines
      TABLES
        data_tab   = lt_doc_content.
    * no exceptions, the file is there in this example
    clear l_lines.
    loop at lt_doc_content into ls_doc_content.
    l_lines = l_lines + 255.
    endloop.
    compute l_lines =   l_lines
                      + STRLEN( ls_doc_content ).
    ** the coding for the server input, for later
    *OPEN DATASET dsn FOR INPUT IN BINARY MODE.
    *IF sy-subrc <> 0.
    *  EXIT.
    *ENDIF.
    *READ DATASET dsn INTO ls_doc_content.
    *WHILE sy-subrc EQ 0.
    *  APPEND ls_doc_content TO lt_doc_content.
    *  READ DATASET dsn INTO ls_doc_content.
    *ENDWHILE.
    *CLEAR ls_doc_content.
    *CLOSE DATASET dsn.
    * define container to pass the parameter values to the method call
    * in next step.
    swc_container lt_message_container.
    * Populate container with parameters for method
    swc_set_element lt_message_container 'DOCUMENTTITLE' 'Some title'.
    swc_set_element lt_message_container 'DOCUMENTLANGU' 'E'.
    swc_set_element lt_message_container 'NO_DIALOG'     'X'.
    swc_set_element lt_message_container 'DOCUMENTNAME' p_docty.
    swc_set_element lt_message_container 'DOCUMENTTYPE' 'PDF'.
    swc_set_element lt_message_container 'DocumentSize'    l_lines.
    swc_set_element lt_message_container 'DocumentContent' lt_doc_content.
    swc_call_method lo_message 'CREATE' lt_message_container.
    * Refresh to get the reference of create 'MESSAGE' object for attachment
    swc_refresh_object lo_message.
    * Get Key of new object
    swc_get_object_key lo_message lv_message_key.
    * Now we have attachment as a business object instance. We can now
    * attach it to our main business object instance.
    * Create main BO object_a
    DATA: lo_is_object_a TYPE sibflporb.
    lo_is_object_a-instid = p_bo_id.
    lo_is_object_a-typeid = p_botype.
    lo_is_object_a-catid  = 'BO'.
    * Create attachment BO object_b
    DATA: lo_is_object_b TYPE sibflporb.
    lo_is_object_b-instid = lv_message_key.
    lo_is_object_b-typeid = p_docty.
    lo_is_object_b-catid  = 'BO'.
    *TRY.
    CALL METHOD cl_binary_relation=>create_link
      EXPORTING
        is_object_a = lo_is_object_a
        is_object_b = lo_is_object_b
        ip_reltype  = p_reltyp.
    * Check if everything OK...who cares!!
    COMMIT WORK.

    I woudl suggest you check ORDERS05 IDOC type (ORDCHG message type).
    FM - idoc_input_ordchg

  • Updating Sales Order no in Production Order

    we have csenario for Sales Order :  Inquery - Quotation - Sales Order .
    In PP we have MTO scenarion . when i run MRP and convert the plan order to Production Order , in place of Sales Order it was updatin Quotation in Production Order .
    we have checked SD config for sales doc Item category =TAC and in Material Master we will used Item Category = NORM
    Please suggest is there any other setting for updating Sales Order no in Production Order .
    Thnx.

    Hi,
    I assume that you are using the strategy 20 (MTO). Go to OVZG here select the class 040 Indiv.cust.w/o cons., keep BLANK for account assignment consumption and rerun the whole cycle and check.
    Thanks
    Hrishi

  • Any stanard BAPI have both sales order and production order

    hi Experts,
    i need to Identify any standard BAPI have both sales order and production order. If such BAPI is not available, create 'Z' BAPI to do the same.it's my require ment?plz give me suggestion it's useful for my project. i will give good points.
    thanks and regards,
    bbm

    hi eswar,
    can you give me how to do? and what i can use import,export,table and sourcecode bcz i am new in BAPI side even now i am working in SAP XMII project.
    so plz guide me.
    thanks and regards,
    bbm

  • How to update sales orders using B1WS in SAP 8.8 PL18

    Hello all.
    We are having a problem updating sales orders using Sap Business One Web Service ( B1WS ).
    We are running SBO 8.8 PL18, MS-SQL 2008, and all is fine when using the SBO client.
    But when it comes to updating sales orders through B1WS we just cannot get it to work.
    We can add new orders easily without problems. Updating orders always gives this error:
    \[ORDR.PayDuMonth\]\[line: 0\] , 'Field cannot be updated (ODBC -1029)'
    We have checked and verified multiple times that our setup is correct.
    Also the WDSL files are verified.
    We can update orders just fine using the sboclient.
    And using B1WS we can basically do everything, besides updating.
    We have also tried this on different company db's, so we are quite sure this is not
    something related to some general setting we missed, but who knows?
    We have tried different ways to "assemble" the order before updating, but it always
    ends with the above error.
    Here is an example of one of the tests, where we load an order by docentry,
    increment the quantity of all open lines by '1', and then try to update it.
            protected void Page_Load(object sender, EventArgs e)
                // First we login
                string sessionId = "";
                LoginService.LoginService l_login = new LoginService.LoginService();
                LoginService.LoginDatabaseType l_dbtype = LoginService.LoginDatabaseType.dst_MSSQL2008;
                LoginService.LoginLanguage _lang = LoginService.LoginLanguage.ln_English;
                string _server = "SAP-8_8PL18";
                string _licserver = "SAP-8_8PL18:30000";
                string _db = "my_test_company";
                string _user = "manager";
                string _pass = "********";
                try
                    sessionId = l_login.Login(_server, _db, l_dbtype, true, _user, _pass,
                               _lang, true, _licserver);
                catch (Exception ex)
                    Response.Clear();
                    Response.Write(ex.Message);
                    Response.End();
                if (sessionId == "")
                    Response.Clear();
                    Response.Write("No sessionId");
                    Response.End();
                // We are logged in and have a sessionId
                // Now load a valid open order by docentry
                try
                    OrdersServiceRef.OrdersService orderService = new OrdersServiceRef.OrdersService();
                    orderService.MsgHeaderValue = new OrdersServiceRef.MsgHeader();
                    orderService.MsgHeaderValue.SessionID = sessionId;
                    orderService.MsgHeaderValue.ServiceName = OrdersServiceRef.MsgHeaderServiceName.OrdersService;
                    orderService.MsgHeaderValue.ServiceNameSpecified = true;
                    OrdersServiceRef.DocumentParams docParams = new OrdersServiceRef.DocumentParams();
                    docParams.DocEntry = 31; // Docentry of a known open order
                    docParams.DocEntrySpecified = true;
                    OrdersServiceRef.Document order = orderService.GetByParams(docParams);
                    OrdersServiceRef.DocumentDocumentLine line = null;
                    for (int i = 0; i < order.DocumentLines.Length; i++)
                        line = order.DocumentLines<i>;
                        if (line.LineStatus == OrdersServiceRef.DocumentDocumentLineLineStatus.bost_Open)
                            line.Quantity += 1;
                    orderService.Update(order);
                catch (System.Web.Services.Protocols.SoapException ex)
                    Response.Clear();
                    Response.Write(ex.Message);
                    Response.End();
                catch (Exception ex)
                    Response.Clear();
                    Response.Write(ex.Message);
                    Response.End();
                Response.Clear();
                Response.Write("All OK");
                Response.End();
    I hope that someone has an idea as to why this happens.
    The customer often changes quantity or adds lines on their orders,
    and the only way to solve it so far has been to make a new order and
    close the old one.
    Thanks in advance
    J. Thomsen

    Hi,
    Welcome you post on the forum.
    Have you checked if you only update a specific line instead of a loop?
    Thanks,
    Gordon

  • How to generate sales order in SAP using XI

    Hi,
    I have been assigned to generate sales order in SAP..data comming from legacy in XML file format. with the data received in XI. I need to generate sales order in SAP system,
    can any body help me wat will be the step by step solution of that.
    I am totally blank in ABAP. I dont know any thing in ABAP.
    Thanks sree manju.

    Hi Sree,
    As per your requirement, you can use a file adapter to read XML files and the pass the data to XI and from XI to R/3, you have 3 ways to create sales order in SAP:
    1. Idoc Adapter: Use a standard idoc to create sales order in SAP.
    2 RFC Adapter.
    3. Server Proxies: The transaction code for sales order creation is VA01. You will recieve the data in your server proxy method (EXECUTE_ASYNCHRONOUS) and then write a BDC code to upload this data into VA01 transaction.
    Knowing that you do not have experience in ABAP coding,  I would suggest you to go for Idoc adapter or RFC adapter (if standard BAPI is available).
    Otherwise, for using server proxies, the help of an experienced abaper is indeed required.

  • Standard RFC for update Purchase Order No. in Sales Order

    Hi all,
    It's allow the custoemrs to login in internet to change the fields of Purchase Order No & PO Date.
    Is there any standard RFC to update the fields of Purchase Order No. (VBKD-BSTKD) & PO Date (VBKD-BSTDK) in Sales Order?

    jack,
      Try with below FM
    " BAPI_PO_CHANGE"
    Don't forget to reward if useful..

  • Any standard SMARTFORMS available for purchase order, sales order, invoice

    Hi,
    Any standard SMARTFORMS available for purchase order, sales order, invoice ?
    RR.

    Hi Rama,
    Goto NACE tcode-> choose the application u want( like billing for invoice, PO)->output type->output type->processing routineon left side
    Here u will find the standard program name and smartform .
    Hope it helps.
    Regards,
    Sonika

  • Inbound IDoc used for updating Sales order status

    I have a requirements to set use standard IDoc to send out the Sales order to a non-SAP software as well as receiving Inbound IDoc to update the status of sales order in SAP. Could someone comment on my questions below:
    1. What are the difference between all the ORDERSxx Idoc types?
    2. What IDoc should be used for Inbound IDoc to update the sales order stataus in SAP?
    3. Can the same IDoc type be used for both Inbound and Outbound with only the difference in the segment of Direction?
    Thank you. Points will be awarded appropriately for helpful comments.

    Hi,
      1.Intially  standard IDOC types "ORDERS01"  is having limited
          segments. After few months the requirement got increased to
          add more fields to "ORDERS01".So,once you release the IDOC
          type you can not add any more fields .So SAP come up
          with "ORDERS02" with new fields.Like that all IDocs types have
          some more new seg ments.
    2.You  can use ORDER05
    3. Yes you can use same IDOC type

  • Error message when updating Sales Orders

    Hi Experts
    Following an issue over the weekend when I was forced to perform a  hard reset we are now experiencing error message when trying to update some sales orders. 
    This entry already exists in the following tables " ADO1 (ODBC - 2035) [Message 131 - 183]
    it is not happening on all orders - i think only ones which were on the system prior to the reset.
    We also use webtools and the B1SyncService seems to be causing the SAP B1 system to become unusable - following each attempt to sync there is an error in the event log:
    Event Type:     Error
    Event Source:     B1SynchService
    Event Category:     None
    Event ID:     0
    Date:          29/06/2009
    Time:          13:42:38
    User:          N/A
    Computer:     SQL01
    Description:
    A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)
       at netpoint.api.data.DataFunctions.ExecuteScalar(String SQL, String connectionstring)
       at NetPoint.SynchSBO.SBOObjects.SBOUtility.SetCompany(Company TheCompany, SecurityTicket securityTicket)
       at NetPoint.SynchSBO.Synch.SetCompany()
       at NetPoint.SynchSBO.Synch..ctor(SecurityTicket ticket)
       at NetPoint.SynchSBO.Synch..ctor(SecurityTicket ticket, Int32 pricinginterval)
       at NetPoint.SynchService.NPSynchService.Synch(String profile, Mutex mutex)
       at NetPoint.SynchService.NPSynchService.Main(String[] args)
    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
    For now I have had to stop the SyncService to prevent B1 from becoming unusable (users are unable to start any AR module), but even after I have stopped the syncservice I still have the error when updating sales orders.
    Regards
    Jon

    Dear Johnny,
    the error reported sounds like a DB Corruption. I would advise you to log a message to SAP Support including all the details in order to obtain the error message. It is also a good idea and it will speed up the process if you include some print screens showing exactly the error message.
    Hope my reply helps you to solve the issue.
    Regards,
    Wesley Honorato

  • Problem updating sales order partner addresses

    Hi all,
    iam trying to update addresses on sales order if there is any update on on the delivery.
    I update the VBPA-ADRNR and create the same ADRC-ADRNR.
    but when iam updating VBAP-VBELN for order using BAPI_SALESORDER_CHANGE there is a new ADRNR being created in VBPA as opposed to using the ADRNR i pass to the BAPI which is the delivery ADRNR.
    Can someone help me resove this...
    and one more small question..
    what do i pass to the paramter addr_handle in the fm ADDR_NUMBER_GET..

    i need to insert/update a record in adrc as soon as an address is updated in VBPA-VBELN of delivery.
    for this want to use ADDR_NUMBER_GET , ADDR_UPDATE/ADDR_INSERT.
    and after this process i am updating sales orders.
    but iam filling the tables u mentioned...the problem is teh new adrnr the bapi is generating instead of the one iam passing it in ADDRNUMBER(new ADRNR) in PARTNERCHANGES table and also iam passing ADDRLINK(old adrnr) field in PARTNERADDRESSES table.

  • Updating sales order pricing after partial delivery

    I have a requirement where due to an enhancement being implemented I need to be able to update the item pricing on the sales order after the item has been partially-delivered. Currently the standard system
    controls do not allow access to the Update Pricing button in the item conditions tab after a partial delivery for the item. Is there any way around this using the standard functionality?
    Regards
    BK GAIKWAD

    Dear,
           For update in sales pricing after delivery you require to reverse and delete delivery.
          Without delivery deletion it is not possible to update sales order's price.
          One more option is you can update your price in billing if you can not accounting of invoice.
    Regards,
    Sandip

  • Do we have standard report to show sale order stock with amount?

    Do we have standard report to show sale order stock with amount?
    I try to use MB5B and MBBS but they don't show value.
    MB5B show only qty
    MBBS no any report.
    Please kindly help.
    Thank you very much.

    Okay Thank you very much for your suggestion.
    I think I have to create a new ZProgram. T_T

  • Update Sale Order Header Text through Enhancement

    Hi Experts,
             I Have a requirement to update the sale order Header Text , when the sale order is opened in VA02 and saved.
    Here in I tried using edit_text, it updates sale order header text  directly in DB during run time even before the save action is completed.
    But I need to just fill the header text and that has to be saved during the save action only.
    I tried coding the same in the user exit (userexit_save_document) but this user exit gets triggered only when there is some changes made to the document when opened in VA02 & Saved.
    Is there any  user exist to pass sale Order Header text and save when save button is clicked irrespective of the document been changed or not.
    Thanks in advance
    Sathish

    Hi Brad Bohn,
        My actual requirement is to trigger an Idoc when the user goes to VA02 transaction and clicks save.
    IDoc gets triggered only when there is some changes to that document, that is through NAST table entry based on the output configurations in NACE transaction.
    Now that the user wants to trigger an IDoc even if there is no change (ie. to reprocess the IDoc) when he just opens a sale order in VA02 and click save.
    It is not possible to trigger an IDoc through configurations when there is no actual change in VA02 and saved.
    So it has to be forcefully sent by making some additions to the Order through coding, so I choose that Text box to fill some additional data and save .
    Kindly Let me Know any thing could be done for this scenario.
    Thanks in advance
    Sathish

Maybe you are looking for

  • AnyConnect 3.1 crashes on XP SP3

    We just upgraded our AnyConnect clients to the lastest 3.1 and some XP users were having issues.  One PC was able to upgrade to SP3 and it resolved the issue.  However, we still have several PC's on XP SP3 and are able to install the client manually,

  • GP SP6: Find completion date of a process instance

    Hi all,    We are using GP SP6. We want to find out the actual completion date of a particular process instance. Something like <i>getActualEndDate()</i> that's available in SP7.    Is there a way to do this? Regards, Satyajit.

  • Load Column When........

    Hello Guys, I have a table with the function UPDATE / INSERT. There are three attributes (id, name and description), where id is a sequence, the name is unique primary key. In the properties of the load, the "ID" field is as follows: Load Column When

  • Getting the error (23::46) when adding effects to comp

    Hi all, If I try to add effects like Text-->Numbers or Obsolete-->Basic Text to a solid in my comp, i get the following error message "After Effects error: could not convert Unicode characters.". I have done some research on this and found people tha

  • Can not find Pro *C sample program after install oracle

    Hello, just start learning Pro *C, according to the document: you will find sample programs in ORACLE_BASE\ORACLE_HOME\precomp\demo\proc, but after i installed oracle client 11g on win7, the folder looks like following \precomp   \admin   \doc   \LIB