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

XUSCLEAN.m

Go to the documentation of this file.
  1. XUSCLEAN ;SF/STAFF - CLEANUP BEFORE EXIT ;10/26/06 08:12
  1. ;;8.0;KERNEL;**1002,1003,1004,1005,1007,1016**;APR 1, 2003;Build 5
  1. ;;8.0;KERNEL;**13,59,165,353,434**;Jul 10, 1995;Build 6
  1. ;THIS ROUTINE CONTAINS LOCAL MODIFICATION BY IHS/HQW/JLS 12/24/97
  1. H ;;Exit point for all R/S applications
  1. LOCK ;Unlock any locks
  1. S U="^"
  1. ;Unwind Exit Actions
  1. I $D(^XUTL("XQ",$J,"T")) S %XQEA=^("T") D
  1. . F %XQEA1=%XQEA:-1:1 I $D(^XUTL("XQ",$J,%XQEA1)),$P(^(%XQEA1),U,16) S %XQEA2=+^(%XQEA1) I $D(^DIC(19,%XQEA2,15)),$L(^(15)) X ^(15)
  1. K %XQEA,%XQEA1,%XQEA2
  1. ;Jump if the home device was closed
  1. G:$D(IO("C")) H2
  1. ;Clear the screen
  1. I $S($D(IOST)[0:1,IOST="":1,IOST["C-":1,1:0),'$D(XUERF) W !!!!!!!!!!!!!!!!!!!!!!!
  1. I $D(XQNOLOG) W !!,"==> Sorry, all activity on this volume set is being halted! Try again later.",*7,*7,*7,!!!!
  1. ;W !!,"Halting at " S X=$P($H,",",2),Y=$E(X#3600\60+100,2,3),X=X\3600,Z=0 S:X>11 Z=1 S:'X X=12 S:X>12 X=X-12 W X,":",Y," ",$S(Z:"pm",1:"am")
  1. W !!,"Logged out at "_$$HTE^XLFDT($H,"1FMP")
  1. D:$D(DUZ("NEWCODE")) NEWCODE
  1. ;NON-R/S exit thru here also.
  1. H2 ;No talking after this point
  1. D C,XUTL
  1. ;un-comment the following line if you want FM space recall cleared
  1. ;after each session.
  1. ;K ^DISV($G(DUZ,0))
  1. S:'($D(XQXFLG)#2) XQXFLG="" I $D(XQCH),XQCH="HALT" S $P(XQXFLG,U,3)=""
  1. I ($D(XQNOHALT)#2)!($D(ZTQUEUED)#2)!($P(XQXFLG,U,3)="XUP") K XQNOHALT,XQXFLG Q ;Return to REST^XQ12, ^XUP or Taskman.
  1. ;This was for modem hang up code. Obsolete now
  1. I $D(^%ZIS("H"))#2 X ^("H")
  1. ;Go to ZU to do final halt.
  1. G HALT^ZU
  1. ;
  1. TOUCH ;SR. API to set the keepalive node, Only set once a day
  1. Q:+$G(^XUTL("XQ",$J,"KEEPALIVE"))=+$H
  1. S ^XUTL("XQ",$J,"KEEPALIVE")=$H
  1. Q
  1. ;
  1. C ;Do device close execute, User exit.
  1. N XUDEV
  1. S XUDEV=$S($D(^XUTL("XQ",$J,"IOS")):^("IOS"),1:"")
  1. D ^%ZISC,BYE
  1. Q
  1. ;
  1. ;Called from Broker, VistaLink, R/S
  1. BYE ;Set flags to show user has left. Called from anyplace the user exits
  1. N DA,DIK,R0,%
  1. I $G(^VA(200,+$G(DUZ),1.1)) S $P(^VA(200,DUZ,1.1),"^",3)=0
  1. S DA=+$G(^XUTL("XQ",$J,0)) D LOUT(DA)
  1. I $D(^XUSEC(0,DA,0)) D
  1. . S R0=^XUSEC(0,DA,0)
  1. . I $G(IO("IP"))]"",$P(R0,"^",13)]"" S %=$$CMD^XWBCAGNT(.R0,"XWB DELETE HANDLE",$P(R0,"^",13))
  1. K ^XUTL("XQ",$J)
  1. Q
  1. ;
  1. LOUT(DA) ;Enter log-out time, in Sign-on log
  1. N DIK
  1. I $D(^XUSEC(0,DA,0)) D
  1. . S R0=^(0),$P(^(0),"^",4)=$$NOW^XLFDT,DIK="^XUSEC(0,",DIK(1)="3" D EN1^DIK
  1. Q
  1. ;
  1. XUTL ;Cleanup JOB temporary Globals
  1. N XQN D CLEAN^DILF ;Cleanup FM too.
  1. K ^XUTL($J),^UTILITY($J),^TMP($J)
  1. S XQN=" " F S XQN=$O(^XUTL(XQN)) Q:XQN="" K:"^XQO^XGATR^XGKB^"'[XQN ^XUTL(XQN,$J)
  1. ;----- BEGIN IHS MODIFICATION - XU*8.0*1007
  1. ;THE BELOW LINE IS COMMENTED OUT AND REPLACED BY A NEW LINE TO CHECK
  1. ;FOR THE EXISTANCE OF THE XBDBQUE VARIABLE BEFORE KILLING THE ^TMP
  1. ;GLOBAL FOR DOUBLE QUEUED JOBS. ORIGINAL MOD BY IHS/HQW/JLS 12/24/97
  1. ;S XQN=" " F S XQN=$O(^TMP(XQN)) Q:XQN="" K ^TMP(XQN,$J)
  1. I '$G(XBDBQUE) S XQN=" " F S XQN=$O(^TMP(XQN)) Q:XQN="" K ^TMP(XQN,$J)
  1. ;----- END IHS MODIFICATION
  1. S XQN=" " F S XQN=$O(^UTILITY(XQN)) Q:XQN="" K:"^ROU^GLO^LRLTR"'[XQN ^UTILITY(XQN,$J)
  1. K ^XUTL("ZISPARAM",$I)
  1. Q
  1. ;
  1. NEWCODE ;Remind user they changed there VC.
  1. W !!,*7,"But, as I recall...",!,"You've changed your VERIFY CODE during this session.",!,"Please remember it for next time." H 4
  1. Q
  1. ;
  1. ;Entry point to clear symbol table
  1. KILL ;SR. This is what was requested.
  1. K %1,%2,%3 S %3=+$G(^XUTL("XQ",$J,"T"))
  1. ;See if Menu stack has Variable to protect.
  1. F %1=%3:-1:1 S %2=+$G(^XUTL("XQ",$J,%1)),%2=$G(^DIC(19,%2,"NOKILL")) I %2]"" N @%2
  1. ;Fall into next part of kill.
  1. KILL1 ;To clean up ALL but kernel variables.
  1. I $$BROKER^XWBLIB S %2=$P($T(VARLST^XWBLIB),";;",2) I %2]"" N @%2 ;Protect Broker variables.
  1. N XGWIN,XGDI,XGEVENT ;P434 remove KWAPI
  1. N XQAEXIT,XQAUSER,XQX1,XQAKILL,XQAID
  1. ;p434 add DILOCKTM, remove XRTL, %ZH0
  1. K (DUZ,DTIME,DILOCKTM,DT,DISYS,IO,IOBS,IOF,IOM,ION,IOSL,IOST,IOT,IOS,IOXY,U,XQVOL,XQY,XQY0,XQDIC,XQPSM,XQPT,XQAUDIT,XQXFLG,ZTSTOP,ZTQUEUED,ZTREQ)
  1. K IO("C"),IO("Q")
  1. Q
  1. ;
  1. XMR ;Entry point from XUS to DO xmr and cleanup after.
  1. N XQXFLG ;p434
  1. D NEXT^XUS1 S XQXFLG="",XQXFLG("HALT")=1 G H2