Report Generation Performance

Hi!
I am currently implementing a report generation module because I have to add some features (for example: 'Additional results'). Especially I want it to be fast(!). Apart from my new implementation which is done in LabVIEW I have an implementation in C++ (cosed source) and an implementation in VB.NET (self written). All three implementation produce the same output format (one text line per measurement)
For 500 steps to process (no deep nesting) the report body generation duration takes:
Implementation A (c++ DLL; closed source): 240ms
Implementation B (VB.NET; rekursive result tree traversal): 260ms
Implementation C (LabVIEW; rekursive result tree traversal): 460ms
Using the LV profiler it seems to me that the Teststand API is the bottleneck - the more TS property nodes I execute per step the longer the duration.
My questions (to CTAs :-)
- Can I speed up the report generation by using parallel loops to process the TS Property nodes; or does the TS API not support parallel (read) requests? (like a web server does)
- Can the recursive (reentrant VIs) approach be the reason why the performance is not so good (for performance better to process the result tree in iterative manner)? Remark: no deep nesting!
Versions used: TS2010 & LV2010
Remark: I know that TS2012 has implemented async report generation possibility!
w.

Are you using the LabVIEW runtime or the development environment when running your VIs?
-Doug

Similar Messages

  • BIP report generation performance

    Hello all!
    I created (what I thought was) a simple Quote report that had quote header information and listed the line items below it on one page. I needed to create a custom Integration Object for this which I whittled down to include just 5 integration component objects.
    Now, when I run this report it takes about 5 minutes to generate which is ridiculously long for a one page report which was almost instantly produced when we used Actuate.
    I followed some of the "performance improves" guidelines in the Oracle Reports manual for 8.1.1 (we are on 8.1.1.2 SIA at the moment) but those had little effect on the outcome.
    Are there any other considerations I should take into account? Is there some best practice guidelines when designing reports?
    Thanks in advance!

    Hi,
    Running the "preview" from Word, the report generates fine with no errors (that I can see) When I was developing it on a local thick client as well, it was running fine. But once I uploaded it onto the server etc it just takes ages to run.
    I've picked out the following lines from a quick scan of my xdo.log file, don't know if any of these can be the culprit?
    WARNING: Old RTF version detected, nested table disabled
    +[ERROR] [Line 3040.114] Missing body begin XSL context for: <?end for-each?>+
    WARNING: Found undetermined AttrKey: style-name
    Thanks!

  • Report generation question

    Hi,
    With regards to BI Discoverer and BI Publisher, is a report/workbook re-generated from the underlying data source every time someone requests it or does the BI server serve up an existing copy of the report?
    The context: we will have some 600 reports being accessed by 2000 odd people. I'm trying to get some understanding of the load on the server and the performance of the report generation.
    Appreciate any help you can provide.
    Cheers,
    Nim

    BI Publisher will execute your query each time you access the report, by default BI Discoverer will do also. But BI Discoverer has the possibility to schedule reports, each time the report is accessed, the scheduled (saved) result will be shown on the report. An other possibility is to use snapshots on the DB to schedule your queries and base your reports on those snopshots.
    Michaek

  • Siebel & "BIP Report Generation" Workflow and Bookmark Syntax

    IHAC that wants to schedule the generation of a BIP report to run every weeknight and include a list of activities for the next day. We've utilized an OOTB IO and can successfully render the report using Sample XML in MS Word. Additionally, since they are only on 8.1.1, they do not currently have access to the latest scheduling capabilities. Therefore, we're trying to implement a repeating component to call a workflow to generate the report using the 'BIP Report Generation' workflow and the associated objects (from support posting 823360.1).
    Now to the questions:
    One of the parameters for the workflow is a 'Bookmark'. This parameter does not appear to handle various 'Siebel' querying functions like 'Today()' as part of the criteria. Can someone confirm this statement?
    Currently, I can imagine one high-level possible workarounds. This would entail a revised WF and that includes a prior step to generate the 'Bookmark' by retrieving a string representation of tomorrow's date and concatenating it with the rest of the criteria.
    Next question:
    Does anyone have any other possible alternatives? Maybe a calculated field in the BC/IC for 'Today() + 1' - but this could have performance implications.
    Thanks in advance for any help.

    Suggestions/comments?
    Bump.

  • Report generation toolkit and column

    Hello, i asked this question before, but this time i just needed some input..
    I originally asked, if i am doing various experiment sets and say each sets takes in about 1000 data points, and i have to do 50 such experiments continously i wanted to know if there was a way of arranging the data so that for each experiment is written in a different column, so i have 50 different column. Instead of the current one column with 50000 data points.
    I was kindly suggested various alternatives such as using arrays...now my querry is regarding something that i heard which involves Report Generation toolset.
    If i was to get this toolset, with this make my life easier interms of sorting my data out into different columns? I ahve also been
    told it will do all sorts of graphs and do pretty much everying thing falling short of making a cup of tea
    Now has any one had any experience in this type of porblem? or do i have to stick with the array solution. Incidently the reason why i have a niggling problem with arrays is that my programme is stricly no limited to just 50000 data for some runs i can decide to take more data in one set then the orther so building an array becomes problematic.
    Please let me know what you all think of this kind Regards
    Mansoor

    Hello Mansoor
    If you want to write the data to an Excel spreadsheet there are several options available to you as well as the Report Generation Toolkit.
    I have posted some links to help and advice on performing this action using the toolkit, but also using the file I/O vi's and using active X.
    Have a look at these links and if you have any further questions please reply to this post.
    Report Generation Toolkit User Manual
    http://digital.ni.com/manuals.nsf/webAdvsearch/463​34E8183C5360586256E3F00603DDB?OpenDocument&vid=niw​c&node=132100_US
    Report Generation Toolkit Tutorials
    http://zone.ni.com/devzone/devzone.nsf/webcategori​es/A50386FBB21ECC1A86256AB7006C2E6C
    File I/O information
    http://zone.ni.com/devzone/devzone.nsf/webcategori​es/BC4E8ABB211CFE7F
    86256A1F0062CEB2
    Writing data to an Excel file example in the LabVIEW example finder at the following location: - �Communicating with External Applications -> ActiveX -> Excel -> Write Table to XL.vi�
    Regards
    Hannah
    NI

  • Report generation VIs in Labview 6.1

    Hello,
    I am havinf problems with using Labview 6.1 VIs for report generations. The VIs provided by Labview are not executable! It seems as if they had internal errors, non fixed errors. Moreover, I am not able to open the diagram because it is password protected. Does someone know if there is any patch to fix this or the reason why these VIs don't work?
    Thanks a lot!
    Regards,
    María

    Hello Maria,
    are you using the report Generation Toolkit for MS Office or the standard vis that LabVIEW provides for report generation?
    If you use the Office toolkit, this may help:
    http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/c8888a9a74e75c4786256cda00694a1e?OpenDocument
    If not, this may also help:
    http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/9acb175f6de483ae86256b2200776b8b?OpenDocument
    In any case, WHAT I WOULD TRY FIRST is to do a Mass Compile of the folder where the report vis are located.
    Here you can see what this does and how to perform it:
    http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/654877e62a97b72986256c95006f9b24?OpenDocument
    One last question...are you having trouble only
    with executables or also during development?
    Regards,
    JorgeM.

  • Dynamic  report generation

    We are migrating our client reports from crystal reports to business object reports and I need your help on how to achieve the below functionality in Business object reports.
    Requirements
    1. We need to generate and deliver around 30,000 statements to clients (mostly ftp and email) from 300 Webi report templates.
    2. This has to be a complete automated process with no user intervention.
    For example: Using Webi / Deski Report1, we need to run the report for each client account and then generate a statement and deliver it to client (only client specific data). Web1 reports are complex and some might take 30 to 60mins for generation.
    Questions
    1) Can it be done by just using BO tools with out coding ( using any .net sdk)?
    2) Can a single BO server handle the load, If not How to load balance reports generation and delivery across multiple servers?
    3) How to dynamically pass parameters to Webi report without coding?
    Thanks for reading my post. Any help/ suggestion is appreciated.

    In our current architecture, 
    1) We use crystal report templates and pass dynamic datasets at runtime to generate multiple client statements.
    2) For load balancing, we have 6 app servers with crystal runtime installed and we distribute load across the servers using custom code.
    My question is if use BO enterprise will there be any performance enhancements?

  • How to set tabstops in MS Word using the LabVIEW Report Generation Toolkit

    Using the Report Generation Toolkit of LabVIEW, I need to set multiple tabstops that very in distance in MS Word.  I also have different sets of tabstops that I use and re-use at different times in the same report.  Is there a way to set the tabstops under program control?  I searched through the various VIs and found that there is a property ("Tabstops", "Word.Tabstops") in the _ParagraphFormat property node that refers to tabstops.  I found it in the Word Format Paragraph (adv) VI.  Unfortunately, I could not determine how to use it.  Any suggestions?  Is this an operational element?

    Bluebell,
    Sounds like you've already done some fantastic work to expose the various properties and methods of MS Word. It took me about 20 min before I could find the specific property that you were talking about! I found it under Word.Document>>Paragraphs>>Tabstops>>Add. There is a position, alignment and leader parameter that you can set from this property node. I've found that the best way to discover what these parameters do is to simply experiment. You could also try using the macro recorder in Word, perform the specific task, and then look at the code generated. I'm guessing that position sets the position of the tabstop itself. It sounds like your application is really specific. For such a specific task, I think I'd write a macro and call that macro from LabVIEW.
    Chris Cilino
    National Instruments
    LabVIEW Product Marketing Manager
    Certified LabVIEW Architect

  • Setting the title font and axis labels in a graph created with the Report Generation Toolkit

    I'm using the LabVIEW Report Generation Toolkit for Microsoft Office to generate Excel worksheets containing plots. Unfortunately, the default font size used in the plots is huge (see attached worksheet). I was able to use Excel Set Graph Font.vi to reduce the size of the axis labels, but there does not appear to be a function to do this to the title and legend. In addition, there does not appear to be a function to set the axis text labels. Before I write my own, has NI released additional functions to perform these tasks?
    Thanks for your help,
    Zach Lerner
    Software Engineer
    OnWafer Technologies, Inc.
    Attachments:
    Test1_-_embedded_graph's_title_and_legend_font_is_huge.xls ‏14 KB

    Hello Zeidan
    The graph title and legend font sizes can be changed by accessing a low level VI (Excel_Insert_Chart.vi) that is part of the excelsub.llb that is located at (C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\addons\_office). This VI is called dynamically from within the Excel Insert Graph.vi and it uses VI server technology to access the Excel exposed properties. Attached to this post is an image of the block diagram of this VI after I have modified it to set the font sizes of the title and legend to 15. The circles in the image represent what I had to add to accomplish this.
    Best Regards,
    Ayman Kabire
    Attachments:
    Excel_Insert_Chart.JPG ‏99 KB

  • Changing the Variable Settings in Content Tracker report generation page

    I am looking out for Changing the Variable Settings for the Performance Optimization Functions in Content Tracker report generation page. Some options which were available in 10g are not in UCM11g. I got the information that Updating Content Tracker should help, but am unable to locate what are the parameters to be set.
    Any pointers on this would be really helpful.
    Regards,
    Bharat

    Hi
    From Update Component Configuration these are the options listed that can be changed :
    Update Component Configuration
    SctUrlMaxLength     
    SctMaxRecentCount     
    SctTrackContentAccessOnly     
    SctProxyNameMaxLength     
    SctSimplifyUserAgent     
    SctDoNotPopulateAccessLogColumns     
    SctDoNotArchive     
    SctPostReductionExec     
    SctTrackContentAccessOnly should be unchecked and then test to see if the options get listed .
    Thanks
    Srinath

  • Open vi error for report generation toolkt

    Originally it works fine.
    Now I upgrade to win7, LV9 and office2010.
    To open the old program by 8.6.1, I reinstalled LV 8.6.1 and report generation toolkit.
    But still got the error as attached.
    Any suggestion, thanks.
    Attachments:
    ss.png ‏184 KB

    1. MS Office 2010 is not yet supported, since it's still just a beta. I believe there are couple of changes that Microsoft make, and it could cause a problem.
    2. LabVIEW 8.6.1, and all its toolkit is not supported on Windows 7. This could cause a problkem also.
    In conclusion, you should use LabVIEW 2009, Report Generation Toolkit 2009, Windows 7, and downgrade office to XP, 2003 or 2007.
    More information: http://digital.ni.com/public.nsf/allkb/C9408B9F08D​711E786256F3300701D01

  • Report generation toolkit and signal express user step : problem of closing reference in "Stop" event

    Hi all,
    I'm trying to make a package of Vis to easily make Excel reports with Signal Express. I'm working on LabVIEW 8.2.1.
    I'm using the report generation toolkit, so I build a .llb from my project which contains all the hierarchy of my steps, but also the hierarchy of dynamic VIs called.
    I have made some steps, like "Open Workbook", "Write Data", etc.
    My steps run well, excepts one step : "Close Workbook".
    If my "Close Workbook" step is firing on "Run" Signal Express event, I have no error, so my reference is properly closed.
    But if my "Close Workbook" step is firing on "Stop" Signal Express event, I have an error "1", from "Generate Report Objectrepository.vi".
    I feel that I'm trying to use a reference which has been killed in the "Stop" step...
    I would like to know what exactly do Signal Express on "Stop" event and why my close function does'nt run well.
    Thanks,
    Callahan

    Hi Callahan,
    SignalExpress (SE for short) does the following on the Stop event:
    1. Takes the list of parameters that SE found on your VI's connector pane, and sets the values that the user set from the "Run LabVIEW VI" configuration page, if any.
    2. Then tells the VI that SE is running the Stop event by setting the Enum found on your VI's front panel. This in turn should produce some boolean values telling your VI to execute the Stop case.
    3. The VI is then run, with those values and states.
    4. SE checks to see if any errors where returned.
    5. Since this is the Stop event, SE releases the reference to the VI which it possesses.
    Questions for you would be, is the reference to your Workbook linked to a control on your connector pane, or held in a uninitialized Shift Register. If it's held in a Shift Register, SE would not be aware of it, and would not be able to affect that reference.
    Hope that helps. Feel free to post your LLB if it doesn't.
    Phil

  • Report Generation: New Report.vi

    Running applicaion in development mode works fine.
    After compiling however I get Error 7: Open VI Reference in New Report.vi
    Why am I getting this error?

    Has the version of Office on your machine changed since you installed the Report Generation Toolkit?  The VIs will become broken if the ActiveX interface changes, and this can happen when the Office version changes.  I recommend uninstalling and reinstalling the toolkit.  Also, what version of Report Generation Toolkit are you using?  The latest version is 1.1.1.
    -D
    P.S. - I'm going to respond to your other thread that you started with a link to this one.  Instead of creating multiple messages on the same question, just wait for a response to your initial thread.
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman

  • Report Generation Toolkit Error (undefined erro)

    Does anybody know what error -214 682 7864 (0x800A01A8) means when coming from the Report Generation Toolkit.
    I have an app which has been happily ticking over for several weeks, and then this error was generated when attempting to write a table to a spreadsheet. The error was generated all the way down in NIReportGenerationToolkit.lvlib:Excel_Get_range.vi (this is the ActiveX code).
    Any ideas? 
    nrp
    CLA

    nrp wrote:
    I have an app which has been happily ticking over for several weeks, and then this error was generated when attempting to write a table to a spreadsheet.
    Was it the first time you attempted to write the table to that spreadsheet?
    Maybe the error is due to the spreadsheet grown oversize than its limit so that it cant accomodate the table anymore.
    What is the version of MS Office you are using? I think Office 2003 can go only upto 1024 columns...
    - Partha
    LabVIEW - Wires that catch bugs!

  • Report Generation Exe Error

    Hello,
     I am using LV 8.6.1 with the 1.13 report generation toolkit and I am having problems getting my built exe to work.  I am trying to open an excel template and populate it with new data.  I have broke the vi down to just opening excel - opening the template and then fill in some data.  But at this point excel does not open at all.  And naturally everything works fine in the development environment.
    Error Code: -2147352573
    Member not found in NI_ReportgenerationToolkit.lvlib:
    Excel_open_workbook.vi
    NI_Excel.lvclass: new reportsubvi.vi
    I read a few help pages that said to add \vi.lib\utility\NIreport.llb and LVclass directories to the project folder and add them to the always include section of the build.  But no luck so far.
    Side question:  The machine I want to use this on has 8.6.1 Full which does not have the extra excel functions that my developer has.  Is there a way to install the DEV report generation toolkit in the full version?  Then I would not need to build an exe.
    UPDATE:  I just tried the exe on a different machine that has a developer suite installed and it worked fine.  So I guess I need to find out what else I need to add to the build to make it work.
    Message Edited by _Bryan on 06-16-2010 11:58 AM
    Solved!
    Go to Solution.

    There should be some info on this in the KB.
    But first you should make sure that your version of the report generation toolkit actually supports excel 2000 (which is 10 years old)
    That should be in the release notes of the toolkit
    Ton
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!

