NI-SCOPE Multiple Measurements problem

My VI is attached. It makes multiple measurements of every line of a device for calibration purposes, the device is then attached to equipment that it is testing, and makes measurements on every line again.
This VI works fine in making the measurements for all of the calibration, but when it gets to the second phase for the actual testing it won't perform averaging or integral measurements. While it creates the instantaneous data just fine, the data results for the integral and the averaging are returned as NaN's.
The most mind-boggling part is - the device has measurements being taken on two channels; one of the channels, the averaging works fine even in the testing phase. It's only one channel which isn't working properly, only averaging and integral measurements, only in the second phase of the VI (when their configurations are set up to be effectively the same).
Any insight into what could cause this would be very much appreciated.
Thank you,
Wolley
Solved!
Go to Solution.
Attachments:
PulsedFiberTesterF2.vi ‏278 KB

The code you are working with is rather involved.  Would it be possible for you to simplify your code to better isolate the problem area and make troubleshooting easier?
Also, what do you mean by every line of a device?
James K.
National Instruments
Applications Engineer

Similar Messages

  • OBIEE Date Comparison report with multiple measures

    Hello everyone...
    I have a requirement where I need to create a date comparison report (Current Month vs. Prior Month vs Prior Month Year Ago vs YTD vs Prior YTD vs Rolling 3 months, etc) with multiple Measures (Quote count, Quote offered count, New Business count, etc). I am to generate this report in this fashion:
    Quotes Current Month vs PM vs YoY Prior
    Month Current Month Prior Year Current
    YTD vs PM Prior
    YTD Rolling 3 Months vs PM Prior Rolling 3 Months
    Issued 120 120 123 1400 1020 1700 1580
    Unique Risks
    Offered 556 449 571 5881 6220 6101 5892
    Unique Risk Close Ratio
    Offered Close Ratio 21.6% 26.7% 21.5% 23.8% 16.4% 27.9% 26.8%
    Bitmap
    Avg Issued Premium 240 238 222 2801 2630 3104 2892
    Avg Offered Premium
    New Business
    Count
    Avg Full Term Premium
    I understand that time series is an option, and have created the time series (which show up as measures).
    My problem is:
    when creating the report (even as a pivot table) , OBIEE is not allowing me to drag the measure to rows, nor is it allowing me to drag the time series to columns. Also, I need to do conditional formating on some of the columns showing an up arrow for increased vs. prior month and down arrow for decreased vs. prior month.
    Does anyone have a solution for this issue? Any assistance would be greatly appreciated...
    Please advise and thanks!!!

    Jason,
        You've been very helpful, but I guess I'm just not explaining myself that well. The Credit Memo's throw things off because they do not contain a "Paid Date" value. That field in the record is blank. Since it is blank the report query ignores them. Therefore when the report query returns all records that have a "Paid date" range of "x to y" they are never returned. This is a problem whenever a credit memo exists for an invoice because the "invoice total" never changes. So when a customer pays on their account for a particular invoice, they only pay what is due which is the "invoice total" minus any "credit" from the "Credit Memo". So when my A/R person receives payment they are showing the invoice paid in full because MAS automatically includes all invoices and credit memo's. My report does not because there is no data in the "Paid Date" field of the record for Credit Memos.
    I've been doing alot research in trying to resolve this "exception" to my report. I think I may be on to something, but my knowledge of arrays is extremely limited. My resolution involves populating an array with the "invoice numbers" that are returned from the initial query from the supplied date range. Then using the "invoice numbers" from the array have it then populate my details section of the report with all of "invoice records" both the actual invoice record and any "credit memo" records. I can then group the records returned  based upon the "invoice number". then within that grouping I can performing my calculations to show whether or not the invoice has been paid in full. What do you think?  I've been able to populate an array with the invoice numbers based upon my date search range, but I have yet to figure out how to take that information and perform another lookup to pull in the rest of the data I need. Do you have any ideas?
    Thanks.  Bill

  • Urgent multiple measure loading rule

    Hyperion essbase <BR>Can someone pls help in creating data loading rule?<BR>I am getting problem that only one item could be defined as data item in data loading rule file.<BR>pls help me in this

    Hi <BR><BR>Sorry to bother u. multiple measures in one row is working but there are following issues with same.<BR><BR>It's updating lot many data cells... pls see the log<BR><BR>with 4 measures in one row.<BR>.......................................<BR><BR>[Wed Aug 16 00:14:09 2006]Local/opt_load/opt_load/puneet/Info(1003037)<BR>Data Load Updated [1.73482e+006] cells<BR><BR>[Wed Aug 16 00:14:09 2006]Local/opt_load/opt_load/puneet/Info(1003024)<BR>Data Load Elapsed Time : [23] seconds<BR><BR>with 1 measure in one row.<BR>.......................................<BR>[Wed Aug 16 00:08:09 2006]Local/opt_load/opt_load/puneet/Info(1003037)<BR>Data Load Updated [466560] cells<BR><BR>[Wed Aug 16 00:08:09 2006]Local/opt_load/opt_load/puneet/Info(1003024)<BR>Data Load Elapsed Time : [18.437] seconds<BR><BR><BR><b> [1.73482e+006] cells</b><font color=white style="background-color: 3E3E3E;">Text</font ft><u> [1.73482e+006] cells</u><u>Updated [466560] cells</u>

  • How to get multiple measures in measure hierarchy in Essbase Studio

    Hi All,
    Previously we are using one measure column which will gives the count.Now the current requirement is to get multiple measures in measure hierarchy.
    For Example
    Measure
    Count
    SalesCount(count*Sales/10)
    CustomerCount(count*customer/10)
    In the fact we will be having only column called "count".
    So,I created the remaining two user defined dimension elements and applied formula in filters.
    When i am using individual dimension element in measure hierarchy the data is coming correct,However when I am combing these three hierarchies under measure hierarchiy I am getting no data.Can someone help me out how to resolve this issue
    Thanks,
    SatyaB

    Thanks Gleen.
    This is how the actual scenerio,currently i am creating a cube for testing domain.
    For all defects we will having a column called defect count.Now there are asking a new requirement to add addtional metrics contains sev1open defect,sev2 open defect etc...
    So,I created hierarchy like this
    Measures(Hierarchy)
    Count
    SalesMeasure
    For this member I returned in filter as ( 'contains'( connection : 'STATUS', "New" ) and 'contains'( 'TESTING_SEVERITY', "2-High" ))
    However when I am trying build this individually working fine getting correct data
    When I am combining due to overwrite it seems getting no data.Like this I have to create 16 metrics
    Is there any other method where I can proceed further to resolve this issue
    So,can you help me on this Gleen.Thanks
    Regards,
    SatyaB

  • Multiple Inheritance problem persists in Interfaces

    Hi,
    I tentatively made a program and found that multiple inheritance problem of C++ persists even with interfaces. Although this is definetely a special case but I want to know what is this problem known as( i know that this is perhaps known as diamond problem in C++). And is there a way out of this thing.
    interface one
         int i=10;
    interface two
         int i=20;
    interface z extends one,two
    public class xyz implements z
         public static void main(String [] a)
         System.out.println(i);
    }O/P
    D:\Education\Java\JavaStudyRoom\Applets>javac xyz.java
    xyz.java:16: reference to i is ambiguous, both variable i in one and variable i
    in two match
    System.out.println(i);
    *^*
    *1 error*
    Thanks for replying

    suvojit168 wrote:
    I tentatively made a program and found that multiple inheritance problem of C++ persists even with interfaces. Although this is definetely a special case but I want to know what is this problem known as( i know that this is perhaps known as diamond problem in C++). And is there a way out of this thing. This is not the so called diamond inheritance problem. What you have here is an ordinary name clash. And as has been noted you can resolve it by qualifying which constant you're referring to, like
    System.out.println(one.i);
    For the diamond inheritance problem to apply both the one and the two interfaces would need to inherit a common ancestor (that's how the diamond is formed). Furthermore the common anscestor would need to carry implementation which would then be inherited two ways, once via one and once via two. This is the diamond inheritance problem Java is avoiding by allowing single inheritance of implementation only.
    P.S. My previous post was posted my mistake.

  • SP10 - multiple approver problem with CUP

    We have SP10 (patch 1) in our development system and cannot move forward to production because of a real show stopper.  I have currently reported this to SAP thru an OSS message (and it is in development) but would like to know if anyone else is having this issue with SP10.  (this happened even before applying patch 1)
    We have multiple approvers when creating NEW users or CHANGING users in CUP.  We have it configured to allow just one of the approvers to approve before going on to the next stage.  Since we put in SP10, CUP is requiring ALL approvers to approve the request before going on to the next stage.  We get the following message when one of the approvers approve the request:  Request no: 5020. is approved, pending for other Approvers. 
    I've seen this reported for UAR and SOD but not for CUP.  In fact, there is a fix for UAR in Patch 1 of SP10.  I applied this patch but it hasn't fixed the CUP issue.  I also don't have the issue when rejecting a CUP request, or when approving it through the configuration --> Request --> Administration screen (what I consider the Back-door since only security administrators get the configuration area).
    Thanks for your input.
    Peggy

    Christian,
    I totally agree with you.
    The good news is.... We installed SP11.1 and the multiple approver problem is fixed. 
    We have decided to leave our production system at SP8 until this system settles down a bit.  Of course, this means we can't use many of the new fixes and features (such as UAR).  We use our sandbox system to apply new support packs and do very rigorous testing.  And our DEV system is at SP8 too.
    Good Luck.
    Peggy

  • L430 multiple driver problems (ultranav and others)

    Hello,
    I have multiple driver problems with my newly purchased L430.
    1) After hibernate the UltraNav driver randomly stops working. This means that the settings are grayed out and my old settings aren't applied. Sometimes the mouse pad and track ball also stop working after hibernate.
    2) The hardware mute button and hibernate don't like each other as well. After resuming from hibernate with the mute button on the sound doesn't work anymore. Rebooting only helps if you have disabled the mute before rebooting.
    3) The intel usb 3.0 driver can't be installed unless you want a lot of bluescreens.
    I do have the newest drivers and BIOS (2.54).

    It's ok my friend,  I just hope I will be able to help.
    Now to the problem. The thing that worries me the most and the reason I asked you to contact a Lenovo Repair Center, is the blue screens with the Intel Usb 3.0 installation. If the driver is correct this should not happen and most of the times it signifies a pure hardware problem, not a software one. Really, it just should not happen, period!
    So please, before anything else, download and boot with a Linux Live cd, any distro you like (e.g. Linux Mint, Fedora, etc). Better choose a 64bit version. It's one way of determining if you're facing a hardware problem with the usb 3.0 ports.
    The information you give is very useful and more or less complete, but I would like to also know the model of your SSDs, both the 2.5'' and msata.
    Meanwhile, you can check either with the Linux Live cd or with Memtest86+ your ram. This does not seem to be a memory problem but it would be nice if we could exclude it from the suspects list. Many - if not most - of these problems are multifactorial and we cannot leave anything to chance..
    Cheers!
    Did someone help you today? Press the star on the left to thank them with a Kudo!
    If you find a post helpful and it answers your question, please mark it as an "Accepted Solution"!
    This will help the rest of the Community with similar issues identify the verified solution and benefit from it.

  • Multiple measurement types, help!

    I am trying to write a multi-purpose vi for students to use for acquiring and recording strain, thermocouple, LVDT, and DC voltage signals as needed by their experiments.  We have a setup on wheels with a PCI-6052E card cabled to an SCXI 1001 chassis with the following modules installed: four 8-channel strain modules (SCXI-1520), one 32-channel thermocouple module (SCXI-1102), one 8-channel LVDT module (SCXI-1540), and a SCXI-1180 feedthrough panel with SCXI-1302 terminal block.  So I would like to be able to read as many of these channels as the user selects, including some voltage signals that don't need conditioning (like the 0-10V output for force off an old Tinius Olsen machine) that I planned to connect using the feedthrough panel.  Then I would like to add the ability to trigger the recording of data by user button push or a digital trigger signal from an MTS Flextest servohydraullic controller running MPT.  Finally, I would like to add the ability to take any few of these signals and output them as custom scaled analog outputs to be used by external devices.
    I'm taking this one step at a time since I am new to Labview.  I started by finding an example that did multiple strain gages how I wanted (with automatic bridge nulling, lowpass filter, and shunt calibration functionality) called "Cont Acq Strain Samples (with Calibration).vi".  I first rearranged the controls so I could group channel configuration controls on tabs for each sensor type (more controls will be added later).  Then I added preliminary functionality for recording an lvm with a button press.  Everything worked fine as I tested with 2 strain gages wired up.
    Next I decided to bring in LVDT signals.  I wired up our only 3 LVDTs (for now) and configured global virtual channels in MAX for each (these will rarely be reconfigured so there is no need to allow the user to change parameters using front panel controls, just select which ones to use).  I added a DAQmx Global Channel name control to the "LVDT" tab and added a name filter so only global LVDT channels would be displayed.  This way the user can select any number of the 3 available LVDT global virtual channels to use.  On the block diagram, I added a DAQmx Create-Task with the selected global virtual channels wired in immediately before the DAQmx Create Channel (AI Strain Gage) that was there from the original example code.  Thus combining the strain and lvdt sensors into the same task.
    When I try to run I get an error (Error -200077 occurred at Property Node DAQmx Channel (arg 2) in alex_strain_LVDT_v4.vi) because the property node that was setting the lowpass filter for the strain channels is now trying to do the same for the LVDT channels which don't have that option.  I suspect a similar error would occur if the program hadn't aborted and began strain bridge nulling and shunt calibration.
    So my question is how do I get around this?  Can I somehow configure that property node to only change settings for the strain channels?  I've found plenty of NI support entries explaining how to use a single task for multiple AI measurement types (including DAQmx Task Example_Configuration.vi) after I ran into conflicts with reserved resources trying to use seperate tasks.  But none of these examples address my problem of wanting to change properties for only select channels in the task.
    Message Edited by sdsmt_alex on 01-19-2006 01:32 AM
    Attachments:
    alex_strain_LVDT_v41.vi ‏215 KB

    Thanks Dev,
    I got that part to work and then wired the same subset string into the channels input of the 'DAQmx Perform Bridge Offset Nulling Calibration.vi' for a similar effect on the bridge nulling portion.
    Now I run into a similar problem if shunt calibration is enabled.  An error message comes up telling that it can't modify the AI.StrainGage.GageFactor property on an LVDT channel.  My code calls the 'subSCXI Multi-Chan Shunt Cal.vi' which doesn't have a channel/active channel input so that I can specify only strain channels for shunt cal.
    Does anyone have any ideas how I can get the shunt calibration to only happen for strain channels in a task with other channel types?  The 'subSCXI Multi-Chan Shunt Cal.vi' calls many sub vi's so it would probably take a lot of work to sort through and modify them to fix this problem.
    Any advice would be appreciated.
    Alex

  • I need help with making multiple measurements

    Hello,
       I have photoshop cs6 extended addition and was told photoshop would work for the research application I need but so far I am finding it very difficult to do what I want.  Basically, I need to be able to meausre multiple lines (the red ones in the screen shot) of an image precisely, and make sure that the lines I measure are documented so that they are actually visiable (so not just with the ruler tool) on the screen and labeled.  Does anyone have any idea how to approach this problem?  See image for example.  I need the lengths (converted with the 2 micrometer scale at the bottom of the image).  When I use the info, it gives me the lengths, but I can't save them, or look them up at a different time.  Also, when using the line tool, then doing the "record measurement" it does not give me the length of the line but insted acts like it is a thin rectangle and gives me a height (which does not seem to be the same as if I used the measurement tool and put it next to the line, which is an idea I have, but not as accurate) and a width.  Ideas?

    Curt,
       I tried what you said but am still confused.  First, while I will be viewing a few pictures, I am just concerned with getting the process to work with ONE picture measuring all the lines I need for it before worrying about other pictures.  I don't understand what you mean when you say making a scale for each picture of any size.  Its not about plotting a scale on the picture (I already have that in the form of the 2 micron line) its a matter of drawing new lines on top of the picture and calculating the lengths of those lines (like the red lines I put in the original screen shot).  Do you understand?
    After I make the box around the 2 micron scale in the image, then press copy then press paste, nothing seems to happen.  So when I Click NEW and it opens a new window (for a completely new workspace) nothing different happens.  You meant to click "New" after first going to the top and selecting "file" right?
    Since I am having trouble with that step, im not sure I can do the rest.
    For step 2, What do you mean by "In background content click the dropdown box and select Transparent."   ALl I see is a layer called background on the right.  I can right click on it and set the opacity to 0, but I don't see the term 'transparent' to actually select.
    Like for step three, how could I delete the selection I made by dragging to the trash?  Once I press on it, it resets.....
    Ok not sure whatelse I can ask since I couldn't really do the first step anyways....

  • NI Oscilloscope Measurement Problem

    I have a very different problem regarding NI-5102 Oscilloscope Card
    Problem 1:
    This card is performing self test through the measurement & automation explorer. But through its driver program its showing failed. As there is self test vi in niscope.llb. It should return 0 for passed,
    but its returning 1.And also from front panel of this card, its working well.
    Problem 2:
    Through front Panel of Oscilloscope i am able to see all the wave and also measure frequency, But through program it not giving any value, may be some settings are necessary for this problem. So u see this problem or if possible, u send a simple vi program for measurement of frequency of any wave (TTL pulse, sine wave).
    Waiting for your response,
    J
    itendra :: mail me [email protected]

    Jitendra,
    When running the niScope SelfTest.vi, you usually receive a message indicating that the device passed the test and you should also receive a number 0 in the test result indicator. If the board is not passing the test, make sure that no other programs are using the same device (like MAX or the Scope Soft Front Panel). Adding an niScope Error Handler after the niScope Close will help us have more information of what is happening. With the error code, you can then visit ni.com and look for any Knowledge Bases that talk about this issue in particular.
    Regarding the second problem, there are some pretty good example programs on the web that show how to do frequency analysis using NI digitizers. I am including links to some of them. Hope this help
    s!
    Frequency Spectrum Analyzer for NI-SCOPE (NI 5911/NI 5112)
    Frequency Response (step response method)
    Annette Perez
    Applications Engineering
    National Instruments.

  • NI-5102 Oscilloscope Measurement Problem

    Hi,
    I have a very different problem regarding NI-5102 Oscilloscope Card.
    Problem 1:
    This card is performing self test through the measurement & automation explorer. But through its driver program its showing failed. As there is self test vi. It should return 0 for passed, but its returning 1.And also from front panel of this card, its working well.
    Problem 2:
    Through front Panel of Oscilloscope i am able to see all the wave and also measure frequency, But through program it not giving any value, may be some settings are necessary for this problem. So u see this problem or if possible, u send a simple vi program for
    measurement of frequency of any wave (TTL pulse, sine wave).
    Waiting for your response,
    Jiten
    dra ([email protected])

    When running the niScope SelfTest.vi, you usually receive a message indicating that the device passed the test and you should also receive a number 0 in the test result indicator. If the board is not passing the test, make sure that no other programs are using the same device (like MAX or the Scope Soft Front Panel). Adding an niScope Error Handler after the niScope Close will help us have more information of what is happening. With the error code, you can then visit ni.com and look for any Knowledge Bases that talk about this issue in particular.
    Regarding the second problem, there are some pretty good example programs on the web that show how to do frequency analysis using NI digitizers. I am including links to some of them. Hope this helps!
    ef="http://zone.ni.com/devzone/explprog.nsf/6c163603265406328625682a006ed37d/7472892af9a5fd278625680...
    Frequency Response (step response method)

  • Agilent infinium scope scale setting problem!!

    I have a vi that sets the frequency on an arbitrary waveform generator and the output of that arb is connected to chan1 on the Agilent infinium scope. When the scope gets the frequency, it Autoscales and then if sets the scale to the right divisions per second on its own, now the problem I have is that if I put lets say more than 10MHz on chan1 of the scope, the Autoscale sets the Scope's scale to lets 50ms/div and I want to be able to programmatically set the scale on the scope to what I want, can someone tell me if its possible or do I have to stick with Autoscaling?
    The thing is that I want to be able to read a certain voltage on the channle, lets say I want to be able to read 500mv pk-pk, if the scale of the scope
    is on lets say 50ms/div, it takes longer to find the pk-pk voltage that I want and sometimes it may not find it...
    Can anyone help?

    You can turn autoscaling off and use the Configure Channel.vi function to set the vertical range. Autoscaling before every measurement will increase your test time and is something you might want to avoid in any case but what I don't understand is the other problem you're having with the autoscale function. If the scope is not correctly autoscaling and the signal is clipped, then you might want to talk to Agilent and see if there's something wrong with the scope.

  • Outlook Sync - Multiple Calendar Problem

    (I am not sure whether this belongs in this Forum or would be more appropriately directed to my Device (Curve 8900) forum or Desktop Software.  Please advise or re-direct if that is the case.)
    I am having a sync issue with Outlook, and it revolves around the issue of having multiple calendars on the Device, each of which is associated with an e-mail address.  I understand this has been a relatively common question; however, although I admittedly may be looking in the wrong place, I have yet to come across a comprehensive solution.
    I understand how to switch the "default" e-mail associated with scheduling items on the calendar, and I believe I'm correct in thinking that this is what syncs with Outlook.  I've noticed that when I try switching the default, Outlook wants to delete all other appointments which are NOT associated with that device calendar.
    So I guess my specific questions are:
    1) Is there a way to have Outlook sync with ALL calendars on the device, i.e. not just the default?  It's easy enough to make all appointments from here on out with a single account & have that be the one that syncs; however, it doesn't seem possible to do that without having Outlook want to delete all other appointments.
    2) Is there a way to change the associated email/calendar for events on the Device?  When I open an event, I can see which email/calendar it is but I don't know how to *change* it -- I only seem to have a choice when scheduling new events.
    If either of these was an option, I think that would solve my problem -- I could either go through the device & convert everything to the default email/calendar & everything would be there upon sync, OR Outlook would just pick up everything from all calendars when I sync.
    I don't understand why it's so complicated to have everything in one place!
    Thanks in advance to those willing to share their wisdom & advice in this matter.
    mbw 

    I was going to post that article but you beat me to it.  
    I believe this is the only way to accomplish this on a BlackBerry
    If someone has been helpful please consider giving them kudos by clicking the star to the left of their post.
    Remember to resolve your thread by clicking Accepted Solution.

  • 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

  • XML multiple targets problem

    there is an example in oracle warehouse builder user's guide how to load xml file into multiple tables (1:N relationship).
    Let's have an xml file:
    <orders>
    <order>
    <id>1</id>
    <items>
    <item>
    <product>a</product>
    </item>
    </items>
    </order>
    </orders>
    but what if one day you get an xml file where an order has no items:
    <orders>
    <order>
    <id>10</id>
    </order>
    </orders>
    I get an error message: ORA-20011: Error occurred while loading source XML document into the target database object XXX . Base exception: No rows to modify -- the row enclosing tag missing. Specify the correct row enclosing tag.
    What I want is to load in order table one row, and no rows in items table.
    The xsl for this small example that makes a problem looks like (the rest is like in oracle warehouse builder user's guide example in C appendix):
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <ROWSET>
    <xsl:for-each select="orders/order/items/item">
    <ROW>
    <ORDER_ID>
    <xsl:value-of select="../../id"/>
    </ORDER_ID>
    <PRODUCT>
    <xsl:value-of select="product"/>
    </PRODUCT>
    </ROW>
    </xsl:for-each>
    </ROWSET>
    </xsl:template>
    </xsl:stylesheet>

    Sounds like you've missed some tag from the files.
    For XML processing I would look at leveraging XDB, see the post here;
    http://blogs.oracle.com/warehousebuilder/2007/09/leveraging_xdb.html
    Cheers
    David

Maybe you are looking for

  • Caching values between different executions of a message mapping

    Hi all Like global container object is used for caching values between different user defined functions within the same message mapping. Can v have some sort of cachingvalues between simultaneos exceutions of same message mapping? Thanks and Regards

  • Imac as extra monitor

    i would like to connect my macbook pro to my intel based iMac to use it for a secondary monitor. im having trouble determining what/how to do this. i use the macbook at work where i use a second monitor and the imac at home.

  • Can't buy app because demo is installed

    I've got the app Chronories installed, decided to buy it, and got an email from the developers offering 50% off at the App Store through Jan 16. So I upgraded my software to get the App Store app, gave the App Store my Apple ID, made sure my credit c

  • Adding new playlist

    I have imported a cd into my itunes, I select all the song, but when I try to make a new playlist from the selection I can not. What is the problem?

  • Predicate Mapping by template in R2RML

    Is it possible to map predicate with template in R2RML? For example, I have a relational table with column call "RelationType". I want the value of the column to be the predicate, so I try something like below, rr:predicateMap [rr:template "http://ex