LBI - Schedule a report with a parameter

 13 Replies
 0 Subscribed to this topic
 22 Subscribed to this forum
Sort:
Author
Messages
thummel1
Veteran Member Send Private Message
Posts: 121
Veteran Member
Hi,

Is it possible to schedule an LBI report that requires the end-user to enter a parameter? My objective is to allow a manager to view only the records he or she needs to see by entering their User ID as the parameter to view their data on the report. This needs to be scheduled in LBI because we cannot bump up against Production. Furthermore, bursting this report by manager (which was my first approach) is not working for reasons that Lawson Support hasn't been able to diagnose yet. (The report has 5 subreports in it and it could be getting stuck due to this).

Any feedback or suggestions for solutions would be appreciated. Thank you!

Dave Curtis
Veteran Member Send Private Message
Posts: 136
Veteran Member
In the LBI schedule you can put in a parameter value. The user themselves can not, but you can.

The other option you might look into is having the report pull the Lawson user ID for the person running the report and use that as criteria in your report.
thummel1
Veteran Member Send Private Message
Posts: 121
Veteran Member
The report needs to get distributed to over 1000 managers, which is why we went down the bursting route, but issues are cropping up with scheduling this report with multiple subreports (The subreports seem to be the culprit). So my hope was that we could schedule this report to run, but when the manager opened the scheduled report, a parameter would pop up asking for their User ID and it would give them just the records tied to their User ID.

Is that possible?
Carl.Seay
Veteran Member Send Private Message
Posts: 109
Veteran Member
There is an LBI param called @CurrentUser. Create an LBI param, set it to hidden and do not prompt user, then plug in @CurrentUser as the default value. It will pull in the authenticated user's ID.
Greg Moeller
Veteran Member Send Private Message
Posts: 1498
Veteran Member
If you are trying to display the report from a link on a dashboard, the current user logged in will be stored in a variable called LAWSONRS_CurrentUser so you could just build that into your report....
I've never tried scheduling this report though, as that variable will not be filled in when the schedule runs....
Greg Moeller
Veteran Member Send Private Message
Posts: 1498
Veteran Member
@Carl: We must have been working on our responses at the very same time... I try not to respond with the exact same stuff as found earlier.... ha.
thummel1
Veteran Member Send Private Message
Posts: 121
Veteran Member
Carl, your solution:

"There is an LBI param called @CurrentUser. Create an LBI param, set it to hidden and do not prompt user, then plug in @CurrentUser as the default value. It will pull in the authenticated user's ID."

seems to be working! I was able to scheduled this report with this parameter built in. I had a manager run the scheduled repert and it returned just the records that tied to their User ID!

So, does this mean that this is an alternative way to get a single report to managers (or to anyone where the User ID is in the LBI parameter) in lieu of bursting? If so, this is great information.

I am wondering if you can explain how this is working (e.g. LBI report goes out and looks at the end-users login and matches that up against the User ID in the Crystal report) and how this may operate differently than if we were to schedule a report ot burst (what would be the pros and cons of doing one or the other)?

Thank you!
Carl.Seay
Veteran Member Send Private Message
Posts: 109
Veteran Member
Sorry, as I read this again, I don't think it fits your original question. This param grabs the user ID that is currently logged into LBI. So it works great for reports that are added to an LBI dashboard, where the user can log into LBI and click the report to run it. This would not work for scheduling or bursting a report, since it requires the user to be logged in. If you want the data e-mailed to each user, without having them log into Lawson, I believe you would have to use LBI bursting (structure and elements).

Maybe you could publish the report to a dashboard temporarily, until the bursting issues are resolved? This would mean the report being generated each time, which you stated earlier you did not want. I don't think an instance of the report would work, since you need to filter by the User ID.
thummel1
Veteran Member Send Private Message
Posts: 121
Veteran Member
Hi Carl,

Actually, adding this to a dashboard would be something we would likley do with this. I'm not sure if you saw my prior response, but, I did schedule this report and i was able to get it to generate the records I expected for each individual manager who opened it. I even transferred myself into a manager position and was able to get the results I expected. So this would seem like it's a great fit for what I need.

I'm just curious if there are security implications with going this route? No one as of yet has used LBI parameters in our reports, so I want to make sure we've vetted all the potential concerns with this type of set up.

Tania
Randy
Veteran Member Send Private Message
Posts: 50
Veteran Member
Tania;

The only problem with the hidden parameter trick, and using the @CurrentUser value is that the parameter does NOT stay hidden on a refresh. We use this method to plug in the @CurrentUser into the SQL for the report. The report returns only those AU's for the manager based on Attributes for each Accounting Unit. It works the first time fine, but if the user decides to select the refresh button, the parameter displays again where someone can use another managers ID. Wish I could fine a way around this.
Carl.Seay
Veteran Member Send Private Message
Posts: 109
Veteran Member
To get around that issue, you can edit the Crystal Reports param: Add a value X, Set Prompt = Do not show, set default value = X, Allow custom values = False. Then if the manager refreshes, all they can select is "X", which returns no records.
Randy
Veteran Member Send Private Message
Posts: 50
Veteran Member
But the default value is already set to @CurrentUser. Are you setting the "Use Crystal Reports Parameter Page" on, in LBI?
Carl.Seay
Veteran Member Send Private Message
Posts: 109
Veteran Member
I don't have access to the system, but yes I believe we did have to select Use Crystal Reports Parameter Page. Does it still use @CurrentUser, and not allow the user to change it?
Randy
Veteran Member Send Private Message
Posts: 50
Veteran Member
I set the Promt to Do Not Show and the default parameter to @CurrentUser. When the report runs, the other two Params (Year, Period) are visible. The user enters those and the report runs using all three. The @CurrentUser is used in the SQL Command file to retrive records (Accounting Units) assigned to the current log-in (user). But if the user select the refresh button the parameter shows up as blank and they can type into it. I can go back and try setting the "Use Crystal Reports Parameter page" and the Not allow custom values as you mentioned. But where would the default @CurrentUser get picked up?