Maybe you are looking for

  • NetRetryCount and netRetryInterval error in Hyperion Planning web form

    User is getting this error when trying to save data on a web form. The error happens intermittenly and on different forms. It is difficult to pinpont the problem, as it does not happen consistently on the same form and as the administrator, I have ne

  • Unexpected problem with this printable

    Started by trying to stop the printing of the "Samples" printable that was acquired accidentally.  Tried directions found in the forums to no avail.  Tried through the HP Go manageprint route and never saw the minus sign in the printable header as de

  • "java.sql.SQLException: The url cannot be null"

    Hi, I started to use the torque in my last project but when I try to insert new data to the db(i am using MySQL) I get the following error "java.sql.SQLException: The url cannot be null". Is that error familiar to anybody ? Regards RCY

  • Materialized view logs for Fast refreshes

    Hi, I created MV and MV logs on the base table/main table. I set the base table in NOLOGGING MODE. so ofcourse redo is not gonna generate during DML but i wanted to know that: Will NOLOGGING effect the MV logs for fast refreshes? I came up on conclus

  • Reinstalling Contribute 3

    Hello, we just got a new pc and successfully re-installed Contribute3. However, when I go into Windows Explorer and hilite a file to delete, Contribute 3 starts to load. I need to cancel in order to finally get the usual "do you wish to delete this f