Supervisor Question

Sandy,

There may be one way to restrict your users to create new document only for
one specific universe, without creating another login for each of them.

Keep a local version of the universe for the people who develope the
reports but export a copy of this universe where all the class of object
are hiden.

From the test I have done a report can be refresh even if composed with
hiden object.
When a user will try to edit a report, he won’t be able to see any object.
So he won’t be able to make any new query.

Tell me if that help.

Gaetan Bolon
Schlumberger
Business Information Technology
gbolon@slb.com


Listserv Archives (BOB member since 2002-06-25)

Maybe someone else has a better suggestion, but the only way I can come up
with involves ReportScripting.

For example,

Set up your users such that by default access to the new universe is
DISABLED. They can still open reports, but they can not refresh them or
modify them, and obviously they can not create new reports on the new
universe either.

Set up a group (folder) called “Temporary Access” that has ENABLED access to
the new universe BUT DISABLED ACCESS TO ALL OTHERS. Set up a single (or
perhaps multiple) account in this group, call it “TempUser”, with a
password, call it “TempPass”, and give it permission to REFRESH documents
but NOT to CREATE documents.

Now, you create canned reports on this new universe. Any user can open
these reports, but only TempUser can refresh them – and at this point, NO
ONE, not even TempUser, can create new reports on the universe. If a user
wishes to open and REFRESH one of these reports, they can use the Tools -
Login As and log in as TempUser temporarily to refresh the report. Then the
user can log back in as themselves. This process can be streamlined through
a ReportScript:

'RefrestTempReports.SPT - sample
sub main
dim keep_username, keep_userpass
dim msgtext, rptfilename
dim rtnval
dim doc as BODocument

    'Keep current username and password for later
    set keep_username = Application.Variables.Item("BOUSER").Value
    set keep_userpass = Application.Variables.Item("BOPASS").Value

    'Get the name of the report to open
    msgtext="Enter the name of the report: "
    rptfilename=InputBox$(msgtext)

    set rtnval = Application.LoginAs( "TempUser", "TempPass", FALSE )
    'Note: This will close all open docs first.

    set doc = Application.Documents.Open( rptfilename )
    doc.Refresh
    set rtnval = Application.LoginAs( keep_username, keep_userpass,

FALSE )
'This will close all open docs again, so re-open the doc in question
set doc = Application.Documents.Open( rptfilename )

end sub

(You can add more bells and whistles to this by replacing the InputBox with
a more elaborate dialog box, etc.)

Now, when a user wants to open and REFRESH one of these new reports, have
them go to the Tools menu, select Execute Script…, and select
RefreshTempReport.SPT. Only if they need to refresh the report, though;
they can always OPEN a report even if they can’t refresh it. This should be
simpler than logging out and back in.

As users attend training, you simply move them to the new group folder that
has ENABLED access to the new universe and they can quit using the
RefreshTempReport.SPT file.

Good luck!


Erich Hurst
Compaq Computer Corporation

“It is so easy to break eggs without making omlettes.” – C.S. Lewis


Listserv Archives (BOB member since 2002-06-25)