wc ;Copieren van MSM naar Cache (Globals) [ 06/13/2003 2:40 PM ] ; ; Global save (MSM) ; Global = "" (alle ooit gecopieerde globals copieren) ; Global+ (alle globals vanaf global) ; Global (Bepaalde global) ; "?" (Global opvragen via ^%GSEL) GS(Global,BackGrnd) New (Global,BackGrnd) Do:$ZV["MSM" .Set BackGrnd=$G(BackGrnd) .Do INITPAR .;If $ZOS(10,Dir_Ready01)=-2 Do Quit .;.Write:'BackGrnd !,$P(System,"\",2)," global restore niet gestart!" .Set Global=$G(Global) .If Global=""!($E(Global,$L(Global))="+") Do ; Copieren van alle globals (eventueel bepaalde en volgende) ..Set Global=$E(Global,1,$L(Global)-1),MTUci=$S($P($ZU(5),",")="MGR":"M",1:"T") ..If BackGrnd Set R="J" ..Else Do ...Write !!!!!!!!!!!!!!!!!!!!!!! ...If $L(Global),'$D(^vhVHMC(MTUci,"C","G",Global)) Write "Node ",$ZR," onbekend" Quit ...Write "Wenst u alle ooit gecopieerde globals " ...Write:$L(Global) "vanaf ",Global," " ...Write !,"van "_$ZU(5)_" naar "_$P(System,"\",2)_" te copieren ? " ...Read R ..Set R=$$UPCASE^vhRtn1(R) ..If R'="J" Write !,"Geen globals gecopieerd!" Quit ..Set:$L(Global) Global=$O(^vhVHMC(MTUci,"C","G",Global),-1) ..For Set Global=$O(^vhVHMC(MTUci,"C","G",Global)) Quit:Global="" Do Quit:$ZOS(10,Dir_Ready01)=-2 ...If $ZOS(10,Dir_Ready01)=-2 Write:'BackGrnd !,$P(System,"\",2)," global restore gestopt!" Quit ...Do GS(Global,BackGrnd) ...If $ZOS(10,Dir_Ready01)=-2 Write:'BackGrnd !,$P(System,"\",2)," global restore gestopt!" Quit .Else If Global="?" Do ; Copieren van bepaalde geselekteerde globals ..Do ^%GSEL ..If '$D(^UTILITY($J)) Write !,"Geen globals geselekteerd!" Quit ..Merge Utility=^UTILITY($J) ..Set Global="" ..For Set Global=$O(Utility(Global)) Quit:Global="" Do Quit:$ZOS(10,Dir_Ready01)=-2 ...If $ZOS(10,Dir_Ready01)=-2 Write:'BackGrnd !,$P(System,"\",2)," global restore gestopt!" Quit ...Do GS(Global,BackGrnd) ...If $ZOS(10,Dir_Ready01)=-2 Write:'BackGrnd !,$P(System,"\",2)," global restore gestopt!" Quit ..Kill ^UTILITY($J) .Else Do ; Copieren van één global ..If '$D(@("^"_Global)) Write:'BackGrnd !,"Global ",Global," onbekend" Quit ..Set %P=$V(20,$J,2) ..Do ...New %P ...Do LOW^%HL ..Do INITPAR ..Set FromUci=$S($P($ZU(5),",")="MGR":"M",1:"L"),ToUci=$S($E(Global)="%":"M",1:"L") ..Do:ToUci'=FromUci @(ToUci_"^vhSW") ..If $D(@("^"_Global)) Do ...If $D(^vhVHMC($S($E(Global)="%":"M",1:"T"),"S","G",Global)) Do Quit ....Write:'BackGrnd !,"Global ",Global," mag niet gecopieerd worden!!!" ....Kill ^vhVHMC($S($E(Global)="%":"M",1:"T"),"C","G",Global) ...Write:'BackGrnd !,"Global: ",Global ...Set CFiles=0 ...For Do Quit:CFiles Hang 1 ....Set CFiles=$ZOS(10,Dir_File01)=-2 ....Set:CFiles CFiles=$ZOS(10,Dir_Check01)=-2 ...Do ....Set R=Global ....New (R) ....Set Global=R ....If '$D(^vhVHMC($S($E(Global)="%":"M",1:"T"),"GS",Global)) Do .....Do INITPAR .....Do BLIND^cABIELVH($S($E(Global)="%":"M",1:"T"),"G",Dir_$P(File01,"."),"^"_Global) ....Else Do .....Do INITPAR .....Set (Dev,vhDEV)=$$OPEN^vhDEV(Dir,File01,"W","M") .....If 'Dev Write:'BackGrnd """",Dir,File01,""" niet beschikbaar!" Quit .....Kill ^UTILITY($J) .....Set ^UTILITY($J,Global)="" .....Set $ZT="ERR^%GS",(%TAP,%TAPV)=0 .....Xecute "Set %SIZE=1024*1024*#100000" .....Set vhDEVTYPE="HFS",%GTEMP="^UTILITY($J)",%QUIT=0 .....Set %CMT="Blind: ^"_Global_" from "_"???"_" to "_File01 .....Do START^%GS ...Set:Global'="vhVHMCGT" ^vhVHMC($S($E(Global)="%":"M",1:"T"),"C","G",Global)="" ...For Set Dev=$$OPEN^vhDEV(Dir,Check01,"W","M") If Dev Use Dev Write Global Close Dev Quit ...Do:$ZOS(10,Dir_Ready02)'=-2 ; Indien Cache02 GR opgestart, dan copie naar Cache02 ....Set CFiles=0 ....For Do Quit:CFiles Hang 1 .....Set CFiles=$ZOS(10,Dir_File02)=-2 .....Set:CFiles CFiles=$ZOS(10,Dir_Check02)=-2 ....Set R=$ZOS(3,Dir_File01,Dir_File02) ....Set R=$ZOS(3,Dir_Check01,Dir_Check02) ....Hang 30 ...Set CFiles=0 ...For Do Quit:CFiles Hang 1 ....Set CFiles=$ZOS(10,Dir_File01)=-2 ....Set:CFiles CFiles=$ZOS(10,Dir_Check01)=-2 ...Write:'BackGrnd ?18,"--Copied" ..Do:FromUci'=ToUci @(FromUci_"^vhSW") ..Do SET^%HL Quit ; GT Do:$ZV["MSM" .Do SELECT^%GSEL("URP1S") .Do:$D(@%GTEMP) ..Kill ^vhVHMCGT ..Set I1=$O(%UTILITY("")) ..Do:$D(%UTILITY(I1,1)) ...Set Global=I1_"(" ...For I3=1:1 Quit:'$D(%UTILITY(I1,1,I3)) Set Global=Global_""""_%UTILITY(I1,1,I3,2)_"""," ...Set Global="^"_$E(Global,1,$L(Global)-1)_")" ..Set ^vhVHMCGT=Global,vhVHMCGT=Global,$P(vhVHMCGT,"(")="^vhVHMCGT" ..Merge @vhVHMCGT=@Global ..Do GS("vhVHMCGT") ..Kill ^vhVHMCGT Do:$ZV["Cache" .New I1,Global .Set Global=^vhVHMCGT .Kill @Global .Set Global=$P(Global,"("),I1="" .For Set I1=$O(^vhVHMCGT(I1)) Quit:I1="" Merge @(Global_"("""_I1_""")")=^vhVHMCGT(I1) .Kill ^vhVHMCGT Quit ; ; Global restore (Cache) GR(BackGrnd) New (BackGrnd) Do:$ZV["Cache" .Set $ZT="ERRDEV^%GI",$ZE="" ;no variables escape! .Do INITPAR .Set TRFIL=Dir_File,ASN="A" .Set IO=TRFIL,OIBS="*8",OIF="#",OIM=132,IOPAR="(""R"")",IOSL=66,IOST="RMS",IOT="RMS",MSYS="M/WNT" .Open IO:"R":0 .Set OK=$T .If 'OK Write:'BackGrnd !,"Could not open file",! Quit .If IO=$I Write:'BackGrnd !,"(cannot load from THIS device)" Quit .For Use TRFIL Read R If $E(R)="^" Set Global=$P(R,"(") Quit .Use 0 .Write:'BackGrnd !,"Restore global ",Global .Use TRFIL .Kill @Global .Do A^%GI .Do:Global="^RES" CONVRES .Do:Global="^vhVHMCGT" GT Quit ; ; Opstarten global restore (Cache) CGRSTART(BackGrnd) New (BackGrnd) Do:$ZV["Cache" .Set BackGrnd=$G(BackGrnd) .Do INITPAR .Xecute "Set R=$ZUTIL(140,1,Dir_Ready)" .If R'=-2 Write:'BackGrnd !,"Global restore is reeds gestart!!!" Quit .Xecute "Set R=$ZUTIL(140,5,Dir_File)" .Xecute "Set R=$ZUTIL(140,5,Dir_Check)" .Xecute "Set R=$ZUTIL(140,5,Dir_Ready)" .Open Dir_Ready:"NW":0 .Quit:'$T .Use Dir_Ready .Write $P(System,"\")_" GR ready" .Close Dir_Ready .For Xecute "Set R=$ZUTIL(140,1,Dir_Ready)" Quit:R=-2 Do ..For Xecute "Set R=$ZUTIL(140,1,Dir_Ready)" Quit:R=-2 Xecute "Set R=$ZUTIL(140,1,Dir_File)" Quit:R>51 Hang 1 ..Xecute "Set R=$ZUTIL(140,1,Dir_Ready)" ..Quit:R=-2 ..Open Dir_File ..Use Dir_File ..For Read R If $E(R,1,6)="Blind:" Set Global=$P(R," ",2) Quit ; ontvangen van de global ..For Xecute "Set R=$ZUTIL(140,1,Dir_Check)" Quit:R'<$L($E(Global,2,99)) Hang 1 ; wachten op bevestiging GS complete ..Open Dir_Check ..Use Dir_Check ..Read R ..Close Dir_File,Dir_Check ..If R='$E(Global,2,99),BackGrnd Do Quit ; Foutieve data ...Write !,"Global ",Global," foutief!!!" ...Read R ..Do GR(BackGrnd) ; Wegschrijven van de global ..Xecute "Set R=$ZUTIL(140,5,Dir_File)" ..Xecute "Set R=$ZUTIL(140,5,Dir_Check)" .Xecute "Set R=$ZUTIL(140,5,Dir_File)" .Xecute "Set R=$ZUTIL(140,5,Dir_Check)" .Xecute "Set R=$ZUTIL(140,5,Dir_Ready)" Quit ; ; Stoppen global restore (Cache) CGRSTOP Do INITPAR Xecute "Set R=$ZUTIL(140,5,Dir_Ready)" Quit ; ; Routine directory op printer (MSM) ; Copie = "" (alle routines) ; "C" (alle gecopieerde routines) ; "N" (alle niet gecopieerde routines) ; "S" (alle niet te copieeren routines) ; Global directory op printer (MSM) ; Copie = "" (alle globals) ; "C" (alle gecopieerde globals) ; "GS" (alle gecopieerde globals via ^%GS (geen vertaling nodig, sneller)) ; "ABIE" (alle gecopieerde globals via ^cABIE (met vertaling, trager)) ; "N" (alle niet gecopieerde globals) ; "S" (alle niet te copieeren globals) GD(Copie) Set Copie=$G(Copie) Do:$ZV["MSM" .If "\\C\N\S\GS\ABIE\"'[("\"_Copie_"\") Write "???" Quit .Do INIT^vhPRINTER() .Do:$D(Print) ..Write !!?30,"MSM -> Caché ",$$EXTDATE^vhDTyp(,"DL") ..Write !?30 ..If "\C\GS\ABIE\"[("\"_Copie_"\") Write "Gekopieërde" ..Write:Copie="N" "Niet gekopieërde" ..Write:Copie="S" "Niet te kopieëren" ..Write:Copie="" "Alle" ..Write " globals" ..If "\GS\ABIE\"[("\"_Copie_"\") Write " via ",Copie ..Write !! ..Set Count=0,Global="^" ..For Set Global=$O(@Global) Quit:Global="" Quit:$E(Global)="a" Do Set Global="^"_Global ...If "S"'[Copie,$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"S","G",Global)) Quit ...If Copie="S",'$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"S","G",Global)) Quit ...If Copie="C",'$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"C","G",Global)) Quit ...If Copie="N",$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"C","G",Global)) Quit ...If Copie="N",$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"S","G",Global)) Quit ...If "\G\A\"[("\"_$E(Copie)_"\"),'$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"C","G",Global)) Quit ...If Copie="GS",'$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"GS",Global)) Quit ...If Copie="ABIE",$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"GS",Global)) Quit ...Set Count=Count+1 ...If Copie="" Write:$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"C","G",Global)) @FMTB ...Write "^",Global,$J("",9-$L(Global)) ...If Copie="" Write:$D(^vhVHMC($S($E($ZU(5),1,3)="MGR":"M",1:"T"),"C","G",Global)) @FMTb ...Write:'(Count#8) ! ..Write # ..Do CLOSE^vhPRINTER Quit ; ; Conversie van de global ^RES CONVRES New I,%Nodes,%Node,vhNode Do:$ZV["Cache" .Set %Nodes="PRINTER\RES\WACHTW" .For I=1:1:$L(%Nodes,"\") Do ..Set %Node=$P(%Nodes,"\",I) ..Quit:%Node="" ..Set vhNode="vh"_%Node,%Node="%"_%Node ..Kill ^RES(vhNode) ..Merge ^RES(vhNode)=^RES(%Node) ..Kill ^RES(%Node) Quit ; INITPAR Do:$ZV["MSM" .Set Dir=^vhVHMC("P","DIR") .Set File01=^vhVHMC("P","DIR","GLOB","CACHE01","FILE") .Set File02=^vhVHMC("P","DIR","GLOB","CACHE02","FILE") .Set Check01=^vhVHMC("P","DIR","GLOB","CACHE01","CHECK") .Set Check02=^vhVHMC("P","DIR","GLOB","CACHE02","CHECK") .Set Ready01=^vhVHMC("P","DIR","GLOB","CACHE01","READY") .Set Ready02=^vhVHMC("P","DIR","GLOB","CACHE02","READY") .Set System=^vhVHMC("P","SYSTEM") Do:$ZV["Cache" .Set Dir=^vhVHMC("P","DIR") .Set File=^vhVHMC("P","DIR","GLOB","FILE") .Set Check=^vhVHMC("P","DIR","GLOB","CHECK") .Set Ready=^vhVHMC("P","DIR","GLOB","READY") .Set System=^vhVHMC("P","SYSTEM") Quit ;