cANLOCKC ;LOCK-functie ;%ANLOCK ; [ 01/04/01 11:31 AM ] G 1 ; T0 ;LOCK-functie ; T1 ; in gebruik; door ;job ; T2 ;Door gebruiker;Programma;Job ; ; T0F ;LOCK-function ; T1F ; en usage; par ;job ; T2F ;Par utilisateur;Programme ;Job ; ; T0E ;LOCK-function ; T1E ; in use; by ;job ; T2E ;By User;Program;Job ; ; ; Dit programma moet variabele LJOB opbouwen: " in gebruik ..." ; indien mogelijk initialen & jobnummer opnemen ; 1 N K,I1,NBS,I1,B,BEST,TEL,A,NBSB,NS,DB,I S $ZT="TRAP^cAN000" S LJOB=$P($T(@("T1"_QT)),U,2) I $E(LREF)="|"!($E(LREF,2)="|") D ; indien er een namespace meegegeven is . S NS=$TR($P(LREF,"|",2),"""") . D ND^cQ21(.A) ; ophalen namespace met hun databases . I '$D(A(NS,"globals")) K A Q . S DB=A(NS,"globals"),LREF=$S($E(LREF)="^":"^",1:"")_$P(LREF,"|",3,99) K A . S A(-1)="^"_DB I '$D(A),$E(LREF)="^" D DB^cQJRNLG($qs(LREF,0),.A) ; ophalen database(s) waarin global gemapt is S NBS=$ql(LREF) ; ophalen aantal subscripts S K=$$LOCKJ^cANCLCK($S($G(NO2):$J,1:""),,,1) ; ophalen locktable in ^TEMP(boot,$J,"LOCKS",ini_" "_$j_" "_vnr) I 'K S LJOB="" G YZ ; geen locks te vinden S I1="" ; 2 S I1=$O(^TEMP(boot,$J,"LOCKS",I1)) G 3:I1="" S B=^(I1) I '$G(NO2),$P(B,D,2)=$J G 2 ; locks van eigen job niet bekijken I $G(NO2),$P(B,D,2)'=$J G 2 ; locks van andere jobs niet bekijken S BEST=$P(B,D,6) I $qs(BEST,0)'=$qs(LREF,0) G 2 ; Naam bestand niet gevonden I $E(LREF)'="^" G 21 S I="" F S I=$O(A(I)) Q:I="" I $TR($P(A(I),"^",2),D,"/")=$TR($P(B,D,7),"^""") Q I I="" G 2 21 I NBS=0 G 3 ; LREF bevatte geen subscripts S NBSB=$ql(BEST) ; ophalen aantal subscripts van gevonden bestand I 'NBSB G 3 ; volledige global gelocked S TEL=1 23 I $qs(BEST,TEL)'=$qs(LREF,TEL) G 2 ; parent is verschillend I TEL=NBS G 3 ; Child(s) zijn gelocked I TEL=NBSB G 3 ; parent is gelocked S TEL=TEL+1 G 23 G 2 ; 3 I '$L(I1) S LJOB="" G YZ ; niets gevonden S LJOB=$$MESS(B,LTEXT) ; YZ K ^TEMP(boot,$J,"LOCKS") Q ; MESS(B,LTEXT) N OK,job,qu,R S $ZT="TRAP^cAN000" S STRING=$P(B,D)_D_$P(B,D,2) ; qu_D_job ; indien de job nog actief is ophalen gegevens over de job ; INI_D_$J_D_Poortnr_D_Firmanaam_D_Menulijn_D_Routine_D_IQ1_D_Status Job ; _D_Aantal locks_D_Naam gebruiker_D_Namespace_D_Clientname_D ; _Datum login_D_Uur login_D_Datum ltst beweging_D_Uur ltst beweging_D_Systeem_D_Q_D_Globalref I $ZU(67,0,$P(B,D,2)) S STRING=$$JOB^cANCJOB($P(B,D,2)) I $P(STRING,D)="z" S $P(STRING,D)="" I '$L($P(STRING,D,10)) S $P(STRING,D,10)=$P(STRING,D) S OK=1 I $L($G(^cLOG(boot,"LOCK"))) X ^("LOCK") I OK=2 G MESSZ I 'LTEXT D G MESSZ ; gewoon type . S R=$P($T(@("T1"_QT)),U,2)_$P($T(@("T1"_QT)),U,3) . I $L($P(STRING,D,10)) S R=R_$P(STRING,D,10)_" (" ; naam gebruiker . S R=R_$P($T(@("T1"_QT)),U,4)_$P(STRING,D,2)_$S($L($P(STRING,D,10)):")",1:"") I LTEXT=1 D G MESSZ ; verkort type . S LITEM="",R=$P($T(@("T1"_QT)),U,2)_":" S:$E(R)=" " R=$E(R,2,$L(R)) . I $L($P(STRING,D)) S R=R_$P(STRING,D)_"-" . S R=R_$P(STRING,D,2) I LTEXT=2 D G MESSZ ; uitgebreid type voor VB . S R=$P($T(@("T1"_QT)),U,2)_"!"_$C(13,10) . S R=R_$C(13,10)_$P($T(@("T2"_QT)),U,2)_$c(9)_" : "_$P(STRING,D,10)_$c(9) . S R=R_$C(13,10)_$P($T(@("T2"_QT)),U,3)_$c(9)_" : "_$P(STRING,D,5) . S R=R_$C(13,10)_$P($T(@("T2"_QT)),U,4)_$c(9)_" : "_$P(STRING,D,2) I LTEXT=3 S LITEM="",R=STRING G MESSZ MESSZ Q R ; ZZ ; 19.03.07 - 15 u 31 * V8.08