Scheduling agreement_track the quantity

Hi Experts,
The requirement of the customer is entered in a Scheduling agreement. Sometimes the schedules are changed in the quantity only. The customer needs a report that should show the quantity entered earlier and changed later. The scheduling agreement shows the latest quantity entered in the agreement. The quantity entered earlier is not available in the Scheduling agreement.  Is there any way to track the quantity entered earlier? Let me know the way to track if it is available.
Thanks,
-K.Bharathi-

Hi,
Use CDHDR and CDPOS tables.
Goto VA33 or VA32. In menu Click on environment choose changes.
Enter agreement number and execute. select the line click on choose button. you will get details.
Regards,
Chandra

Similar Messages

  • Changing the quantity of Schedule line for an product runtime

    Hi CRM friends,
    When I am saving the Order after changing the quantity (say from <b>5 to 10</b>); Now base on some conditions, quantity must be reverted back to the original quantity (i.e to 5). This has to be done while saving the order in a Call back function module. I have the following parameters:
    1. Item Guid
    2. Old Value (i.e 5)
    3. Header Guid
    I have tried using FM “CRM_SCHEDLIN_I_MAINTAIN_OW” using the following code:
    DATA: LS_FIELDS TYPE CRMT_INPUT_FIELD,
    LT_FIELDS TYPE CRMT_INPUT_FIELD_TAB,
    LS_QTY TYPE CRMT_SCHEDLIN_EXTD,
    LS_SCHEDLIN TYPE CRMT_SCHEDLIN_I_COM,
    LT_SCHEDLIN TYPE CRMT_SCHEDLIN_I_COMT.
    LS_FIELD_NAMES-FIELDNAME = 'QUANTITY'.
    LS_FIELD_NAMES-CHANGEABLE = 'X'.
    INSERT LS_FIELD_NAMES INTO TABLE LS_FIELDS-FIELD_NAMES.
    LS_FIELDS-REF_HANDLE = 1.
    LS_FIELDS-REF_GUID = IV_OBJECT_GUID.” A88DE289D91D464C81052646DB6856BB
    LS_FIELDS-REF_KIND = 'B'.
    LS_FIELDS-OBJECTNAME = 'SCHEDLIN_I'.
    INSERT LS_FIELDS INTO TABLE LT_FIELDS.
    LS_QTY-GUID = ls_schedlin_i_new-GUID. “A88DE289D91D464C81052646DB6856BB / 1D72D133BF86FC4F81BC8F0F88438136(From table CRMD_SCHEDLIN passing the item guid )
    LS_QTY-ITEM_GUID =  IV_OBJECT_GUID. “A88DE289D91D464C81052646DB6856BB
    LS_QTY-QUANTITY = lV_OLD_ORDER_QTY.
    LS_QTY-MODE = 'B'.
    LS_QTY-EVENT_TYPE_APPL = 'CRMS'.
    LS_QTY-EVENT_TYPE = 'ORDER'.
    LS_QTY-SCHED_NO_EXT = '0001'.
    LS_SCHEDLIN-REF_GUID = IV_OBJECT_GUID.
    LS_SCHEDLIN-REF_HANDLE = 1.
    LS_SCHEDLIN-MODE = 'B'.
    INSERT LS_QTY INTO TABLE LS_SCHEDLIN-SCHEDLINES.
    CALL FUNCTION 'CRM_SCHEDLIN_I_MAINTAIN_OW'
    CHANGING
    CS_SCHEDLIN_I_COM = LS_SCHEDLIN
    CT_INPUT_FIELDS = LT_FIELDS.
    The code is executing fine, but the quantity changes to new one (i.e. <b>10</b>) Please tell me whether there is a mistake in passing the parameters. For LS_QTY-guid I have tried passing with item guid as well as schedule line guid from the table CRMD_SCHEDLIN.
    Also tell me there is any other way.
    Regards
    Naveen.

    hi use this code in
    order_save-prepare method
    The refrence code is from FM 'CRM_COMP_PROD_INS_AS_SUBITEMS' and include LCRM_COMP_PROD_UIF13
    It does work. I am copying the main line item in sub line item and changing the quantity.
    regards
    M
      cs_schedlin_i-ref_handle        = iv_handle.
    fill input_field
      ls_input_field-ref_handle       = iv_handle.
      ls_input_field-ref_kind         = gc_object_ref_kind-orderadm_i.
      ls_input_field-objectname       = gc_object_name-schedlin.
      get handle
        CALL FUNCTION 'CRM_INTLAY_GET_HANDLE'
          IMPORTING
            ev_handle = ls_schedlines-handle.
        ls_schedlines-mode             = gc_mode-create.
        ls_schedlines-parent_sdln_guid = iv_own_item_guid.
        ls_schedlines-logical_key      = ls_schedlines-handle.
        ls_schedlines-quantity         = 1.
        INSERT ls_schedlines INTO TABLE cs_schedlin_i-schedlines.
        ls_input_field_names-fieldname  = gc_fld_schedlin-handle.
        INSERT ls_input_field_names INTO
                                    TABLE ls_input_field-field_names.
        ls_input_field_names-fieldname  = gc_fld_schedlin-parent_sdln_guid.
        INSERT ls_input_field_names INTO
                                    TABLE ls_input_field-field_names.
        ls_input_field_names-fieldname  = gc_fld_schedlin-logical_key.
        INSERT ls_input_field_names INTO
                                    TABLE ls_input_field-field_names.
        ls_input_field_names-fieldname  = gc_fld_schedlin-quantity.
        INSERT ls_input_field_names INTO
                                    TABLE ls_input_field-field_names.
        ls_input_field-logical_key = ls_schedlines-handle.
        INSERT ls_input_field INTO TABLE ct_input_field.

  • Restrict the Quantity in the Scheduling Agreement

    Dear All,
    I have a scenario where the client wants to restrict the quantity in scheduling agreement for particular customer.
    Scenario:
    Scheduling Agreement(Valid: 01.04.2011 to 31.03.2012) should be created for XYZ customer with target qty as 3000 per year or per qtr.(User enters the schedule lines manually only.)
    Schedule lines:
    Date                             Order qty
    01.04.2011                   500
    01.06.2011                   500
    28.07.2011                   100
    31.12.2011                   900
    01.01.2012                   500
    01.02.2012                    700 
    Here when the user enters the 700 qty,system has to give error message as it is exceeds the target qty.
    Is it possible in standard or do we need to have to do any development.
    Kindly share your inputs
    With regards
    Azeez.Mohammed

    Try with badi BADI_SD_SCH_GETWAGFZ or user exit SDTRM001
    G. Lakshmipathi

  • Need a user exit to modify the quantity schedules in a sales contract

    Hi,
      I am using ECC 6.0 with IS OIL. Need a user-exit to update the quantity schedule(table OIA05) in the sales contract VA42.
    I have a new field called timestamp in the table OIA05 which needs to be updated with the timestamp value.
    I tried the user exit MV45AFZZ in USEREXIT_SAVE_DOCUMENT_PREPARE and USEREXIT_SAVE_DOCUMENT to update the values. But the new values are not being reflected. Can you please help me in this regard.
    Thanks,
    Best regards,
    Ajith

    that will allow me to append an initial line with <accit> pointing to the line. Therefore I just have to modify <accit> and the new line will then have my changes?
    Yep, that is exactly it.    So after the APPEND statement, simply fill the fields of the <accit>.
    append initial line to im_document-item ASSIGNING <accit>.
    <accit>-field1 = 'Blah'.
    <accit>-field2 = 'Blah'.
    Regards,
    Rich Heilman

  • Order more that the quantity in the schedule agreement

    Hi,
        Is it possible to order more that the quantity in the schedule agreement ?
       If yes the please explain in detail.
    Regards
    Asim

    Hi,
    I hope its not possible to create schedule lines more than the quantity mentioned in scheduling agreement.
    Regards,
    Prabu

  • Schedule line, delivered quantity disappeared

    We have a sales order with four line items. All are the same material, except the quantities and prices are different. On several of these positions we have had (partial) deliveries. When we check the schedule lines we can clearly see which quantity already has been delivered for that particular line.
    Except for item line 20. We have already delivered and invoiced 15.000 pieces, but this is not displayed in the linking schedule line. The total line item quantitiy is 52.500 pieces and this is the quantity we see in the schedule line (already confirmed).
    I have check SAP note 717627 and the following is stated there:
    A partial delivery is already created for a request item.
    If you now set a delivery block at schedule line level, the sent quantity (VSMNG) is no longer assigned to the delivery-blocked schedule line.
    The sent quantity may no longer be able to be assigned to a schedule line, because there is no longer a schedule line open at the time of delivery.
    This system behavior is standard and intentional.
    In R/3 there is no fixed assignment between the delivery and the order schedule line. The assignment is determined dynamically and depends on the delivery-relevance of the schedule line.
    If the delivery block is then removed again, a new assignment of the quantities delivered is performed for order schedule lines.
    And:
    This is intentional, standard behavior.
    Could this relate to the problems I am facing?
    Message was edited by:
            Jan Laros

    I have not presented my problem to them. It is ofcourse possible that this SAP note is not applicable for my problem, but I noticed the first paragraphs as relevant.
    The problem now seems solved by the way. An order desk/planning empoyees has changed the order quantity and the confirmed quantity to 15.000 pieces. So this line is now fully delivered. Th edelivered quantity is now stated in the schedule line.

  • Delivery Schedule within the Firm Zone of a SA not firming

    Hello,
    We have delivery schedules within firm zone (defined in the Additional Data in item detail) of a SA but they are not firmed by MRP run.
    Here is the material master setting and other relevant information:
    MRP Type = PD (firming type = blank)
    Planning Time Fence = 0 (in MRP1 view)
    Not check the flag in OMIN to firm only the transmitted schedule line
    Maintained Firm/Trade-off zone (as mentioned above) and Binding on MRP = '1' in an item of a SA
    The delivery schedule supposedly be firmed based on the firm zone but is keep pushed out instead after MRP run.
    I appreciate very much if you can tell what's causing the problem and how to remedy it.
    Kind Regards,
    Eddie

    Eddie,
    Your batch job is OK however until the delivery schedule with new schedule line proposals has been transmitted they can be changed by MRP as they are not yet firm.
    From my experience the OMIN settings affect the MRP type firming settings (P1, P2, ...) not the SA related firm settings. Here the binding on MRP key is determining what MRP can change or can not change.
    See here the extract out of the help function on the OMIN setting.
    Firm Only Schedule Lines Transmitted to Vendor by Purchasing
    If you set this indicator, the system only firms the schedule lines which have been transmitted to the vendor by the purchasing department.
    Use
    This function is used if you use a planning time fence in the planning run. If you use firming type 1 ("Automatic firming and order proposals are displaced"), the system automatically firms existing schedule lines when they move into the planning time fence.
    Use this indicator if you only want the system to firm schedule lines that have already been checked and passed on to the vendor per message transfer. If, for example, the quantity of a schedule line was changed but the changed quantity has not yet been passed on to the vendor, then the old quantity that has already been passed on to the vendor is firmed as soon as this schedule line moves into the planning time fence.

  • How to change the Quantity in the Credit Memo using BAPI

    Hi All,
    I have a requirement in which i need to change the Quantity Value field available in the Credit Memo using BAPI.
    Can anyone help me out to get any available BAPI to perform this action or any Solution to change the Quantity in the Credit Memo ?.
    Regards,
    Muruganand.K

    Hi,
    Try using BAPI_SALESORDER_CHANGE.
    DATA: s_order_header_in LIKE bapisdh1.
    DATA: s_order_header_inx LIKE bapisdh1x.
    DATA: BEGIN OF i_order_item_in OCCURS 0.
    INCLUDE STRUCTURE bapisditm.
    DATA: END OF i_order_item_in.
    DATA: BEGIN OF i_order_item_inx OCCURS 0.
    INCLUDE STRUCTURE bapisditmx.
    DATA: END OF i_order_item_inx.
    DATA: BEGIN OF it_return OCCURS 0.
    INCLUDE STRUCTURE bapiret2.
    DATA: END OF it_return.
    DATA: BEGIN OF i_sched OCCURS 10.
    INCLUDE STRUCTURE bapischdl.
    DATA: END OF i_sched.
    DATA: BEGIN OF i_schedx OCCURS 10.
    INCLUDE STRUCTURE bapischdlx.
    DATA: END OF i_schedx.
    s_order_header_inx-updateflag = 'U'.
    i_order_item_in-itm_number = vbap-posnr.
    i_order_item_in-TARGET_QTY = rv45a-zzqty.
    i_order_item_inx-updateflag = 'U'.
    i_order_item_inx-itm_number = vbap-posnr.
    i_order_item_inx-TARGET_QTY = 'X'.
    APPEND: i_order_item_in, i_order_item_inx.
    i_sched-itm_number = vbap-posnr.
    i_sched-sched_line = '0002'.
    i_sched-req_qty = rv45a-zzqty.
    APPEND i_sched.
    i_schedx-itm_number = vbap-posnr.
    i_schedx-sched_line = '0002'.
    i_schedx-updateflag = 'U'.
    i_schedx-req_qty = 'X'.
    APPEND i_schedx.
    IF sy-subrc = 0.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
    salesdocument = xvbap-vbeln
    order_header_in = s_order_header_in
    order_header_inx = s_order_header_inx
    behave_when_error = 'P'
    TABLES
    return = it_return
    order_item_in = i_order_item_in
    order_item_inx = i_order_item_inx
    schedule_lines = i_sched
    schedule_linesx = i_schedx.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    ENDIF.
    Change the fields as per your logic before populating orders item and schedule line data.
    You have to pass the quantity in schedule line items as well in case you want to change quanity in order.
    KR Jaideep,
    Edited by: Jaideep Sharma on Jun 22, 2009 7:35 PM

  • Scheduled for delivery quantity shouldnt be transffered to another plant

    dear all,
    we have a case in which we need to prevent scheduled for delivery quantity from being transferred to another plant.
    the problem is that when creating a sales order and a delivery, and before the PGI,, the system allows moving the quantitity to another plant. and this causes a problem when trying to create a PGI ...
    any suggestions please

    in the checking rule ( if stk transfer, you can get it from OLME> purchase order > create stock transport order ) incude reservations, deliveriies and sales order.
    in assign del type and checking rule, you can find the checking rule used

  • 'BAPI_SALESORDER_CHANGE - Want to change the Quantity on Line Item in SO

    Hi
    I am facing a problem. The requirement is to change the Sales Order Item Quantity. I basically planned to update the quantity of Schedule Item which needs to be changed. When I run the below code, it works and says the Sales Order changed succesfully. However I get an express message saying the Database update failure. I don't get any sort of technical information.
    Appreciate if you could help me finding the error.
    Thanks
    regards
    girish
    Note --> I am trying to change the Quantity for 2 line item in SO '56' to 40 Units.
    REPORT ZBAPI_SALESORD_CHANGE.
    data : zBAPISDHD type /AFS/BAPISDHD,
    zORDER_HEADER_INX TYPE /AFS/BAPISDHDX,
    zSALESDOCUMENT type BAPIVBELN-VBELN.
    data : zORDER_ITEMS_IN like /AFS/BAPISDITM occurs 0 with header line,
    zORDER_ITEM_INX like /AFS/BAPISDITMX occurs 0 with header line,
    zORDER_SCHEDULES_IN like /AFS/BAPISDSCHD occurs 0 with header line,
    ZSCHEDULE_LINESX LIKE /AFS/BAPISDSCHDX occurs 0 with header line,
    zORDER_PARTNERS like BAPIPARNR occurs 0 with header line,
    zRETURN like BAPIRET2 occurs 0 with header line,
    so_no type BAPIVBELN-VBELN,
    zPARTNERCHANGES like BAPIPARNRC occurs 0 with header line.
    data : l_comp_qty like zORDER_ITEMS_IN-COMP_QUANT.
    data : g_qty like /AFS/BAPISDSCHD-REQ_QTY.
    g_qty = 40.
    l_comp_qty = 40.
    clear : zBAPISDHD.
    so_no = '0000000056'.
    zBAPISDHD-REFOBJTYPE = '/AFS/ORDER'.
    zBAPISDHD-SALES_ORG = 'BP01'.
    zBAPISDHD-DISTR_CHAN = '02'.
    zBAPISDHD-DIVISION = '01'.
    zBAPISDHD-PMNTTRMS = '0001'.
    zORDER_HEADER_INX-UPDATEFLAG = 'U'.
    zORDER_HEADER_INX-SALES_ORG = 'X'.
    zORDER_HEADER_INX-DISTR_CHAN = 'X'.
    zORDER_HEADER_INX-DIVISION = 'X'.
    zORDER_HEADER_INX-PMNTTRMS = 'X'.
    **********ITEM ***************************************
    zORDER_ITEMS_IN-ITM_NUMBER = '00020'.
    zORDER_ITEMS_IN-MATERIAL = 'F1202'.
    zORDER_ITEMS_IN-PLANT = 'BP01'.
    zORDER_ITEMS_IN-ITEM_CATEG = 'TAS'.
    zORDER_ITEMS_IN-SHIP_POINT = 'BP01'.
    zORDER_ITEMS_IN-COMP_QUANT = l_comp_qty.
    zORDER_ITEMS_IN-TARGET_QTY = l_comp_qty.
    zORDER_ITEMS_IN-TARGET_QU = 'ST'.
    append zORDER_ITEMS_IN.
    zORDER_ITEM_INX-ITM_NUMBER = '00020'.
    zORDER_ITEM_INX-UPDATEFLAG = 'U'.
    zORDER_ITEM_INX-MATERIAL = 'X'.
    zORDER_ITEM_INX-PLANT = 'X'.
    zORDER_ITEM_INX-ITEM_CATEG = 'X'.
    zORDER_ITEM_INX-SHIP_POINT = 'X'.
    zORDER_ITEM_INX-COMP_QUANT = 'X'.
    zORDER_ITEM_INX-TARGET_QTY = 'X'.
    zORDER_ITEM_INX-TARGET_QU = 'X'.
    append zORDER_ITEM_INX.
    *********SCHEDULE LINE******************************
    refresh zORDER_SCHEDULES_IN.
    clear zORDER_SCHEDULES_IN.
    zORDER_SCHEDULES_IN-ITM_NUMBER = '000020'.
    zORDER_SCHEDULES_IN-SCHED_LINE = '0001'.
    zORDER_SCHEDULES_IN-REQ_DATE = '20070525'.
    zORDER_SCHEDULES_IN-DATE_TYPE = '1'.
    zORDER_SCHEDULES_IN-SCHED_TYPE = 'CS'.
    zORDER_SCHEDULES_IN-GRID_VALUE = 'BLK2728'.
    zORDER_SCHEDULES_IN-REQ_CATEGORY = '1DE'.
    zORDER_SCHEDULES_IN-REFOBJTYPE = '/AFS/ORDER'.
    zORDER_SCHEDULES_IN-REQ_QTY = g_qty.
    append zORDER_SCHEDULES_IN.
    refresh ZSCHEDULE_LINESX.
    clear ZSCHEDULE_LINESX.
    ZSCHEDULE_LINESX-ITM_NUMBER = '000020'.
    ZSCHEDULE_LINESX-SCHED_LINE = '0001'.
    ZSCHEDULE_LINESX-UPDATEFLAG = 'U'.
    ZSCHEDULE_LINESX-REQ_DATE = 'X'.
    ZSCHEDULE_LINESX-DATE_TYPE = 'X'.
    ZSCHEDULE_LINESX-SCHED_TYPE = 'X'.
    ZSCHEDULE_LINESX-GRID_VALUE = 'X'.
    ZSCHEDULE_LINESX-REQ_CATEGORY = 'X'.
    ZSCHEDULE_LINESX-REFOBJTYPE = 'X'.
    ZSCHEDULE_LINESX-REQ_QTY = 'X'.
    append ZSCHEDULE_LINESX.
    CALL FUNCTION '/AFS/BAPI_SALESORD_CHANGE'
    EXPORTING
    SALESDOCUMENT = so_no
    ORDER_HEADER_IN = zBAPISDHD
    ORDER_HEADER_INX = zORDER_HEADER_INX
    SIMULATION =
    BEHAVE_WHEN_ERROR = ' '
    INT_NUMBER_ASSIGNMENT = ' '
    LOGIC_SWITCH =
    TABLES
    RETURN = zRETURN
    ORDER_ITEM_IN = zORDER_ITEMS_IN
    ORDER_ITEM_INX = zORDER_ITEM_INX
    ORDER_SCHEDULE_LINES = zORDER_SCHEDULES_IN
    ORDER_SCHEDULE_LINESX = ZSCHEDULE_LINESX.
    PARTNERS =
    PARTNERCHANGES = zPARTNERCHANGES
    PARTNERADDRESSES =
    ORDER_CFGS_REF =
    ORDER_CFGS_INST =
    ORDER_CFGS_PART_OF =
    ORDER_CFGS_VALUE =
    ORDER_CFGS_BLOB =
    ORDER_CFGS_VK =
    ORDER_CFGS_REFINST =
    ORDER_TEXT =
    ORDER_KEYS =
    CONDITIONS_IN =
    CONDITIONS_INX =
    EXTENSIONIN =
    *CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
    SALESDOCUMENT = so_no
    ORDER_HEADER_IN = zBAPISDHD
    ORDER_HEADER_INX = zORDER_HEADER_INX
    TABLES
    RETURN = zRETURN
    ORDER_ITEM_IN = zORDER_ITEMS_IN
    ORDER_ITEM_INX = zORDER_ITEM_INX
    PARTNERS = zORDER_PARTNERS
    PARTNERCHANGES = zPARTNERCHANGES
    PARTNERADDRESSES =
    ORDER_CFGS_REF =
    ORDER_CFGS_INST =
    ORDER_CFGS_PART_OF =
    ORDER_CFGS_VALUE =
    ORDER_CFGS_BLOB =
    ORDER_CFGS_VK =
    ORDER_CFGS_REFINST =
    SCHEDULE_LINES = zORDER_SCHEDULES_IN
    SCHEDULE_LINESX = ZSCHEDULE_LINESX.
    ORDER_TEXT =
    ORDER_KEYS =
    CONDITIONS_IN =
    CONDITIONS_INX =
    EXTENSIONIN =
    data : s_BAPIRET2 like BAPIRET2.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    importing
    return = s_bapiret2.

    Hi,
    Refer this code: Marked in bold
    Get Line Item Details which are to be deleted
    The line items fetched but not matching with ALV data
    are the one which are copied from Reference Order
    and should be deleted from our Sales Order
      PERFORM get_line_item_details.
    To get all the uploaded data
      i_upload_2[] = i_upload[].
    This is to be executed only if the SALES ORDER
    IS CREATED WITH REFERENCE & User has selected
    the record in ALV for Order Creation
      LOOP AT i_upload INTO wa_upload_1
                        WHERE chkbx = 'X'
                          AND vbeln NE space.
        MOVE wa_upload_1 TO wa_upload.
    Clear Work Area/Local variables & Internal tables
        CLEAR : l_sales_no,
                l_item_number,
                wa_header_in,
                wa_header_inx,
                wa_curr,
                l_currency,
                l_count,
                l_counter.
        REFRESH : i_cond,
                  i_cond_inx,
                  i_sch_in,
                  i_sch_inx,
                  i_items_in,
                  i_items_inx,
                  i_return,
                  i_partner_inx.
        AT NEW seqno.
    Get the Sales Order Number for corresponding record
          READ TABLE i_result_all INTO wa_result_all WITH KEY
                                          ref_no = wa_upload-vbeln
                                          seqno  = wa_upload-seqno.
          IF sy-subrc EQ 0.
            IF NOT wa_result_all-vbeln IS INITIAL.
              l_sales_no = wa_result_all-vbeln.
            ENDIF.
          ELSE.
            CONTINUE.
          ENDIF.
          READ TABLE i_curr INTO wa_curr
                            WITH KEY vbeln = l_sales_no.
    Header Data
          CLEAR wa_header_in.
          wa_header_in-sales_org  = wa_upload-vkorg.
          wa_header_in-distr_chan = wa_upload-vtweg.
          wa_header_in-division   = wa_upload-spart.
         wa_header_in-ref_doc    = wa_upload-vbeln.
         wa_header_in-ref_doc_l  = wa_upload-vbeln.
          wa_header_in-purch_no_c = wa_upload-bstnk.
          CLEAR : wa_header_inx.
          wa_header_inx-updateflag = 'U'.
          wa_header_inx-sales_org  = 'X'.
          wa_header_inx-distr_chan = 'X'.
          wa_header_inx-division   = 'X'.
          wa_header_inx-purch_no_c = 'X'.
    Check Business Object
          CLEAR : l_bus_object.
          IF wa_upload-auart = 'ZY01' OR
             wa_upload-auart = 'ZY07' OR
             wa_upload-auart = 'ZY08' OR
             wa_upload-auart = 'ZY09' OR
             wa_upload-auart = 'ZY18' OR
             wa_upload-auart = 'ZY94' .
            l_bus_object = 'BUS2032'.
          ELSEIF
            wa_upload-auart = 'ZY10' OR
            wa_upload-auart = 'ZY11' OR
            wa_upload-auart = 'ZY27' OR
            wa_upload-auart = 'ZY28' OR
            wa_upload-auart = 'ZY92' OR
            wa_upload-auart = 'ZY93'.
            l_bus_object = 'BUS2102'.
          ELSEIF
            wa_upload-auart = 'ZY16' OR
            wa_upload-auart = 'ZY30'.
            l_bus_object = 'BUS2094'.
          ELSEIF
            wa_upload-auart = 'ZY17' OR
            wa_upload-auart = 'ZY31'.
            l_bus_object = 'BUS2096'.
          ELSEIF
            wa_upload-auart = 'ZY06' OR
            wa_upload-auart = 'ZY26'.
            l_bus_object = 'BUS2032'.
          ENDIF.
    *Populate Ship-to-party
          IF NOT wa_upload-scode IS INITIAL.
            CLEAR wa_partner_inx.
            wa_partner_inx-document    = l_sales_no.
            wa_partner_inx-itm_number  = '000000'.
            wa_partner_inx-updateflag  = 'U'.
            wa_partner_inx-partn_role  = c_we.
            wa_partner_inx-p_numb_new  = wa_upload-scode.
            wa_partner_inx-refobjtype  = l_bus_object.
            APPEND wa_partner_inx TO i_partner_inx.
          ENDIF.
    Bill to Party
          IF NOT wa_upload-bparty IS INITIAL.
            CLEAR wa_partner_inx.
            wa_partner_inx-document    = l_sales_no.
            wa_partner_inx-itm_number  = '000000'.
            wa_partner_inx-updateflag  = 'U'.
            wa_partner_inx-partn_role  = c_re.
            wa_partner_inx-p_numb_new  = wa_upload-bparty.
            wa_partner_inx-refobjtype  = l_bus_object.
            APPEND wa_partner_inx TO i_partner_inx.
          ENDIF.
    Payer
          IF NOT wa_upload-payer IS INITIAL.
            CLEAR wa_partner_inx.
            wa_partner_inx-document    = l_sales_no.
            wa_partner_inx-itm_number  = '000000'.
            wa_partner_inx-updateflag  = 'U'.
            wa_partner_inx-partn_role  = c_rg.
            wa_partner_inx-p_numb_new  = wa_upload-payer.
            wa_partner_inx-refobjtype  = l_bus_object.
            APPEND wa_partner_inx TO i_partner_inx.
          ENDIF.
    Sales Rep
          IF NOT wa_upload-salesrep IS INITIAL.
            CLEAR wa_partner_inx.
            wa_partner_inx-document    = l_sales_no.
            wa_partner_inx-itm_number  = '000000'.
            wa_partner_inx-updateflag  = 'U'.
            wa_partner_inx-partn_role  = c_ys.
            wa_partner_inx-p_numb_new  = wa_upload-salesrep.
            wa_partner_inx-refobjtype  = l_bus_object.
            APPEND wa_partner_inx TO i_partner_inx.
          ENDIF.
    Check condition type & unit price
    For the following Document Types,
    Condition Type & Unit Price are mandatory
          CLEAR : l_item_number,
                  wa_upload_2.
          LOOP AT i_upload_2 INTO wa_upload_2
                        WHERE seqno =  wa_upload-seqno
                          AND chkbx = 'X'.
            CLEAR : wa_cond,
                    wa_result.
    Get the POSNR
            PERFORM conv_alpha_input USING  wa_upload_2-matnr
                                  CHANGING  wa_upload_2-matnr.
            CLEAR : wa_items.
            READ TABLE i_items INTO wa_items
                                WITH KEY vbeln = l_sales_no
                                         matnr = wa_upload_2-matnr.
    Check condition types
            IF wa_upload_2-auart = 'ZY16' OR
               wa_upload_2-auart = 'ZY17' OR
               wa_upload_2-auart = 'ZY30' OR
               wa_upload_2-auart = 'ZY31'.
    If error, then update the output table
              IF wa_upload_2-kschl IS INITIAL OR
                 wa_upload_2-kbetr IS INITIAL.
                CLEAR : wa_result_all.
                READ TABLE i_result_all INTO wa_result_all WITH KEY
                                            ref_no = wa_upload_2-vbeln
                                            mat_no = wa_upload_2-matnr
                                            kwmeng = wa_upload_2-kwmeng
                                            charg  = wa_upload_2-charg
                                            seqno  = wa_upload_2-seqno
                                            vbeln  = l_sales_no.
                IF sy-subrc EQ 0.
                  wa_result_all-status  = 'E'. " E
                  wa_result_all-remarks = text-007. " Condition Type & Unit
                                                  Price is mandatory
                  MODIFY i_result_all FROM wa_result_all INDEX sy-tabix.
                ENDIF.
                CLEAR : wa_result_all.
                CONTINUE.
    Else update the condition type & unit price
              ELSE.
                wa_cond-itm_number  = wa_items-posnr.    " ITEM NO.
                wa_cond-cond_type   = wa_upload_2-kschl. " CNDTION TYPE
                wa_cond-cond_value  = wa_upload_2-kbetr. " UNIT PRICE
                wa_cond-currency    = wa_curr-waerk.     " Currency
                APPEND wa_cond TO i_cond.
                CLEAR : wa_cond,
                        wa_upload_2.
              ENDIF.
            ELSE.
    For other document type, fill Condition type & Unit Price
              wa_cond-itm_number  = wa_items-posnr.    " ITEM NO.
              wa_cond-cond_type   = wa_upload_2-kschl. " CNDTION TYPE
              wa_cond-cond_value  = wa_upload_2-kbetr. " UNIT PRICE
              wa_cond-currency    = wa_curr-waerk.
              APPEND wa_cond TO i_cond.
              CLEAR : wa_cond,
                      wa_upload_2.
            ENDIF.
            CLEAR : wa_cond_inx.
            wa_cond_inx-itm_number = wa_items-posnr.
            wa_cond_inx-cond_type  = wa_upload_2-kschl.
            wa_cond_inx-cond_value = 'X'.
            wa_cond_inx-currency   = 'X'.
            APPEND wa_cond_inx TO i_cond_inx.
            CLEAR : wa_upload_2.
          ENDLOOP.
    DELETE Item Data from VBAP which has no matching entires in ALV
    if SAME Material occurs more than once in ALV for same key then
    count the no. of times the material occurs
          CLEAR : wa_upload_3,
                  l_counter.
          l_counter = 0.
          LOOP AT i_upload_2 INTO wa_upload_3
                                WHERE seqno = wa_upload-seqno
                                  AND chkbx = 'X'
                                  AND matnr = wa_upload-matnr.
            l_counter = l_counter + 1.
            CLEAR : wa_upload_3.
          ENDLOOP.
          PERFORM conv_alpha_input USING  wa_upload-matnr
                                CHANGING  wa_upload-matnr.
    check the corresponding no. of line items
    for the above material
          CLEAR : l_count,
                  wa_items.
          LOOP AT i_items INTO wa_items
                        WHERE matnr = wa_upload-matnr
                          AND vbeln = l_sales_no.
            CLEAR : wa_items_in,
                    wa_items_inx.
            IF l_count GE l_counter.
              wa_items_in-itm_number  = wa_items-posnr.
              wa_items_in-material    = wa_items-matnr.
              APPEND wa_items_in TO i_items_in.
              CLEAR wa_items_inx.
              wa_items_inx-itm_number    = wa_items-posnr.
              wa_items_inx-updateflag    = 'D'. " Delete Record
              wa_items_inx-material      = 'X'.
              APPEND wa_items_inx TO i_items_inx.
            ENDIF.
            l_count = l_count + 1.
          ENDLOOP.
    Convert material nos. to 18 digit no.
          REFRESH : i_upload_3.
          CLEAR   : wa_upload_3.
          i_upload_3[] = i_upload_2[].
          LOOP AT i_upload_3 INTO wa_upload_3
                                        WHERE seqno = wa_upload-seqno
                                          AND chkbx = c_x.
            PERFORM conv_alpha_input USING wa_upload_3-matnr
                                  CHANGING  wa_upload_3-matnr.
            MODIFY i_upload_3 FROM wa_upload_3.
            CLEAR : wa_upload_3.
          ENDLOOP.
    Delete materials which are not in ALV but are in line items
    for that sales order
          CLEAR : wa_upload_3,
                  wa_items_in,
                  wa_items.
          LOOP AT i_items INTO wa_items WHERE vbeln = l_sales_no.
            PERFORM conv_alpha_input USING  wa_items-matnr
                                  CHANGING  wa_items-matnr.
            READ TABLE i_upload_3 INTO wa_upload_3
                              WITH KEY matnr = wa_items-matnr.
            IF sy-subrc NE 0.
              wa_items_in-itm_number  = wa_items-posnr.
              wa_items_in-material    = wa_items-matnr.
              APPEND wa_items_in TO i_items_in.
              CLEAR wa_items_inx.
              wa_items_inx-itm_number    = wa_items-posnr.
              wa_items_inx-updateflag    = 'D'. " Delete Record
              wa_items_inx-material      = 'X'.
              APPEND wa_items_inx TO i_items_inx.
            ENDIF.
            CLEAR : wa_items,
                    wa_items_in,
                    wa_items_inx,
                    wa_upload_3.
          ENDLOOP.
    UPDATE Item Data RECORDS
          CLEAR : wa_upload_2,
                  wa_items_in,
                  wa_items,
                  wa_items_inx,
                  wa_sch_in,
                  wa_sch_inx,
                  l_item_number.
          LOOP AT i_upload_2 INTO wa_upload_2 WHERE
                                              seqno = wa_upload-seqno
                                              AND chkbx = 'X'.
    Read the Material no. from ALV & check whether the
    corresponding material exists in VBAP, if YES, then
    Update the line item data
            PERFORM conv_alpha_input USING  wa_upload_2-matnr
                                  CHANGING  wa_items_in-material.
    POPULATE ITEM NO -- Update the record
    If line item has same material twice,
    then appropriate POSNR should be assigned
            READ TABLE i_items INTO wa_items
                              WITH KEY vbeln = l_sales_no
                                       matnr = wa_items_in-material.
            IF sy-subrc EQ 0.
    If Reference is not contract then the process to assign
    POSNR is as follows :- Check the corresponding material
    from ALV with data from ITEMS, the record which matches
    the data is selected & POSNR is assigned to it
              IF wa_upload_2-oreason NE 'C'.
                CLEAR : wa_items_in1.
                READ TABLE i_items_in INTO wa_items_in1
                                  WITH KEY material = wa_items_in-material
                                         itm_number = wa_items-posnr.
                IF sy-subrc EQ 0.
                  CLEAR : wa_items1.
                  LOOP AT i_items INTO wa_items1
                                WHERE  vbeln = l_sales_no
                                  AND  matnr = wa_items_in-material.
                    IF wa_items1-posnr GT wa_items-posnr.
                      wa_items-posnr = wa_items1-posnr.
                      CLEAR : wa_items_in1.
                      READ TABLE i_items_in INTO wa_items_in1
                                  WITH KEY material = wa_items_in-material
                                         itm_number = wa_items-posnr.
                      IF sy-subrc NE 0.
                        EXIT.
                      ENDIF.
                    ENDIF.
                    CLEAR : wa_items1.
                  ENDLOOP.
                ENDIF.
              ELSE.
    If Reference is CONTRACT then the process to assign
    POSNR is different. Here if ALV has same material
    twice & ITEMS has it once, then the second occurrence
    of material of ALV is assigned a new POSNR
                CLEAR : wa_items_in1,
                        l_insert.
                READ TABLE i_items_in INTO wa_items_in1
                                  WITH KEY material = wa_items_in-material
                                         itm_number = wa_items-posnr.
                IF sy-subrc EQ 0.
                  CLEAR : l_lines,
                          l_insert,
                          wa_items_in1.
                  DESCRIBE TABLE i_items_in LINES l_lines.
                  READ TABLE i_items_in INTO wa_items_in1 INDEX l_lines.
                  wa_items-posnr = wa_items_in1-itm_number + 10.
                  l_insert = 'X'.
                  CLEAR : wa_items_in1.
                ENDIF.
              ENDIF.
    <b>          wa_items_in-itm_number  = wa_items-posnr.
              wa_items_in-target_qty  = wa_upload_2-kwmeng.
              wa_items_in-target_qu   = wa_items-zieme.
              wa_items_in-store_loc   = wa_upload_2-lgort.
              wa_items_in-plant       = wa_upload_2-werks.
              wa_items_in-batch       = wa_upload_2-charg.
              wa_items_in-route       = wa_upload_2-route.
              wa_items_in-sales_unit  = wa_upload_2-vrkme.
              wa_items_in-short_text  = wa_upload_2-maktx.
              APPEND wa_items_in TO i_items_in.</b>
              CLEAR wa_items_inx.
              wa_items_inx-itm_number    = wa_items-posnr.
              IF l_insert EQ c_x.
                wa_items_inx-updateflag    = c_i. " Insert Record
              ELSE.
                wa_items_inx-updateflag    = 'U'. " Update Record
              ENDIF.
              wa_items_inx-material      = 'X'.
              wa_items_inx-target_qty    = 'X'.
              wa_items_in-target_qu      = 'X'.
              wa_items_inx-store_loc     = 'X'.
              wa_items_inx-plant         = 'X'.
              wa_items_inx-batch         = 'X'.
              wa_items_inx-route         = 'X'.
              wa_items_inx-short_text    = 'X'.
              APPEND wa_items_inx TO i_items_inx.
            ENDIF.
    *Populate Ship-to-party
            IF NOT wa_upload_2-scode IS INITIAL
               AND l_insert IS INITIAL.
              CLEAR wa_partner_inx.
              wa_partner_inx-document    = l_sales_no.
              wa_partner_inx-itm_number  = wa_items-posnr.
              wa_partner_inx-updateflag  = 'U'.
              wa_partner_inx-partn_role  = c_we.
              wa_partner_inx-p_numb_new  = wa_upload_2-scode.
              wa_partner_inx-refobjtype  = l_bus_object.
              APPEND wa_partner_inx TO i_partner_inx.
            ENDIF.
    Bill to Party
            IF NOT wa_upload_2-bparty IS INITIAL
               AND l_insert IS INITIAL.
              CLEAR wa_partner_inx.
              wa_partner_inx-document    = l_sales_no.
              wa_partner_inx-itm_number  = wa_items-posnr.
              wa_partner_inx-updateflag = 'U'.
              wa_partner_inx-partn_role  = c_re.
              wa_partner_inx-p_numb_new  = wa_upload_2-bparty.
              wa_partner_inx-refobjtype  = l_bus_object.
              APPEND wa_partner_inx TO i_partner_inx.
            ENDIF.
    Payer
            IF NOT wa_upload_2-payer IS INITIAL
               AND l_insert IS INITIAL.
              CLEAR wa_partner_inx.
              wa_partner_inx-document    = l_sales_no.
              wa_partner_inx-itm_number  = wa_items-posnr.
              wa_partner_inx-updateflag  = 'U'.
              wa_partner_inx-partn_role  = c_rg.
              wa_partner_inx-p_numb_new  = wa_upload_2-payer.
              wa_partner_inx-refobjtype  = l_bus_object.
              APPEND wa_partner_inx TO i_partner_inx.
            ENDIF.
    Sales Rep
            IF NOT wa_upload_2-salesrep IS INITIAL
               AND l_insert IS INITIAL.
              CLEAR wa_partner_inx.
              wa_partner_inx-document    = l_sales_no.
              wa_partner_inx-itm_number  = wa_items-posnr.
              wa_partner_inx-updateflag  = 'U'.
              wa_partner_inx-partn_role  = c_ys.
              wa_partner_inx-p_numb_new  = wa_upload_2-salesrep.
              wa_partner_inx-refobjtype  = l_bus_object.
              APPEND wa_partner_inx TO i_partner_inx.
            ENDIF.
    Populate schedule Line
            CLEAR : l_datum,
                    wa_sch_in.
    For following condition types, schedule lines not required
            IF wa_upload_2-auart EQ 'ZY16' OR
               wa_upload_2-auart EQ 'ZY17' OR
               wa_upload_2-auart EQ 'ZY30' OR
               wa_upload_2-auart EQ 'ZY31'.
            ELSE.
              wa_sch_in-itm_number =  wa_items-posnr.
              wa_sch_in-sched_line =  '0001'.
              wa_sch_in-req_qty    =  wa_upload_2-kwmeng.
              IF NOT wa_upload_2-vdatu IS INITIAL.
               REPLACE ALL OCCURRENCES OF '.' IN wa_upload_2-vdatu WITH ' '.
                CONDENSE wa_upload_2-vdatu NO-GAPS.
                CLEAR : l_datum.
                l_datum =  wa_upload_2-vdatu.
                wa_sch_in-req_date = l_datum.
              ENDIF.
              APPEND wa_sch_in TO i_sch_in.
              CLEAR wa_sch_inx.
              wa_sch_inx-itm_number    = wa_items-posnr.
              wa_sch_inx-sched_line    = '0001'.
             IF wa_upload_2-oreason = 'C'.
               wa_sch_inx-updateflag    = c_i.
             ELSE.
              wa_sch_inx-updateflag    = 'U'.
             ENDIF.
              wa_sch_inx-req_qty       = 'X'.
              wa_sch_inx-req_date      = 'X'.
              APPEND wa_sch_inx TO i_sch_inx.
            ENDIF.
            CLEAR : wa_upload_2,
                    wa_items_in,
                    wa_items,
                    wa_items_inx,
                    wa_sch_in,
                    wa_sch_inx.
          ENDLOOP.    "LOOP AT i_upload to wa_UPLOAD_2
    Change Sales Order
          CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
            EXPORTING
              salesdocument               = l_sales_no
              order_header_in             = wa_header_in
              order_header_inx            = wa_header_inx
              SIMULATION                  =
              BEHAVE_WHEN_ERROR           = ' '
              INT_NUMBER_ASSIGNMENT       = ' '
              LOGIC_SWITCH                =
              TABLES
              return                      = i_return
              order_item_in               = i_items_in
              order_item_inx              = i_items_inx
             partners                    = i_partner
              partnerchanges              = i_partner_inx
              PARTNERADDRESSES            =
              ORDER_CFGS_REF              =
              ORDER_CFGS_INST             =
              ORDER_CFGS_PART_OF          =
              ORDER_CFGS_VALUE            =
              ORDER_CFGS_BLOB             =
              ORDER_CFGS_VK               =
              ORDER_CFGS_REFINST          =
              schedule_lines              = i_sch_in
              schedule_linesx             = i_sch_inx
              ORDER_TEXT                  =
              ORDER_KEYS                  =
              conditions_in               = i_cond
              conditions_inx              = i_cond_inx
              EXTENSIONIN                 =
    COMMIT
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
             EXPORTING
               wait   = ' '
            IMPORTING
              return = wa_commit.
          WAIT UP TO 5 SECONDS.
    Best regards,
    Prashant

  • Not able to get the Quantity and partner details in the sales order created

    Hi Experts,
    I am creating a followup order using the FM "BAPI_BUSPROCESSND_CREATEMULTI" . The parameters iam passing are process type, quantity , sold to party (partner) and product ID. I am able to create a sales order but the Quantity and sold to party (partner) are not getting updated in the the sales order when i check in the transaction CRMD_ORDER. When i check in the crm_orderadm_h table and give the Headerguid , i am able to see the process type and when i check in the crm_order_index table, if i give the header i am not getting the partner no and there are two lines created for one header guid. I am providing the code which i have written. Can anyone please help me in this issue??
    *& Report  ZCREATEORDER_LUCKY_TEST
    REPORT  ZCREATEORDER_LUCKY_TEST.
    DATA : LV_HEADER_GUID  TYPE  GUID_32,
    WA_HEADER             TYPE                   BAPIBUS20001_HEADER_INS,
    ITAB_HEADER           TYPE STANDARD TABLE OF BAPIBUS20001_HEADER_INS,
    ITAB_CREATED_PROCESS  TYPE STANDARD TABLE OF BAPIBUS20001_HEADER_INS,
    ITAB_OBJECTS_TO_SAVE  TYPE STANDARD TABLE OF BAPIBUS20001_GUID_DIS,
    ITAB_PARTNER          TYPE STANDARD TABLE OF BAPIBUS20001_PARTNER_INS,
    LT_PRODUCT_I          TYPE STANDARD TABLE OF BAPIBUS20001_ITEM,
    WA_PRODUCT_I          TYPE                   BAPIBUS20001_ITEM,
    LT_SCHEDLIN_I         TYPE STANDARD TABLE OF BAPIBUS20001_SCHEDLIN,
    WA_SCHEDLIN_I         TYPE                   BAPIBUS20001_SCHEDLIN,
    ITAB_INPUT_FIELDS     TYPE TABLE OF          bapibus20001_input_fields,
    ls_inputfields        TYPE                   bapibus20001_input_fields,
    WA_PARTNER            TYPE                   BAPIBUS20001_PARTNER_INS,
    ITAB_RETURN           TYPE                   STANDARD TABLE OF BAPIRET2,
    WA_OBJECTS_TO_SAVE    LIKE                   LINE OF ITAB_OBJECTS_TO_SAVE,
    ITAB_PRICING          TYPE STANDARD TABLE OF BAPIBUS20001_PRICING,
    WA_PRICING            TYPE                   BAPIBUS20001_PRICING,
    *To store the Objects to be saved.
    WA_CREATED_PROCESS    LIKE LINE OF ITAB_CREATED_PROCESS,
    ITAB_SAVED_OBJECTS    TYPE STANDARD TABLE OF BAPIBUS20001_OBJECT_ID,
    WA_SAVED_OBJECTS      LIKE LINE OF ITAB_SAVED_OBJECTS,
    GC_X type c.
    gc_x = 'x'.
    CALL FUNCTION 'GUID_CREATE'
      IMPORTING
        ev_guid_32 = lv_header_guid.
      CLEAR : WA_HEADER.
    * Passing the respective values from the Header table to internal table.
    WA_HEADER-GUID          =  LV_HEADER_GUID.
    WA_HEADER-PROCESS_TYPE  =  'ZTA'.
    APPEND WA_HEADER TO ITAB_HEADER.
    *Appending the values to the ITAB_HEADER.
    *appending orderadm_i to input fields
    * ls_inputfields-ref_guid =  LV_HEADER_GUID.
    * ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'ORDERADM_I'.
    ls_inputfields-ref_handle = '0000000001'.
    * ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'ORDERED_PROD'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
    * ls_inputfields-ref_guid =  LV_HEADER_GUID.
    * ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'ORDERADM_I'.
    * ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'MODE'.
    ls_inputfields-ref_handle = '0000000001'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
    ****** CHANGES MADE
    * ls_inputfields-ref_guid =  LV_HEADER_GUID.
    * ls_inputfields-REF_KIND = 'B'.
    ls_inputfields-objectname = 'SCHEDLIN'.
    ls_inputfields-ref_handle = '0000000001'.
    ls_inputfields-fieldname = 'LOGICAL_KEY'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    CLEAR ls_inputfields.
    * ls_inputfields-ref_guid =  LV_HEADER_GUID.
    * ls_inputfields-REF_KIND = 'B'.
    ls_inputfields-objectname = 'SCHEDLIN'.
    ls_inputfields-ref_handle = '0000000001'.
    * ls_inputfields-logical_key = ' '.
    ls_inputfields-fieldname = 'QUANTITY'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    CLEAR ls_inputfields.
    * ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'B'.
    ls_inputfields-objectname = 'SCHEDLIN_I'.
    ls_inputfields-ref_handle = '0000000001'.
    * ls_inputfields-logical_key = ' '.
    * ls_inputfields-fieldname = 'MODE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
    CLEAR ls_inputfields.
    ****** CHANGES MADE
    WA_PARTNER-REF_GUID =  LV_HEADER_GUID.
    WA_PARTNER-REF_KIND = 'A'.
    WA_PARTNER-REF_PARTNER_HANDLE = '0001'.
    WA_PARTNER-PARTNER_FCT = '00000001'.
    WA_PARTNER-PARTNER_NO =  '10017'.
    WA_PARTNER-KIND_OF_ENTRY =  'C'.
    WA_PARTNER-NO_TYPE = 'BP'.
    WA_PARTNER-DISPLAY_TYPE  =  'BP'.
    APPEND WA_PARTNER TO ITAB_PARTNER.
    *"ADDING VALUES TO CT_ORDERADM_I
      wa_product_i-header        = lv_header_guid.
      wa_product_i-handle        = '0000000001'.
      wa_product_i-ordered_prod  = '12000014'.
      wa_product_i-mode          = 'A'.
      APPEND wa_product_i TO lt_product_i.
    *"ADDING VALUES TO IT_SCHEDLIN_I
      wa_schedlin_i-GUID    =  LV_HEADER_GUID.
      wa_schedlin_i-quantity   = '30'.
      wa_schedlin_i-handle = '0000000001'.
      wa_schedlin_i-mode  =  'A'.
      APPEND wa_schedlin_i TO lt_schedlin_i.
    *  wa_schedlin_i-schedlines = lt_schedlines.
    *"ADDING VALUES TO WA_PRICING
    wa_PRICING-REF_GUID    =  LV_HEADER_GUID.
      wa_PRICING-REF_KIND   = 'A'.
    *  wa_schedlin_i-handle = '0000000001'.
      APPEND wa_PRICING TO ITAB_PRICING.
    *  wa_PRICING-REF_GUID    =  LV_HEADER_GUID.
      wa_PRICING-REF_KIND   = 'B'.
      wa_schedlin_i-handle = '0000000001'.
      APPEND wa_PRICING TO ITAB_PRICING.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = '0001'.
    ls_inputfields-fieldname = 'REF_PARTNER_HANDLE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = '0001'.
    ls_inputfields-fieldname = 'PARTNER_FCT'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
    ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = '0001'.
    ls_inputfields-fieldname = 'PARTNER_NO'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
      ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = '0001'.
    ls_inputfields-fieldname = 'NO_TYPE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
      ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = '0001'.
    ls_inputfields-fieldname = 'DISPLAY_TYPE'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
        ls_inputfields-ref_guid =  LV_HEADER_GUID.
    ls_inputfields-REF_KIND = 'A'.
    ls_inputfields-objectname = 'PARTNER'.
    ls_inputfields-logical_key = '0001'.
    ls_inputfields-fieldname = 'KIND_OF_ENTRY'.
    APPEND ls_inputfields TO ITAB_INPUT_FIELDS.
      CLEAR ls_inputfields.
    CALL FUNCTION 'BAPI_BUSPROCESSND_CREATEMULTI'
      TABLES
        HEADER          = ITAB_HEADER
        ITEM            = lt_product_i
        RETURN          = ITAB_RETURN
        PARTNER         = ITAB_PARTNER
        INPUT_FIELDS    = ITAB_INPUT_FIELDS
        CREATED_PROCESS = itab_created_process
        SCHEDULELINE    = lt_schedlin_i
        PRICING         = ITAB_PRICING.
    READ TABLE ITAB_CREATED_PROCESS INTO WA_CREATED_PROCESS WITH KEY GUID = LV_HEADER_GUID BINARY SEARCH.
    WA_OBJECTS_TO_SAVE-GUID = WA_CREATED_PROCESS-GUID.
    * Appending the Guid of the contract to be saved to the internal table
    APPEND WA_OBJECTS_TO_SAVE TO ITAB_OBJECTS_TO_SAVE.
    CALL FUNCTION 'BAPI_BUSPROCESSND_SAVE'
      EXPORTING
        update_task_local = space
        save_frame_log    = GC_X
      TABLES
        objects_to_save   = itab_objects_to_save
        saved_objects     = itab_saved_objects
        return            = itab_return.
    * Calling the Standard BAPI to Commit the transcation.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    WRITE: / 'HEADER GUID: ',lv_header_guid.
    Any inputs will be highly appreciated!!
    Thanks a lot in Advance.
    Lakshman.

    solved

  • Scheduling Agreement delivery quantity mismatch

    hi all SD Gurus,
    I've a scheduling agreement with a schedule line for 10 units. when i go for delivery delivery quantity is taken as 351 (as available quantity 694 - scheduled for delivery quantity 343). how can i get exact delivery quantity in delivery.
    also can u guide me for JIT scheduling agreement concepts???
    thanks in adv.
    amol
    Message was edited by: Chittaranjan Nivargi

    For R/3 4.6C see link below
    Ron
    http://help.sap.com/saphelp_46c/helpdata/en/78/2085347860ea35e10000009b38f83b/frameset.htm

  • Open Schedules within the firm zone  period

    Hi All
    We have one schedule aggrement for one part in our system and we have different firm zone period  for each suppliers...
    I would like to ask you ; how can we get the list of the fixed schedules (I mean existing schedules within the firm zone period)  based on the Vendor..?
    Thank you

    firm zones can be defined in scheduling agreement..which will reflect in the release

  • How Can I Modify an Existing Schedule using the WS-SDK?

    I'm trying to modify the scheduling info of a pre-existing schedule. I've got the schedule details from the database and modifying them, and then called BIPlatform.Schedule with the modified infoObject. However what it does is create a new schedule with the new schedule details, leaving the old one unchanged. Is it possible to modify the old instance, or do I need to delete the old instance andjust create a new one?

    Hiya Adam,
    Thanks for the clarification.
    Cheers,
    Jack

  • PO Delivery charges  as fixed  independent of the quantity supplied.

    Dear All,
    We were given a Delivery charges code "ZFR2" for entering lumpsum
    delivery charges in Create PO transaction ME21N; The value entered
    against this code is getting apportioned with the GR quantity.
    A lumpsum is a fixed amount and should be independent of the quantity
    supplied.
    Could you provide any user exit or any standard configuration , so we can make the  Delivery charges  as fixed  independent of the quantity supplied.
    Client doed not wnat to settle tje cost at the of LIV
    Pl help me in this reg
    Rgds
    Nishit

    Hi,
    As per standard SAP your requirement can't be met, please refer the Note 304178 - Absolute conditions in purchasing documents. I have pasted what is contained in the note, this cant be done.
    Summary
    Symptom
    Absolute conditions, for example, used at item level in the purchase order item, are calculated down to the item quantity.For the goods receipt, if a quantity differing from the item quantity is posted, this absolute condition is nevertheless quantity-dependent since it is only calculated proportionally.
    Other terms
    Delivery costs, freight costs, freight, absolute value, FRB1
    Reason and Prerequisites
    For the goods receipt, the actual posted quantity is not yet available, as far as the program is concerned, at price determination.If the actual posted quantity is available later, the condition technique is not used again for the calculation.Therefore the only option remaining is the proportionalization of the condition values.
    Solution
    None.

Maybe you are looking for

  • Work day of a calendar

    Hi all, I am searching for a FM which will say 3rd work day of a factory calendar or 4th work day of a factory calendar etc. I could see there are few FMs to say first work day - last work day but not the Nth work day. If we input some date and facto

  • Deleting programs with all containing files at once

    how can i uninstall an application wich concists of many small files spreaded all over the harddisc?? Do i have to search for all those files separately?? Or is there a way to remove a program with all the files at once??? Does anyone know how see th

  • FLVplayback skin works in HTML locally, but not on a server.

    I am developing a Flash based website that plays a video file using the FLVplayback component. Everything works fine locally, the paths are all relative and everything (index.html, the SWF with the FLVplayback and the skin SWF) is all in the same pla

  • Allow saving ad hoc query in production system

    Hi Gurus, I am trying to allow saving and modification of queries withing Global Area (Cross-client) by if i try to save created query, an error occurs with following text: SAP System has status 'not modifiable' There is  a performance assistance mem

  • SharePoint and FrameMaker 10 CMS/Integration - Checked Out Files Stuck

    Hello, I originally set up the CMS connection to my SharePoint through FrameMaker using the domain name as a part of the user name (as suggested in a previous post), but have still run into this same issue discussed in that post, (unalterably locked