Advance validation during order or billing

Hi,
If customer have given Advance ,i want to get validation i.e indication during doing sales order or billing for that Customer.
thr should be some Pop during order or billing
what is the process for such scenario
Thanks

Hi Prasad
If you create a  Down payment sales order and then if you create the billing in between then you will get the warning message . But if you need a Popup message means then you should go with the User exit
Check the following link for you information
[http://help.sap.com/saphelp_46c/helpdata/en/59/ac922bcb0411d2acbe0000e8a5bd28/frameset.htm]
Source : SAP library
Regards
Srinath

Similar Messages

  • Profit Center was not maintained during order n billing creation.

    Dear, Gurus
    I'm facing a problem of Profit Center. User created a service material, maintenance contract. They created a Billing Document as it is order related billing. Accounting document was not generated when saving invoice. When I got to the bottom of this I realized no costing tabs were ever maintained for material type services. (Henceforth no Profit Center in Sales Order n Invoice).
    I have done the necessary config n assignments but question now is what should I do as in billing doc  the field is greyed out it will not allow me to assign Pr Center now. I am thinking that this may work if I cancel the billing document and then go back to sales order and try and changing the field, then re-create the invoice. I'm trying to avoid canceling. Is there any program, bapi, user exit I may use to re assign or make system re check the MM while saving invoice to allow accounting document to be created?  This is one scenario.
    2nd scenario is similar but in the case of this contract everything was made. Accounting document was cleared even but with some dummy weird Profit Center. (No proft center in Order nor invoice.) Whole problem at first in this scenario is User saying everything is complete so status in doc flow should show maintenance contract as complete but wasn't. it showed being processed. I discovered no completion rule was maintained. I maintained E Full target value referenced but status still has not changed any idea guys? (New config not showing on old existing data only show on new document, concept?) Is there a program or anything to make system update status doc flow? aside from this Profit center  incompletion log is coming in Contract. Not maintained in order or invoice.

    In one of my earlier projects, a similar requirement was putforth by users and we had developed a zee tcode to change the profit center in billing document via SM30 which can be done only by FI authorised users.
    I am reproducing the said program as under:-
    REPORT  "ZPROFIT_CHG"
    TABLES : VBRP.
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME.
    SELECT-OPTIONS : SO_VBELN FOR VBRP-VBELN OBLIGATORY.
    PARAMETERS:      P_PRO LIKE VBRP-PRCTR OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
    DATA : BEGIN OF IT_VBRP OCCURS 0,
            VBELN LIKE VBRP-VBELN,
            POSNR LIKE VBRP-POSNR,
            PRCTR LIKE VBRP-PRCTR,
          END OF IT_VBRP.
    DATA COUNT(3).
    DATA W_MESSAGE(30).
    START-OF-SELECTION.
      LOOP AT SO_VBELN.
           IF SO_VBELN-LOW CA '~`!@#$%^&*()_+|\=-><,.;":' OR SO_VBELN-HIGH CA '~`!@#$%^&*()_+|\=-><,.;":'.
               MESSAGE 'Special character not allowed' type 'S'.
               LEAVE LIST-PROCESSING.
               STOP.
           ENDIF.
      ENDLOOP.
      IF P_PRO CA '~`!@#$%^&*()_+|\=-><,.;":'.
               MESSAGE 'Special character not allowed' type 'S'.
               LEAVE LIST-PROCESSING.
               STOP.
      ENDIF.
      SELECT B~VBELN B~POSNR B~PRCTR FROM VBRK AS A  INNER JOIN VBRP AS B ON A~VBELN EQ B~VBELN INTO CORRESPONDING FIELDS OF TABLE IT_VBRP
                                WHERE A~VBELN IN SO_VBELN
                                AND   A~FKART EQ 'ZFF2'
                                AND   A~FKSTO NE 'X'.
      IF SY-DBCNT EQ 0.
          MESSAGE 'NO DATA FOUND' TYPE 'S'.
          LEAVE LIST-PROCESSING.
      ENDIF.
      SORT IT_VBRP BY VBELN.
      DELETE ADJACENT DUPLICATES FROM IT_VBRP COMPARING VBELN.
      CLEAR COUNT.
      IF IT_VBRP[] IS NOT INITIAL AND P_PRO IS NOT INITIAL..
          LOOP AT IT_VBRP.
              UPDATE VBRP SET PRCTR = P_PRO  WHERE VBELN = IT_VBRP-VBELN AND POSNR = IT_VBRP-POSNR.
              IF SY-SUBRC = 0.
                 COUNT = COUNT + 1.
              ENDIF.
              COMMIT WORK.
              CLEAR IT_VBRP.
          ENDLOOP.
    ENDIF.
    IF COUNT IS NOT INITIAL.
        CONCATENATE 'No Of Records Updated Is - ' COUNT INTO W_MESSAGE.
        MESSAGE I000(ZSFL) WITH W_MESSAGE.
    ELSE.
        MESSAGE 'No Records Updated' TYPE 'S'.
    ENDIF.
    Since I am so weak in ABAP coding, not sure whether the above coding is correct.  You need to check with your ABAPers and develop this logic.  This should work.
    thanks
    G. Lakshmipathi

  • Pricing order/del/bill

    Hi,
    Few questions on pricing:
    1) Pricing is carried out in order , delivery and invoice based on fields in KOMG structure, is this true? For eg: i am using an access sequence where I use order reason from sales order, will the same condition type trigger in delivery and invoice too, since it is maintained in KOMG structure (but invoice does not have order reason in header(VBRK))???
    2) In delivery only freight & surcharge related pricing is calculated? How does system understand not to calculate freight during order and invoice and only in delivery? Freight condition type can be percentage or weight basis, what kind of trigger we set in condition type, to make the system understand to only trigger these condition types during delivery pricing? Also if i chose pricing type 'B", carry out new pricing, still system will not calculate all pricing (PR00...etc) in delivery? if 'Yes' how?
    3) What is the difference between pricing in sales order and invoice? Is pricing calculated all over again in invoice? does it also recalculate freight, if choose pricing type 'B'?
    In general, my question is are we controlling the pricing based on pricing type during order/ship/bill or is the system controlling it??? Thanks.

    solved!

  • Change VPRS during billing -( order related Billing )

    Hi Guru's,
    There is a requirement for changing the VPRS value during Billing - ( Order Related billing ).  There is a particular requirement for which this scenario is needed.   I did manage to change the value or XKOMV via a custom requirement but it is not getting reflected in the Invoice.
    Can someone advice on how to achieve the same.
    The following is the data i get during Analysis.
    Condition type      VPRS
    Message              216
    Description       Condition value has been taken from preceding document
    Further Analysis
    "Condition types (e.g. VPRS), which have been provided with the condition category 'G', determine your condition amount either from the material evaluation segment or the amount is calculated from the condition value.
    Therefore the condition value - possibly a billing document - can be determined from the goods issue or in third-party order processing of a preceding document, for example, from the vendor billing document.
    Der Konditionsbetrag wurde hier aus dem übergebenen Konditionswert berechnet."
    Regards
    G

    Hi Guru's,
    There is a requirement for changing the VPRS value during Billing - ( Order Related billing ).  There is a particular requirement for which this scenario is needed.   I did manage to change the value or XKOMV via a custom requirement but it is not getting reflected in the Invoice.
    Can someone advice on how to achieve the same.
    The following is the data i get during Analysis.
    Condition type      VPRS
    Message              216
    Description       Condition value has been taken from preceding document
    Further Analysis
    "Condition types (e.g. VPRS), which have been provided with the condition category 'G', determine your condition amount either from the material evaluation segment or the amount is calculated from the condition value.
    Therefore the condition value - possibly a billing document - can be determined from the goods issue or in third-party order processing of a preceding document, for example, from the vendor billing document.
    Der Konditionsbetrag wurde hier aus dem übergebenen Konditionswert berechnet."
    Regards
    G

  • Excluding order-related billing from credit check

    We have service contracts with billing plan that is order related.  We found that during the dynamic credit checks, the system will include the full amount of these contracts and therefore, every time we create a new ordersfor these customers, the orders are put on hold.
    I believe that it is standard SAP to include the contracts full amount in credit checks, but does anybody know of a workaround?  The main issue is we already have more than 1200 contracts in the system which are valid for another 4-5 years, so we are looking for a solution that will be 'retroactive'.
    thank you.

    Hello,
    The value of the open invoices will be always taken in account during the   
    standard dynamic credit check in R/3. Althrough you can swith off the   
    dynamic credit check for the order-related billing- you need to develop    
    your routine, which will be put in the field no_check in the            
    transaction OVA8. Please review the note 895630.               
    The another posssibility could be to develop your own credit check      
    (user1 user2 or user3 in the transaction OVA8) for the CRM sales        
    orders.                                                                 
    Kind regards,
    Zsuzsanna

  • Process_order api - Validation Failed for Field Bill To

    I am relatively new to the EBS world and I'm having some issues with calling the OE_Order_Pub.Process_order API. When I call this API I am getting a return error of "Validation failed for field - Bill To".
    For a background...I have an APEX application where users can choose parts from a small part master list to add to an existing order. The existing order will not have a status of Closed or Cancelled and there will be atleast 1 line in the order before the new parts are added. The parts will be added as new lines to the order with some of the new line data defaulting to the same information as the first line. I am using EBS version 12.1.3 with a multi-org setup. It seems that the orders under one org (id=3) are working fine, but another org(id=569) they never work and keep getting the error. I am setting the context to the org of the order and initializing the apps user information with the responsibility "Order Management Super User".
    Do you have any idea what could be wrong or how I can debug the error to get a little more detail?
    Here is the procedure I have.
    PROCEDURE TEK_ORD_PROCESS_ORDER(p_order_id IN NUMBER, p_return_code OUT NOCOPY VARCHAR2, p_status OUT NOCOPY VARCHAR2) IS
        CURSOR c_order_parts IS
          SELECT *
            FROM TEK_APEX.TEK_ORD_ORDER_PARTS
           WHERE ORDER_ID = p_order_id;
        TYPE t_parts IS TABLE OF TEK_APEX.TEK_ORD_ORDER_PARTS%ROWTYPE;
        v_order_parts t_parts;
        --Setup variables
        H_Op_Code      VARCHAR2(25) DEFAULT OE_GLOBALS.G_OPR_UPDATE;
        L_Op_Code      VARCHAR2(25) DEFAULT OE_GLOBALS.G_OPR_CREATE;
        v_install_type VARCHAR2(25) := 'PTO';
        v_source_id    NUMBER;
        v_user_id      NUMBER;
        v_resp_id      NUMBER;
        v_app_id       NUMBER;
        v_debug        VARCHAR2(32767);
        v_oracle_order OE_ORDER_HEADERS_ALL%ROWTYPE;
        v_apex_order   TEK_APEX.TEK_ORD_SALES_ORDERS%ROWTYPE;
        p_header_rec                    OE_Order_Pub.Header_Rec_Type;
        p_header_val_rec                OE_Order_Pub.Header_Val_Rec_Type;
        p_Header_Adj_tab                OE_Order_Pub.Header_Adj_Tbl_Type;
        p_Header_Adj_val_tab            OE_Order_Pub.Header_Adj_Val_Tbl_Type;
        p_Header_price_Att_tab          OE_Order_Pub.Header_Price_Att_Tbl_Type;
        p_Header_Adj_Att_tab            OE_Order_Pub.Header_Adj_Att_Tbl_Type;
        p_Header_Adj_Assoc_tab          OE_Order_Pub.Header_Adj_Assoc_Tbl_Type;
        p_Header_Scredit_tab            OE_Order_Pub.Header_Scredit_Tbl_Type;
        p_Header_Scredit_val_tab        OE_Order_Pub.Header_Scredit_Val_Tbl_Type;
        p_line_tab                      OE_Order_Pub.Line_Tbl_Type;
        p_line_val_tab                  OE_Order_Pub.Line_Val_Tbl_Type;
        p_Line_Adj_tab                  OE_Order_Pub.Line_Adj_Tbl_Type;
        p_Line_Adj_val_tab              OE_Order_Pub.Line_Adj_Val_Tbl_Type;
        p_Line_price_Att_tab            OE_Order_Pub.Line_Price_Att_Tbl_Type;
        p_Line_Adj_Att_tab              OE_Order_Pub.Line_Adj_Att_Tbl_Type;
        p_Line_Adj_Assoc_tab            OE_Order_Pub.Line_Adj_Assoc_Tbl_Type;
        p_Line_Scredit_tab              OE_Order_Pub.Line_Scredit_Tbl_Type;
        p_Line_Scredit_val_tab          OE_Order_Pub.Line_Scredit_Val_Tbl_Type;
        p_Lot_Serial_tab                OE_Order_Pub.Lot_Serial_Tbl_Type;
        p_Lot_Serial_val_tab            OE_Order_Pub.Lot_Serial_Val_Tbl_Type;
        p_action_request_tab            OE_Order_pub.Request_Tbl_Type;
        l_header_rec                    OE_Order_Pub.Header_Rec_Type;
        l_header_val_rec                OE_Order_Pub.Header_Val_Rec_Type;
        l_Header_Adj_tab                OE_Order_Pub.Header_Adj_Tbl_Type;
        l_Header_Adj_val_tab            OE_Order_Pub.Header_Adj_Val_Tbl_Type;
        l_Header_price_Att_tab          OE_Order_Pub.Header_Price_Att_Tbl_Type;
        l_Header_Adj_Att_tab            OE_Order_Pub.Header_Adj_Att_Tbl_Type;
        l_Header_Adj_Assoc_tab          OE_Order_Pub.Header_Adj_Assoc_Tbl_Type;
        l_Header_Scredit_tab            OE_Order_Pub.Header_Scredit_Tbl_Type;
        l_Header_Scredit_val_tab        OE_Order_Pub.Header_Scredit_Val_Tbl_Type;
        l_line_tab                      OE_Order_Pub.Line_Tbl_Type;
        l_line_val_tab                  OE_Order_Pub.Line_Val_Tbl_Type;
        l_Line_Adj_tab                  OE_Order_Pub.Line_Adj_Tbl_Type;
        l_Line_Adj_val_tab              OE_Order_Pub.Line_Adj_Val_Tbl_Type;
        l_Line_price_Att_tab            OE_Order_Pub.Line_Price_Att_Tbl_Type;
        l_Line_Adj_Att_tab              OE_Order_Pub.Line_Adj_Att_Tbl_Type;
        l_Line_Adj_Assoc_tab            OE_Order_Pub.Line_Adj_Assoc_Tbl_Type;
        l_Line_Scredit_tab              OE_Order_Pub.Line_Scredit_Tbl_Type;
        l_Line_Scredit_val_tab          OE_Order_Pub.Line_Scredit_Val_Tbl_Type;
        l_Lot_Serial_tab                OE_Order_Pub.Lot_Serial_Tbl_Type;
        l_Lot_Serial_val_tab            OE_Order_Pub.Lot_Serial_Val_Tbl_Type;
        l_ret_status                    VARCHAR2(200);
        l_msg_count                     NUMBER;
        l_msg_data                      VARCHAR2(200);
           --Email information
        v_email_address           varchar2(100);
           v_msg_text                varchar(1000);
           v_subject_text            varchar(1000);
           --Default line information
        v_item_id           NUMBER;
        v_contact_id        NUMBER;
        v_invoice_to_org_id oe_order_lines_all.INVOICE_TO_ORG_ID%TYPE;
        v_ship_to_org_id    oe_order_lines_all.SHIP_TO_ORG_ID%TYPE;
        v_sold_to_org_id    oe_order_lines_all.SOLD_TO_ORG_ID%TYPE;
        v_flow_status_code  oe_order_lines_all.FLOW_STATUS_CODE%TYPE;
        FUNCTION GET_ORACLE_ORDER(p_order_number IN OE_ORDER_HEADERS_ALL.ORDER_NUMBER%TYPE)
          RETURN OE_ORDER_HEADERS_ALL%ROWTYPE IS
          v_order OE_ORDER_HEADERS_ALL%ROWTYPE;
        BEGIN
          SELECT *
            INTO v_order
            FROM APPS.OE_ORDER_HEADERS_ALL
           WHERE ORDER_NUMBER = p_order_number;
          RETURN v_order;
        EXCEPTION
          WHEN OTHERS THEN
            RETURN NULL;
        END GET_ORACLE_ORDER;
        FUNCTION GET_APEX_ORDER(p_order_id IN TEK_APEX.TEK_ORD_SALES_ORDERS.ORDER_ID%TYPE)
          RETURN TEK_APEX.TEK_ORD_SALES_ORDERS%ROWTYPE IS
          v_order TEK_APEX.TEK_ORD_SALES_ORDERS%ROWTYPE;
        BEGIN
          SELECT *
            INTO v_order
            FROM TEK_APEX.TEK_ORD_SALES_ORDERS
           WHERE ORDER_ID = p_order_id;
          RETURN v_order;
        EXCEPTION
          WHEN OTHERS THEN
            RETURN NULL;
        END GET_APEX_ORDER;
        FUNCTION GET_SOURCE_ID(p_source_name IN VARCHAR2)
          RETURN OE_ORDER_SOURCES.ORDER_SOURCE_ID%TYPE IS
          v_source_id OE_ORDER_SOURCES.ORDER_SOURCE_ID%TYPE;
        BEGIN
          SELECT ORDER_SOURCE_ID
            INTO v_source_id
            FROM APPS.OE_ORDER_SOURCES
           WHERE NAME = p_source_name;
          RETURN v_source_id;
        EXCEPTION
          WHEN OTHERS THEN
            RETURN NULL;
        END GET_SOURCE_ID;
        FUNCTION GET_ITEM_ID(p_part_number IN VARCHAR2, p_org_id IN NUMBER)
          RETURN MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID%TYPE IS
          v_item_id MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID%TYPE;
        BEGIN
          SELECT INVENTORY_ITEM_ID
            INTO v_item_id
            FROM APPS.MTL_SYSTEM_ITEMS
           WHERE SEGMENT1 = p_part_number
             AND ORGANIZATION_ID = p_org_id;
          RETURN v_item_id;
        EXCEPTION
          WHEN OTHERS THEN
            RETURN NULL;
        END GET_ITEM_ID;
      BEGIN
        apps.mo_global.set_policy_context('S',3);
        apps.mo_global.init('XXTEK');
        BEGIN
          SELECT USER_ID
            INTO v_user_id
            FROM APPS.FND_USER
           WHERE USER_NAME = 'SYSADMIN';
        EXCEPTION
          WHEN OTHERS THEN
            RAISE_APPLICATION_ERROR(-20001, 'Error selecting user');
        END;
        BEGIN
          SELECT RESPONSIBILITY_ID, APPLICATION_ID
            INTO v_resp_id, v_app_id
            FROM TEK_APEX.TEK_RR_ACTIVE_RESP_VW
           WHERE UPPER(RESPONSIBILITY_NAME) = 'ORDER MANAGEMENT SUPER USER';
          --Set current user information
          fnd_global.apps_initialize (user_id      => v_user_id
                                     ,resp_id      => v_resp_id
                                     ,resp_appl_id => v_app_id);
        EXCEPTION
          WHEN OTHERS THEN
            RAISE_APPLICATION_ERROR(-20001, 'Error selecting responsibility');
        END;
        --Get the order information from Oracle and APEX
        v_apex_order := GET_APEX_ORDER(p_order_id);
        IF v_apex_order.ORDER_ID IS NULL THEN
          RAISE_APPLICATION_ERROR(-20001, 'APEX Order ID is invalid: ' || p_order_id);
        END IF;
        v_oracle_order := GET_ORACLE_ORDER(TO_NUMBER(v_apex_order.ORDER_NUMBER));
        IF v_oracle_order.ORDER_NUMBER IS NULL THEN
          RAISE_APPLICATION_ERROR(-20001, 'Order Number not found in Oracle: ' || v_apex_order.ORDER_NUMBER);
        END IF;
        apps.mo_global.set_policy_context('S', v_oracle_order.ORG_ID);
        v_source_id := GET_SOURCE_ID('IMPORT');
        IF v_source_id IS NULL THEN
          RAISE_APPLICATION_ERROR(-20001, 'Source ID not found for IMPORT');
        END IF;
        /* ********** Gather Order Header********** */
        /* ********** Info.              ********** */
        OE_Order_Pub.Get_Order(p_api_version_number    =>      1.0,
                               p_init_msg_list         =>      FND_API.G_TRUE,
                               p_return_values         =>      FND_API.G_TRUE,
                               x_return_status         =>      l_ret_status,
                               x_msg_count             =>      l_msg_count,
                               x_msg_data              =>      l_msg_data,
                               p_header_id             =>      v_oracle_order.HEADER_ID,
                               p_header                =>      NULL,
                               x_header_rec            =>      l_header_rec,
                               x_header_val_rec        =>      l_header_val_rec,
                               x_Header_Adj_tbl        =>      l_Header_Adj_tab,
                               x_Header_Adj_val_tbl    =>      l_Header_Adj_val_tab,
                               x_Header_price_Att_tbl  =>      l_Header_price_Att_tab,
                               x_Header_Adj_Att_tbl    =>      l_Header_Adj_Att_tab,
                               x_Header_Adj_Assoc_tbl  =>      l_Header_Adj_Assoc_tab,
                               x_Header_Scredit_tbl    =>      l_Header_Scredit_tab,
                               x_Header_Scredit_val_tbl=>      l_Header_Scredit_val_tab,
                               x_line_tbl              =>      l_line_tab,
                               x_line_val_tbl          =>      l_line_val_tab,
                               x_Line_Adj_tbl          =>      l_Line_Adj_tab,
                               x_Line_Adj_val_tbl      =>      l_Line_Adj_val_tab,
                               x_Line_price_Att_tbl    =>      l_Line_price_Att_tab,
                               x_Line_Adj_Att_tbl      =>      l_Line_Adj_Att_tab,
                               x_Line_Adj_Assoc_tbl    =>      l_Line_Adj_Assoc_tab,
                               x_Line_Scredit_tbl      =>      l_Line_Scredit_tab,
                               x_Line_Scredit_val_tbl  =>      l_Line_Scredit_val_tab,
                               x_Lot_Serial_tbl        =>      l_Lot_Serial_tab,
                               x_Lot_Serial_val_tbl    =>      l_Lot_Serial_val_tab);
        --Save defaults from first line
        IF l_line_tab.EXISTS(1) THEN
          v_contact_id        := l_line_tab(1).SHIP_TO_CONTACT_ID;
          v_invoice_to_org_id := l_line_tab(1).INVOICE_TO_ORG_ID;
          v_ship_to_org_id    := l_line_tab(1).SHIP_TO_ORG_ID;
          v_sold_to_org_id    := l_line_tab(1).SOLD_TO_ORG_ID;
          v_flow_status_code  := l_line_tab(1).FLOW_STATUS_CODE;
        END IF;
        --Clear out the line array before adding any new parts
        FOR i IN l_line_tab.FIRST..l_line_tab.LAST LOOP
          l_line_tab.DELETE(i);
          l_line_val_tab.DELETE(i);
          l_line_adj_tab.DELETE(i);
          l_line_adj_val_tab.DELETE(i);
          l_line_price_att_tab.DELETE(i);
          l_line_adj_att_tab.DELETE(i);
          l_line_adj_assoc_tab.DELETE(i);
          l_line_scredit_tab.DELETE(i);
          l_line_scredit_val_tab.DELETE(i);
          l_lot_serial_tab.DELETE(i);
          l_lot_serial_val_tab.DELETE(i);
        END LOOP;
        /* ********** Gather Order Lines ********** */
        OPEN c_order_parts;
        FETCH c_order_parts BULK COLLECT INTO v_order_parts;
        CLOSE c_order_parts;
        FOR i IN v_order_parts.FIRST..v_order_parts.LAST LOOP
          v_item_id := GET_ITEM_ID(v_order_parts(i).PART_NUMBER, v_oracle_order.SHIP_FROM_ORG_ID);
          IF v_item_id IS NULL THEN
            RAISE_APPLICATION_ERROR(-20001, 'Error selecting part number ' || v_order_parts(i).PART_NUMBER);
          END IF;
          --Clear line first
          l_line_tab(i)             := OE_Order_Pub.G_Miss_Line_Rec;
             l_line_val_tab(i)         := OE_ORDER_PUB.G_MISS_LINE_VAL_REC;
          l_line_adj_tab(i)             := OE_ORDER_PUB.G_MISS_LINE_ADJ_REC;
          l_line_adj_val_tab(i)     := OE_ORDER_PUB.G_MISS_LINE_ADJ_VAL_REC;
          l_line_price_att_tab(i)      := OE_ORDER_PUB.G_MISS_LINE_PRICE_ATT_REC ;
          l_line_adj_att_tab(i)     := OE_ORDER_PUB.G_MISS_LINE_ADJ_ATT_REC;
          l_line_adj_assoc_tab(i)   := OE_ORDER_PUB.G_MISS_LINE_ADJ_ASSOC_REC;
          l_line_scredit_tab(i)     := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_REC;
          l_line_scredit_val_tab(i) := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_VAL_REC;
          l_lot_serial_tab(i)       := OE_ORDER_PUB.G_MISS_LOT_SERIAL_REC;
          l_lot_serial_val_tab(i)   := OE_ORDER_PUB.G_MISS_LOT_SERIAL_VAL_REC;
          --Set line information
             l_line_tab(i).PRICE_LIST_ID          := v_oracle_order.PRICE_LIST_ID;
          l_line_tab(i).header_id              := v_oracle_order.header_id;
          l_line_tab(i).inventory_item_id      := v_item_id;
          l_line_tab(i).ordered_quantity       := v_order_parts(i).QUANTITY;
          l_line_tab(i).operation              := l_op_code;
          l_line_tab(i).unit_list_price        := 0;
          l_line_tab(i).ship_from_org_id       := v_oracle_order.ship_from_org_id;
          l_line_tab(i).program_id             := fnd_global.conc_program_id ;
          l_line_tab(i).program_application_id := fnd_global.PROG_APPL_ID;
          l_line_tab(i).order_source_id        := v_source_id;
          l_line_tab(i).calculate_price_flag   := 'N' ;
          l_line_tab(i).unit_selling_price     := 0.00 ;
             l_line_tab(i).request_date           := v_apex_order.onsite_date;
             l_line_tab(i).Schedule_ship_date     := v_apex_order.onsite_date;
             l_line_tab(i).promise_date           := null;
          l_line_tab(i).invoice_to_org_id      := v_invoice_to_org_id;
          l_line_tab(i).ship_to_org_id         := v_ship_to_org_id;
          l_line_tab(i).sold_to_org_id         := v_sold_to_org_id;
          l_line_tab(i).ship_to_contact_id     := v_contact_id;
        END LOOP;
    --OE_DEBUG_PUB.DEBUG_ON;
    --OE_DEBUG_PUB.Initialize;
    --OE_DEBUG_PUB.SetDebugLevel(5);
        --Add lines to order
        OE_Order_Pub.Process_order(p_api_version_number            =>      1.0,
                                   p_init_msg_list                 =>      FND_API.G_TRUE,
                                   p_return_values                 =>      FND_API.G_TRUE,
                                   p_action_commit                 =>      FND_API.G_FALSE,
                                   x_return_status                 =>      l_ret_status,
                                   x_msg_count                     =>      l_msg_count,
                                   x_msg_data                      =>      l_msg_data,
                                   p_header_rec                    =>  l_header_rec,
                                   p_old_header_rec                =>  l_header_rec,
                                   p_header_val_rec                =>  l_header_val_rec,
                                   p_old_header_val_rec            =>  l_header_val_rec,
                                   p_Header_Adj_tbl                =>  l_Header_Adj_tab,
                                   p_old_Header_Adj_tbl            =>  l_Header_Adj_tab,
                                   p_Header_Adj_val_tbl            =>  l_Header_Adj_val_tab,
                                   p_old_Header_Adj_val_tbl        =>  l_Header_Adj_val_tab,
                                   p_Header_price_Att_tbl          =>  l_Header_price_Att_tab,
                                   p_old_Header_Price_Att_tbl      =>  l_Header_price_Att_tab,
                                   p_Header_Adj_Att_tbl            =>  l_Header_Adj_Att_tab,
                                   p_old_Header_Adj_Att_tbl        =>  l_Header_Adj_Att_tab,
                                   p_Header_Adj_Assoc_tbl          =>  l_Header_Adj_Assoc_tab,
                                   p_old_Header_Adj_Assoc_tbl      =>  l_Header_Adj_Assoc_tab,
                                   p_Header_Scredit_tbl            =>  l_Header_Scredit_tab,
                                   p_old_Header_Scredit_tbl        =>  l_Header_Scredit_tab,
                                   p_Header_Scredit_val_tbl        =>  l_Header_Scredit_val_tab,
                                   p_old_Header_Scredit_val_tbl    =>  l_Header_Scredit_val_tab,
                                   p_line_tbl                      =>  l_line_tab,
                                   p_line_val_tbl                  =>  l_line_val_tab,
                                   p_Line_Adj_tbl                  =>  l_line_adj_tab,
                                   p_Line_Adj_val_tbl              =>  l_line_adj_val_tab,
                                   p_Line_price_Att_tbl            =>  l_line_price_att_tab,
                                   p_Line_Adj_Att_tbl              =>  l_line_adj_att_tab,
                                   p_Line_Adj_Assoc_tbl            =>  l_line_adj_assoc_tab,
                                   p_Line_Scredit_tbl              =>  l_line_scredit_tab,
                                   p_Line_Scredit_val_tbl          =>  l_line_scredit_val_tab,
                                   p_Lot_Serial_tbl                =>  l_lot_serial_tab,
                                   p_Lot_Serial_val_tbl            =>  l_lot_serial_val_tab,
                                   p_action_request_tbl            =>  OE_ORDER_PUB.G_MISS_REQUEST_TBL,
                                   x_header_rec                    =>      p_header_rec,
                                   x_header_val_rec                =>      p_header_val_rec,
                                   x_Header_Adj_tbl                =>      p_Header_Adj_tab,
                                   x_Header_Adj_val_tbl            =>      p_Header_Adj_val_tab,
                                   x_Header_price_Att_tbl          =>      p_Header_price_Att_tab,
                                   x_Header_Adj_Att_tbl            =>      p_Header_Adj_Att_tab,
                                   x_Header_Adj_Assoc_tbl          =>      p_Header_Adj_Assoc_tab,
                                   x_Header_Scredit_tbl            =>      p_Header_Scredit_tab,
                                   x_Header_Scredit_val_tbl        =>      p_Header_Scredit_val_tab,
                                   x_line_tbl                      =>      p_line_tab,
                                   x_line_val_tbl                  =>      p_line_val_tab,
                                   x_line_adj_tbl                  =>      p_line_adj_tab,
                                   x_line_adj_val_tbl              =>      p_line_adj_val_tab,
                                   x_line_price_att_tbl            =>      p_line_price_att_tab,
                                   x_line_adj_att_tbl              =>      p_line_adj_att_tab,
                                   x_line_adj_assoc_tbl            =>      p_line_adj_assoc_tab,
                                   x_line_scredit_tbl              =>      p_line_scredit_tab,
                                   x_line_scredit_val_tbl          =>      p_line_scredit_val_tab,
                                   x_lot_serial_tbl                =>      p_lot_serial_tab,
                                   x_lot_serial_val_tbl            =>      p_lot_serial_val_tab,
                                   x_action_request_tbl            =>      p_action_request_tab);
    --  OE_DEBUG_PUB.DEBUG_OFF;
        p_return_code := l_ret_status;
        IF l_ret_status != 'S' THEN
          DBMS_OUTPUT.PUT_LINE(l_msg_data);
          IF l_msg_count = 1 THEN
            p_status := OE_Msg_Pub.Get(1,'F');
          ELSE
            FOR i IN 1..l_msg_count LOOP
              p_status := OE_Msg_Pub.Get(i,'F') || '<br />';
            END LOOP;
          END IF;
          p_status := 'Error loading lines<br>' || p_status;
        ELSE
          p_status := 'Order Processed Successfully<br>' || v_order_parts.COUNT || ' Line(s) Loaded';
        END IF;
    --    WHILE OE_DEBUG_PUB.G_DEBUG_INDEX < OE_DEBUG_PUB.CountDebug LOOP
    --      OE_DEBUG_PUB.GetNext(v_debug);
    --      DBMS_OUTPUT.PUT_LINE(v_debug);
    --    END LOOP;
      EXCEPTION
        WHEN OTHERS THEN
          ROLLBACK;
          RAISE;
      END TEK_ORD_PROCESS_ORDER;Thanks!
    Jonathan Hart

    Hello,
    Try the following
    1) Check if any processing constraints are applied to customer/location
    2) Try to create a new customer and associate internal location.
    Create a new order to reproduce the issue
    Thanks
    -Arif

  • Difference amount in sales order and billing document (For one line item)

    Hi Experts,
    User created sales order with 3 line items and billing document. but problem is that there is difference in value of sale order and billing only for line item 10. The remaining items values are same in sales order & billing doc.if I check in sales order condition I found that VPRS condition is used and the value is 692.13and the amount is 3245.26in sales order. But if suppose I check the same value in billing doc the value is 0.69 and the amount is 3245.28. Can u suggest me which configuration I have to check for this.
    I also checked change lock but there is no change in sales and billing document & Material
    Regards
    Sunina agarwal

    Morning Sunina
    Now consider this scenario
    Item a - 10
    Item b - 20
    Item c - 30
    and the validity of condition rec for item C is 31st of Jan
    after 31st JAN the record changes or there isn't any.
    In Copy control the pricing type is 'B' i.e., carry out new pricing.
    Now if the document is created in January it will take all the above prices. and this document is then billed in Feb. Now the copycontrol, whilst copying the prices, will predetermine the same.
    Now your task is to check if there was user intervention, check the pricing in order and check what condition types got affected in order and in billing.
    If your scenario is still not amongst the above cases...
    I don't know what to do, if you figure out please let us also know, god know when we would face the same scenario....
    Take care

  • Serial Number validation during Delivery Creation itself(PGI-system checks)

    Process:
    Sales Order PR(Purchase Order) GR( New Serial Numbers are created automatically or manually keyed in)
    Once the Goods Receipt is received, we do the (SO) DELIVERYu2014SERIAL NUMBER ASSIGNMENT Post Goods Issue
    Issue:
    Current Serial Number Profile Management does not do a valid serial number check during DELIVERY CREATION where we do a SERIAL NUMBER ASSIGNMENT.
    Only during POST GOODS ISSUE, the check happens for valid serial numbers; this is too late in the game for business as there is a time lag of 3 days from the DELIVERY CREATION and PGI.
    Reason being--- We donu2019t check the following u201C Existing Stock Checku201D( which does a serial number validation during delivery creation as well)
    SPRO>Plant Maintenance and Customer Service>Master Data in Plant Maintenance and Customer Service>Technical Objects>Serial Number Management>Define Serial Number Profiles
    If we check this option, the business requirement to do a valid serial number check does happen during delivery creation, however we cannot create new serial numbers during Purchase Order- GOODS RECEIPT.
    QUESTION:
    Can we have the system check the valid serial numbers from stock during delivery creation and serial number assignment.
    And Also create new serial numbers during Purchase Order- Goods Receipt.

    Hi
    1.In std SAP its not possible to check the serail number during Delivery creation, through enhancement it can be done.
    2.During GR for PO serial numbers can be created.
    Rgds
    Ramesh

  • Order related billing for third party. Third party order..

    Hi
    While we are running batch job for billing system is throwing below error.
    Order related billing for third party. Third party order..

    Dear Nortel,
    Can you Please check whether, during the item category configuration for TAS (T. Code: VOV7);  you have marked relevant for billing indicator as F?
    Also, maintained the copy control (T. Code: VTFA) between OR => IVA (for TAS) as follows:
    Copying requirement = '013',
    Invoiced quantity = 'F', (*)
    Quantity/value = '+',
    Pricing type = 'G'.
    Best Regards,
    Amit
    Note: I would recommend you to Please go-through following document in full, atleast fo once. This will definitely help you to review your settings for Third Party Order Process Customization.
    [Third Party Process|http://yasosap.wordpress.com/2008/10/22/third-party-scenario/]

  • Standard COGS cannot be Transferred from Sales Order to Billing Document

    I did a test in current client with the following steps:
    Create Sales Order for Configurable Material -> Execute Sales Order Costing Run, marked and Saved the result via CK51 -> Create Prodcution Order for such Sales Order -> Confirm Prod Order -> Conduct GR per the Prod Order -> Conduct Goods Delivery for the Sales Order-> Create Billing.
    (There is not any costing value during the whole process)
    There are many Value Fields in the CO-PA document regarding to this billing, the value of standard COGS items(including Material Cost, Period Machine, Variable Labor etc) are also included and their value are expected to be transferred from Sales Order. However,  in my testing, those COGS value failed to be transferred to Billing document. I am not sure whether there is any config related. (KEPC hs already been done in such case). Would any expert can help on that?

    en, It is solved now. Untick "Transfer aux. CC Split" in KE40, then the value can transported to billing.
    Edited by: Ying Zhu on Nov 18, 2008 1:10 PM

  • How to Avoid Duplicate Pricing Condition Types In  Sales Order and Billing

    Hi SAP Gurus
    I have a requirement in Pricing (Sales and Distribution). We have  issue duplicated condition types in Sales order and it causes wrong posting in to accounts.
    I want make them inactive duplicated Condition type in Sales order and Billing Documents.
    Please advice me how to make inactive status to duplicated Condition types
    Thanks  in Advance.
    Ravikanth

    Hi
    You can use Exclusion Group
    You can define 2 Groups and include 1 condition type in each
    and define exlusion procedure
    A   Best condition between condition types                
    B   Best condition within the condition type              
    C   Best condition between the two exclusion groups       
    D   Exclusive                                             
    E   Least favorable within the condition type             
    F   Least favorable betweent the two exclusion groups     
    you can use Exclusive to set your condition type or as per your requirement
    Regards
    Jitesh

  • AIA PIPs for BRM(Order to bill and agent assited billing care)

    Hi,
    I have installed AIA11g FP and SOA11g on Weblogic 10. Now I would like to install PIPs for oracle billing and revenue management(Order to bill).
    I can only find AIA 2.5 release which is not compatible with weblogic 10.
    Could any one please let me know where can I get PIPs for SOA 11g and if not any work around to install the 2.5 PIPs on SOA11g.
    Thanks in advance.
    -Raj
    Edited by: user8722115 on 28.12.2010 6:16

    Hello there,
    My questions are similar to this one, so I post here too.
    I would like to know if AIA 2.5 could be installed on a "Oracle SOA Suite 10g
    (10.1.3.5.1) for WebLogic Server (10.3.1)" or if the only certified environment
    is the one described into the E2103301.pdf doc "AIA 2.5 Installation & Upgrade
    Guide" of January 2011, i.e. Oracle SOA suite 10.1.3.4 MLR#8 (+ patches ) with
    WebLogic 9.2 MP3.
    Also, what about AIA 2.5 with Oracle Fusion Middleware 11g?
    Regards,
    - KaRiNe -
    Motto : "Unsubmissive attitude!

  • ERP - SD Sales orders with billing plan (material number change appear)

    Sales and Distribution.
    Regarding sales orders with billing plan.
    We create the sales order and create billing plan at header or item level.
    We issue down payment request(s) upon receipt of sales order.
    Often during the life time of the sales order one or more of the material numbers are changed after the down payment request(s) has been issued and paid by the client.
    Our issue is that prior to changing the material number in the sales order we have to reverse the payment(s), reverse the down payment request(s) and after the material number change re-issue the down payment request(s) and register the payment again.
    We wish to find a solution avoiding all the reversals.
    If you have a similar situation please inform how to handle material number change in the sales orders with billing plan.
    Best regards
    Lise

    Dear Consultor SD ,
    There is no setting to create the invoice based on schedule line.
    What you can possibly do is create multiple deliveries based on the schedule line and
    then invoice the individual deliveries.
    If you want system to split the deliveries based on schedule line, then you will have to include Schedule line also
    in the COMBINATION REQUIREMENT in VTLA.
    Thanks & Regards,
    Hegal K Charles

  • Cash sales Order Related Billing

    Dear Forum Members
    Hi
    I need clarification on the following. Both in cash sales and regular sales orders , delivery , PGI and then billing is involved. So why we call cash sales process as  order related billing. I find that unless goods are posted in cash sales delivery , invoice can not be created like in normal sales order. Request your inputs
    Thanks in advance
    regards
    narasimha

    I need clarification on the following. Both in cash sales and regular sales orders , delivery , PGI and then billing is involved. So why we call cash sales process as order related billing. I find that unless goods are posted in cash sales delivery , invoice can not be created like in normal sales order. Request your inputs
    Hi narsimha
    There is a lot of difference between cash sales order  and normal sales order
    The differences are
    cash sale document type - BV , standard sales order document type - OR
    Item category for cash sale is BVN and normal cash sales order it is TAN.
    In VOV8, if you go to BV document type details , shipping conditions will be on where as in OR , shipping conditions will not be on .
    In cash sale order , automatically a  delivery number will be created in the background once you save the cash sale order , whereas in normal sales order , after saving order you need to do delivery and then save it then only delivery  number will be generated
    In cash sale  the billing date will be todays date only where as in normal sale billing date can be after 1 week also , depends on the availability check
    In normal sales cycle , you get invoice in billing F2, where as in Cash sale when you create a cash sale order the output you get is the invoice for the customer.
    In cash sale  there wont be any credit , where as in normal sales order there will be credit for customers .
    Example :
    cash sale - A customer purchasing goods in a retail outlet and then and there he is paying cash (no credit) to the retailer.
    Normal sale - Customer purchasing goods but paying in installments , that means he is a regualar customer and he is getting credit.
    Why cash sale  is order related billing ?
    Because , once you save the cash sale order automatically the delivery number is also created. now when you go to VL02n and enter the picking quantity it has to be fully referenced , of how much you have given in the cash sale order . But if you try to do partial delivery . you cant do again , you need to change the quantity  what you have given in the delivery and enter in VA02 and enter the same quantity. then only the order will be closed
    check the billing relevance for the item category BVN ( it is order related billing)
    normal sales order is delivery realted billing ?
    Because the item category for TAN is  relavent for delivery and Billing relevence is different from BVN
    you can do paritial deliveries in normal sales cycle till complete order quantity is referenced
    Reward points if useful
    Regards
    Srinath

  • Order related billing for manufacturing

    Can anybody explain to me the effects of order-related billing in manufacturing? What if deliveries is not the same as sales order. Or should i just make another order type for this?
    Thanks in advance!

    Dear Joker,
    -->Why you want to go for sales order related billing with out delivery reference !!
    -->Are you not creating any delivery after sales order !!
    -->Delivery is entirely different from sales order.
    -->As per the satnsard service related activities will be billed with reference to the sales order because here there will not be any physical movement of goods.
    -->When ever there is physical movements of the goods you need to create delivery.
    -->When ever there is delivery you better to create billing document with reference to the delivery.
    I hope this will help you,
    Regards,
    Murali.

Maybe you are looking for