06-06-2008 08:57 AM
During our annual Insights conference a couple weeks back, myself and a couple of others showed and discussed the use of the OLE/DB Reporting Provider that is a part of ACT!. In version 10.01 we introduced a Property available in the ACT! Framework to obtain an ACT! OLE/DB connection string (ActFramework.CurrentACTOLEDB) to expose the VRP* database Views right from within the application. The idea here is to give you an example of what can be done and how by using our provider to extend the application.
I wrote a quick Blog entry about this on my page (Bill's Blog)...
Note: version 10.02 Hotfix 1 (HF1) contains a significant performance improvement in the OLE/DB Provider. There was reported degradation beginning in 9.0 when Field Level Security was introduced, but our testing has shown a big difference now with this Hotfix. This can be found on our website at: http://kb.sagesoftwareonline.com/cgi-bin/sagesoftwareonline.cfg/php/enduser/std_adp.php?p_faqid=2263...
Attached is a zip file containing three custom Dashboard Components centered on Teams and Users. It includes both the C# source code and the compiled DLLs that you can drop/copy into your \Tools folder beneath the ACT! for Windows install folder. Please also read the included datasheet PDF file for more info.
Note: I'll be out of the office on vacation the next two weeks (yahoo!) so won't be monitoring this thread, however I will review it upon my return if there are any questions/comments.
Good luck, and enjoy!
Bill Blakey
ACT! Development Team
Sage Software
06-06-2008 09:50 AM
On my Blog page someone asked about setting/increasing the Command Timeout for the provider. The new Property uses the default Connection Timeout of 15 seconds - but to set the Command Timeout it must be done on the Command (object) not the Connection (object).
In my code examples, in the getDataComponent method that returns a DataSet, I've changed the DataAdapter binding to instead reference a command object on the connection. Something like this:
OleDbCommand odbCommand = new OleDbCommand();
OleDbCommand command = odbConnection.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandTimeout = 60;
command.CommandText = filteredSQLString;
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(command);dataAdapter.Fill(dataSet);
This, of course, could be configurable. In this case I've increased the query timeout to 60 seconds.
Bill Blakey
ACT! Development Team
Sage Software
08-22-2008 09:46 AM
Bill, thank you so much for posting this! I have a client that is going to flip when he sees what this will allow us to do for him.
Thanks,
Len
08-25-2008 12:35 PM
Great - it's really good to see stuff like this spark the interests of the community here to help address user needs.
Len, please let us know how this works out for you and your customer, and perhaps post a sample of what you did as it may help others who may be wanting/needing to do something similar.
Good luck!
Bill Blakey
ACT! Development Team
Sage Software
03-02-2011 08:35 AM
Would you, or anybody else, be interested in making me a dashboard component, or adapting an existing component for me? I simply need a bar graph that shows units/products sold per contacts within a given time period. Or, units/products sold per company within a given time period. It would also be very nice to be able to change 'units sold' to revenue.