| Ana,
The problem is the manner in which ALL-IN-1 checks for a valid device. It looks
for a directory [000000] in the MFD of the device specified. Now, if the device
specified is the physical device for the disk such as DUA0:, then this
directory exists (DUA0:[000000]). However, when the device specified is a
logical device such as a concealed device such as MYDISK:
(def/tran=conc mydisk dua0:[mydir.]), then this directory does NOT exist by
default.
Although in the long run I believe the developers should find a more flexible
and elegant method for validating the device specified, the work-around that I
have been recommending to our customers is to manually create a [000000] in the
"MFD" of the concealed device.
Hope this helps.
Thanks,
Cb.
|
| Ana, Chaim,
We've lots of problem reports on this and it is under active investigation for
possible inclusion in a PFR. (I hope that's vague enough to prevent the
moderators blowing this reply away).
The problem scripts are SM_RENAME.SCP and SM_RNA_DIRECTORY.SCP. They should
basically be using the FILE$ dataset instead of trying to do roll-your-own
things with OA$DIR and OA$DIR_SEARCH, which were a bit cantankerous at the best
of times. . .
The tests in SM_RENAME.SCP should be something like:
.TEXT
.TEXT Update of VMS account details
.TEXT =============================
mumble . . .
GET #the_file_status = FILE$.STATUS[#old_a1_directory]
.IF #the_file_status EQ 14 THEN .GOTO invalid_dir
.IF #the_file_status EQ 10 THEN .GOTO invalid device
! Replacing:
!***********
!
! GET #parse = oa$dir_parse.allbutver[#old_a1_directory]
! .IF NOT OA$STATUS THEN .GOTO invalid_dir
! GET #old_user_dir_dummy = #old_a1_directory
! GET_TOKEN #old_user_dir_dummy, #user_dev,":"
! GET #old_user_dir_dummy = #user_dev ":[000000]000000.dir"
! .IF OA$DIR:#old_user_dir_dummy.%WHOLE[#old_user_dir_dummy] EQS '' -
! THEN .GOTO invalid_device
The ones in SM_RNA_DIRECTORY.SCP
! .IF OA$DIR_SEARCH.ALLBUTVER[#new_direct_file] NES #new_direct_file -
! THEN .GOTO failed_rename_dir
GET #old_direct_file = FILE$.ALL_BUT_VERSION[#old_direct_file]
GET #new_direct_file = FILE$.ALL_BUT_VERSION[#new_direct_file]
.IF FILE$.STATUS[#new_direct_file] NE 1 THEN .GOTO failed_rename_dir
There were a few other changes needed but that's the gist of it if you want to
try it out. The real changes look a bit different from this so no guarantees or
support if you want to try it out.
Hope this helps,
Cheers,
Ian
|