cICOPROU ;KOPIEER GEWIJZIGDE PROGRAMMA'S ;%ICOPROU; [ 07/25/97 9:43 AM ] ; T0 ;KOPIEREN GEWIJZIGDE PROGRAMMA'S ; ; T0F ;COPIE DES PROGRAMMES MODIFIES ; ; 1 S %LOG="^cLOG(boot,""RCOPY"")",LOG="^|home|ZZLOG(""ROU"")",LOGC="^|home|ZZLOG(""RCOPY"")" S D="\",U=";" S LOGEX="^cLOG(boot,""EX"",""R"")" S UCS=$ZU(5) D MASTER^cQ5,IN^cQMSMSW("MGR,"_boot) G YZ:'$D(@%LOG@(0,"HOME")) S home=@%LOG@(0,"HOME") L +@%LOG:1 E G YZ S HD=+$H,HT=$P($H,",",2) D ^cA105,^cA106 S @LOGC@(HD,HT,0)=DT_"\"_TD ; 2 S UCI=0 F S UCI=$O(@%LOG@(UCI)) Q:UCI="" D . I '$D(@LOG@(UCI)) S %RN="",UCO=$ZU(5) I $L($ZU($P(UCI,","),$P(UCI,",",2))) D IN^cQMSMSW(UCI) D D IN^cQMSMSW(UCO) .. F S %RN=$O(^ (%RN)) Q:%RN="" S @LOG@(UCI,%RN)=$$CHECK(%RN) ; 3 S UCI=0 F S UCI=$O(@%LOG@(UCI)) Q:UCI="" D . S TO=@%LOG@(UCI) . S %RN="",UCO=$ZU(5) I $L($ZU($P(UCI,","),$P(UCI,",",2))) D IN^cQMSMSW(UCI) D D IN^cQMSMSW(UCO) .. F S %RN=$O(^ (%RN)) Q:%RN="" S C=$$CHECK(%RN),A=$G(@LOG@(UCI,%RN)) I A'=C S @LOGC@(HD,HT,UCI,%RN)=C .. F S %RN=$O(@LOG@(UCI,%RN)) Q:%RN="" I '$D(^ (%RN)) S @LOGC@(HD,HT,UCI,%RN)=-1 .. ; opbouw routines die niet mogen gecopieerd worden .. K ^HULP(boot,$J,UCI) .. I $D(@LOGEX@(UCI)) F I=1:1:$L(TO,D) I $L($P(TO,D,I)),$D(@LOGEX@(UCI,$P(TO,D,I))) D ... S EX=@LOGEX@(UCI,$P(TO,D,I)) ... F %M=1:1:$L(EX,D) S K=$P(EX,D,%M) I $L(K) D .... I K'["*"&(K'["-") S %R=K S ^HULP(boot,$J,UCI,$P(TO,D,I),%R)=2 Q .... I K["-" D Q ..... S %R=$P(K,"-") I $L(%R) S %R=$O(^ (%R),-1) ..... F S %R=$O(^ (%R)) Q:%R=""!(%R]$P(K,"-",2)) S ^HULP(boot,$J,UCI,$P(TO,D,I),%R)=2 .... I $E(K,$L(K))="*" D ..... S K=$E(K,1,$L(K)-1),%R=$E(K,1,$L(K)-1)_$C($A(K,$L(K))-1) ..... F S %R=$O(^ (%R)) Q:%R=""!($E(%R,1,$L(K))]$E(K,1,$L(K))) I $E(%R,1,$L(K))=K S ^HULP(boot,$J,UCI,$P(TO,D,I),%R)=2 .... I $E(K)="*" S %R="" F S %R=$O(^ (%R)) Q:%R="" I "*"_$E(%R,$L(%R)-$L(K)+2,$L(%R))=K S ^HULP(boot,$J,UCI,$P(TO,D,I),%R)=2 .. I $P(UCI,",")'="MGR" Q .. F I=1:1 S %R=$P("%DDPRT\%QINTEG\%QMSMVES\%QOBGLO\%QZ",D,I) Q:'$L(%R) F J=1:1:$L(TO,D) I $L($P(TO,D,J)) S ^HULP(boot,$J,UCI,$P(TO,D,J),%R)=1 .. S SW=0 K V .. S ^HULP(boot,$J,UCI,"sys")=$G(^SYS("VERSION")) .. S ^HULP(boot,$J,UCI,"sys","MSMINTEG")=1 .. I $D(^ ("MSMINTEG")) X "ZL MSMINTEG F I=1:1 S %R=$P($T(0+I),"" "") Q:'$L(%R) S ^HULP(boot,$J,UCI,""sys"",%R)=1" .. S K=$P($G(^cLOG(0,"VERS","%Q")),D) .. S K=$TR($P($P(K,"-r",2),".",1,2),". ") .. S %R="%QINT"_K,^HULP(boot,$J,UCI,"%Q",%R)=1 .. S ^HULP(boot,$J,UCI,"%Q")=K .. I $D(^ (%R)) X "ZL "_%R_" F I=1:1 S %R=$P($T(0+I),"" "") Q:'$L(%R) S ^HULP(boot,$J,UCI,""%Q"",%R)=1" .. S K=$TR(K,". "),%R="%QINT"_K_"A",^HULP(boot,$J,UCI,"%Q",%R)=1 .. I $D(^ (%R)) X "ZL "_%R_" F I=1:1 S %R=$P($T(0+I),"" "") Q:'$L(%R) S ^HULP(boot,$J,UCI,""%Q"",%R)=1" ; 4 O 63::15 E G YZ S UCI=0,UCO=$ZU(5) F S UCI=$O(@LOGC@(HD,HT,UCI)) Q:UCI="" S %RN=0 D . D IN^cQMSMSW(UCI) . F S %RN=$O(@LOGC@(HD,HT,UCI,%RN)) Q:%RN="" I ^(%RN)'=-1 S ZBN=$ZBN(^ (%RN)) V ZBN I $V(17,0,1) D .. S @LOG@(UCI,%RN)=@LOGC@(HD,HT,UCI,%RN),@LOGC@(HD,HT,UCI,%RN,"error")="Routine is compiled" . D IN^cQMSMSW(UCO) C 63 S UCI=0,UCO=$ZU(5) F S UCI=$O(@LOGC@(HD,HT,UCI)) Q:UCI="" D . S TO=0,K=$G(@%LOG@(UCI)) I '$L(K) S @LOGC@(HD,HT,UCI,0,UCI)="No copy scheme" Q . F I=1:1:$L(K,"\") S L=$P(K,"\",I) I $L(L),L'=$ZU(5) S TO=TO+1,TO(TO)=L . D IN^cQMSMSW(UCI) S %HI=$V(2,$J,2) . F J=1:1:TO D .. S %UCI=TO(J),(%EXT,%RN,%Q)=0,STATUS="" D UCINUM .. S (VERSSYS,VERSQ)=1 .. I '%Q,$P(%UCI,",")="MGR" D ... S VERSSYS=($G(^|%UCI|SYS("VERSION"))'=$G(^HULP(boot,$J,UCI,"sys"))) ... S VERSQ=($TR($P($P($P($G(^|%UCI|%LOG(0,"VERS","%Q")),D),"-r",2),".",1,2),". ")'=$G(^HULP(boot,$J,UCI,"%Q"))) .. F S %RN=$O(@LOGC@(HD,HT,UCI,%RN)) Q:%RN="" D ... S %S=^(%RN) Q:$D(@LOGC@(HD,HT,UCI,%RN,"error")) ... I '%Q,$P(UCI,",")="MGR",$D(^HULP(boot,$J,UCI,"sys",%RN)),VERSSYS S STATUS="Not "_$S(%S=-1:"removed",1:"copied")_" (diff. versions of MSM)",%Q=2 ... I '%Q,$P(UCI,",")="MGR",$D(^HULP(boot,$J,UCI,"%Q",%RN)),VERSQ S STATUS="Not "_$S(%S=-1:"removed",1:"copied")_" (diff. versions of %Q*)",%Q=2 ... I '%Q,$D(^HULP(boot,$J,UCI,%UCI,%RN)) S STATUS="Not copied (see EX)",%Q=2 ... I '%Q D COPY S %Q=0 I %S=-1,STATUS="DONE" S STATUS="REMOVED" ... S @LOGC@(HD,HT,UCI,%RN,%UCI)=$G(STATUS,"Unknown error")_D_%Q ... I %Q=2 S %Q=0 .. D EXIT . K ^HULP(boot,$J,UCI) . D IN^cQMSMSW(UCO) ; 5 S UCI=0 F S UCI=$O(@LOGC@(HD,HT,UCI)) Q:UCI="" S %RN=0 D . F S %RN=$O(@LOGC@(HD,HT,UCI,%RN)) Q:%RN="" D .. S %Q=$O(@LOGC@(HD,HT,UCI,%RN,0))="",%UCI=0 .. F S %UCI=$O(@LOGC@(HD,HT,UCI,%RN,%UCI)) Q:%UCI="" I %UCI[",",$P(^(%UCI),D)'="DONE"&($P(^(%UCI),D,2)'=2) S %Q=1 Q .. I '%Q S @LOG@(UCI,%RN)=@LOGC@(HD,HT,UCI,%RN) .. S %Q=$O(@LOGC@(HD,HT,UCI,%RN,0))="",%UCI=0 .. F S %UCI=$O(@LOGC@(HD,HT,UCI,%RN,%UCI)) Q:%UCI="" I %UCI[",",$P(^(%UCI),D)'="REMOVED"&($P(^(%UCI),D,2)'=2) S %Q=1 Q .. I $G(@LOGC@(HD,HT,UCI,%RN,"error"))="Routine is compiled" S %Q=1 .. I '%Q K @LOG@(UCI,%RN) ; YZ D EXIT L -@%LOG D IN^cQMSMSW(UCS) Q ; CHECK(%R) S %T=0 N %J,%K X "ZL @%R F %J=1:1 S %K=$T(+%J) Q:%K="""" S %T=%T+$ZCRC(%K,1)" Q %T ; UCINUM S %UI=$S(%UCI?3U:$ZU(%UCI),1:$ZU($P(%UCI,","),$P(%UCI,",",2))) I %UI="" G:$V(30,-5)&(%UCI'?3U) EXTERN S %Q=1,STATUS="UCI not found" Q S %UI=32*$P(%UI,",",2)+%UI Q ; EXTERN S $ZT="ERR^"_$T(+0),%MGR=$ZU(1,0),JOBNAME=$P(%MGR,",",2)_$J_","_$H K:$D(^|%MGR|%msmrcpy(JOBNAME)) ^|%MGR|%msmrcpy(JOBNAME) ;Kill any junk D SETPROT^cRCOPY J JOBRCOPY^cRCOPY(%MGR,JOBNAME)[%UCI]::5 I '$T S %Q=1,STATUS="Cannot job %RCOPY" I '%Q H 1 S %EXT=1 Q ; ERR I $ZE["" S %Q=1,STATUS="UCI not found" Q I $ZE["" S %Q=1,STATUS="System not found" Q S %=$ZE D ^cA400 ZQ ; COPY S:'$D(%RNN) %RNN=%RN S STATUS="" I '%Q D . I %EXT D .. K ^[%MGR]%msmrcpy(JOBNAME,"CODE") .. I $D(^[%MGR]%msmrcpy(JOBNAME,"STATUS")) S STATUS=^("STATUS") I STATUS'="DONE",STATUS'="SKIPPED" S %Q=1 Q .. S ^[%MGR]%msmrcpy(JOBNAME,"STATUS")="" .. I %S=-1 S I=10 .. E X "ZR ZL @%RN F I=1:1 Q:$T(+I)="""" S ^[%MGR]%msmrcpy(JOBNAME,""CODE"",I)=$T(+I)" .. S ^[%MGR]%msmrcpy(JOBNAME)=%RNN,^[%MGR]%msmrcpy(JOBNAME,"CODE")=I-1,%L=0 .. F K=1:1:(I+1) D Q:%L ... H 1 S STATUS=^[%MGR]%msmrcpy(JOBNAME,"STATUS") ... I STATUS="DONE"!(STATUS="SKIPPED") S %L=1 Q ... I K=(I+1) S STATUS="Routine copy timeout",^[%MGR]%msmrcpy(JOBNAME,"STATUS")=STATUS ... I STATUS'="" S (%L,%Q)=1 Q . E D .. I %S=-1 X "ZR V "_2_":$J:%UI:2 ZS @%RNN V "_2_":$J:%HI:2 S STATUS=""DONE""" Q .. X "ZL @%RN V "_2_":$J:%UI:2 ZS @%RNN V "_2_":$J:%HI:2 S STATUS=""DONE""" K %RNN Q ; EXIT I $G(%EXT) K ^[%MGR]%msmrcpy(JOBNAME) I $O(^[%MGR]%msmrcpy(""))="" K ^[%MGR]%msmrcpy H 3 Q ; ZZ ; 28.08.97 - 11 u 02 * V6.3.02