Urgent:  making multiple inspection characterstics in QP01 bdc

Hi,
I had made a BDC on QP01 in which i am able to upload 1 line for the
inspection characterstic of a single Operation .
Now the problem is there are around 10 to 15 lines for the inspection characterstic of a single Operation and i am not able to do it through it my bdc. now anybody can provide me some knowledge about it as how it is to be done?
plzz help me out as it is really urgent to me and help will be definately rewarded.

Hi,
I had made bdc on transaction CA02. Its similiar to your requirement in which there are multiple inspection characterstics for single operation. Through BDC its possible. Please go through the below code.
LOOP AT i_route_file INTO wa_route_file.
    AT NEW plnnr.
      PERFORM : zf_prepare_bdcdata_prg   USING 'SAPLCPDI'  '1010',
                zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00',
                zf_prepare_bdcdata_value USING 'RC271-PLNNR'
                                               wa_route_file-plnnr.
*--Conversion of date to internal format.
      PERFORM zf_conv_date.
      PERFORM zf_prepare_bdcdata_value USING 'RC271-STTAG' v_date.
    ENDAT.
    lv_arbpl = wa_route_file-arbpl.
    lv_steus = wa_route_file-steus.
    lv_ltxa1 = wa_route_file-ltxa1.
*--Operation data
    AT NEW vornr.
      v_inscounter = 1.
      PERFORM : zf_prepare_bdcdata_prg   USING 'SAPLCPDI' '1400',
                zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00',
                zf_prepare_bdcdata_value USING 'RC27X-ENTRY_ACT' '1'.
*--Conversion of vornr to internal format
      PERFORM zf_conv_vornr.
      READ TABLE i_opno INTO wa_opno WITH KEY plnnr = wa_route_file-plnnr
                                              vornr = wa_route_file-vornr.
      IF sy-subrc <> 0.
        DESCRIBE TABLE i_opno LINES v_lines.
        v_num = v_lines + 1.
      ELSE.
        v_num = sy-tabix.
      ENDIF.
      CLEAR v_fieldnm.
      CONCATENATE 'PLPOD-ARBPL(' v_num ')' INTO v_fieldnm.
      PERFORM : zf_prepare_bdcdata_value USING v_fieldnm lv_arbpl.
      CLEAR v_fieldnm.
      CONCATENATE 'PLPOD-STEUS(' v_num ')' INTO v_fieldnm.
      PERFORM : zf_prepare_bdcdata_value USING v_fieldnm lv_steus.
      CLEAR v_fieldnm.
      CONCATENATE 'PLPOD-LTXA1(' v_num ')' INTO v_fieldnm.
      PERFORM : zf_prepare_bdcdata_value USING v_fieldnm lv_ltxa1,
                zf_prepare_bdcdata_prg   USING 'SAPLCPDI' '1400',
                zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMUE',
                zf_prepare_bdcdata_value USING 'RC27X-ENTRY_ACT' '1'.
      CLEAR v_fieldnm.
      CONCATENATE 'RC27X-FLG_SEL(' v_num ')' INTO v_fieldnm.
      PERFORM: zf_prepare_bdcdata_value USING v_fieldnm 'X'.
    ENDAT.
*--Inspection Characteristics
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '0150',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00'.
    CLEAR v_fieldnm.
    CONCATENATE 'PLMKB-VERWMERKM(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-verwmerkm.
    CLEAR v_fieldnm.
    CONCATENATE 'PLMKB-MKVERSION(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-mkversion.
    CLEAR v_fieldnm.
    CONCATENATE 'PLMKB-PMETHODE(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-pmethode.
    CLEAR v_fieldnm.
    CONCATENATE 'PLMKB-PMTVERSION(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-pmtversion.
    CLEAR v_fieldnm.
    CONCATENATE 'PLMKB-STICHPRVER(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-stichprver.
    CLEAR v_fieldnm.
    CONCATENATE 'QFLTP-SOLLWERT(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-sollwert.
    CLEAR v_fieldnm.
    CONCATENATE 'QFLTP-TOLERANZUN(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-toleranzun.
    CLEAR v_fieldnm.
    CONCATENATE 'QFLTP-TOLERANZOB(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-toleranzob.
    CLEAR v_fieldnm.
    CONCATENATE 'PLMKB-DUMMY10(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
                                            wa_route_file-dummy10.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '1501',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
             zf_prepare_bdcdata_value USING 'PLMKB-VERWMERKM'
                                            wa_route_file-verwmerkm,
             zf_prepare_bdcdata_value USING 'PLMKB-QPMK_WERKS'
                                            wa_route_file-qpmk_werks,
             zf_prepare_bdcdata_value USING 'PLMKB-MKVERSION'
                                            wa_route_file-mkversion,
             zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
                                            wa_route_file-pmethode,
             zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
                                            wa_route_file-qmtb_werks,
             zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
                                            wa_route_file-pmtversion.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '1502',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
             zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
             zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
                                            wa_route_file-pmethode,
             zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
                                            wa_route_file-qmtb_werks,
             zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
                                            wa_route_file-pmtversion.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '1502',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
             zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
             zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
                                             wa_route_file-pmethode,
             zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
                                             wa_route_file-qmtb_werks,
             zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
                                             wa_route_file-pmtversion.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '0150',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMD1',
             zf_prepare_bdcdata_value USING 'RQPAS-ENTRY_ACT' '1'.
    CLEAR v_fieldnm.
    CONCATENATE 'RQPAS-SEL_FLG(' v_inscounter ')' INTO v_fieldnm.
    PERFORM: zf_prepare_bdcdata_value USING v_fieldnm 'X'.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '0160',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMAM',
             zf_prepare_bdcdata_value USING 'PLMKB-STICHPRVER'
                                            wa_route_file-stichprver.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '0160',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00',
             zf_prepare_bdcdata_value USING 'BDC_CURSOR'
                                            'PLMKB-PROBENR',
             zf_prepare_bdcdata_value USING 'PLMKB-PROBENR'
                                           wa_route_file-probenr,
             zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
                                           wa_route_file-pmethode,
             zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
                                  wa_route_file-qmtb_werks,
             zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
                                   wa_route_file-pmtversion.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '1502',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
             zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
             zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
                                             wa_route_file-pmethode,
             zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
                                             wa_route_file-qmtb_werks,
             zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
                                             wa_route_file-pmtversion.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '0160',
             zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMBU',
             zf_prepare_bdcdata_value USING 'PLMKB-PROBENR'
                                            wa_route_file-probenr,
             zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
                                            wa_route_file-pmethode,
             zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
                                            wa_route_file-qmtb_werks,
             zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
                                            wa_route_file-pmtversion.
    PERFORM: zf_prepare_bdcdata_prg   USING 'SAPLQPAA' '1502',
           zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
           zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
           zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
                                           wa_route_file-pmethode,
           zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
                                           wa_route_file-qmtb_werks,
           zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
                                           wa_route_file-pmtversion.
    v_inscounter = v_inscounter + 1.
    AT END OF plnnr.
