cAN0083 ;Controle gelijkhouden bestanden; cAN008 ; G 1 ; T0 ;Controle op gelijkhouden bestanden ; T1 ;Uw keuze;I[] = controle integriteit indexen op ; T2 ;controle ; T3 ;Bevestiging\"[] = ok" T4 ;Start;Einde;Verschil; T5 ; onbekend; ; T0F ;Contrôle interaction des fichiers ; T1F ;Votre choix;I[] = contrôle intégrité indexes sur ; T2F ;contrôle ; T3F ;Confirmation\"[] = ok"; T4F ;Début;Fin;Différence; T5F ; inconnu; ; T0E ;Controle op gelijkhouden bestanden ; T1E ;Choice;I[] = control integrity index on ; T2E ;control ; T3E ;Confirmation\"[] = ok" T4E ;Start;End;Difference; T5E ; unknown; ; ;-------------------------------------------------------------- ; Controleren via Batch global ^DPAR(0,"BATCH",VNR ;-------------------------------------------------------------- 1 I $G(SWBG)'=1 D P^cA612(2,1,19,80,1,0,0,0,$P($T(@("T0"_QT)),U,2),0,0,7,1,1) I $G(VNR)="" G YZ I $P($G(^DPAR(0,"BATCH",VNR,0)),D,30) G YZ S TMP=$NA(^TEMPC($T(+0),VNR)) K @TMP,A,B,NB D ^cA106,^cA105 S @TMP@(0)=0_D_DT_D_TD_D_D_boot_D_cs_D_$J S TOTDIF=0 S VNRB=0 F S VNRB=$O(^DPAR(0,"BATCH",VNR,VNRB)) Q:VNRB="" D . I $P(^(VNRB),D,30) Q . S DMSC=$P(^(VNRB),D) . I $L($P(^(VNRB),D,2)) S Q=$P(^(VNRB),D,2) . D DMS^cAN000("UQC","USC",DMSC,+$G(SWBG)) . I UQC=""!(USC="") Q . S DREF=^DMC(UQC,USC,"DATA","REF"),DREF=$P(DREF,",UI1")_")" . S QQ="" . F S QQ=$O(^DPAR(0,"BATCH",VNR,VNRB,QQ)) Q:QQ="" D .. I $P(^(QQ),D,30) Q .. S DMS=$P(^(QQ),D) .. D 2 .. S @TMP@(VNRB,QQ)=DMS_D_DIF_D_TOT .. S TOTDIF=TOTDIF+DIF . D 3 . S @TMP@(VNRB,0)=DMSC_D_DIF_D_TOT . S TOTDIF=TOTDIF+DIF D ^cA106,^cA105 S $P(@TMP@(0),D,4)=TD S $P(@TMP@(0),D)=TOTDIF ; Versturen alert indien controle via BGJOB's I $G(SWBG)'=1 G YZ I TOTDIF>0 D . ; Versturen alert naar support@datam.be, er zijn verschillen gevonden . S ALERT=$P($G(^DPAR(0,"BATCH",VNR,0)),D,3) I TOTDIF'>0 D . ; Versturen alert naar logging@datam.be, er zijn geen verschillen gevonden . S ALERT=$P($G(^DPAR(0,"BATCH",VNR,0)),D,4) I '$L($G(ALERT)) G YZ ; Versturen van de alert D @(ALERT_"^cANEM0($T(+0),$P($T(T0),U,2),VNR)") 11 G YZ ; ;-------------------------------------------------------------- ; oREF -> DREF ;-------------------------------------------------------------- 2 N Q S $ZT="TRAP^cAN000" S Q=QQ S I1=0,DIF=0,TOT=0,UND="",E=0 S EXECNV=$$EXEC^cAN0081(QQ,DMS) ; ophalen execute conversie Q_KL -> DKL S oQQREF=$$OREF^cAN0081(QQ,DMS),oREF=$NA(@oQQREF) 21 S I1=$O(@(oREF)@(I1)) I I1="" G 29 I $G(SWBG)'=1 W /CUP(17,2),@F2,DMSC," ",I1 ; signaletiek eerste bestand K B S B(1)=$G(^(I1,0),UND),J=$O(^(10),-1),TOT=TOT+1 F I=0:1:J S B(I+1)=$G(^(I),UND) ; signaletiek tweede bestand S UI1=$P(B(1),D,48) K C S C(1)="" I $L(UI1) D . S C(1)=$G(@DREF@(UI1,0),UND),J=$O(^(10),-1) . F I=0:1:J S C(I+1)=$G(^(I),UND) ; controle linken in eerste bestand S K=0 I '$L(UI1) D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@oREF@(I1))_" <> B-index 148="_UI1 I $P(B(1),D,49)'=QQ D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@oREF@(I1))_" <> B-index 149="_$P(B(1),D,49) I $P(B(1),D,50)'=I1 D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@oREF@(I1))_" <> B-index 150="_$P(B(1),D,50) ; controle linken in tweede bestand I $P(C(1),D,48)'=UI1 D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@oREF@(I1)) . S E=E+1,@TMP@(VNRB,QQ,E)=$P(DREF,")")_","_UI1_") <> B-index 148="_UI1 I $P(C(1),D,49)'=QQ D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@oREF@(I1)) . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@DREF@(UI1))_" <> B-index 149="_$P(C(1),D,49) I $P(B(1),D,50)'=I1 D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@oREF@(I1)) . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@DREF@(UI1))_" <> B-index 150="_$P(C(1),D,50) ; controle op verschillen S $P(B(1),D,30)=+$P(B(1),D,30) F I=48,49,50 S $P(B(1),D,I)="",$P(C(1),D,I)="" D PR^cAN0081 K NB M NB=B I $L(EXECNV) X EXECNV ; specifieke conversies per bestand S J=0 F I=1:1 D I J Q . I '$D(NB(I)),'$D(C(I)),$O(NB(I))="",$O(C(I))="" S J=1 Q . I $TR($G(NB(I),UND),D)=$TR($G(C(I),UND),D) Q . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@oREF@(I1,I-1))_"="_$G(NB(I),UND) . S E=E+1,@TMP@(VNRB,QQ,E)=$NA(@DREF@(UI1,I-1))_"="_$G(C(I),UND) G 21 29 Q ; ;-------------------------------------------------------------- ; DREF -> oREF ;-------------------------------------------------------------- 3 S UI1="",DIF=0,TOT=0,UND="",E=0 S EXECNV=$$EXEC^cAN0081(Q,DMSC) ; ophalen execute conversie DKL -> Q_KL 31 S UI1=$O(@DREF@(UI1)) I UI1="" G 39 I $G(SWBG)'=1 W /CUP(17,2),@F2,DMSC," ",UI1 ; signaletiek tweede bestand K B S B(1)=$G(^(UI1,0),UND),J=$O(^(10),-1),TOT=TOT+1 F I=0:1:J S B(I+1)=$G(^(I),UND) S K=0 ; signaletiek eerste bestand S QQ=$P(B(1),D,49) I $L(QQ),'$D(^DPAR(0,"BATCH",VNR,VNRB,QQ)) D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=QQ_$P($T(@("T5"_QT)),U,2) S I1=$P(B(1),D,50) K C S C(1)="" I $L(QQ),$L(I1) D . S DMS=$P($G(^DPAR(0,"BATCH",VNR,VNRB,QQ)),D) . I '$L(DMS) Q . N Q S Q=QQ . S C(1)=$G(@(oQQREF)@(I1,0),UND),J=$O(^(10),-1) . F I=0:1:J S C(I+1)=$G(^(I),UND) . S oREF=$NA(@oQQREF) ; controle linken in tweede bestand I $P(B(1),D,48)'=UI1 D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=$NA(@DREF@(UI1))_" <> B-index 148="_$P(B(1),D,48) I $P(B(1),D,49)="" D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=$NA(@DREF@(UI1))_" <> B-index 149="_$P(B(1),D,49) I $P(B(1),D,50)="" D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=$NA(@DREF@(UI1))_" <> B-index 150="_$P(B(1),D,50) ; controle linken in eerste bestand I $P(C(1),D,48)'=UI1 D . I $P(B(1),D,30)=2,+$P(C(1),D,30)=0 Q . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=$NA(@DREF@(UI1)) . S E=E+1,@TMP@(VNRB,E)=$NA(@oREF@(I1))_" <> B-index 148="_$P(C(1),D,48) I $P(C(1),D,49)'=QQ D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=$NA(@DREF@(UI1)) . S E=E+1,@TMP@(VNRB,E)=$NA(@oREF@(I1))_" <> B-index 149="_$P(C(1),D,49) I $P(B(1),D,50)'=I1 D . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=$NA(@DREF@(UI1)) . S E=E+1,@TMP@(VNRB,E)=$NA(@oREF@(I1))_" <> B-index 150="_$P(C(1),D,50) ; controle op verschillen S $P(C(1),D,30)=+$P(C(1),D,30) F I=48,49,50 S $P(B(1),D,I)="",$P(C(1),D,I)="" D PR^cAN0081 K NB M NB=B D . N Q . S Q=QQ . I $L(EXECNV) X EXECNV ; specifieke conversies per bestand S J=0 F I=1:1 D I J Q . I '$D(NB(I)),'$D(C(I)),$O(NB(I))="",$O(C(I))="" S J=1 Q . I $TR($G(NB(I),UND),D)=$TR($G(C(I),UND),D) Q . ; KO - 18.04.07 - Controle voor verwijderde bestanden . I I=1,$P(NB(I),D,30)=2,$P(C(I),D,30)=0 D Q:J .. S NUI1=$P(@oREF@(I1,0),D,48) .. I NUI1=UI1 Q .. S J=$$VERW(NUI1) . I 'K S DIF=DIF+1,K=1 . S E=E+1,@TMP@(VNRB,E)=$NA(@DREF@(UI1,I-1))_"="_$G(NB(I),UND) . S E=E+1,@TMP@(VNRB,E)=$NA(@oREF@(I1,I-1))_"="_$G(C(I),UND) G 31 39 Q ; YZ D:($G(SWBG)'=1) C^cA612 Q ; VERW(NUI1) ; Testen of verwijderde lijn uit nieuw bestand niet verwijst naar ; een geldige operationele lijn uit het nieuwe bestand N OK,B,NB,J,I S $ZT="TRAP^cAN000" S OK=1 K B S B(1)=$G(@DREF@(NUI1,0),UND),J=$O(^(10),-1) F I=0:1:J S B(I+1)=$G(^(I),UND) F I=48,49,50 S $P(B(1),D,I)="" D PR^cAN0081 K NB M NB=B D . N Q . S Q=QQ . I $L(EXECNV) X EXECNV S J=0 F I=1:1 D I J Q . I '$D(NB(I)),'$D(C(I)),$O(NB(I))="",$O(C(I))="" S J=1 Q . I $TR($G(NB(I),UND),D)=$TR($G(C(I),UND),D) Q . S OK=0 VERWZ Q OK ; ZZ ; 29.08.07 - 10 u 22 * V8.09