cQJRNLG ;Set Journal Global On/Off ;cQJRNLG; Q ; JALL S JSW="ALL" G ALL ; JNONE S JSW="NONE" G ALL ; ALL I '($P($P($ZV,")",2),"(",1)[" 5.") Q D SELG S SHOW=$G(SHOW,0) ; setup variables S SERVER=$ZCVT($ZU(110),"U"),NMSPC=$ZU(5) S CONFIG=$G(^cTABEL("base",SERVER,NMSPC,"Config"),"?") S JSW=$G(^cTABEL("journal",SERVER,NMSPC,CONFIG,"general",0,0),"ALL") I SHOW W !,"server: ",SERVER,!,"Config: ",CONFIG,!,"Journal: ",JSW,! S %G="^%z" F S %G=$O(^%utility($J,%G)) Q:%G="" D . ; Kill non-existant globals, that have only a directory entry . I '$D(@%G),($E(%G,1,4)'="^odd")&($E(%G,1,2)'="^r") K @%G Q . K A D DB(%G,.A) S I="" . F S I=$O(A(I)) Q:I="" D .. S R=$P(A(I),"^",2),JS=+$G(A(I,"Jstat")),KS=+$G(A(I,"Kstat")) .. I SHOW D ... W !,%G,?20,R,?60,JS,?70,KS ... F J="exclude","include" I $D(^cTABEL("journal",SERVER,NMSPC,CONFIG,J,%G,R)) W !?20,J," = ",^(R) .. ; All globals should be journaled .. I JSW="ALL" D ... ; Global is excluded ... I $D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"exclude",%G,R)),^(R)=1 D Q .... ; is journaled -> set journal off .... I JS=4 D JOFF(R,%G) .... ; Global is not excluded ... I '$D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"exclude",%G,R)) D Q .... ; is not journaled -> set journal on .... I 'JS D JON(R,%G) .. ; None of the globals should be journaled .. I JSW="NONE" D ... ; Global is included ... I $D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"include",%G,R)),^(R)=1 D Q .... ; is not journaled -> set journal on .... I 'JS D JON(R,%G) .... ; The switch 'Keep Global' should be on .... I 'KS D KON(R,%G) Q .... ; Global is not included ... I '$D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"include",%G,R)) D Q .... ; is journaled -> set journal off .... I JS=4 D JOFF(R,%G) ; YZ Q ; SET(GO,SHOW) ; sets journaled globals from master to slave via cTABEL("journal") ; GO = 0 : just displays the globals ; SHOW = 1 : displays on screen D SELG^cQJRNLG S SHOW=$G(SHOW,0),GO=$G(GO,0),VAR="" ; setup variables S SERVER=$ZCVT($ZU(110),"U"),NMSPC=$ZU(5) S CONFIG=$G(^cTABEL("base",SERVER,NMSPC,"Config")) I '$L(CONFIG) W:SHOW !,"No config for "_SERVER_" : "_NMSPC G SETZ S JSW=$G(^cTABEL("journal",SERVER,NMSPC,CONFIG,"general",0,0),"ALL") I SHOW W !,JSW,! S %G="^%z" F S %G=$O(^%utility($J,%G)) Q:%G="" D . I '$D(@%G) Q . S OK=0 . I JSW="ALL" D .. S OK=1,R="" F S R=$O(^cTABEL("journal",SERVER,NMSPC,CONFIG,"exclude",%G,R)) Q:R="" S:^(R)=1 OK=0 I ^(R)=0 S OK=1 Q . I JSW="NONE" D .. S OK=0,R="" F S R=$O(^cTABEL("journal",SERVER,NMSPC,CONFIG,"include",%G,R)) Q:R="" I ^(R)=1 S OK=1 Q . I 'OK Q . I SHOW W !,%G S VAR=VAR_$S($L($G(VAR)):";",1:"")_$E(%G,2,$L(%G)) . I $G(GO) D SET^cQVGCOR(%G) SETZ Q ; SHOW S SHOW=1 G ALL ; SELG ;Select globals K ^%utility($j) S X=$$Fetch^%GD("*",1,0) SELGZ Q ; JON(R,G) ;Set journal on S K=$$SetJournalType^%DM(R,G,1) I SHOW W !,G,?20,R,?60,$S(JS=4:"",1:"Not "),"Journaled",!?60,"Now turned on" JONZ Q ; JOFF(R,G) ;Set journal off S K=$$SetJournalType^%DM(R,G,0) I SHOW W !,G,?20,R,?60,$S(JS=4:"",1:"Not "),"Journaled",!?60,"Now turned off" JOFFZ Q ; KON(R,G) ;Set Keep Global on S K=$$SetKeepType^%DM(R,G,1) I SHOW W !,G,?20,R,?60,"Keep Global",!?60,"Now turned on" KONZ Q ; KOFF(R,G) ;Set Keep Global off S K=$$SetKeepType^%DM(R,G,0) I SHOW W !,G,?20,R,?60,"Keep Global",!?60,"Now turned off" KOFFZ Q ; DB(%G,X) K X Q:'$L(%G) S %G=$S($E(%G)'="^":"^"_%G,1:%G) Q:%G'?1"^"1A.E Q:'$D(@%G) S %GL=$E(%G,2,$L(%G)) S X(-1)=$$getdest^cQXLINF1($ZU(5),%GL) F I=0:1:9 S K=$$getdest^cQXLINF1($ZU(5),%GL,I) D . S J="",SW=0 F S J=$O(X(J)) Q:J="" I K=X(J) S SW=1 . Q:SW S X(I)=K S J="" F S J=$O(X(J)) Q:J="" S K=X(J) D . S L=$$GetJournalType^%DM($P(K,"^",2),%GL,.set) . I L'=1 K X(J) Q . E S X(J,"Jstat")=set ; 0 = not journaled, 4 = journaled . S L=$$GetKeepType^%DM($P(K,"^",2),%GL,.set) . I L=1 S X(J,"Kstat")=set ; 0 = do not keep, 1 = keep global DBZ Q ; ERR U 0 W !,$G(X),! G YZ ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9