*--Call transaction CA02- Change Routing
      CALL TRANSACTION 'CA02' USING i_bdcdata
                              MESSAGES INTO i_messtab
                              MODE 'N'
                              UPDATE 'S'.
      COMMIT WORK AND WAIT.
    ENDAT.
  ENDLOOP.
Please ask if any queries....

Similar Messages

  • Material Inspection characterstics

    Hi all,
    I have created a new plant, business area and sales organization. I have done almost all configurations. Now I am doing a test run of MM. I have created a material and al necessary master data. I created an inspection plan for this material . while entering inspections characterstics in qp01, no characterstic is shown for my newly created plant 5500. Where I can create characterstics for this plant or assigned already created characterstics to new plant?
    Please respond.
    Regards,
    AI.

    I hav resolved myself. it can be done in tcode qs21.
    Regards,
    AI.

  • Error in LSMW in Uploading Inspection Plan in QP01

    Hi All,
    I am facing problem when executing LSMW, I am Uploading Inspection Plan in QP01 transaction using Direct Input methos. The problem is on 13th step :Error that I get is 'No profile with entry tool for task list / / / in session INSPECTION_OBJ', here INSPECTION_OBJ is the name of the session. I have given the constant value of field profile (BIPKO-PROFIDNETZ) in mapping step and also activated check box 'entry tool' under profile to remove this error. But in  that case i can pass only the header data while processing the session and control does not get into Operation and characteristic screen.
    Can anyone pls help me..
    Thanks in advance...

    You might need to redo the recording all over again, BDC has plentty of scenario for screen selection to go wrong, so can't really tell what cause your problem based on your desc.  I have been stop using BDC to uplaod material since 5 years ago, I always use Direct input in LSMW and it works much better. I recomend you try the Direct input method instead of BDC if still getting problem.

  • What is the IDOC for Master inspection Characterstics Creation/edit/Cancel

    Hi
    i need IDOC for this.....
    what is the IDOC for
    1.Master inspection Characterstics Creation
    2.Master inspection Characterstics Edit
    3.Master inspection Characterstics Cancel
    plz give ans very urgent
    bye
    suresh

    Check these..
    in TCode: we30
    ->INSPECTIONPLAN_CREATE01
    ->MATQM01
    ->QPMK01
    Regards,
    Ramesh.

  • Creation of multiple inspection points

    Hello experts,
    I try to figure out how to create multiple inspection points for one operation at process order release.
    It means that the release of the process order triggers:
    - inspection lot creation (lot origin 03)
    - inspection points creation for operation with inspection characteristics assigned to it
    In the recipe header, I entered inspection points = 150 - generated inspection point, qty or time
    (module function QAPP_CUST_IP_CREATE is activated for "automatic creation of insp. points")
    In the operation header, I select time related -and enter 1 HR
    However no inspection point is created at process order release. Only inspection point identifier is created automatically when I select the next inspection point in TR QE51N.
    Do you have any tips on the subject ?
    Thanks in advance
    Best regards
    Amaury

    Dear Amuary
    Doubt if there is any solution in standard. Use exit so that thr first 3 inspection points gets activated quickly. Try these exits
    QAPP0001
    User exit QAPP 1 (create inspection point)
    |  QAPP0002 |User exit QAPP 2 (create inspection point & other data)    
    Regards
    Gajesh

  • QM Related (Multiple Inspection Lots)

    Dear Gurus,
    Can anyone explain me the process of creating mulitple inspection lots.
    one way that I knew, is that to setup 'partial lots' in the master recipe and make the system work to create multiple inspection lots.... Are there any other methods to accomplish this?
    Thanks

    Thanks for your concerns!..
    The requirement is that the site is required to create multiple inspection lots (of 03 type - Inprocess inspection type) for the same batch number that is tied to a process order....with the constraint that the process order has and will have only one phase..
    Any lights?... Thanks,

  • Multiple Inspection lots

    Hi All -
    Client does multiple goods receipts for a process order and the requirement is to create multiple inspection lots one at order level and other at each goods receipt level.
    Is there any way to generate inspection lot at order level and for every goods receipt for the same process order ?
    Please advice..
    S

    Only if you are using DMR's at the characteristic level to create skip characteristics.
    In that case, you put on all the characteristics that need to be tested over the life of the order.  Then the DMR makes characteristics optional or required as you prcoess the inspection lots.
    The problem usually lies in how to reset all characteristics to the initial level.  Characteristics can also get out of sync due to failures.  A failed charateristic usually causes the DMR to make the characteristic required on the next inspection.  Then it might be "off schedule" with regards to other or similar characteristics.  This can be somewhat mitigated by using dependent characteristics so a group of characteristics follow the same DMR.
    It works best when you have a very rigid receipt process.  I.e. you know for a given material, that you'll do X number of receipts over the life of the order and all the receipts are of the same size.
    FF

  • Multiple inspection against Batch

    Hi,
    My client doing the inprocess quality checking of the same set of inprocess characteristics every hour for a particular bacth during production. They have both REM and PP-PI and we are using 03 and 13 inspection types for inprocess checking.Now how to handle multiple inspection of same set of characteristics for every hour?
    Regards
    Sandip

    1.Select the "Inspection points based on time " in routing Header
    2.In Operation overview under Inspection points put time 60 min.
    3.check T code QE70
    This will create the Inspection point per Hr..........which will allow you to do the multiple RR on same set of chars

  • I am making multiple DVD's of roughly 50 hours of footage on DVD Studio pro with 4 separate menus for 4 different 'parts' or series if you will. 50 hours - 20 episodes - 4 parts of 5 episodes each. What are my options in terms of burning these parts on to

    I am making multiple DVD's of roughly 50 hours of footage on DVD Studio pro with 4 separate menus for 4 different 'parts' or series if you will. 50 hours - 20 episodes - 4 parts of 5 episodes each. What are my options in terms of burning these parts on to separate DVD's, what is the process, what size DVD RW should I buy, what bitrate should I use, and what quality I should expect for the burn. Any advice or insight is welcome.

    >>What are my options in terms of burning these parts on to separate DVD's<<
    20 episodes totaling 50 hours equals about 2.5 hours per episode assuming all episodes have the same duration.  Fitting 2.5 hours onto one single layer DVD would require a low bit rate which means quality wouldn't be anywhere near best, but that's a judgement call you'll have to make based on several factors.  For example; if there is not much motion in the video (talking heads, etc), you can get by with a lower bit rate and may not notice any quality difference.
    >>what is the process>>
    The process is essentially the same as it is when authoring a regular DVD with 2 hours or less of content.  However, with as many discs as you'd need to complete this "set," you'll need to create a separate DVD Studio Project for each disc.  Basically, you'd use one of Compressor's DVD Presets (or customize a preset) to create an MPEG--2 video file (.m2v) and a Dolby Digital audio file (.AC3).  Import both of those assets into your DVD Studio Pro project for authoring and burning.
    If you want to keep one episode per disc, DVD Studio Pro does have a 150 minute preset or you could use dual-layer discs with a higher bit rate for better quality.  Again; your call.
    >>what size DVD RW should I buy<<
    Size?  12cm.  Capacity?  Single layer, single sided DVD discs (DVD-5) have a rated capacity of 4.7Gb (4.37Gb actual), including menus.  If you use single layer discs and want to keep the quality reasonably good, you'd need at least 50 discs to complete this "set" with each disc holding roughly 2 hours of footage if you keep the menu on each disc simple.  Or, you could use dual-layer discs (DVD-9) which have a capacity of about 7.95Gb - almost doubling the recordable capacity.  There are also dual-sided, dual-layer discs available (DVD-18) but they are relatively expensive and have to be manually turned over to continue playback ... but they do have roughly 15.9Gb capacity.
    >>what bitrate should I use, and what quality I should expect for the burn<<
    Exactly; the quality is dependent on the bit rate chosen, as well as the quality of the compression.  Using compression markers where needed can greatly increase the quality of playback but will most likely increase the file size of the compressed video.  For the best quality, keeping the bit rate  as high as possible allowed under the DVD specification will yield the best quality but some DVD players may choke if the bit rate is too high.  For best quality I typically aim for a bit rate around 7.6 to 8.0Mbps but that will only allow about one hour of footage.
    Naturally, if you decrease the bit rate, you can fit more footage onto the disc but quality will be sacraficed.   Here's a chart approximating DVD bit rates and durations for single layer discs (does not include space for menus):
    3.5Mbps - 120 minutes
    5.0Mbps -   95 minutes
    6.0Mbps -   82 minutes
    7.6Mbps -   65 minutes
    8.0Mbps -   60 minutes
    -DH

  • Routing Inspection Characterstics

    Hi Pandits,
    I am trying to create Routing with its 'Inspection CHaracterstics' (IC) by filling table  INSPCHARACTERISTIC. I am able to create Routing, but when I am specifying IC, it is not creating and giving me below error.
    T ID                   NUM MESSAGE
    E BAPI                 001
    W CPCC_DT              009 The valid-from data has been set from today's date
    E QP                   411 Enter a selected set
    E CQCL                 103 Consistency check when creating characteristic 0010 was unsuccessful
    A CQCL                 103 Consistency check when creating characteristic 0010 was unsuccessful
    If someone encountered this problem and able to find the soln, please help me out.
    Rgds
    Vaibhav

    Dear,
    I have dearched out internet, done my investigation but if one error resolves other comes. Can someone help me out?
    Regards

  • Difference between Characterstics and Master Inspection Characterstics??

    Could some please explain me the difference between characterstics and Master inspection Characterstics?
    How do you create a new master inspection characterstics?

    Classification and Characteristics are cross-application functions ( [SAP Help|http://help.sap.com/saphelp_erp60_sp/helpdata/en/dd/ae56614bb411d192f20000e829fbc6/frameset.htm] ) used in many areas of SAP such as:
    - Equipment
    - Functional location
    - Notification
    - Task lists
    - Materials
    - QM master inspection characteristics
    - Sales orders
    - Etc
    PeteA

  • PROBLEM IN QP01 BDC ( 19TH LINE ITEM IS NOT TAKING)

    DEAR ALL,
    I am working on a bdc of QP01 for inspection plan, my bdc is working prperly , problem is that  in sceen there r 18 lines for line  items , but i have 30 line items. after 18 line items no data is picking. and a message is coming no input data is there for screen no 0150. i tried a lot  and unable to solve . if anybody can solve my problem . i send u the part of my code.
    LOOP AT ITAB.
    CHECK ITAB-MATNR = ITAB1-MATNR.
    if flag = 1.
      ** QUALITATIVE **
    if itab-QUALITAT = 'X' AND itab-QUANTITAT = ''.
    IF I ge 18.
    *CONCATENATE  'RQPAS-SEL_FLG(' I ')' INTO SCR.
    *perform bdc_field       using SCR
    X = '17'..
    CONCATENATE  'RQPAS-SEL_FLG(' X ')' INTO SCR.
    perform bdc_field       using SCR
    X1 = '18'..
    CONCATENATE  'RQPAS-SEL_FLG(' X ')' INTO SCR.
    perform bdc_field       using SCR
    X2 = '340'.
    CONCATENATE  'RQPAS-SEL_FLG(' X1 ')' INTO SCR.
    perform bdc_field       using SCR
        PERFORM BDC_DYNPRO      USING 'SAPLQPAA' '0150'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RQPAS-QUALITAT(02)'.
       PERFORM BDC_FIELD       USING 'RQPAS-ENTRY_ACT'
                                     '1'.
                                       i.
       PERFORM BDC_FIELD       USING 'RQPAS-AB_MKNR'
                                ITAB-MERKNR         .
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
    endif.
    perform bdc_dynpro      using 'SAPLQPAA' '0150'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'PLMKB-VERWMERKM(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RQPAS-ENTRY_ACT'
                                  '1'.
    k = i - 1.
    CONCATENATE  'RQPAS-SEL_FLG(' k ')' INTO SCR.
    perform bdc_field       using SCR
    CONCATENATE  'RQPAS-SEL_FLG(' i ')' INTO SCR.
    perform bdc_field       using SCR
                                  'X'.
    ***perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    ***'=QMLM'.
    CONCATENATE  'PLMKB-VERWMERKM(' I ')' INTO SCR.
    perform bdc_field       using   scr      "'PLMKB-VERWMERKM(01)'
                                 'DS-TH-01'.
    itab-VERWMERKM.
    CONCATENATE  'PLMKB-KURZTEXT(' I ')' INTO SCR.
    perform bdc_field       using   scr
    itab-KURZTEXT.
    regards
    banaja

    but i want to try it out by modifying the existing code.
    please provide me guidelines to solve this problem.

  • MULTIPLE ITEM PROBLEM IN VL31N BDC

    hI FRIENDS ,
        I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
    CODE IS AS FOLLOWS:.........
    FUNCTION y_synie_bdcinbdly.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(CTU) LIKE  APQI-PUTACTIVE DEFAULT 'X'
    *"     VALUE(MODE) LIKE  APQI-PUTACTIVE DEFAULT 'N'
    *"     VALUE(UPDATE) LIKE  APQI-PUTACTIVE DEFAULT 'L'
    *"     VALUE(GROUP) LIKE  APQI-GROUPID OPTIONAL
    *"     VALUE(USER) LIKE  APQI-USERID OPTIONAL
    *"     VALUE(KEEP) LIKE  APQI-QERASE OPTIONAL
    *"     VALUE(HOLDDATE) LIKE  APQI-STARTDATE OPTIONAL
    *"     VALUE(NODATA) LIKE  APQI-PUTACTIVE DEFAULT '/'
    *"     VALUE(EXTNID) LIKE  MAKT-MAKTG
    *"     VALUE(VENDORNO) LIKE  LFA1-LIFNR
    *"     VALUE(PONUMBER) LIKE  EKKO-EBELN
    *"     VALUE(ITEMNUMBER) LIKE  LIPS-VGPOS
    *"     VALUE(MATERIAL) LIKE  MAKT-MAKTG
    *"     VALUE(DLYQTY) LIKE  LIPS-LFIMG
    *"     VALUE(BTCHNO) LIKE  LIPS-CHARG
    *"     VALUE(POSLR) LIKE  EKES-EBELP OPTIONAL
    *"  EXPORTING
    *"     VALUE(SUBRC) LIKE  SYST-SUBRC
    *"     VALUE(INDELYNO) LIKE  SY-MSGV2
    *"     VALUE(MSG1) LIKE  SY-MSGV1
    *"     VALUE(MSG2) LIKE  SY-MSGV2
    *"     VALUE(MSG3) LIKE  SY-MSGV3
    *"     VALUE(MSG4) LIKE  SY-MSGV4
    *"  TABLES
    *"      MESSTAB STRUCTURE  BDCMSGCOLL
    *"      ERRTAB STRUCTURE  YSYNERRMSGS
    *"      INDLYTAB STRUCTURE  YSYN_QTYTAB
    Updated by ANAND SYNISE 19.1.2007
      DATA: BEGIN OF bdctab OCCURS 0.
              INCLUDE STRUCTURE bdcdata.
      DATA: END OF bdctab.
      DATA: datenow(10) TYPE c,
            fldvar(30)  TYPE c,
            fldno       TYPE i,
            flditoc(6)  TYPE c,
            qty(13)     TYPE c.
      DATA maxposnr LIKE lips-posnr.
      DATA testposnr TYPE posnr.
      DATA itemnoint TYPE i.
      CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
      CLEAR bdctab.
      REFRESH bdctab.
      PERFORM open_group      USING group user keep holddate ctu.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '4007'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-VERUR_LA'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-LIFNR'.
           bdctab-fval = vendorno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LV50C-BSTNR'.
           bdctab-fval = ponumber.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-VERUR_LA'.
           bdctab-fval = extnid.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=MKAL_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIKP-BLDAT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POPO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '0111'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-PO_MATNR'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = 'WEIT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-PO_MATNR'.
           bdctab-fval = material.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POLO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
    *ADDED BY ANAND ON 22-01-2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  ITEMNUMBER .     "ITEMNUMBER = LIPS-VGPOS
           APPEND bdctab.
    ************ENDED***********************
    ADDED BY MILIND 19.01.2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  poslr .
           APPEND bdctab.
    *    ENDED * *
       CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
           bdctab-fval = ''.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-CHARG(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
          QTY = INDLYTAB-DLYQTY.
            qty = dlyqty.
           bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
           bdctab-fval = QTY.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIPS-CHARG(01)'.
    *     BDCTAB-FVAL = INDLYTAB-BTCHNO.
           bdctab-fval = btchno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=SICH_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-MATNR(02)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
      CALL TRANSACTION 'VL31N' USING bdctab MODE 'N'  MESSAGES INTO messtab.
      subrc = sy-subrc.
      PERFORM close_group USING     ctu.
      CLEAR bdctab.
      REFRESH bdctab.
      IF sy-subrc EQ 0.
        indelyno = sy-msgv2.
      ENDIF.
      LOOP AT messtab.
        MOVE: messtab-msgid TO errtab-msgid,
              messtab-msgnr TO errtab-msgnr,
              messtab-msgv1 TO errtab-msg1,
              messtab-msgv2 TO errtab-msg2,
              messtab-msgv3 TO errtab-msg3,
              messtab-msgv4 TO errtab-msg4.
        APPEND ERRtab.
      ENDLOOP.
      LOOP AT errtab.
        SELECT SINGLE text FROM t100
          INTO errtab-errmsg
          WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
          AND sprsl EQ sy-langu.
        MODIFY errtab.
      ENDLOOP.
    ENDFUNCTION.

    Hi,
    Check this code:
    REPORT Z_CUSTOMER_UPLOAD .
                  D A T A         D E C L A R A T I O N S                *
    DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_CUSTOMER.
    DATA:BEGIN OF IT_success OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_success.
    DATA:BEGIN OF IT_error OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_error.
    DATA: L_INDEX TYPE SY-TABIX.
    DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
    IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
    ERROR MESSAGE TABLE
    DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA : C_S TYPE C VALUE 'S',
            C_E TYPE C VALUE 'E'.
    *DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
         IT_ERROR LIKE IT_CUSTOMER  OCCURS 0.
    DATA : V_RECTOT TYPE I,
            V_RECERR TYPE I,
            V_RECSUC TYPE I.
                  S E L E C T I O N  -  S C R E E N                      *
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETER        : P_FILE LIKE RLGRAP-FILENAME .
    SELECTION-SCREEN : END OF BLOCK B1.
               A T  S E L E C T I O N  -  S C R E E N                    *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    to get F4 help for p_file
      PERFORM F4_FILENAME USING P_FILE.
                S T A R T   O F   S E L E C T I O N                      *
    START-OF-SELECTION.
    Uploading data from flat file into it_tab
      PERFORM BDC_UPLOAD USING P_FILE.
      PERFORM PROCESS_DATA.
      PERFORM POPULATE_BDC.
                E N D  O F   S E L E C T I O N                           *
    *END-OF-SELECTION.
    PERFORM DISPLAY_REPORT.
    *&      Form  F4_FILENAME
          text
         -->P_P_FILE  text
    FORM F4_FILENAME USING    P_P_FILE.
    DATA:L_FILE TYPE IBIPPARMS-PATH.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      PROGRAM_NAME        = SYST-CPROG
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
    IMPORTING
       FILE_NAME           = L_FILE .
       P_P_FILE = L_FILE.
    ENDFORM.                    " F4_FILENAME
    *&      Form  BDC_UPLOAD
          text
         -->P_P_FILE  text
    FORM BDC_UPLOAD USING    P_P_FILE.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        FILENAME                      = P_P_FILE
        I_BEGIN_COL                   = 1
        I_BEGIN_ROW                   = 1
        I_END_COL                     = 8
        I_END_ROW                     = 1000
      TABLES
        INTERN                        = IT_DATA
    EXCEPTIONS
       INCONSISTENT_PARAMETERS       = 1
       UPLOAD_OLE                    = 2
       OTHERS                        = 3
    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.                    " BDC_UPLOAD
    *&      Form  PROCESS_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM PROCESS_DATA.
    SORT IT_DATA BY ROW COL.
      LOOP AT IT_DATA.
    CASE IT_DATA-COL.
    WHEN 1.
    IT_CUSTOMER-KUNNR   = IT_DATA-VALUE.
    WHEN 2.
    IT_CUSTOMER-VKORG   = IT_DATA-VALUE.
    WHEN 3.
    IT_CUSTOMER-VTWEG   = IT_DATA-VALUE.
    WHEN 4.
    IT_CUSTOMER-MATNR   = IT_DATA-VALUE.
    WHEN 5.
    IT_CUSTOMER-KDMAT   = IT_DATA-VALUE.
    WHEN 6.
    IT_CUSTOMER-MEGRU   = IT_DATA-VALUE.
    WHEN 7.
    IT_CUSTOMER-LPRIO   = IT_DATA-VALUE.
    WHEN 8.
    IT_CUSTOMER-ANTLF   = IT_DATA-VALUE.
    APPEND IT_CUSTOMER.
        ENDCASE.
      ENDLOOP.
    ENDFORM.                    " PROCESS_DATA
    *&      Form  POPULATE_BDC
          text
    -->  p1        text
    <--  p2        text
    FORM POPULATE_BDC.
    DATA:L_COUNTER TYPE N,
             L_STRING TYPE STRING.
    LOOP AT IT_CUSTOMER.
    AT NEW KUNNR.
    CLEAR L_COUNTER.
          L_INDEX = SY-TABIX.
          READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_dynpro      using 'SAPMV10A' '0100'.
    perform bdc_field       using 'MV10A-KUNNR'
                                  IT_CUSTOMER-KUNNR.
    perform bdc_field       using 'MV10A-VKORG'
                                  IT_CUSTOMER-VKORG.
    perform bdc_field       using 'MV10A-VTWEG'
                                  IT_CUSTOMER-VTWEG.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    ENDAT.
    L_COUNTER = L_COUNTER + 1.
        CLEAR L_STRING.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                            IT_CUSTOMER-MATNR.
    CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using     L_STRING
                                     IT_CUSTOMER-KDMAT.
    CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using   L_STRING
                                    IT_CUSTOMER-MEGRU.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    *-- For Page down in Call Transaction Mode
        IF L_COUNTER = 14.
          CLEAR L_COUNTER.
          PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=P+'.
        ENDIF.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                              IT_CUSTOMER-SELKZ.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SELE'.
    perform bdc_dynpro      using 'SAPMV10A' '0300'.
    perform bdc_field       using 'MV10A-KDMAT'
                                  IT_CUSTOMER-KDMAT.
    perform bdc_field       using 'MV10A-LPRIO'
                                  IT_CUSTOMER-LPRIO.
    perform bdc_field       using 'MV10A-ANTLF'
                                  IT_CUSTOMER-ANTLF.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '/EBACK'.
    at end of kunnr.
    READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
          MESSAGES INTO IT_MESSAGES.
          CLEAR IT_BDC.
          REFRESH IT_BDC.
    ENDAT.
      IF NOT IT_MESSAGES[] IS INITIAL.
        PERFORM FORMAT_MESSAGE.
      ENDIF.
    ENDLOOP.
    ENDFORM.                    " POPULATE_BDC
    *&      Form  bdc_dynpro
          text
         -->P_0273   text
         -->P_0274   text
    FORM bdc_dynpro USING    VALUE(P_0273)
                             VALUE(P_0274).
    IT_BDC-PROGRAM = P_0273.
    IT_BDC-DYNPRO = P_0274.
    IT_BDC-DYNBEGIN = 'X'.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_dynpro
    *&      Form  bdc_field
          text
         -->P_0278   text
         -->P_RECORD_KUNNR_001  text
    FORM bdc_field USING    VALUE(P_0278)
                           VALUE(P_0279).
    IT_BDC-FNAM = P_0278.
      IT_BDC-FVAL = P_0279.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_field
    *&      Form  FORMAT_MESSAGE
          text
    -->  p1        text
    <--  p2        text
    FORM FORMAT_MESSAGE.
    DATA: L_MSG(100).
      LOOP AT IT_MESSAGES.
      READ TABLE IT_CUSTOMER INDEX L_INDEX.
        CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
                  ID        = IT_MESSAGES-MSGID
                  LANG      = SY-LANGU
                  NO        = IT_MESSAGES-MSGNR
                  V1        = IT_MESSAGES-MSGV1
                  V2        = IT_MESSAGES-MSGV2
                  V3        = IT_MESSAGES-MSGV3
                  V4        = IT_MESSAGES-MSGV4
             IMPORTING
                  MSG       = L_MSG
             EXCEPTIONS
                  NOT_FOUND = 1
                  OTHERS    = 2.
        IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        write:/ l_msg.
      ENDLOOP.
    ENDFORM.                    " FORMAT_MESSAGE
    reward if helpful,
    keerthi

  • Problem in posting multiple documents in FB70 through BDC...

    Hi,
       I am facing a problem while posting multiple documents from a flat file in FB70 thourgh BDC batch input by using session method. However, the session is getting terminated after posting the first document. Please clarify my problem.
    Below is a sample of the data in my flat file -
    Customer,Invoice Date,Posting Date,Amount,G/L Account,Amount in doc. Curr.
    34,03.06.2009,03.06.2009,100,211000,100
    34,03.06.2009,03.06.2009,200,211000,200
    34,03.06.2009,03.06.2009,300,211000,300
    And below is the sample code of my program.
    REPORT ZANI2_BDC_FB70
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    TYPES: BEGIN OF TY_STR_FB70,
             ACCNT(20)      TYPE C,     "Customer
             BLDAT(20)      TYPE C,     "Invoice Date
             BUDAT(20)      TYPE C,     "Posting Date
             WRBTR(20)      TYPE C,     "Basic Data - Amount
             HKONT(20)      TYPE C,     "G/L Account
             ITEM_WRBTR(20) TYPE C,
             "Line Item Amount In Document Currency
           END OF TY_STR_FB70,
          BEGIN OF TY_STR_FILEDATA,
             FIELDS TYPE STRING,
          END OF TY_STR_FILEDATA.
    *   data definition
    *       Batchinputdata of single transaction
    DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE,
    *       messages of call transaction
            MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA: IT_STR_FILEDATA TYPE STANDARD TABLE OF TY_STR_FILEDATA,
          WA_STR_FILEDATA TYPE TY_STR_FILEDATA,
          IT_STR_FB70 TYPE STANDARD TABLE OF TY_STR_FB70,
          WA_STR_FB70 TYPE TY_STR_FB70,
          G_STR_FILENAME TYPE STRING,
          G_FLG_ERROR TYPE I,
          G_INDEX TYPE I,
          G_STR_INDEX TYPE STRING,
          G_STR_FIELDNAME TYPE STRING.
    SELECTION-SCREEN BEGIN OF BLOCK INPUT.
    PARAMETERS: P_FILE TYPE IBIPPARMS-PATH,
                P_SES  TYPE APQI-GROUPID.
    SELECTION-SCREEN END OF BLOCK INPUT.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          PROGRAM_NAME  = SYST-CPROG
          DYNPRO_NUMBER = SYST-DYNNR
          FIELD_NAME    = 'P_FILE'
        IMPORTING
          FILE_NAME     = P_FILE.
    Continued in the next thread..

    ...Continued from the previous thread.
    PERFORM OPEN_GROUP.
        G_INDEX = 1.  
        LOOP AT IT_STR_FB70 INTO WA_STR_FB70.
           PERFORM BDC_DYNPRO      USING 'SAPMF05A' '1200'.
          PERFORM BDC_FIELD       USING 'RF05A-BUSCS'
                                         'R'.
         "Customer
          PERFORM BDC_FIELD       USING 'INVFO-ACCNT'
                                         WA_STR_FB70-ACCNT.  
          "Invoice Date
          PERFORM BDC_FIELD       USING 'INVFO-BLDAT'
                                        WA_STR_FB70-BLDAT.                               
          "Posting Date
          PERFORM BDC_FIELD       USING 'INVFO-BUDAT'
                                        WA_STR_FB70-BUDAT.                                
         "Basic data - Amount
          PERFORM BDC_FIELD       USING 'INVFO-WRBTR'
                                        WA_STR_FB70-WRBTR.     
          PERFORM BDC_FIELD       USING 'INVFO-WAERS'
                                        'EUR'.
          G_STR_INDEX = G_INDEX.
          IF G_INDEX < 10.
            CONCATENATE '0' G_STR_INDEX INTO G_STR_INDEX.
          ENDIF.
          CONDENSE G_STR_INDEX NO-GAPS.
          CLEAR G_STR_FIELDNAME.
          CONCATENATE  'ACGL_ITEM-WRBTR(' G_STR_INDEX ')' INTO
          G_STR_FIELDNAME.
          PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                        G_STR_FIELDNAME.
                                        "'ACGL_ITEM-WRBTR(01)'.
          "G/L Acct
          CONCATENATE  'ACGL_ITEM-HKONT(' G_STR_INDEX ')' INTO
          G_STR_FIELDNAME.
          PERFORM BDC_FIELD       USING  G_STR_FIELDNAME       
                                         WA_STR_FB70-HKONT.    
            "Amount .
          CONCATENATE  'ACGL_ITEM-WRBTR(' G_STR_INDEX ')' INTO
          G_STR_FIELDNAME.
          PERFORM BDC_FIELD       USING G_STR_FIELDNAME   
                                        WA_STR_FB70-ITEM_WRBTR.
          "PERFORM BDC_DYNPRO      USING 'SAPMF05A' '1200'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=BU'.
          CLEAR WA_STR_FB70.
        ENDLOOP.
        IF G_FLG_ERROR IS INITIAL.
          PERFORM BDC_TRANSACTION USING 'FB70'.
        ENDIF.
        IF G_FLG_ERROR IS INITIAL.
          PERFORM CLOSE_GROUP.
          MESSAGE 'Session created successfully.' TYPE 'I'.
        ENDIF.
      ENDIF.
    Continued in the next thread..

  • Urgent : Making heirarchy report by fetching data froma single table

    Hi,
    I am making a report in which i hae to display the data like this:-
    If there is a material and it contains batch and that batch furhter conatins sub-batches of it.
    The problem is dat all the data which is to be displayed is from the table CHVW  and i am  not able to display the data in hierarchy by fetching it from a single table.
    plzz guide me how to do dis as it is really urgent and points will be deinftely rewarded.
    help me out.
    reagrds,
    ric.s
    Edited by: ric .s on Apr 30, 2008 10:31 AM

    Hi,
    Check the sample Report.
    REPORT z_alv_hierseq_list.
    Program with FM REUSE_ALV_HIERSEQ_LIST_DISPLAY                      *
    TYPE-POOLS: slis.                    " ALV Global types
    CONSTANTS :
      c_x VALUE 'X',
      c_gt_vbap TYPE slis_tabname VALUE 'GT_VBAP',
      c_gt_vbak TYPE slis_tabname VALUE 'GT_VBAK'.
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
    PARAMETERS p_max(02) TYPE n DEFAULT '10' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_2 FOR FIELD p_expand. "#EC NEEDED
    PARAMETERS p_expand AS CHECKBOX DEFAULT c_x.
    SELECTION-SCREEN END OF LINE.
    TYPES :
    1st Table
      BEGIN OF ty_vbak,
        vbeln TYPE vbak-vbeln,             " Sales document
        kunnr TYPE vbak-kunnr,             " Sold-to party
        netwr TYPE vbak-netwr,             " Net Value of the Sales Order
        erdat TYPE vbak-erdat,             " Creation date
        waerk TYPE vbak-waerk,             " SD document currency
        expand TYPE xfeld,
      END OF ty_vbak,
    2nd Table
      BEGIN OF ty_vbap,
        vbeln TYPE vbap-vbeln,             " Sales document
        posnr TYPE vbap-posnr,             " Sales document
        matnr TYPE vbap-matnr,             " Material number
        arktx TYPE vbap-arktx,             " Material description
        netwr TYPE vbap-netwr,             " Net Value of the Sales Order
        waerk TYPE vbap-waerk,             " SD document currency
      END OF ty_vbap.
    DATA :
    1st Table
      gt_vbak TYPE TABLE OF ty_vbak,
    2nd Table
      gt_vbap TYPE TABLE OF ty_vbap.
    INITIALIZATION.
      v_1 = 'Maximum of records to read'.
      v_2 = 'With ''EXPAND'' field'.
    START-OF-SELECTION.
    Read Sales Document: Header Data
      SELECT vbeln kunnr netwr waerk erdat
        FROM vbak
          UP TO p_max ROWS
        INTO CORRESPONDING FIELDS OF TABLE gt_vbak.
      IF gt_vbak[] IS NOT INITIAL.
      Read Sales Document: Item Data
        SELECT vbeln posnr matnr arktx netwr waerk
          FROM vbap
          INTO CORRESPONDING FIELDS OF TABLE gt_vbap
           FOR ALL ENTRIES IN gt_vbak
         WHERE vbeln = gt_vbak-vbeln.
      ENDIF.
    END-OF-SELECTION.
      PERFORM f_display.
          Form  F_DISPLAY
    FORM f_display.
    Macro definition
      DEFINE m_fieldcat.
        ls_fieldcat-tabname = &1.
        ls_fieldcat-fieldname = &2.
        ls_fieldcat-ref_tabname = &3.
        ls_fieldcat-cfieldname = &4.       " Field with currency unit
        append ls_fieldcat to lt_fieldcat.
      END-OF-DEFINITION.
      DEFINE m_sort.
        ls_sort-tabname = &1.
        ls_sort-fieldname = &2.
        ls_sort-up        = c_x.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.
      DATA:
        ls_layout   TYPE slis_layout_alv,
        ls_keyinfo  TYPE slis_keyinfo_alv,
        ls_sort     TYPE slis_sortinfo_alv,
        lt_sort     TYPE slis_t_sortinfo_alv," Sort table
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv." Field catalog
      ls_layout-group_change_edit = c_x.
      ls_layout-colwidth_optimize = c_x.
      ls_layout-zebra             = c_x.
      ls_layout-detail_popup      = c_x.
      ls_layout-get_selinfos      = c_x.
      IF p_expand = c_x.
        ls_layout-expand_fieldname  = 'EXPAND'.
      ENDIF.
    Build field catalog and sort table
      m_fieldcat c_gt_vbak 'VBELN' 'VBAK' ''.
      m_fieldcat c_gt_vbak 'KUNNR' 'VBAK' ''.
      m_fieldcat c_gt_vbak 'NETWR' 'VBAK' 'WAERK'.
      m_fieldcat c_gt_vbak 'WAERK' 'VBAK' ''.
      m_fieldcat c_gt_vbak 'ERDAT' 'VBAK' ''.
      m_fieldcat c_gt_vbap 'POSNR' 'VBAP' ''.
      m_fieldcat c_gt_vbap 'MATNR' 'VBAP' ''.
      m_fieldcat c_gt_vbap 'ARKTX' 'VBAP' ''.
      m_fieldcat c_gt_vbap 'NETWR' 'VBAP' 'WAERK'.
      m_fieldcat c_gt_vbap 'WAERK' 'VBAP' ''.
      m_sort c_gt_vbak 'KUNNR'.
      m_sort c_gt_vbap 'NETWR'.
      ls_keyinfo-header01 = 'VBELN'.
      ls_keyinfo-item01 = 'VBELN'.
      ls_keyinfo-item02 = 'POSNR'.
    Dipslay Hierarchical list
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          i_callback_program      = sy-cprog
          i_callback_user_command = 'USER_COMMAND'
          is_layout               = ls_layout
          it_fieldcat             = lt_fieldcat
          it_sort                 = lt_sort
          i_tabname_header        = c_gt_vbak
          i_tabname_item          = c_gt_vbap
          is_keyinfo              = ls_keyinfo
          i_save                  = 'A'
        TABLES
          t_outtab_header         = gt_vbak
          t_outtab_item           = gt_vbap
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
      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.                               " F_LIST_DISPLAY
          Form USER_COMMAND                                             *
    FORM user_command USING i_ucomm     TYPE sy-ucomm
                            is_selfield TYPE slis_selfield.     "#EC CALLED
      DATA ls_vbak TYPE ty_vbak.
      CASE i_ucomm.
        WHEN '&IC1'.                       " Pick
          CASE is_selfield-tabname.
            WHEN c_gt_vbap.
            WHEN c_gt_vbak.
              READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
              IF sy-subrc EQ 0.
              Sales order number
                SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
              Display Sales Order
                CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
              ENDIF.
          ENDCASE.
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
    END OF PROGRAM Z_ALV_HIERSEQ_LIST ******************
    Regards,
    Raj.

Maybe you are looking for