[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference iosg::all-in-1_v30

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

3555.0. "S2020 problem with filecab" by VNOAPP::TIMA_204410 (Marianne SCHNABEL @AUI /CSC Wien) Fri Nov 19 1993 08:09

          <<< GVPROD::BEORN:[NOTES$LIBRARY]20-20_DISCUSSION.NOTE;1 >>>
                               -< INTRODUCTION >-
================================================================================
Note 927.0           S2020 V3.12a.13 Filecabinetproblem ...           No replies
VNOTSC::EHRLICH "The seventh seal!"                  29 lines  16-NOV-1993 10:54
--------------------------------------------------------------------------------
    Hi folks,
    
    	customer has ALL-IN-1 V3.0-1 German LLV and S2020 V3.12a
    integrated.
    
    We've encountered a nice funny behaviour in the filecabinet.
    
    Shared Drawer: MICHI TEST
    Folder:        S 2020
    Dokument:      Testworksheet.
    
    Another user Edit this worksheet. Everything works fine (document
    reservations) but finishing his work by pressing F10 results in:
    
    The reservation is unreserved, fine. But a copy of the worksheet
    still remains in the <.a1.docx> directory from the User. It's not
    deleteted. So diskspace -working with diskquotas- raises and raises.
    The problem seems to be in S2020_POST_EDIT.SCP.
    
    Any solution available ???
    
    Many thanks for your help and your support here !
    
    Best regards
    Charly_from_CSC_Vienna
    
    PS: An ALL-IN-1 TRace is available on VNOTSC::A1trace_bmlf.log
    
    
T.RTitleUserPersonal
Name
DateLines
3555.2Yes, this is a BIG BUG ...VNABRW::EHRLICH_KR.J.DIO live in Vienna(4.12.)!Fri Dec 03 1993 13:5713
    Hi,
    	
    	we've contacted CA in Germany.
    
    Yes, this is a BIG BUG and it's known to their engineering group in
    USA.
    
    Will be fixed in next release and maybe we'll get a fix/patch for this
    release.
    
    Best regards
    Charly_from_CSC_Vienna
    
3555.3And here's the solution from CA Germany...VNABRW::EHRLICH_KWe&#039;ll find the Sacred Heart!Tue Jan 18 1994 10:18217
    Hi,
    
    	last week I've received the modified S2020_POST_EDIT.SCP script 
    d�rectly from CA Germany. For all who're interested see below:
    
    Regards
    Charly_from_CSC_Vienna
    
! S2020_POST_EDIT.SCP


! Ensure we have OA$CURDOC up to date

	GET #ED_DOCUMENT = OA$CURDOC
	CABINET CLEAR_CURDOC
	CABINET CURRENT #ED_DOCUMENT

	GET #2020_REP_MESS = ""


! If unreserved then simply update modified date

	.IF CAB$.MAIL_STATUS[OA$CURDOC] EQS oa$sts_reserved -
	  THEN .GOTO RESERVED

	 CABINET EDIT
	.GOTO NO_PROBLEMS

.LABEL RESERVED

!Get old reserve commment
	
	FILECAB GET_ATTRIBUTES (DRAWER = OA$CURDWR, -
				DOCUMENT = oA$CURDOC, -
				#OLD_RCOM = RESERVED_COMMENT)
	GET #OLD_RS_MODE = #OLD_RCOM:6
! 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 #2020_COMPLETION EQS "N" THEN .GOTO CANCEL_EDIT

	.IF #EXPORT_LOCATION EQS FC$_LANG_RL_FILE THEN .GOTO REPLACE_FILE

	.IF #EXPORT_LOCATION EQS FC$_LANG_RL_DOCUMENT THEN .GOTO REPLACE_DOC

! Copy = NONE. Unreserve document.

	GET #2020_RES_COPY = "N"
	FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
				    MODIFIED_NBS = OA$DATE_NBS, -
				    RESERVED_COMMENT = #OLD_RCOM)
	.IF OA$STATUS NE 1 THEN .GOTO CANT_UNRESERVE

	.GOTO RERESERVE

.LABEL CANCEL_EDIT

	GET #2020_RES_COPY = "Y"	
	FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
				    RESERVED_COMMENT = #OLD_RCOM)
	.IF OA$STATUS NE 1 THEN .GOTO CANT_UNRESERVE
	.IF #OLD_RS_MODE EQS "S2020W" THEN .GOTO NO_PROBLEMS

	.GOTO RERESERVE
	
.LABEL REPLACE_FILE

! Copy = FILE. Replace, delete temporary file.

	.IF OA$DIR.NAME[#EXPORT_FILENAME] EQS "" THEN .GOTO CANCEL_EDIT


	FILECAB REPLACE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
				  CONTENT_ACTION = "IMPORT", -
				  CONTENT_FILENAME = #EXPORT_FILENAME, -
				  MODIFIED_NBS = OA$DATE_NBS, -
				  RESERVED_COMMENT = #OLD_RCOM)
	.IF OA$STATUS NE 1 THEN .GOTO CANT_REPLACE

	GET OA$FUNCTION = "DELETE_FILE " #EXPORT_FILENAME

	GET #EDITED = "Y"
	.GOTO RERESERVE

.LABEL REPLACE_DOC

! Copy = DOCUMENT. Replace, delete temporary document.


	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 = #OLD_RCOM)
	.IF OA$STATUS NE 1 THEN .GOTO CANT_REPLACE

!-----
!
!	the following part was modified for correctly function by
!	deletion the temp. user-files
!
! old part begin ++++
!
	FILECAB DELETE_DOCUMENT (DRAWER = #EXPORT_DRAWER, -
				 FOLDER = #EXPORT_FOLDER, -
				 DOCNUM = #EXPORT_DOCNUM)
!
! old part end -----
!
! new part begin +++++
!
	GET #CUR_DRAWER = OA$CURDWR
	GET #CUR_DOC = OA$CURDOC
	CABINET SET_DRAWER #EXPORT_DRAWER
	CABINET SELECT #EXPORT_FOLDER, #EXPORT_DOCNUM
	CABINET DELETE_DOCUMENT
	CABINET SET_DRAWER #CUR_DRAWER
!
! new part end -----

	GET #EDITED = "Y"

.LABEL RERESERVE

	WRITE DELETE RESERVE_LIST %KEY = #RL_KEY
	.IF OA$STATUS NE 1 THEN .GOTO BAD_RL

! IF the reservation was done by a 20/20 /SW operation, then
!	don't need to rereserve
! If the reservation was done by a 'E' or a 'C', and we are
! now done, we don't need to rereserve

	.IF #OLD_RS_MODE EQS "S2020W" THEN .GOTO NO_PROBLEMS
	.IF #2020_DONE EQS "Y" THEN .GOTO NO_PROBLEMS

	.IF #RES_MODE = FC$_LANG_RL_USER THEN .GOTO RESERVE_AGAIN

!Reserved by 20/20, not the user
	GET #USE_NODE = "N"
	GET #2020_OP_TYPE = #OLD_RS_MODE
	DO S2020_PRE_EDIT  
	.GOTO NO_PROBLEMS


.LABEL RESERVE_AGAIN
	FILECAB RESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
				  RESERVED_COMMENT = #OLD_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

	get #purge_count = FORMAT.PURGE[OA$CURDOC_FORMAT]
	.if #purge_count eqs "" then -
	  get #purge_count = "1"
	get #purge_file = OA$DIR_PARSE:"*.*".ALLBUTVER[OA$CURDOC_FILENAME]
	get OA$FUNCTION = "PURGE_FILE " #purge_file "," #purge_count

	.EXIT

.LABEL CANT_UNRESERVE
	.GOTO APPEND_SUCCESS
.LABEL CANT_RESERVE
	.GOTO APPEND_SUCCESS
.LABEL BAD_RL
	.GOTO APPEND_SUCCESS
.LABEL CANT_REPLACE
	GET #2020_REP_MESS = FC$_CANT_REPLACE_DOCUMENT
	.GOTO BAD
	
.LABEL APPEND_SUCCESS

.LABEL BAD

	get #purge_count = FORMAT.PURGE[OA$CURDOC_FORMAT]
	.if #purge_count eqs "" then -
	  get #purge_count = "1"
	get #purge_file = OA$DIR_PARSE:"*.*".ALLBUTVER[OA$CURDOC_FILENAME]
	get OA$FUNCTION = "PURGE_FILE " #purge_file "," #purge_count


	.EXIT

! S2020_POST_EDIT.SCP
! Process documents after a 20/20 write