Error in updating Sales Order

Hi
I have a problem here that i need to be solved.
I am using SDK to update the SO in a UDF field. Something like confirmation of the particular item in a text format after checking.
But i keep getting this error
<i>Violation of PRIMARY KEY constraint 'RDR1_PRIMARY'. Cannot insert duplicate key in object 'RDR1'</i>
This only happens to certain SO.
My code is something like this
<i>SOUpdate = m_company.getbusinesobject(SAPbobsCOM.BoObjectTypes.oOrders)
if SOupdate.GetByKey(key) = true then
dim iCOunt as integer
icount = SOupdate.Lines.Count
For iCount = 0 To SOupdate.Lines.Count -1
SOUpdate.Lines.SetCurrentLine(iCount)
SOupdate.Lines.Userfields.Fields.Item("I_oriSO").value = "Confirm"
Next
End if
SOUpdate.Update</i>
Any help is welcomed
Thanks

I see your loop runs from zero. Why are you doing that? If memory serves me correctly row 0 is the column headings.....so row 1 is the first row of data and the actual row you should start from....
The rest looks good from a glance

Similar Messages

  • Error while updating Sales Order : Another user Modified Table (RDR1 )

    Hi All,
    I am getting an error message while running the following steps.
    Steps
    1)     Pull an entry from sales order.
    2)     Add new data to line.
    3)     Update the sales order.
    a)     Sap updated the data.
    b)     Through code using DI API we updated some UDF.
    4)     With out closing / Pressing OK button…
    5)     We added new data to line.
    6)     Then Press update.
    An Error will through by B1 as “Another user modified the table(RDR1 ).” Before going to the code where we are handling the update of UDF.
    But after the 3rd step above when we do
    4) Close the window or pressed ok
    5)  take the sales order window again pull the data
    6) Add new Data to line.
    7) Update sales order then it will go smoothly.(Updating by B1 and from code )
    Can anybody tell me why this happens?And any workarounds to solve this?
    Deepesh

    are u adding a matrix row thru the code? I get this error when I am adding rows and I get the rownumber out of sync.
    if so get the max (lineid) from rdr1 and then check against the matrix.rowcount before adding a row. if lineid is greater that matrix.rowcount take lineid + 1 and assign it to the matrix.row, else take the rowcount + 1
    if not, and as a workaround, then you can try using the SBO_SP_transactionnotification stored procedure.

  • Error while updating Sales Order

    Hello everyone.
    I'm trying to update the Quantity of some items in a Sales Order Document, but i'm having the following error:
    [ORDR.EDocStatus][line: 1] , 'Field cannot be updated (ODBC -1029)'
    The thing is: I can open the record in Sales Order form and update it manually.
    Also, the Status of the Sales Order is Open, but this EDocStatus is Closed.
    SAP 9 PL 10
    Can someone help-me?

    Hi Leandro,
    Can you show the code in use? Have you confirmed that the DocEntry of the Sales Order Document you are trying to update via SDK is the same of the one you open in the B1 client?
    Best regards,
    Pedro Magueija

  • 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

  • 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

  • Error while processing sales order as factory calendar missing.

    "factory calendar missing or error in factory calendar".iam getting this error while processing sales order even though i have assigned it to shipping point and plant and sales org.

    Hi Malik, How are you? I'm sorry to trouble you,
                   Let me introduce, I'm Daniel, and I saw your fantastic asnwer in
    the topic "How to update Factory Calendar in SRM", and might I have the same
    problem. It's with the "factory calendar".
    In transaction va02 when I choose a Delivery Date, and I sent it to process, as
    a result in the "shipping tab" it calculated to the first item one date, and to
    the rest one date different.  I don't know What it happen?
    I debugged the program and I saw that to the first item use to calculate the
    date is the function  'APO_SCHEDULING', and to the rest item use
    'SD_SCHEDULING', and until here I come.
    How can I do to what the dates calculated are the same? or What would be the
    problem?
    I need the dates calculated are equal.
    I looked at it's using two "factory calendar" which are "J4" and "C2". Is this
    correct?
    Thanks In Advance,
    My best regards,

  • 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

  • Error while create sales order

    Hi,
    Please help.
    I am facing error while create sales order.
    No item category available (Table T184 OR VERP  )
    Message no. V1320
    Diagnosis
    No item category could be determined for the combination OR VERP .
    System Response
    The system does not allow further processing of this item.
    Procedure
    Check the entries in table T184 by means of which item category determination is controlled.
    If you do not have the authorization to do this yourself, contact your system administrator.

    Hi,
    Check in spro whether Item categorygroup VERP is assigned to sales document type.if not assign.
    Path
    SPRO-SD-sales-sales douments-sales document item-assign item categories.

  • Commit error while transferring Sales order Document to GTS

    Hello,
    We faced a transfer error while transferring sales order document to GTS.
    When I debugged the code function /SAPSLL/API_6800_SYNCH is called. In this function, /SAPSLL/CUHD_MAINTAIN_SINGLE is called with parameter lv_no_commit = 'X'. When I checked why its value is 'X', I saw that if the RFC destination and the current system are the same, then lv_no_commit = 'X', (means if the R3 and the GTS are in the same server, same client.) In debug mode I set the value of lv_no_commit to space, and then it works. It creates the GTS document.
    We are also transferring billing documents and it works fine. When I checked what is the difference between transferring sales order document and transferring Billing document, I saw that in the transferring billing document there is another function is called /SAPSLL/API_6800_CSD_SYNCH, and it's calling parameters(in background, as seperate unit) are different from calling parameters of /SAPSLL/API_6800_SYNCH. You can see the difference below.
    For sales document transfer :
        CALL FUNCTION '/SAPSLL/API_6800_SYNCH'
          DESTINATION cs_transfer-rfc_dest
    For billing document transfer :
        CALL FUNCTION '/SAPSLL/API_6800_CSD_SYNCH'
          IN BACKGROUND TASK
          DESTINATION cs_transfer-rfc_dest
          AS SEPARATE UNIT
    So my question is, do you think is it a sap standard program error, or is there any suitable settings in the customizing or SM59 to fix this error?
    Thanks in advance
    Serhat
    Edited by: Serhat Dirihan on Jan 22, 2009 11:46 AM

    Dear Serhat,
    I don't think this is an RFC problem or an error. But you wrote:
    When I checked why its value is 'X', I saw that if the RFC destination and the current system are the same, then lv_no_commit = 'X', (means if the R3 and the GTS are in the same server, same client.)
    It is impossible to have GTS and R/3 on the same system and same client. At least the client should be different. So try to check why the call is performed like that.
    Balazs

  • Customer error message in sales order on save

    Hi Friends,
    as per requirement i have to raise the error message and system should enable the field to change values. This should happen when condition is not met on Saving of Sales order.
    For this, i have used the user exit USEREXIT_SAVE_DOCUMENT_PREPARE. But the problem is system throwing error message and all r in display mode only. as per my requirement system should allow to change the error value field.
    i have verified many posting in this SDN, but nothing is working out.
    Please guide me, how to raise the error message and system should enable that filed.
    My doubt is where should i raise the error message in sales order (MV45AFZZ)??? if any badi to raise the error message also fine for me. I tried many ways like... message with display like..... and set / get parameters and badis....  but not able to find the correct solution.
    Thanks in Advance.
    Bala

    Hi
    You need to use check for enahcement spot, which will be help to you.
    Bcz you are throwing custom error message in the standard transaction, once the error is display, you could not able to change the values. your prob can be solved by using the enhancement sport.
    This is include name (Include:MV45AF0B_BELEG_SICHERN).
    In the above include, you need to create a enhancement spot after this spot (ENHANCEMENT 16  OI0_COMMON_SAPMV45A.)  
    write your custom code and while displaying an error message. set flag = 'x', then use below code. It will display error message once you press ENTER, you will get the sale order in change mode, you change the values.
      IF flag = 'X'.
              fcode = fcode_gleiche_seite.
              perform fcode_bearbeiten.
              ch_subrc = 4.
              exit.
            ENDIF.

  • Update sales order qty through BAPI_SALESORDER_CREATEFROMDAT2

    HI
    Can anybody help me out.  I have the requirement for creating sales order through BAPI_SALESORDER_CREATEFROMDAT2. The sales order is created but with 0 quantity.
    I am using fields RNDDLV_QTY and TARGET_QTY and REQ_QTY in schedule lines & also setting the update indicator to 'X'  in the corresponding itemx structures.
    In fact it used to work earlier and has stopped now. I am also checking if there could be any change in configuration but don't think this should be the reason.
    Can someone guide me as to which quantity fields of the BAPI are the right ones to update sales order qty?
    thanks

    Hi,
    You are using the correct fields i.e. TARGET_QTY and REQ_QTY. Just check if you are passing the same Item Number in both the tables.
    Hope it helps...
    Lokesh

  • Updating Sales Order Status in Batch

    Hi
    Please let me know if we can update Sales Order Line details like Ship To Address , Date , Status in a batch?
    We are using 11.5.10
    Thanks

    Use the Order management API or the OM interface tables.
    See irep.oracle.com for details.

  • 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

  • Updating Sales Order Retrospectively with PGI figure

    Hi
    Does anyone know if there is a way of retrospectively updating sales order with the value that has actually been POST GOODS ISSUED
    Thanks
    Tony

    What do you mean by Value? does the Value of the item change during PGI?
    If you mean to say, quantity, then yes, After PGI, go back to your order and change the order qty = PGI qty.
    Regards
    Sai

  • Function Module or BAPI to update Sale Order Quantity (VBAP-kwmeng)

    Hi,
    I have a requirement to use a Function Module or BAPI to update Sale Order Quantity (VBAP-kwmeng), which one (Function Module or BAPI) should I use? is there any sample codes?
    Thanks a lot!!

    Hi,
    *& Report  ZTEST
    REPORT  ztest.
    DATA : wa_header TYPE bapisdh1x,
                i_item TYPE TABLE OF bapisditm WITH HEADER LINE,
                i_itemx TYPE TABLE OF bapisditmx WITH HEADER LINE,
                i_return TYPE TABLE OF bapiret2.
               wa_header-updateflag = 'U'.
               i_item-itm_number = '000010'.
               i_item-target_qty = '4'.
               APPEND i_item.
              i_itemx-itm_number = '000010'.
              i_itemx-updateflag = 'U'.
              i_itemx-target_qty = 'X'.
              APPEND i_itemx.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
      EXPORTING
        salesdocument               = '1234567890'
        order_header_inx            = wa_header
      TABLES
        return                            = i_return
        order_item_in                 = i_item
        order_item_inx               = i_itemx
    Hope this will help you.
    Regards,
    Anand.

Maybe you are looking for