SYNCUPD ;Update van de alg. klant en produkt geg. [ 10/31/2001 9:56 AM ] ; Dit programma maakt gebruik van de entries in ^SYNC("U"). Deze entries werden aangemaakt door prog. ^LOG in de MASTER volume Set D="\",U=";",Q="K" d INIT^vhTERMINA Set %J=$$%J^vhRtn1() Set sV=sRemVol Quit:'$L(sRemVol) Set RegChar=$E($P($ZU(5),",",2),3) Set io=$$IO^cQ5() Set UsrRegio=$P($G(^cLOG(boot,"VTWSYNC")),D,3) Set ExtraRegio=$P($G(^cLOG(boot,"VTWSYNC")),D,5) ; Extra regios met ";" gescheiden Set UsrReg3=$E(1000+UsrRegio,2,4) Set sType="" For Set sType=$O(^|sV|SYNC("U",sType)) Quit:sType="" Do .If $D(^|sV|SYNC("U",sType))#10,^|sV|SYNC("U",sType)'[UsrReg3 Do ; Volledig kopieren, $T behouden ..Do @(sType_"ALL"),WIPEALL(sType) .Else Do ; Alleen subnodes ..Set sKey="" ..For Set sKey=$O(^|sV|SYNC("U",sType,sKey)) Quit:sKey="" Do ...Set sRec=^|sV|SYNC("U",sType,sKey) ...If sRec'[UsrReg3 Do @(sType_"ONE(sKey)"),WIPEONE(sType,sKey,sRec) Kill ^HULP(%J) Quit WIPEONE(sType,sKey,sRec) Set:'$D(sRec) sRec=^|sV|SYNC("U",sType,sKey) Quit:sRec[UsrReg3 Set ^|sV|SYNC("U",sType,sKey)=sRec_UsrReg3 Quit CHECKREG(KLReg,UsrReg,ExtraReg) Quit:+$H<58032 1 Quit:UsrReg=1 1 Quit:KLReg=UsrReg 1 Quit:";"_ExtraReg_";"[(";"_KLReg_";") 1 Quit 0 CHECKALL ; Job die 's nachts nagaat of er SYNC("U") nodes mogen verwijderd worden omdat alle remotes ze hebben overgenomen. Job draait op de MASTER Set sType="" For Set sType=$O(^SYNC("U",sType)) Quit:sType="" Do .Set sKey="" .For Set sKey=$O(^SYNC("U",sType,sKey)) Quit:sKey="" Do ..Set sRec=^SYNC("U",sType,sKey) ..If sRec["002",sRec["003" Kill ^SYNC("U",sType,sKey) ; UsrRegio 2, 3 Quit WIPEALL(sType) New sKey,sRec Set sKey="" For Set sKey=$O(^|sV|SYNC("U",sType,sKey)) Quit:sKey="" Do WIPEONE(sType,sKey) Set sRec=^|sV|SYNC("U",sType) Quit:sRec[UsrReg3 Set ^|sV|SYNC("U",sType)=sRec_UsrReg3 Quit KLONE(KLNr) New KLId,I,Key If $D(^SYNC("C",KLNr)) Do REMALL^SYNCCOPY($H+100) ; Alle gecopieerde klanten verwijderen, de gegevens worden later terug overgebracht If $D(^KK1(KLNr)) Do .Set KLId=^KK1(KLNr) .Kill ^KK1(KLNr),^KKL(KLId) If $D(^|sV|KK1(KLNr)) Do .Set KLId=^|sV|KK1(KLNr) .Quit:$P($G(^KKL(KLId,2)),D,10) ; Geen NonAktieve .Quit:'$$CHECKREG($P($G(^|sV|KKL(KLId,0)),D,20),UsrRegio,ExtraRegio) .For I=0:1:6 Set ^KKL(KLId,I)=^|sV|KKL(KLId,I) .Set Key="L" .For Set Key=$O(^|sV|KKL(KLId,Key)) Quit:$E(Key,1)'="L" Set ^KKL(KLId,Key)=^|sV|KKL(KLId,Key) .Set ^KK1(KLNr)=KLId .Do PERSONE("K",KLNr) .Do KLUTZONE(KLNr) Quit PERSONE(ObjType,ObjRef) Do DELOBJ^PERS(ObjType,ObjRef) Merge ^PERS(ObjType,ObjRef)=^|sV|PERS(ObjType,ObjRef) Do BLDINDEX^PERS(ObjType,ObjRef) Quit KLALL New KLId Kill ^HULP(%J) Do REMALL^SYNCCOPY($H+100) ; Alle gecopieerde klanten verwijderen ; O-node bijhouden Merge ^HULP(%J)=^KKL(0) Kill ^KK1,^KKL Merge ^KKL(0)=^HULP(%J) Set KLId=0 For Set KLId=$O(^|sV|KKL(KLId)) Quit:KLId="" Do KLONE($P(^|sV|KKL(KLId,0),D)) Quit KLUTZALL New I,KLId For I="N","IN","S","IS" Kill ^KLPUTZ(I) W "KLUTZALL",! Set KLId=0 For Set KLId=$O(^|sV|KKL(KLId)) Quit:KLId="" Do KLUTZONE($P(^|sV|KKL(KLId,0),D)) Quit KLUTZONE(KLNr) New KLId Set KLId=$G(^|sV|KK1(KLNr)) Quit:KLId="" ;Quit:$P($G(^KKL(KLId,2)),D,10) ; Geen NonAktieve Quit:'$$CHECKREG($P($G(^|sV|KKL(KLId,0)),D,20),UsrRegio,ExtraRegio) Do REMPUTZ^SYNCCOPY(KLNr) Do COPYPUTZ^SYNCCOPY(KLNr) Quit LEVONE(LEVNr) New LEVId If $D(^KL1(LEVNr)) Do .Set LEVId=^KL1(LEVNr) .Kill ^KL1(LEVNr),^KLE(LEVId) If $D(^|sV|KL1(LEVNr)) Do .Set LEVId=^|sV|KL1(LEVNr) .Quit:'$P($G(^|sV|KLE(LEVId,0)),D,27) .For I=0:1:6 Set ^KLE(LEVId,I)=^|sV|KLE(LEVId,I) .Set ^KL1(LEVNr)=LEVId .Do PERSONE("L",LEVNr) Quit LEVALL New LEVId Kill ^HULP(%J) ; O-node bijhouden Merge ^HULP(%J)=^KLE(0) Kill ^KL1,^KLE Merge ^KLE(0)=^HULP(%J) Set LEVId=0 For Set LEVId=$O(^|sV|KLE(LEVId)) Quit:LEVId="" Do LEVONE($P(^|sV|KLE(LEVId,0),D)) Quit PRONE(PRNr) If $D(^KPR(PRNr)) Do .Do DELIND^PRODUKT2(PRNr) .Kill ^KPR(PRNr) If $D(^|sV|KPR(PRNr)) Do .For I=0:1:5 Set ^KPR(PRNr,I)=^|sV|KPR(PRNr,I) .For I="I","J" Do ..Set Key=$O(^|sV|KPR(PRNr,I)) Quit:$E(Key)'=I ..Set ^KPR(PRNr,I)=^|sV|KPR(PRNr,I) ..Set ^KPR(PRNr,Key)=^|sV|KPR(PRNr,Key) .Do BLDIND^PRODUKT2(PRNr) Quit PRALL New PRNr Kill ^HULP(%J) ; O-node bijhouden Merge ^HULP(%J)=^KPR(0) Kill ^KPR,^KPL,^KPM,^KPR1,^KPR2,^KPH Merge ^KPR(0)=^HULP(%J) Set PRNr=0 For Set PRNr=$O(^|sV|KPR(PRNr)) Quit:PRNr="" Do PRONE(PRNr) Quit KLASONE(Ref) ; Het zelfde als KLASSALL KLASALL Kill ^KPSG,^KPSG1,^KPHG,^KPHG1,^KPGR,^KPGR1,^KLAS Merge ^KPHG=^|sV|KPHG Merge ^KPHG1=^|sV|KPHG1 Merge ^KPGR=^|sV|KPGR Merge ^KPGR1=^|sV|KPGR1 Merge ^KPSG=^|sV|KPSG Merge ^KPSG1=^|sV|KPSG1 Merge ^KLAS=^|sV|KLAS Do PRALL,WIPEALL("PR") Quit