Welcome to the SRP Forum! Please refer to the SRP Forum FAQ post if you have any questions regarding how the forum works.

SRP_HashTable and Reports

Is it possible to create an SRP_HashTable and then Run Reports against it?

I am looking at creating a Report program that pulls data from a few different tables and storing it temporarily in an SRP_HashTable. Once I have all the data together run the report and then release it.

I have the basics put into place but got to the report part and don't know how to LIST the data from the SRP_HashTable as it isn't an attached table.

Would there be a better way to do this?

Comments

  • Never mind scratch that idea. I don't need to run a report on it. Got stuck on that idea for some reason. I can do what I need with SRP_HashTable_GetValues and format that and send that to the printer.

  • I realize you dismissing the original question, but I think there is a benefit to discussing the general idea of using in-memory tables with reports for optimum performance. We've actually done stuff like this so I'm happy to share our experiences. Quick question, when you wrote "Run Reports", were you specifically referring to the Run_Report routine or did you mean that in a generic sense?
  • edited April 2018
    Don,
    At first, it was specific to Run_Report, then it became, however, I could get it to work. Then I woke up and said duh. I can get to my end goal without running a report.

    I still love the idea of running a report (Generic) on an in-memory table. I would gladly listen to your experiences as I have already come up with a few more reports I would like to do and in-memory tables would be great for them.
  • Run_Report (which is just a shell around RLIST and the OIPI) can't work against non-physical data sources unless, of course, you really wanted to go through the effort to create your own Base Filing System and make OI think it is working with a physical data source when all the while it is getting data from somewhere else. This, I think, is too much engineering with little payoff.

    The best reporting tool that can work with the SRP HashTable (or any other in-memory solution) would be the Banded Report Writer (BRW). It has built-in support for "programmatic datasources". These are merely stored procedures that programmatically emulate a database table. We use this method to take unstructured data and structure it for reporting purposes. We also use Memory_Services (our wrapper around SRP HashTable) to store data for caching purposes.

    Mileage has varied in terms of performance benefits. Also, keep in mind that in-memory solutions are only available to the engine that created them. With the BRW, it is typically running with its own engine and thus any hashtables created in your OI session prior to launching the BRW won't be seen by the BRW.
  • Thanks Don, all the more reason we need to start learning BRW.
Sign In or Register to comment.