Database implemented security and BCA

I have created a table that limits which regions are available based upon their login. This works great for regular runs of the report. I am looking at using BCA to schedule these reports to be run ahead of time so the users do not have to wait for them to generated. It seems from the little information I have found that any evaluation of @Variable(‘BOUSER’) when BCA is running the report is going to return the BCA user, which shoots my whole database managed security out the window, is this true? Or is there someway to have the formula use the user that BCA is running the report on behalf of? I figure that I will have to set “Refresh with the profile of each recipient” option on so that BCA will not deliver the same report to everyone, but I don’t know how that affects the above.

Also can I place them all into Corporate Documents and have the correct data set/report viewable to the user or am I going to have to send the report to their personal area for viewing?


dswarts (BOB member since 2004-04-27)

if i well remember, the use of the “refresh with the profile…” is very restrictive and using this option, you canno’t place the reports refreshed in the corporate document, it can be only sent to bo-mailbox of users. Don’t forget too that the use of the “refresh with the profile” generate à busobj process for each user so it take a lot of cpu !!


bernard timbal :fr: (BOB member since 2003-05-26)

Well I think I would have to run the report for each user otherwise none of the limiting on the region would take. Can they go to personal documents?

Even with the above I am still unsure how/if I can get a hold of the user name that the report is running for?


dswarts (BOB member since 2004-04-27)

Hi,

‘Refresh with Profile’ will burst the report out to all of the recipient users, via a seperate BUSOBJ process logged on as that user. The ‘BOUSER’ variable should therefore be what you’re looking for.

To get the report into ‘Personal Documents’ instead of the ‘Inbox’ - although this seems a strange thing to do :slight_smile: - Use a BCA add-in macro for the ‘after refresh’ event. Initiate a ‘Save As’ and save into the Server’s storage folders. This gets a little awkward because it will ALWAYS trigger whether refresh was successful or not - and for EVERY document BCA runs - so you can end up with empty documents saved.

If I remember rightly you have to reformat the filename to omit spaces etc. as per when you use such strings in a URL. I’ll see if I can dig out the lowdown on this one :wink:

Hope that helps…


philmorris :uk: (BOB member since 2002-11-12)

You’ve been given some great direction in this thread, but I want to be sure of one thing. There is no generic user ID for BCA. By default, BCA logs in as the same user that submitted the BCA job. As you’ve noted, the “Refresh with profile of each recipient” option will iteratively log in as each user and run the report. In summary, I think you are in good shape on this issue.


Dwayne Hoffpauir :us: (BOB member since 2002-09-19)

Thanks for clearing that up for me.


dswarts (BOB member since 2004-04-27)