BDC For Line Items In Sales Order

Hello,
I have an internal table of line items which i need it to pass it to BDC for sales order line items creation. Can anybody tell me how to do this like the logic which is used to pass the field names. I just have the material number and Quantity to be passed ..
Thanks
Viky

See below code for Purchase Order :
report zpochange.
data : i_error like bdcmsgcoll occurs 0 with header line.
data : i_bdcdata like bdcdata occurs 0 with header line.
tables : ekko, ekpo.
data :c1(10) value 'ME22',
      c2(1) value ',',c3(10).
data : var1(20). " LIKE EKKO-EBELN.
data : var2 like ekko-ebeln.
data : begin of i_ekko occurs 0,
          header(2),
          ebeln like ekko-ebeln,
          end of i_ekko.
data : begin of i_ekpo occurs 0,
item(2),
        ebeln like ekpo-ebeln,
        ebelp like ekpo-ebelp,
        menge(10), " LIKE EKPO-MENGE,
       end of i_ekpo.
data : v like ekpo-ebelp.
data: begin of itab occurs 0,
         text(300),
        end of itab.
parameters: p_file like ibipparms-path.
*PARAMETERS: PONUMBER LIKE EKPO-EBELN.
at selection-screen on value-request for p_file.
call function 'F4_FILENAME'
  exporting
    program_name        = syst-cprog
    dynpro_number       = syst-dynnr
   FIELD_NAME          = ' '
  importing
    file_name           = p_file
start-of-selection.
*SELECT EBELN FROM EKKO INTO TABLE I_EKKO WHERE EBELN = PONUMBER.
      SELECT EBELN EBELP MENGE FROM EKPO INTO TABLE I_EKPO WHERE EBELN
*= PONUMBER.
perform get_data.
*LOOP AT ITAB.
WRITE :/ ITAB.
ENDLOOP.
loop at itab.
var1 = itab-text+0(1).
if var1 = 'H'.
*I_EKKO-EBELN = ITAB-TEXT.
split itab at c2 into i_ekko-header
                       i_ekko-ebeln.
SPLIT  ITAB AT ',' INTO I_EKKO-EBELN.
                    " I_EKPO-EBELP
                    " I_EKPO-MENGE
                    " var1.
append i_ekko.
else.
split itab at c2 into i_ekpo-item
                        i_ekpo-ebeln
                        i_ekpo-ebelp
                        i_ekpo-menge.
append i_ekpo.
endif.
*var2 = i_ekpo-ebeln.
  MOVE VAR1 TO I_EKPO-EBELN.
  MOVE VAR1 TO I_EKKO-EBELN.
APPEND: I_EKPO.
*if not var1 is initial.
    split var1 at ',' into i_ekpo-ebelp
                           i_ekpo-menge.
  i_ekpo-ebeln = var2.
append i_ekpo.
*endif.
endloop.
loop at i_ekpo.
write :/ i_ekpo.
endloop.
loop at i_ekko.
perform fill_data. " TABLES I_EKPO.
endloop.
LOOP AT I_EKPO.
WRITE :/ I_EKPO.
ENDLOOP.
*&      Form  GET_DATA
      text
-->  p1        text
<--  p2        text
*LOOP AT I_ERROR.
WRITE :/ I_ERROR.
ENDLOOP.
form get_data.
call function 'WS_UPLOAD'
exporting
   codepage                      = ' '
   filename                      = p_file
   filetype                      = 'ASC'
   headlen                       = ' '
   line_exit                     = ' '
   trunclen                      = ' '
   user_form                     = ' '
   user_prog                     = ' '
   dat_d_format                  = ' '
IMPORTING
  FILELENGTH                    =
  tables
    data_tab                      = itab
exceptions
   conversion_error              = 1
   file_open_error               = 2
   file_read_error               = 3
   invalid_type                  = 4
   no_batch                      = 5
   unknown_error                 = 6
   invalid_table_width           = 7
   gui_refuse_filetransfer       = 8
   customer_error                = 9
   others                        = 10
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
         with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform.                    " GET_DATA
*&      Form  FILL_DATA
      text
     -->P_I_EKPO  text
