As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
-* CAR2 File Creation
-*-GOTO REPORT
-CREATE
APP HOLDMETA IBISAMP
APP HOLDDATA IBISAMP
TABLE FILE CAR
SUM DCOST RCOST
COMPUTE PROFIT/D12C = RCOST - DCOST ;
BY COUNTRY BY CAR BY MODEL
ON TABLE HOLD AS CAR2 FORMAT FOCUS
END
-RUN
-*-GOTO TheEnd
-REPORT
APP PREPENDPATH IBISAMP
?FF CAR2
SET PASS=read
TABLE FILE CAR2
SUM DEALER_COST RETAIL_COST PROFIT BY COUNTRY BY CAR BY MODEL
END
-RUN
-GOTO TheEnd
-TheEnd
*** CARS_Report.fex *** START
TABLE FILE CAR2
HEADING
"Here's Tony's report"
-* for &&PASS "
PRINT *
-*WHERE COUNTRY EQ '&&CAR2_Filter.EVAL'
ON TABLE SET EMPTYREPORT ON
END
-RUN
*** CAR2_Profile.fex *** START
APP PATH ibisamp
-RUN
-SET &&PASS = DECODE Tony ('Tony' 'ENGLAND' 'Doug' 'ENG_FRA' 'Irene' 'FRA_ITA' 'Jackie' 'JAPAN' 'Willie' 'GERMANY' ELSE 'SWITZ') ;
-TYPE *** UserID = Tony Pass = ENGLAND ***
*** UserID = Tony Pass = ENGLAND ***
-RUN
-SET &ECHO = OFF ;
*** CAR2_Profile.fex *** ENDED
0 ERROR AT OR NEAR LINE 12 IN PROCEDURE ADHOCRQ FOCEXEC *
(FOC047) THE USER DOES NOT HAVE SUFFICIENT ACCESS RIGHTS TO THE FILE: CAR2
BYPASSING TO END OF COMMAND
-SET &ECHO = OFF ;
*** CARS_Report.fex *** ENDED
-* Results for Willie:
*** CARS_Report.fex *** START
TABLE FILE CAR2
HEADING
"Here's Willie's report"
-* for &&PASS "
PRINT *
-*WHERE COUNTRY EQ '&&CAR2_Filter.EVAL'
ON TABLE SET EMPTYREPORT ON
END
-RUN
*** CAR2_Profile.fex *** START
APP PATH ibisamp
-RUN
-SET &&PASS = DECODE Willie ('Tony' 'ENGLAND' 'Doug' 'ENG_FRA' 'Irene' 'FRA_ITA' 'Jackie' 'JAPAN' 'Willie' 'GERMANY' ELSE 'SWITZ') ;
-TYPE *** UserID = Willie Pass = GERMANY ***
*** UserID = Willie Pass = GERMANY ***
-RUN
-SET &ECHO = OFF ;
*** CAR2_Profile.fex *** ENDED
0 ERROR AT OR NEAR LINE 12 IN PROCEDURE ADHOCRQ FOCEXEC *
(FOC047) THE USER DOES NOT HAVE SUFFICIENT ACCESS RIGHTS TO THE FILE: CAR2
BYPASSING TO END OF COMMAND
-SET &ECHO = OFF ;
*** CARS_Report.fex *** ENDED
This message has been edited. Last edited by: Doug,
In FOCUS Since 1983 ~ from FOCUS to WebFOCUS. Current: WebFOCUS Administrator at FIS Worldpay | 8204, 8206
Posts: 3132 | Location: Tennessee, Nashville area | Registered: February 23, 2005
Skip down to page 61 Example: Creating a Dynamic DBA Rule in a Master File
Small things to note here:
When you are trying to control things with DBA, the SET USER command is an environmental SET command as opposed to a -SET. I think you may not be saying SET PASS= in your examples.
Another thing - starting somewhere along the 82x or higher world, we started preferring that you use &FOCSECUSER instead of the CNCTUSR that you'll see in this exmaple. You can use either one really. I noticed in the 8203 manual that it says &FOCSECUSER is the preferred thing now for some reason.
Last thing for today, your values in WHERE tests - I think they need to be in single quotes like 'JAPAN'. Example: VALUE=COUNTRY EQ JAPAN,$ should be VALUE=COUNTRY EQ 'JAPAN',$
Maybe thats why you're always getting the FOC(047) all the time - even if you'd SET PASS (instead of -SET &&PASS), none of those USER descriptions would pass I think.
We should talk about this a little more. I think you're going to want to use DBAFILE to have a common file that describes who can see BU or CU. I also think you might get some value from checking &FOCSECGROUP to check people's Client side Security Center Groups instead of individual user ID's.
Maybe this week we can talk about it more. I have stuff to do tomorrow night but I may be able to get free Tuesday night if you're buying beer
Hope that helps get the ball rolling.
Keys things for me in this area: the USER=&&UID - I think it REALLY helps to not have to explicitly set each user's ID in a file someplace. That works in combination with the MFD_PROFILE and is really slick. Beware the Master file that refers to itself in the MFD_PROFILE. That'll cause a loop that results in a hanging agent you'll have to kill (there's a technique in the manual that has a little coding safeguard to keep you from doing this).
One last thing is that these && globals aren't exactly like you might think. Just because you turned on a && variable in a focexec before referencing a Master doesn't mean the master file will 'get it'. You have to put that VARIABLE NAME=&&UID, USAGE=A8 , $ inside your master for the variable to mean anything to the master file.
Talk tomorrow. It's already midnight and I still don't have my 8203 install finished.
DBA=ENGLAND,$
USER=ENG_FRA, ACCESS=R,RESTRICT=VALUE,NAME=FIELD, VALUE=COUNTRY EQ ENGLAND OR FRANCE,$
USER=JAPAN, ACCESS=R,RESTRICT=VALUE,NAME=FIELD, VALUE=COUNTRY EQ JAPAN,$
USER=xxxxxx, ACCESS=R,RESTRICT=VALUE,NAME=FIELD, VALUE=COUNTRY NE COUNTRY,$
But, I still get following message:
0 ERROR AT OR NEAR LINE 12 IN PROCEDURE ADHOCRQ FOCEXEC *
(FOC047) THE USER DOES NOT HAVE SUFFICIENT ACCESS RIGHTS TO THE FILE: CAR2
BYPASSING TO END OF COMMAND
Posts: 3132 | Location: Tennessee, Nashville area | Registered: February 23, 2005
I'm betting you figured this out. Can you post your findings on this?
1) You're right, I did figure it out, with the help from Toby Mills and Walter Blood (IBI Case 180618057).
2) Posting the findings: I'll do what I can, but it's complicated. Most of the issue was that it doesn't work with Variable length fields as your selection criteria in a hold file. The values used in the selection criteria from a hold file (in file) need to be straight Alpha (/A##) not Variable (/V##).
Basically, the "DBA" function within the synonym is great for Row and Column Level Security. Although, if a user attempts to write a report using a synonym to which they are DENIED access to a column (field) and uses that column in their report, it will prevent the display of the report, not the report without that column being displayed.
~ Thanks, Doug
PS: This is, for the record, my 2500th post.
Posts: 3132 | Location: Tennessee, Nashville area | Registered: February 23, 2005