Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SCUTBK

SCUTBK.m

Go to the documentation of this file.
  1. SCUTBK ;ALB/MJK - Scheduling Broker Utilities ;[ 03/21/95 4:13 PM ]
  1. ;;5.3;Scheduling;**41,130,1015**;AUG 13, 1993;Build 21
  1. ;
  1. Q
  1. ;
  1. CHK ; -- all broker callbacks pass thru here
  1. Q
  1. ;
  1. LISTC(SCDATA,SC) ; -- broker callback to get list data
  1. N SCFILE,SCIENS,SCFIELDS,SCMAX,SCFROM,SCPART,SCXREF,SCREEN,SCID,SCVAL,SCROOT,SCERR,SCRSLT,SCFLD
  1. D CHK
  1. ; -- parse array to parameters
  1. D PARSE(.SC)
  1. S SCFLAGS=$G(SCFLAGS)_"PS"
  1. ;
  1. ; -- get specific field criteria - screen code (below) left as reminder
  1. ;IF $G(SC("DDFILE")),$G(SC("DDFIELD")),$D(^DD(SC("DDFILE"),SC("DDFIELD"),12.1)) D
  1. ;. N DIC X ^(12.1) S:$D(DIC("S")) SCREEN=DIC("S")
  1. ;
  1. ; -- need to get from kernel broker somehow...
  1. D TMP
  1. ;
  1. D LIST^DIC(SCFILE,SCIENS,SCFIELDS,SCFLAGS,SCMAX,.SCFROM,SCPART,SCXREF,SCREEN,SCID,"^TMP(""SCRSLT"",$J)","SCERR")
  1. ;
  1. N Y,I,N
  1. ;
  1. S N=0
  1. IF $G(SCFROM)]"" D
  1. . D SET("[Misc]")
  1. . D SET("MORE"_U_SCFROM_U_SCFROM("IEN"))
  1. ;
  1. D SET("[Data]")
  1. S I=0 F S I=$O(^TMP("SCRSLT",$J,"DILIST",I)) Q:'I D SET(^TMP("SCRSLT",$J,"DILIST",I,0))
  1. ;
  1. IF $D(SCERR) D
  1. . D SET("[Errors]")
  1. ;
  1. M SCDATA=Y
  1. Q
  1. ;
  1. SET(X) ;
  1. S N=N+1
  1. S Y(N)=X
  1. Q
  1. ;
  1. PARSE(SC) ; -- array parsing
  1. S SCFILE=$G(SC("FILE"))
  1. S SCIENS=$G(SC("IENS"))
  1. S SCFIELDS=$G(SC("FIELDS"))
  1. S SCFLAGS=$G(SC("FLAGS"))
  1. S SCMAX=$G(SC("MAX"),"*")
  1. M SCFROM=SC("FROM")
  1. S SCPART=$G(SC("PART"))
  1. S SCXREF=$G(SC("XREF"))
  1. S SCREEN=$G(SC("SCREEN"))
  1. S SCID=$G(SC("ID"))
  1. S SCROOT=$G(SC("ROOT"))
  1. ; -- for find
  1. S SCVAL=$G(SC("VALUE"))
  1. Q
  1. ;
  1. FILEC(SCDATA,SCMODE,SCROOT,SCIENS) ;
  1. N SCRTN,SCFDA,SCERR,N,I
  1. D CHK
  1. D FDASET(.SCROOT,.SCFDA)
  1. ; -- set up placeholder DINUM's if any
  1. ; -- NOTE: Can't use until multiple arrays can be passed by broker
  1. ;S I="" F S I=$O(SCIENS(I)) Q:I="" S SCRTN(+I)=+SCIENS(I)
  1. IF SCMODE="ADD" D
  1. . D UPDATE^DIE("","SCFDA","SCRTN","SCERR")
  1. ELSE D
  1. . D FILE^DIE("","SCFDA","SCERR")
  1. S N=0
  1. ;
  1. D SETF("[Data]")
  1. ; -- send back info on entry #'s for placeholders
  1. S I=0 F S I=$O(SCRTN(I)) Q:'I D SETF("+"_I_U_SCRTN(I))
  1. ;
  1. IF $D(SCERR) D
  1. . D SETF("[Errors]")
  1. . D SETF("An error has occurred.")
  1. Q
  1. ;
  1. SETF(X) ;
  1. S N=N+1
  1. S SCDATA(N)=X
  1. Q
  1. ;
  1. FDASET(SCROOT,SCFDA) ;
  1. N SCFILE,SCIEN,SCFIELD,SCVAL,SCERR,I
  1. ;
  1. S I=0
  1. F S I=$O(SCROOT(I)) Q:'I S X=SCROOT(I) D
  1. . S SCFILE=$P(X,U)
  1. . S SCFIELD=$P(X,U,2)
  1. . S SCIEN=$P(X,U,3)
  1. . S SCVAL=$P(X,U,4)
  1. . D FDA^DILF(SCFILE,SCIEN_",",SCFIELD,"",SCVAL,"SCFDA","SCERR")
  1. Q
  1. ;
  1. TMP ; -- temporary envrionment variables sets until kernel tools arrives
  1. IF '$G(DUZ) D
  1. . S DUZ=.5,DUZ(0)="@",U="^",DTIME=300
  1. . D NOW^%DTC S DT=X
  1. Q
  1. ;
  1. VALC(SCDATA,SC) ; -- calls Database Validator
  1. N SCFILE,SCIENS,SCFIELD,SCVALUE,SCVAL,SCRSLT,SCERR
  1. D CHK
  1. S SCFLAGS="E"
  1. S SCFILE=$G(SC("FILE"))
  1. S SCIENS=$G(SC("IENS"))
  1. S SCFIELD=$G(SC("FIELD"))
  1. S SCVAL=$G(SC("VALUE"))
  1. ;
  1. ; -- need to get from kernel broker somehow...
  1. D TMP
  1. ;
  1. D VAL^DIE(SCFILE,SCIENS,SCFIELD,SCFLAGS,SCVAL,.SCRSLT,"","SCERR")
  1. ;
  1. N Y,N
  1. S N=0
  1. D SET("[FILLER]")
  1. D SET("[Data]")
  1. D SET($G(SCRSLT,U))
  1. D SET($G(SCRSLT(0)))
  1. ;
  1. IF $D(SCERR) D
  1. . D SET("[Errors]")
  1. M SCDATA=Y
  1. Q