Recently, we've been asked to tighten down security on the folders so an audit was conducted to make sure appropriate users are supposed to have access to their respective folders/Crystal Reports only.
So after using the "Advance" access to ensure that certain user groups cannot view specific folders, shortly thereafter we received complaint that they can run reports on folders they're supposed to see/run, but one of the parameter {?vUsername} (the user group access name) is not automatically passing through and thus the report is showing blank data when using the 'Schedule' method where the parameter should be passing the 'vUsername' (this is set up for the access group that they belong to) in order for the report to show only data for that group. if that same user uses the "View" method of generating reports, and manually enters their grouping name (say Group1 when prompted in the View parameter - see example below), it works fine.
Below are excerpts from SQL Stored Procedure:
BEGIN
-- check authorisation of user, must be regional to view records
SELECT 'Y' INTO authorised
FROM txnrules.PARTICIPANT_RULE acpr, systemcd.V_PART1 part
WHERE acpr.PARTICIPANT_ID = part.PARTICIPANT_ID
AND INSTR( UPPER( vUserName ), UPPER( part.NAME ) ) > 0
AND acpr.CAN_VIEW_ALL_REPORTS = 1
AND ROWNUM = 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
authorised := 'N';
BLAH
BLAH
WHERE
-- Selection super user (ABC or XYZ) - show GROUP1 (participant id = 6), GROUP2 (participant id = 15) and GROUP3 (participant id = 17) records
( authorised = 'Y' AND fares.OPERATOR_ID IN( 6, 15, 17 ) )
-- Selection for GROUP1 user - show GROUP1 (participant id = 6) and GROUP2 (participant id = 15) records
OR ( INSTR( vUpperUserName, 'GROUP1' ) > 0 AND fares.OPERATOR_ID IN( 6, 15 ) )
-- Selection for GROUP1 user - show GROUP1 (participant id = 6) and GROUP2 (participant id = 15) records
OR ( INSTR( vUpperUserName, 'GROUP2' ) > 0 AND fares.OPERATOR_ID IN( 6, 15 ) )
-- Selection for GROUP3 user - show GROUP3 (participant id = 17) records
OR ( INSTR( vUpperUserName, 'GROUP3' ) > 0 AND fares.OPERATOR_ID IN( 17 ) )
MY QUESTION IS THIS: HOW ARE THE GROUP1, GROUP2, GROUP3 names being passed to the vUsername parameter automatically when using the Schedule method? If I know how that works, perhaps, i can figure out why this {?vUsername} is now not being passed through to generate data.
I took a look at the other security groups that were not affected and mimic the security access but the above GROUPS1, 2, 3 still cannot get the names passed through so that the report would grab data. I've tried giving full access to the groups in question, but notta. HELP!!
See screenshot below where the missing GROUP should show below.
* The Best Reasons to Target Windows 8
Learn some of the best reasons why you should seriously consider bringing your Android mobile development expertise to bear on the Windows 8 platform.