form fill_data. " tables   i_ekpo .
perform bdcscreen using 'SAPMM06E' '0105'.
perform bdcfield using 'RM06E-BSTNR' i_ekko-ebeln.
perform bdcfield using 'BDC_OKCODE' '/00'.
loop at i_ekpo where ebeln = i_ekko-ebeln.
  V = I_EKPO-EBELP.
perform bdcscreen using 'SAPMM06E' 0120.
perform bdcfield using 'BDC_CURSOR' 'RM06E-EBELP'.
perform bdcfield using 'RM06E-EBELP' i_ekpo-ebelp.
perform bdcfield using 'BDC_OKCODE' '/00'.
perform bdcscreen using 'SAPMM06E' 0120.
perform bdcfield using 'BDC_CURSOR' 'EKPO-MENGE(01)'.
perform bdcfield using 'RM06E-EBELP' i_ekpo-ebelp.
perform bdcfield using 'EKPO-MENGE(01)' i_ekpo-menge.
perform bdcfield using 'BDC_OKCODE' '/00'.
*PERFORM BDCSCREEN USING 'SAPMM06E' 0120.
*PERFORM BDCFIELD USING 'BDC_CURSOR'  'RMO6E-EBELP'.
*CLEAR V.
endloop.
perform bdcfield using 'BDC_OKCODE' '=BU'.
call transaction  c1 using i_bdcdata mode 'A'
                                   messages into i_error.
refresh i_bdcdata.
endform.                    " FILL_DATA
*&      Form  BDCSCREEN
      text
     -->P_0140   text
     -->P_0120   text
form bdcscreen using    p_program p_screen.
i_bdcdata-program = p_program.
i_bdcdata-dynpro = p_screen.
i_bdcdata-dynbegin = 'X'.
append i_bdcdata.
clear i_bdcdata.
endform.                    " BDCSCREEN
*&      Form  BDCFIELD
      text
     -->P_0145   text
     -->P_I_EKPO_EBELN  text
form bdcfield using    fnam fval.
i_bdcdata-fnam = fnam.
i_bdcdata-fval = fval.
append i_bdcdata.
clear i_bdcdata.
endform.                    " BDCFIELD
I hope same thing for sales order ,i mean both has Table control
Reward Points if it is helpful
Thanks
Seshu

