Cancel line item in crm order

Hi All,
How can I cancel an item of a CRM order?
Is this possible through BAPI ? If yes , please mention how.
Thanks a lot
Ajith

Hi
These sales orders have been locked by the user (not a dialogue user) which is used for the BDoc transfer from CRM to R/3. Generally orders created in R/3 from CRM can be also be changed in R/3. But because of data difference between R/3 and CRM now the orders are locked. It is not allowing to update any data from CRM also.
So these order getting unlocked from the user is not working because now no updation from CRM to R/3 on these locked orders are happening.
Regards

Similar Messages

  • Re: Printing Cancelled line items in the sales order on the packing slip

    Hi gurus,
    Currently we have a unique requirement in our company. Our wholesale customers send the Purchase order to us via EDI. Now saw they have requested an order containing 10 materials out of which we can fulfill only 8. the other 2 due to some reasons cannot be fulfilled.
    So the business wants to keep the other 2 line items to be entered in the sales order with a cancelled status.
    Now correct me if I am wrong, only the confirmed line items will be copied from a sales order to a delivery document. So thats the reason why these cancelled line items cannot be printed on the packing slip.
    However somehow the business wants the packing slip tp have the 2 line items printed on it with the reason of not being delivered. this is to facilitate the customer to know why those items couln't be fulfilled by our company. Now we cannot use a manual work-around of letting the customer know about the impossibility of not fulfilling the other 2 items as there are a lot of orders that come thru EDI per day.
    Can anyone suggest a solution to this requirement asap.
    Thanks in advance
    Vinit

    Hi Vinit,
    This requirement makes a lot of sense, that is to be able to inform your customer that some item(s) of the sales order could not be delivered, not even partially.
    A possible solution would be to allow for zero quantity in the delivery item (check customizing and mark "zero quantity allowed" in the item category).
    Then in the packing split, it would be easy to print the delivered quantity (0) and the sales order quantity (whatever it was), because you have the "null" item available in the delivery.
    Personally I am not found of having have delivery items with zero quantity, but they are useful in that case, and they can also be useful to automatically "close" the sales order item (instead of having to do it manually if the goods can't be served).
    Note: Usually in Consumer Goods, if you can't serve part of a sales order to a customer, you have to close it, because the Retailer's next Sales Order will include the remaining quantity.
    Hope it helps.
    Best Regards,
    Franck Lumpe
    Freelance SAP ERP Consultant

  • How to get Characteristic Values assigned to the line item of Sales Order?

    Hi,
    I want to get the Characteristic Values( Variant Configuration )assigned to First Line Item of Sales Order.
    I was using the Fn. Mod.: VC_I_GET_CONFIGURATION_IBASE,
    this fn. mod. giving all the Characters but not the assigned characteristic values.
    Is there any other way to find characteristic values of sales order.
    Thanks,
    vinayak.
    Message was edited by: vinayaga sundaram

    For example, please see this example program.
    It lists the characteristic names, the values, and the description of the values which are tied to a sales document.
    report zrich_0001.
    * Internal Table for Characteristic Data
    data: begin of i_char occurs 0.
            include structure comw.
    data: end of i_char.
    data: xcabn type cabn.
    data: begin of xcawn,
          atwtb type cawnt-atwtb,
          end of xcawn.
    data: xvbap type vbap.
    parameters: p_vbeln type vbap-vbeln,
                p_posnr type vbap-posnr.
    start-of-selection.
      select single * from vbap into xvbap
                 where vbeln = p_vbeln
                   and posnr = p_posnr.
      clear i_char.  refresh i_char.
    * Retrieve Characteristics.
      call function 'CUD0_GET_VAL_FROM_INSTANCE'
           exporting
                instance           = xvbap-cuobj
           tables
                attributes         = i_char
           exceptions
                instance_not_found = 1.
      loop at i_char.
        clear xcabn.
        select single * from cabn into xcabn
                 where atinn = i_char-atinn.
        clear xcawn.
        select single cawnt~atwtb into xcawn
                   from cawn
                     inner join cawnt
                       on cawn~atinn = cawnt~atinn
                      and cawn~atzhl = cawnt~atzhl
                          where cawn~atinn = i_char-atinn
                            and cawn~atwrt = i_char-atwrt.
        write:/ xcabn-atnam, i_char-atwrt, xcawn-atwtb.
      endloop.
    Regards,
    RIch Heilman

  • Report for deleted line-items in Transfer Orders

    Dear All,
    Please help me in writing the code for "Report for deleted line-items in Transfer Orders".
    regards,
    nishu

    Thanks. Repor completed.

  • How can I add a new line item for production order?

    HI all,
    How can I add a new line item for production order through BAPI/FM? Thanks in advance.

    Hi Mil,
      Unfortunetly SAP is not in front of me.
    But if possible go to BAPI transaction , check for any production order's bapi for CHANGE purpose. Where you will be able to add your new line.
    Reward if useful!

  • Add Line Item In Sales Order VA01

    HI All,
    I  have new requirement in creation of sales order . Here we have free promotion sales . Here if customer buy one material then he will get some other material as free .In standard sap we can give only one line item as free not more than that .
    Here our requirement is more than one line item . I suggested them maintain all the free materials in one Ztable when ever the original material  will come for  sales order then i have to fetch these materials from ztable  automatically and it should create sales order. I started doing this using user exit  FORM USEREXIT_MOVE_FIELD_TO_VBAP.
    These are the below links i checked in our sdn.
    Adding Line items to sales order on creation using User-Exit in VA01.
    Please give me some idea on this .
    Regards,
    Madhu.

    Hi Asik,
    Thanks for your reply.In my case i can not got for Bom  because the schemes will change for every ten days. I think Bom  creation will fill a lot of data but it wont solve my issue.
    Regards,
    Madhu.

  • How to add 100 line item in sales order at one time

    Hello Guru's
    My requirement is to add 100 line items in sales order at once.
    what can be good approach to overcome this situation.Is there some kind of tool which can be useful?
    Let me know your suggestions
    Thanks a lot in Advance

    Hi,
    do configuration for Proposal Items tab - like -
    then create sales order using with Propose items button - VA01 - then system will accept more than 50 line of materials at a time
    Please Use BAPI -- creation of Sales order
    Thanking you
    Regards
    Mahesh

  • How to make the line items of sales order cannot be deleted.

    Hi All,
    Is there any Enhancement spots or user-exits which make the line items of sales order cannot be deleted if item category is 'TAN'.
    Thanks in Advance,
    Sudhakar Reddy .A

    Hi All,
    If you doesn't want to delete sales order line items then we have write in the Include Program which has mentioned below and in the form .....endform.
    Program Name :  Include MV45AFZB
    _Example:_
    form userexit_check_xvbap_for_delet using us_error
                                              us_exit.
    IF .......
      US_EXIT = CHARX.
    ENDIF.
    endform.

  • To add the line item in Sales Order

    Hi Experts,
    I have to insert  the line item between two line item in sales order dynamically.
    How should i do this.
    any idea??
    Thanks in Advance.

    Hi,
    I guess you are talking about BOM, sub-items or free goods, wherein after you put in one item the other material defined gets added automatically in the sales order.
    That is done with the help of Item Category config by functional person.
    Check here for more info
    [Item Category|Re: Item Category;
    You can also use user exit MV45AFZZ form user_exit_move_to_vbap for a specific logic defined at runtime.
    Regards,
    Amit
    Edited by: Amit Iyer on Aug 26, 2009 10:21 PM

  • Delete the line item in sales order in VA01/VA02 when the quantity is modif

    Hi SAP,
       I have requirement to delete a line item in sales order.Please suggest me to do the same.
      THe scenarios is , we are inserting a free good line item based on some condition and quantity, If the quantity is modified  the free good line item inserted needs to be deleted.
    Waiting for your responce
    Thanks,
        Billa
    Moderator message : Spec dumping is not allowed,search for available information. Thread locked.
    Edited by: Vinod Kumar on Nov 14, 2011 1:54 PM

    Hi,
    Can you also check the SALES LINE.
    Sales line is the combination of SALES ORGANISATION + DISTRIBTION CHANNEL +PLANT.
    Hope it was not maintained.
    Transaction code : OVX6
    PATH:  IMG->ENTERPRISE STRCTRE->ASSIGNMENT>SALES AND DISTRIBTION->ASSIGN SALES ORG- DISTRIBTION-PLANT.
    please revert if the error still exists.
    santosh

  • Adding a batch to a line item in an Order with B1WS

    Hi,
    I am trying to create code which can update a batch in a line item in an order.  The updating works great, if the batch is already attached to the line item.  However, I am unable to add a batch if one doesn't already exist.
    Can you please have a look at this code and let me know what is wrong?
    I've tried various things, though am still unable to get it to work.
    Thank you very much!
    Mike
    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using orderWebRef;
    using System.Text;
    public partial class _Default : System.Web.UI.Page
        protected void Page_Load(object sender, EventArgs e)
            // B1BATCH performs batch operations on SAP via DISERVER and B1WS
            // The inputs are:
            // o = Order Number (this is the DocEntry value, NOT the DocNum value)
            // b = Batch Number
            // q = Quantity
            // i = Item Code
            // p = Project
            // debug = 1 or true if you want to see output messages
            // For some security, we will encode some values at the client,
            // and verify them here for consistency.
            // The "Secret Formula" is these variables, which will be passed to the URL
            // 1 = Order Number * 2 (encoded at the client)
            // 2 = Batch Number * 2 (encoded at the client)
            // To decode, we do this:
            // Correct decoding if ((1 = (o/2)) AND (2 = (b/2))
            string o = "";
            string b = "";
            string q = "";
            string i = "";
            string p = "";
            string v1 = "";
            string v2 = "";
            int orderNumber = 0; // This is the DocEntry value, NOT the DocNum value
            int batchNumber = 0;
            int quantity = 0;
            int v1int = 0;
            int v2int = 0;
            bool debugMode = false;
            bool allVarsPresent = true;
            bool allVarsValid = true;
            try
                o = Request.QueryString["o"].ToString();
            catch
                allVarsPresent = false;
            try
                b = Request.QueryString["b"].ToString();
            catch
                allVarsPresent = false;
            try
                q = Request.QueryString["q"].ToString();
            catch
                allVarsPresent = false;
            try
                i = Request.QueryString["i"].ToString().ToUpper();
            catch
                allVarsPresent = false;
            try
                p = Request.QueryString["p"].ToString().ToUpper();
            catch
                allVarsPresent = false;
            try
                v1 = Request.QueryString["1"].ToString();
            catch
                allVarsPresent = false;
            try
                v2 = Request.QueryString["2"].ToString();
            catch
                allVarsPresent = false;
            try
                string debug = Request.QueryString["debug"].ToString();
                if ((debug == "1") || (debug.ToLower() == "true"))
                    debugMode = true;
            catch
                debugMode = false;
            if (!allVarsPresent)
                WriteDebugMessage(debugMode, "All required variables are not in the request.");
                return;
            else
                // All variables are present, now check that they are valid.
                // First, check the v1 and v2 variables are correct
                // Then check that the order exists
                // Then check that the batch exists and has the appropraite quantity available
                try
                    orderNumber = Convert.ToInt32(o);
                    batchNumber = Convert.ToInt32(b);
                    quantity = Convert.ToInt32(q);
                    v1int = Convert.ToInt32(v1);
                    v2int = Convert.ToInt32(v2);
                    if ((v1int / 2) != orderNumber)
                        allVarsValid = false;
                    if ((v2int / 2) != batchNumber)
                        allVarsValid = false;
                catch
                    WriteDebugMessage(debugMode, "Error in processing variables.");
                    return;
                if (!allVarsValid)
                    WriteDebugMessage(debugMode, "Error in validating checksum.");
                    return;
                // All variables are present and valid!
                WriteDebugMessage(debugMode, "All variables are present and valid.");
            try
                loginWebRef.LoginService ls = new loginWebRef.LoginService();
                string sessionID = ls.Login("DBSERVER", "DBNAME", loginWebRef.LoginDatabaseType.dst_MSSQL2005, true, "sa", "PASSWORD", "manager", "managerPass", loginWebRef.LoginLanguage.ln_English, true, "LICENSE:30000");
                WriteDebugMessage(debugMode, "<BR><BR>SessionId: " + sessionID + "<BR><BR>");
                orderWebRef.MsgHeader msgHeader = new orderWebRef.MsgHeader();
                msgHeader.SessionID = sessionID;
                msgHeader.ServiceName = MsgHeaderServiceName.OrdersService;
                msgHeader.ServiceNameSpecified = true;
                orderWebRef.OrdersService order = new OrdersService();
                order.MsgHeaderValue = msgHeader;
                DocumentParams param = new DocumentParams();
                param.DocEntry = orderNumber;
                param.DocEntrySpecified = true;
                orderWebRef.Document document = new orderWebRef.Document();
                document = order.GetByParams(param);
                StringBuilder orderSb = new StringBuilder();
                orderSb.Append("Order " + document.DocNum.ToString() + "<BR><BR>");
                foreach (DocumentDocumentLine docLine in document.DocumentLines)
                    if ((docLine.ProjectCode == p) && (docLine.ItemCode == i))
                        orderSb.Append("Line Num:      " + docLine.LineNum + "<BR>");
                        orderSb.Append("Item Code:     " + docLine.ItemCode + "<BR>");
                        orderSb.Append("Project Code:  " + docLine.ProjectCode + "<BR>");
                        orderSb.Append("Description:   " + docLine.ItemDescription + "<BR>");
                        // Find the batch if it exists and update the quantity
                        // Add the batch if it doesn't exist
                        bool batchExistsInLineItem = false;
                        int batchCount = 0;
                        foreach (DocumentDocumentLineBatchNumber batch in docLine.BatchNumbers)
                            batchCount++;
                            if (batch.BatchNumber == b)
                                batchExistsInLineItem = true;
                                orderSb.Append("<BR>");
                                orderSb.Append("+++++ Batch exists in line item.  Updating.<BR><BR>");
                                orderSb.Append("+++++ Batch Line:   " + batchCount.ToString() + "<BR>");
                                orderSb.Append("+++++ Batch Num:    " + batchNumber + "<BR>");
                                orderSb.Append("+++++ Quantity:     " + quantity + "<BR>");
                                batch.Quantity = quantity;
                        if (!batchExistsInLineItem)
                            docLine.BatchNumbers = new DocumentDocumentLineBatchNumber[1];
                            DocumentDocumentLineBatchNumber batch = new DocumentDocumentLineBatchNumber();
                            batch.BatchNumber = b;
                            batch.Quantity = quantity;
                            docLine.BatchNumbers[0] = batch;
                            orderSb.Append("<BR>");
                            orderSb.Append("+++++ Batch does not exist in line item.  Adding.<BR><BR>");
                            orderSb.Append("+++++ Batch Line:   " + batchCount.ToString() + "<BR>");
                            orderSb.Append("+++++ Batch Num:    " + batchNumber + "<BR>");
                            orderSb.Append("+++++ Quantity:     " + quantity + "<BR>");
                try
                    order.Update(document);
                catch (Exception ex)
                    WriteDebugMessage(debugMode, "SAP Exception:  " + ex.Message.ToString());
                    return;
                WriteDebugMessage(debugMode, orderSb.ToString());
            catch (Exception ex)
                WriteDebugMessage(debugMode, "Error in processing the request.  Exception:<BR><BR>" + ex.Message);
                return;
        private void WriteDebugMessage(bool debugMode, string exitMessage)
            if (debugMode)
                Response.Write(exitMessage);

    Hi Everyone,
    I found the answer, you can find the code here: [B1WS Batch Manipulations with Orders|http://paste-it.net/public/dbbcea0/]
    Cheers,
    Mike

  • Display report : plan line items for internal orders

    When running the report with KOBP tcode, although i have some plan cost line items in the order, i have the message :
    No plan line items were selected
    Message no. KB421
    Could anyone advise?
    However, the report with KOB1 tcode works well and i have the results as expected for actual line items.

    this is may be config issue.
    can you explain with accounting entries for said line items and offsetting GL for each line?
    regards.
    ashok

  • Calculate sales tax based on all line items on the order

    My users have asked to determin tax on the sales order, based on all the line items on the order. For example, if all the items are for product only, or if all the line items are for labor only, or if there is a mix of product and labor,
    Order 1
    line 1 product flag as both for vertex
    line 2 labor flag as both for vertex
    Order 2
    line 1 product flag as product only
    line 2 product flag as product only
    Order 3
    line 1 labor flag as labor only
    line 2 labor flag as labor only
    I do not see away to do this while the order is being created. In the order 1 example above, line one is entered, priced, and taxed as product only (it is the only line on the order at that time and it is product only). Line two is entered, it is marked as both. But I cannot send line item one back through vertex marked as both. Vertex processing is already complete.
    I have looked at using both FYTX0001 and FYTX0002. With both of these exits I can only work with a single line item, i.e. once item one is processed it will not go through the exit when item two is added.
    Any assistance would be appreciated.
    Jay

    Hi WCG,
    Our business is located in California as well. California is a modified-origin state, where state, county, and city taxes are based on the origin of the sale, while district taxes are based on the destination of the sale. You only need to add Sales tax when your customer's billing address is in California. I do not believe that Catalyst currently supports district based sales tax. You could look into a third party solution like TaxJar and see if it could be integrated into Catalyst. We currently charge our California based customers exactly what we would charge them in our retail store.
    So you want to do something like this:
    -Ryan

  • Substitution and activated the same at the line item level in order to subs

    I have created a substitution and activated the same at the line item level in order to substitute the ZRSPL (Payment Block) field by a constant value and a vendor invoice is posted using Transaction FB60. But the same is not working. When I post a vendor invoice using FB60, Payment Block field is being shown as blank instead of the constant value which I want to substitute.
    >
    > My prerequsite is mentioned below :
    > BKPF-TCODE = &#39;FB60&#39; AND BKPF-BUKRS = &#39;ABC&#39; AND ( BKPF-BLART = &#39;KR&#39; OR
    > BKPF-BLART = &#39;KY&#39; ) AND BSEG-DMBTR &gt; &#39;10000&#39;

    Hi,
    I am not understanding the logic behind the prerequisites mentioned in your query.
    Payment block field exists only for vendor related line item.  However, you have not mentioned vendor reconciliation account in the prerequisites.  It means, this substitution will trigger for all the line items which is wrong.
    Or try following  options.....
    1) Substitution->Simulation
    2) Extras->Expert Trace
    Best Regards,
    Madhu

  • Custom table Not deleting the line items on the order.

    Hi All
    I have an issue, In SAP  we have created a custom table which is related to ship to party, as and when we delete any line items in the order(VBAP)  it should update /delete the custom table but it is not deleting, while when we create any line items in the order (VBAP) it is updating  the entries in the custom table which is suppose to happen.
    Please let me know your inputs.
    Thanks,
    Ram

    UPDKZ is not a field name. it is the processing status of a line or order.
    If UPDKZ is I , its initial, like adding a new line
    If UPDKZ is U, its update. Like changing or modifying an existing line
    ....so on...
    Regards
    Sai

Maybe you are looking for