| Title: | *OLD* ALL-IN-1 (tm) Support Conference |
| Notice: | Closed - See Note 4331.l to move to IOSG::ALL-IN-1 |
| Moderator: | IOSG::PYE |
| Created: | Thu Jan 30 1992 |
| Last Modified: | Tue Jan 23 1996 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 4343 |
| Total number of notes: | 18308 |
I have the following script to update a field in the profil. It gets
the user names from a file that is maintained by the system manager of
valid user and profile names.
get oa$dcl = "$open/read nickfil general$info:roc_users.lis"
get oa$dcl = 'read nickfil nickrec'
.label writerec
get oa$dcl = 'read nickfil nickrec'
get oa$dcl = '$username = f$edit(21,12,nickrec),"TRIM")'
get oa$dcl = ""write oa$mailbox ""OA GET #USERNAME = """"''USERNAME'"""""""
get oa$dcl = "@dclmailbox"
write change profil user=#username,prsrc='Y'
get oa$dcl = "write oamailbox ""OA GET #NICKREC = """"''NICKREC'"""""""
get oa$dcl = "@dclmailbox"
.if #nickrec eqs "" then goto close
.goto writerec
.label close
.get oa$dcl = "close nickfil"
.exit
I would like to forget about reading the list because the format may
change without notice or the maintenence may lapse if the system
manager lapses. Since the effect here is to change every profil there
is, how do I make this procedure loop through the entire profil with no
external reads?
All help appreciated, and any coding suggestion and hints VERY
appreciated.
Dave Kinney
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 259.1 | Does this help Dave? | SANFAN::LESLIE_DA | Greetings & Solutions | Tue Mar 17 1992 16:34 | 13 |
There are 2 possible solutions that come to my mind that will do what
you want to do:
1. Use a for loop
2. Use a script-controlled loop
The for example:
for profil do write change profil key = .%key, prsrc='Y'
After showing this example, I don't think I'll even bother with the
other one...
HTH,
Dan
| |||||
| 259.2 | Easy | SCOTTC::MARSHALL | Pearl-white, but slightly shop-soiled | Tue Mar 17 1992 16:37 | 14 |
Hi,
First, I wonder why you use DCL to read the list of names, when you can do it
all quite neatly in script, via TEXT_FILE operations.
Secondly, to answer your question, you can loop through the profile quite
easily using:
FOR PROFIL DO -
WRITE CHANGE PRODIL USER=.USER,otherfield=newvalue
Note the dot here ---------------^
Scott
| |||||
| 259.3 | Mostly Braindead | MISFIT::KINNEYD | Aruba Bound Soon!! | Tue Mar 17 1992 17:43 | 4 |
re .2 - Uhh, mostly because at the time I didn't know any better.
Thanks for the quick input.
Dave Kinney
| |||||