cANLOCK ;LOCK-functies ;%ANLOCK ; [ 01/04/01 11:31 AM ] G YZ ; T0 ;LOCK-functies; T1 ;Bestand; ; T0F ;LOCK-functions; T1F ;Fichier; ; T0E ;LOCK-functions; T1E ;File; ; ; Input-parameters: LREF = globalreference ; LTIME= time-out argument voor LOCK ; LITEM= omschrijving te locken item ; LACT = te ondernemen actie ; 0 = er wordt geen foutboodschap getoond (back-ground-jobs, VB), ; maar boodschap wordt als string teruggegeven. ; 1 = foutboodschap + [] = ok ; de gebruiker moet [] geven om door te gaan ; Opgelet : indien in combinatie met LTEXT=1,2 of 3 wordt LACT op 0 gezet ; 2 = foutboodschap ; de boodschap verdwijnt na LTIME (parameter 2) ; en lock-functie probeert automatisch opnieuw ; Opgelet : indien in combinatie met LTEXT=1,2 of 3 wordt LACT op 0 gezet ; LTEXT = type text ; 0 = normaal type (gebruikt in karakterbased toepassing ; in gebruik door (job) ; 1 = verkleind type (gebruikt op scanners) ; in gebruik:-JOB ; Opgelet : LACT wordt automatisch op 0 gezet. ; 2 = uitgebreid type en er wordt op het scherm niets getoond, ; maar wordt als string teruggegeven. ; (gebruikt in VB) ; Opgelet : LACT wordt automatisch op 0 gezet. ; 3 = complete string van de job die lockt wordt teruggegeven ; Opgelet : LACT wordt automatisch op 0 gezet. ; 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 ; ; NO2 = 1 : Geen 2de lock toegelaten binnen eigen job ; ; Output: 0=lock failed ; 1=GLOREF is gelockt ; LOCK(LREF,LTIME,LITEM,LACT,LTEXT,NO2) ; lock GLOREF / unlock al de rest N LPLUS S LPLUS=0 G 1 ; PLUS(LREF,LTIME,LITEM,LACT,LTEXT,NO2) ; lock +GLOREF / rest blijft gelockt N LPLUS S LPLUS=1 G 1 ; ; start 1 S $ZT="TRAP^cAN000" N LZR,OK,oNO2 S LZR=$ZR S OK=0,oNO2=$G(NO2) I $G(LREF)="" G YZ S LREF=$NA(@LREF) I $G(LTIME)="" S LTIME=2 I $G(LITEM)="" S LITEM=$P($T(@("T1"_QT)),U,2) I $G(LACT)="" S LACT=0 I $G(LTEXT)="" S LTEXT=0 I LTEXT=1 S LACT=0 I LTEXT=2 S LACT=0 I LTEXT=3 S LACT=0 ; ; lock 2 N K,LT,LJOB 21 I '$G(NO2) G 23 ; geen 2de lock toegelaten binnen eigen job : eerst locktab onderzoeken binnen eigen jobs D ^cANLOCKC I $L(LJOB) G 31 S NO2="" 23 I 'LPLUS L @LREF:LTIME S LT=$T G 3 L +@LREF:LTIME S LT=$T ; ; na de lock 3 I LT S OK=1 G YZ I $ZV["MSM" D ^cANLOCKM ; opbouw variabele LJOB I $ZV'["MSM" D ^cANLOCKC 31 I '$L($G(LJOB)) S OK=1 G YZ ; men kon even niet locken, maar tijdens onderzoek locktable is lock vrijgekomen S OK=0_D_LITEM_LJOB I 'LACT G YZ I LACT=2 G 5 ; ; actie=1 (boodschap tonen, [] geven en stoppen) 4 I LACT=1 S K=$P(OK,D,2,99) D TXT^cAFA1(250) G YZ ; ; actie=2 (boodschap tonen, wissen en opnieuw) 5 S K=24 I $G(QW) D O^cA612(24,1,1,80,0,0,1,1) S K=1 W /CUP(K,1),@F2," ",@F4,$P(OK,D,2,99)," ",@F5 H LTIME W /CUP(K,1),@F2 I $G(QW) D C^cA612 R K:0 S NO2=$G(oNO2) G 21 ; YZ D REF Q OK ; REF I LZR["(",$O(@LZR) ; terugzetten last reference I LZR'["(",$D(@LZR) Q ; ZZ ; 19.03.07 - 15 u 31 * V8.08