| Chele
I assume you mean a shared drawer rather than a shared folder. Editing
a document in a shared drawer sometimes necessitates a copy of the
document being made, in the recovered documents folder, so there is
nothing necessarily strange about that. However I can imagine that
there might be problems with the WordPerfect integration, eg with
Gold-K, resulting in the copy not being deleted. Or maybe the copy
should not have been made in the first place.
Dick
|
| ! WP_SYS_CLOSE
GET #WP_SYS_STATUS = 1
! Ensure we have OA$CURDOC up to date
GET #ED_DOCUMENT = OA$CURDOC
CABINET CLEAR_CURDOC
CABINET CURRENT #ED_DOCUMENT
! Get node or cluster alias and username
GET #RCOM = LOG$OA$A1_CLUSTER_NODE
.IF FN$LENGTH(#RCOM) EQ 0
.THEN
GET #RCOM = LOG$SYS$CLUSTER_NODE
.IF FN$LENGTH(#RCOM) EQ 0
.THEN
GET #RCOM = OA$NODE
.ELSE
GET #NO_COLON = FN$MEMBER(#RCOM,":")
.IF #NO_COLON NE 0
.THEN
DECREMENT (#NO_COLON)
GET #RCOM = FN$LEFT(#RCOM,#NO_COLON)
.END_IF
.END_IF
.END_IF
GET #RCOM = #RCOM:6 OA$USER
! If unreserved then simply update modified date
.IF CAB$.MAIL_STATUS:U[OA$CURDOC] EQS "RESERVED" -
THEN .GOTO SYSTEM_RESERVED
.IF #WP_SYS_COMPLETION EQ 1 THEN CABINET EDIT
.GOTO NO_PROBLEMS
.LABEL SYSTEM_RESERVED
GET #EDITED = "N"
! Build key to access Reserve_List
GET #DRAWER_FULLPATH = OA$CURDWR_PARTITION "." '"' -
OA$CURDWR_LOCATION '"'
GET #RL_KEY = #DRAWER_FULLPATH:249 OA$CURDOC_DOCNUM
GET #DOC_FULLPATH = #DRAWER_FULLPATH "." -
'"' OA$CURDOC_FOLDER '".' OA$CURDOC_DOCNUM
! If there is no Reserve_List entry then stage 1 failed or we have been called
! with the wrong document. Just ignore it.
FOR RESERVE_LIST WITH .%KEY = #RL_KEY DO -
GET #RES_MODE = .RESERVATION_MODE
.IF OA$SEL_COUNT EQ 0 THEN .GOTO BAD
GET #RDN = RESERVE_LIST.DATE[#RL_KEY]
GET #EXPORT_FILENAME = LOG$OA$TEMP RESERVE_LIST.EXPORT_FILENAME[#RL_KEY]
GET #EXPORT_LOCATION = RESERVE_LIST.EXPORT_LOCATION[#RL_KEY]
GET #EXPORT_DRAWER = RESERVE_LIST.EXPORT_DRAWER[#RL_KEY]
GET #EXPORT_FOLDER = RESERVE_LIST.EXPORT_FOLDER[#RL_KEY]
GET #EXPORT_DOCNUM = RESERVE_LIST.EXPORT_DOCNUM[#RL_KEY]
.IF #EXPORT_LOCATION EQS FC$_LANG_RL_DOCUMENT THEN .GOTO REPLACE_DOC
! Copy = NONE. Unreserve document.
.IF #WP_SYS_COMPLETION EQ 1
.THEN
GET #EDITED = "Y"
FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
MODIFIED_NBS = OA$DATE_NBS, -
RESERVED_COMMENT = #RCOM)
.ELSE
FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
RESERVED_COMMENT = #RCOM)
.END_IF
.IF OA$STATUS NE 1 THEN .GOTO CANT_UNRESERVE
.GOTO RERESERVE
.LABEL REPLACE_DOC
! Copy = DOCUMENT. Replace, delete temporary document.
.IF #WP_SYS_COMPLETION EQ 0 THEN .GOTO JUST_UNRESERVE
GET OA$DISPLAY = FC$_REPLACING_DOCUMENT\ FORCE
GET OA$DISPLAY = ""
FILECAB REPLACE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
WORK_DRAWER = #EXPORT_DRAWER, -
WORK_FOLDER = #EXPORT_FOLDER, -
WORK_DOCNUM = #EXPORT_DOCNUM, -
MODIFIED_NBS = OA$DATE_NBS, -
RESERVED_COMMENT = #RCOM)
.IF OA$STATUS NE 1 THEN .GOTO CANT_REPLACE
GET #EDITED = "Y"
.GOTO DELETE_COPY
.LABEL JUST_UNRESERVE
FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
RESERVED_COMMENT = #RCOM)
.IF OA$STATUS NE 1 THEN .GOTO CANT_UNRESERVE
.LABEL DELETE_COPY
FILECAB DELETE_DOCUMENT (DRAWER = #EXPORT_DRAWER, -
FOLDER = #EXPORT_FOLDER, -
DOCNUM = #EXPORT_DOCNUM)
.LABEL RERESERVE
WRITE DELETE RESERVE_LIST %KEY = #RL_KEY
.IF OA$STATUS NE 1 THEN .GOTO BAD_RL
.IF #RES_MODE EQS FC$_LANG_RL_SYSTEM THEN .GOTO NO_PROBLEMS
FILECAB RESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
RESERVED_COMMENT = #RCOM)
.IF OA$STATUS NE 1 THEN .GOTO CANT_RESERVE
WRITE ADD RESERVE_LIST -
FULLPATH1 = #RL_KEY:64:0, FULLPATH2 = #RL_KEY:64:64, -
FULLPATH3 = #RL_KEY:64:128, FULLPATH4 = #RL_KEY:57:192, -
FOLDER = OA$CURDOC_FOLDER, DOCNUM = OA$CURDOC_DOCNUM, -
DRAWER = OA$CURDWR, TITLE = OA$CURDOC_TITLE, -
DATE = #RDN, RESERVATION_MODE = FC$_LANG_RL_USER, -
EXPORT_LOCATION = FC$_LANG_RL_NONE, -
EXPORT_DRAWER = "", -
EXPORT_FOLDER = "", EXPORT_DOCNUM = "", -
EXPORT_FILENAME = ""
.IF OA$STATUS NE 1 THEN .GOTO BAD_RL
.LABEL NO_PROBLEMS
.EXIT
.LABEL CANT_UNRESERVE
GET #MESS = FC$_CANT_UNRESERVE_DOCUMENT
.GOTO APPEND_SUCCESS_OK
.LABEL CANT_RESERVE
GET #MESS = FC$_CANT_RESERVE_DOCUMENT
.GOTO APPEND_SUCCESS_OK
.LABEL BAD_RL
GET #MESS = FC$_BAD_RESERVE_LIST
.GOTO APPEND_SUCCESS_OK
.LABEL CANT_REPLACE
GET #MESS = FC$_CANT_REPLACE_DOCUMENT
.LABEL APPEND_SUCCESS_OK
! Unreserve or Replace failed, but set #WP_SYS_STATUS to 1
.IF #EDITED EQS "Y" THEN GET #EDITED = FC$_EDIT -
ELSE GET #EDITED = FC$_NO_EDIT
OA$FAO #EDITED, "OA$DISPLAY", #MESS
.EXIT
.LABEL BAD
GET #WP_SYS_STATUS = 0
.EXIT
! WP_SYS_CLOSE.SCP
!
! Edit current (OA$CURDWR,OA$CURDOC) document. Stage 2
!
! Input
!
! #WP_SYS_COMPLETION Success of edit (1=YES,0=NO)
!
! Output
!
! #WP_SYS_STATUS 1/0 Success/failure
!
! Edits the current (OA$CURDWR,OA$CURDOC) document.
!
! COPYRIGHT � 1991,1992 BY
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
!
! This software is furnished under a license and may be used and copied
! only in accordance with the terms of such license and with the
! inclusion of the above copyright notice. This software or any other
! copies thereof may not be provided or otherwise made available to any
! other person. No title to and ownership of the software is hereby
! transferred.
!
! The information in this software is subject to change without notice
! and should not be construed as a commitment by DIGITAL EQUIPMENT
! CORPORATION.
!
! DIGITAL assumes no responsibility for the use or reliability of its
! software on equipment which is not supplied by DIGITAL.
|