Similar Messages

  • Restrict Availability check for Line item in sales order

    Hi Folks,
         My requirement is some what different than the usual,I want to stop availability check for a particular line item,while creating sales order on a particular condition (example when quantity is changed for that line item),please suggest if there is any way to do so.
    Thanks for your valuable support.

    Hi
    we need to maintain the username of the person who has triggered this process through XI .
    I BAPI we cannot instruct the BAPI to maintain a specific username.
    that is why i am using this FM because this will allow us to maintain the change history with the username we want
    Regards
    Nikhil

  • Updating the reason of rejection for line item in sales order

    Hi
    I am updating the reason of rejection field (ABGRU) using the function module VERKBELEG_WRITE_DOCUMENT.
    there is no error that is thrown but the field is also not getting updated.
    I have populated the VBAP old and new structure. where the difference is only in the ABGRU field. in the old VBAP struct its missing where as in new it has a value
    if anyone has any idea what is that i might be missing, do let me know.
    Regards
    Nikhil

    Hi
    we need to maintain the username of the person who has triggered this process through XI .
    I BAPI we cannot instruct the BAPI to maintain a specific username.
    that is why i am using this FM because this will allow us to maintain the change history with the username we want
    Regards
    Nikhil

  • MRP RUN for the more than one line item in sales order.

    Hi ,
    In the sales order nuber of line item are , i will have to take MRP RUN for selected line item .
    So plz suggest what development will require?
    Abhay
    Edited by: abhay patil on May 30, 2008 8:52 AM

    HI,
    U can write separate prog. Which will ask sales order no. and from to line item or multiple line item of sale order. Then in loop internally pass the each line item no to MD50 prog. Which will run in background.
    I will give u sample prog. Which I had created for running MRP for all the lines items of given sales order in one go.
    *& Report  ZPRG_PP_001
    REPORT  ZPRG_PP_001.
    tables vbak.
    data: begin of it_vbap occurs 1,
            vbeln  type    vbap-vbeln,
            posnr  type    vbap-posnr,
          end   of it_vbap.
    DATA: P_MODE   TYPE    C.
          Batchinputdata of single transaction
    DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    selection-screen begin of block b1 with frame title text-001.
      parameters :   p_vbeln  like  vbak-vbeln obligatory.
      selection-screen skip.
      parameters :   p_fore   radiobutton group mode,
                     p_back   radiobutton group mode default 'X'.
    selection-screen end   of block b1.
    at selection-screen.
    Check Sales Order
      if not p_vbeln is initial.
        select single * from vbak
          where vbeln eq p_vbeln.
        if sy-subrc <> 0.
          message e499(sy) with 'Invalid Sales Order no.' p_vbeln.
        endif.
      endif.
    start-of-selecTION.
    Get Sales order items
      select vbeln posnr from vbap
        into table it_vbap
        where vbeln eq p_vbeln.
    Set BDC mode
      if p_back eq 'X'.
        p_mode = 'E'.
      else.
        p_mode = 'A'.
      endif.
    Process MD50 BDC
      LOOP AT IT_VBAP.
        perform bdc_dynpro      using 'SAPMM61X' '0160'.
        perform bdc_field       using 'BDC_CURSOR'  'RM61X-TRMPL'.
        perform bdc_field       using 'BDC_OKCODE'  '/00'.
        perform bdc_field       using 'RM61X-KDAUF'  IT_VBAP-VBELN.
        perform bdc_field       using 'RM61X-KDPOS'  IT_VBAP-POSNR.
        perform bdc_field       using 'RM61X-BANER'  '1'.
        perform bdc_field       using 'RM61X-LIFKZ'  '3'.
        perform bdc_field       using 'RM61X-PLMOD'  '3'.
        perform bdc_field       using 'RM61X-TRMPL'  '1'.
        perform bdc_dynpro      using 'SAPMSSY0' '0120'.
        perform bdc_field       using 'BDC_OKCODE'   '=XBAC'.
        CALL TRANSACTION 'MD50' USING BDCDATA MODE P_MODE.
        CLEAR BDCDATA.
        REFRESH BDCDATA.
      ENDLOOP.
    end-of-selection.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR BDCDATA.
      BDCDATA-FNAM = FNAM.
      BDCDATA-FVAL = FVAL.
      APPEND BDCDATA.
    ENDFORM.
    Ajay P. Nikte

  • Automatically add line-items to sales orders

    Hello,
    Our client needs us to add line items to sales orders. The requirement is such that, when the users enter a material on a line item, they wish to see few more materials automatically added as new line items -- item category to be maintained as "Free" items. This appears similar to automatically getting BOM-sub-items for materials which have BOMs maintained. The client is not willing to maintain BOMs for materials in question. They instead have asked us to maintain sub-item materials in a Z-table and then fetch those to populate the subsequent line-items on the sales order.
    So far, we have tried to fiddle around with the XVBAK and XVBAP internal tables in sales exit (MV45AFZZ) and also tried to use BAPI within the same exit. Both methods do not work.
    Could you please guide us ? Thank you.
    Regards,

    Ist method:
    Maintain one Ztable with the fields of Material and sub materials.
    write BDC to create order,before entering the material  number check if material is existed in Ztable or not.
    If it exist take that material and added as a another line item.
    if not exist create like normal line item.
    2 nd method:
    Ask your MM functional consultant to maintain supression of materials concept.

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

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

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

  • Add Line Item In Sales Order VA01

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

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

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

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

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

  • To add the line item in Sales Order

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

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

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

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

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

  • Mrp run on no of line items in sale order

    hi all
    i have a sale order with o line items include.
    i want to run mrp on sale order only (not want to use MD50)
    can i use user exit for this task ? if so please advise which user exit i can use ?
    thanks

    Dear,
    Please refer this link,
    [Mrp run on no of line items in sale order|Re: MD50 issue]
    Regards,
    R.Brahmankar

  • Automatically add line-items to Sales order

    Hello,
    Our client needs us to add line items to sales orders. The requirement is such that, when the users enter a material on a line item, they wish to see few more materials automatically added as new line items -- item category to be maintained as "Free" items. This appears similar to automatically getting BOM-sub-items for materials which have BOMs maintained. The client is not willing to maintain BOMs for materials in question. They instead have asked us to maintain sub-item materials in a Z-table and then fetch those to populate the subsequent line-items on the sales order.
    So far, we have tried to fiddle around with the XVBAK and XVBAP internal tables in sales exit (MV45AFZZ) and also tried to use BAPI within the same exit. Both methods do not work.
    Could you please guide us ? Thank you.
    Regards,

    Hi,
    I think you can try with product proposal(Item Proposal). T.Code:VA51.
    Using this one can create list of items to be proposed at the time sales order processing.
    Item proposal contains list of items with or without default quantities those were frequently ordered by the customer. You can create any no of items in an Item proposal.Like wise you can create any no.of item proposals.
    But,You can assign only one item proposal per customer in sales tab of the CMR.So that when ever you are creating order for that customer you can access those materials which are listed in an Item proposal completely or selectively,with or without default quantities.
    The items which are proposed from an Item proposal are always changeable.
    Item proposal makes sales order processing simple and fast.
    Only the thing here is it will not automatically explode like in case of BOM.You have to manually select those items from an item proposal.
    Regards,
    Revan
    Edited by: REVAN on Dec 23, 2008 10:55 AM

  • How to add line item to sales order item table?

    Kindly help me the with the below requirement .
    Add line item to sales order(va01) dynamically on click of button. The button is also custom created push button.
    In the above requirement I have added the pushbutton to va01 tcode. But when I click on that button I need to add line item to sales order item table.
    I tried a lot but I am not successful. If possible can u please help on this.
    Regards,
    Rachel

    Hi!
    It's quite easy even in the standard SAP to add a line item for a customer order, I don't think it worth to develop a new button for this.
    However if you wanted to add a line automatically, the you can do the following in the program MV45AFZZ, FORM USEREXIT_SAVE_DOCUMENT.
    You can use similar code, but with some modifications.
    DATA: lv_posnr.
    LOOP AT xvbap.
    MOVE xvbap-posnr TO lv_posnr.   "get the last posnr
    ENDLOOP.
    ADD 10 TO lv_posnr.
    MOVE 'XYZ' TO xvbap-matnr.   "enter your material number here
    MOVE lv_posnr TO xvbap-posnr.
    * fill additinal field data in XVBAP if necessary
    MOVE 'I' TO xvbap-updkz.                  "Insert line
    APPEND xvbap.
    Regards
    Tamá

  • Automatic 2nd line item in sales order

    Hi All,
    We are using variant configuration.
    I have one requirement where if i input the first line item in sales order for a material, system should automatic input 2nd line itme of another material based on configuration mainatined.
    Please let me if it is possibel.
    Regard,
    Satyajit

    Dear Satyajit?
    Material based on configuration mainatined.
    What do you mean by the above statement? Whether you are looking for such a configuration
    or
    that you have maintained such combination somewhere in the system?
    Have you checked the possibilities of using a BOM?
    You can also check the possiblity of material listing.
    Thanks & Regards,
    Hegal K Charles

  • Line item in sales order

    Hi sdn team,
    can i delete line items in sales order...i mean i was asked not to do so..... when i do so what kind of consequences will i have to look forward to?
    regards.

    Hi,
    Yes you can delete the Line Items in Sales Order.
    Consequences with Example:
    The BOM Item ( Main Item ) is having the 3 line items (Components / Sub items)
    which are explode in the sales Order for which, if you delete the one of the
    Component items in sales order then only 2 componets will delivery and 2 will be
    billed instead of 3 components items. well this will be a problem for the customer
    and leads to Customer Complaints.
    Hope this Clarifies Your Doubt and Please Reward If Really Helpful,
    Thanks and Regards,
    Sateesh.Kandula

Maybe you are looking for