Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XU8P585

XU8P585.m

Go to the documentation of this file.
  1. XU8P585 ;ISF/CJM- Patch XU-585 Post init ;09/11/2012
  1. ;;8.0;KERNEL;**585**;;Build 23
  1. ;
  1. ENVIR ;Environment check for XU*8.0*585
  1. I '$$CHECKDIR D
  1. .S XPDQUIT=2
  1. .W !,"The directory for the print files does not exist or the permissions were",!,"not correctly established"
  1. Q
  1. POST ;
  1. N ERROR,OS
  1. D PATCH^ZTMGRSET(585)
  1. S OS=$$OS^%ZOSV()
  1. I OS'["VMS",OS'["UNIX" Q
  1. I $G(ERROR)<0 D BMES^XPDUTL("Failed to schedule the 'XU PURGE PRINT QUEUE HFS FILES' option! Please do so manually.")
  1. N IEN,DATA,OPTION
  1. S OPTION=$O(^DIC(19,"B","XU PURGE PRINT QUEUE HFS FILES",0))
  1. I 'OPTION D BMES^XPDUTL("Failed to schedule the XU PURGE PRINT QUEUE HFS FILES option!")
  1. I OPTION D
  1. .S IEN=$O(^DIC(19.2,"B",OPTION,0))
  1. .S DATA(.01)=OPTION
  1. .S DATA(2)=$$FMADD^XLFDT($$NOW^XLFDT,,1)
  1. .S DATA(6)="1H"
  1. .I IEN D
  1. ..I '$$UPD^HLOASUB1(19.2,IEN,.DATA) D BMES^XPDUTL("Failed to schedule the XU PURGE PRINT QUEUE HFS FILES option!")
  1. .E D
  1. ..I '$$ADD^HLOASUB1(19.2,,.DATA) D BMES^XPDUTL("Failed to schedule the XU PURGE PRINT QUEUE HFS FILES option!")
  1. Q
  1. ;
  1. CNVRT ;convert HFS type devices that call NVSPRTU to PQ type devices
  1. N DEVICE,NOW
  1. S NOW=$$DT^XLFDT()
  1. S DEVICE=0
  1. ;
  1. ;K ^XTMP("%ZIS HFS TO PQ") ;overlay old list if it exists
  1. ;
  1. S ^XTMP("%ZIS HFS TO PQ",0)=$$FMADD^XLFDT(NOW,180)_"^"_NOW
  1. F S DEVICE=$O(^%ZIS(1,DEVICE)) Q:'DEVICE D
  1. .I $P($G(^%ZIS(1,DEVICE,"TYPE")),"^")="HFS" D
  1. ..N SUBTYPE
  1. ..S SUBTYPE=$P($G(^%ZIS(1,DEVICE,"SUBTYPE")),"^")
  1. ..Q:'SUBTYPE
  1. ..I $G(^%ZIS(2,SUBTYPE,3))["CLOSE^NVSPRTU" D
  1. ...N DATA
  1. ...S DATA(2)="PQ"
  1. ...S ^XTMP("%ZIS HFS TO PQ",DEVICE)=""
  1. ...D UPD^ZISFM(3.5,DEVICE,.DATA)
  1. Q
  1. ;
  1. UNDO ;undo the changes made by CNVRT conversion routine
  1. N DEVICE
  1. S DEVICE=0
  1. F S DEVICE=$O(^XTMP("%ZIS HFS TO PQ",DEVICE)) Q:'DEVICE D
  1. .N DATA
  1. .S DATA(2)="HFS"
  1. .D UPD^ZISFM(3.5,DEVICE,.DATA)
  1. Q
  1. ;
  1. ;
  1. CHECKDIR() ;tests if the print_queues directory has been created properly
  1. ;
  1. ;if production and VMS or Linux the test is not needed
  1. N OS
  1. Q:'$$PROD^XUPROD() 1
  1. S OS=$$OS^%ZOSV()
  1. I OS'["VMS",OS'["UNIX" Q 1
  1. ;
  1. N DIR,FILE,IO,POP,HANDLE
  1. S DIR=$$DIR
  1. S FILE="TEST_"_$J
  1. S HANDLE="ZUHANDLE"
  1. ;
  1. I $$FEXIST(DIR_FILE) Q 1
  1. D OPEN^%ZISH(HANDLE,DIR,FILE,"W")
  1. Q:POP 0
  1. D CLOSE^%ZISH(HANDLE)
  1. D FDELETE(DIR_FILE)
  1. Q 1
  1. ;
  1. ;
  1. DIR() ;get directory for printer queues, a subdirectory of host file directory
  1. N DIR,CODE
  1. S CODE=$$PRI^%ZOSV
  1. S DIR=$$CHKNM^%ZISF($P($G(^XTV(8989.3,1,"DEV")),"^",CODE))
  1. I $$OS^%ZOSV()["VMS" D
  1. .S DIR=$P(DIR,"]")_".print_queues]"
  1. E D
  1. .S DIR=DIR_"print_queues/"
  1. Q DIR
  1. ;
  1. FEXIST(FILE) ;
  1. ;returns 1 if the file exists, 0 otherwise
  1. ;
  1. N OS S OS=$$OS^%ZOSV()
  1. I OS["UNIX" Q $$LFEXIST(FILE)
  1. E I OS["VMS" Q $$VFEXIST(FILE)
  1. Q 0
  1. ;
  1. VFEXIST(FILE) ;
  1. ;checks file's existance - VMS
  1. N CMD,RET
  1. S CMD="PIPE F = F$SEARCH("""_FILE_""")"
  1. S CMD=CMD_" ; IF F$LENGTH(F) .EQ. 0 THEN DEFINE/JOB ZIS$VAL 0 ; IF F$LENGTH(F) .GT. 0 THEN DEFINE/JOB ZIS$VAL 1 "
  1. I $ZF(-1,CMD)
  1. S RET=$ZF("TRNLNM","ZIS$VAL","LNM$JOB")
  1. I $ZF(-1,"DEASSIGN/JOB ZIS$VAL")
  1. Q +$G(RET)
  1. ;
  1. LFEXIST(FILE) ;
  1. ;checks file's existance - Linux,Unix
  1. N CMD
  1. S CMD="[ -f "_$$REPLACE(FILE,"$","'$'")_" ]"
  1. Q '$ZF(-1,CMD)
  1. ;
  1. FDELETE(FILE) ;
  1. ;delete file
  1. N OS S OS=$$OS^%ZOSV()
  1. I OS["UNIX" D LFDELETE(FILE)
  1. E I OS["VMS" D VFDELETE(FILE)
  1. Q
  1. ;
  1. VFDELETE(FILE) ;
  1. ;delete file - VMS
  1. N CMD
  1. I FILE'[";" S FILE=FILE_";*"
  1. S CMD="DELETE "_FILE
  1. I $ZF(-1,CMD)
  1. ;
  1. LFDELETE(FILE) ;
  1. ;delete file - Linux,Unix
  1. N CMD
  1. S CMD="rm -f "_$$REPLACE(FILE,"$","'$'")
  1. I $ZF(-1,CMD)
  1. ;
  1. REPLACE(STRING,SUB1,SUB2) ;
  1. ;
  1. N REPLACE
  1. S REPLACE(SUB1)=SUB2
  1. Q $$REPLACE^XLFSTR(STRING,.REPLACE)
  1. ;
  1. ;
  1. ;
  1. ;