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

BMXRPC8.m

Go to the documentation of this file.
  1. BMXRPC8 ; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ;
  1. ;;4.0;BMX;;JUN 28, 2010
  1. ;
  1. ;
  1. BMXLOCKD(BMXY,BMXVAR,BMXINC,BMXTIME) ;EP
  1. ;Entry point for debugging
  1. ;
  1. ;D DEBUG^%Serenji("BMXLOCKD^BMXRPC8(.BMXY,BMXVAR,BMXINC,BMXTIME)")
  1. Q
  1. ;
  1. BMXLOCK(BMXY,BMXVAR,BMXINC,BMXTIME) ;EP
  1. ;Called by BMX LOCK rpc to lock variable BMXVAR
  1. ;If BMXVAR = "", argumentless lock is performed to release all locks
  1. ;BMXINC = increment lock if "+", decrement if "-"
  1. ;BMXTIME = lock timeout
  1. ;Returns 1 if lock successful, otherwise 0;
  1. ;
  1. S X="ERR^BMXRPC8",@^%ZOSF("TRAP")
  1. ;
  1. N BMXC
  1. S:$E(BMXVAR,1,1)="~" BMXVAR="^"_$E(BMXVAR,2,$L(BMXVAR))
  1. S:BMXTIME="" BMXTIME=0
  1. I BMXVAR="" X "L" S BMXY=1 Q
  1. S BMXC="L "
  1. S BMXC=BMXC_$S(BMXINC="+":"+",BMXINC="-":"-",1:"")
  1. S BMXC=BMXC_BMXVAR_":"_+BMXTIME
  1. X BMXC
  1. S BMXY=$T
  1. Q
  1. ;
  1. ERR ;Error processing
  1. S BMXY=0
  1. Q
  1. ;
  1. BMXVERD(BMXY,BMXNS,BMXLOC) ;EP
  1. ;Entry point for debugging
  1. ;
  1. ;D DEBUG^%Serenji("BMXVERD^BMXRPC8(.BMXY,BMXNS,BMXLOC)")
  1. Q
  1. ;
  1. BMXVER(BMXY,BMXNS,BMXLOC) ;EP
  1. ;
  1. ;Called by BMX VERSION INFO rpc
  1. ;Returns recordset of version info for server components in namespace BMXNS.
  1. ;If BMXLOC is "", then the version info is assumed to be stored in piece 1-3 of
  1. ;^<BMXNS>APPL(1,0)
  1. ;
  1. ;TODO:
  1. ;BMXLOC, if not null, is either a global reference such that $P(@BMXLOC,U,1,3) returns
  1. ;MAJOR^MINOR^BUILD
  1. ;Or BMXLOC can be an extrinsic function call that returns MAJOR^MINOR^BUILD.
  1. ;
  1. ;The returned error field is either "" or contains a text error message.
  1. ;
  1. N X,BMXI,BMXNOD,BMXDAT
  1. ;
  1. S X="VETRAP^BMXRPC8",@^%ZOSF("TRAP")
  1. S BMXI=0
  1. K ^BMXTMP($J)
  1. S BMXY="^BMXTMP("_$J_")"
  1. S ^BMXTMP($J,BMXI)="T00030ERROR^T00030MAJOR_VERSION^T00030MINOR_VERSION^T00030BUILD"_$C(30)
  1. S BMXI=BMXI+1
  1. I BMXNS="" D VERR(BMXI,"BMXRPC8: Invalid Null Application Namespace") Q
  1. S BMXNOD="^"_BMXNS_"APPL(1,0)"
  1. S BMXDAT=$G(@BMXNOD)
  1. I BMXNS="" D VERR(BMXI,"BMXRPC8: No version info for Application Namespace") Q
  1. S ^BMXTMP($J,BMXI)="^"_$P(BMXDAT,U,1,3)_$C(30)
  1. Q
  1. ;
  1. ;
  1. VERR(BMXI,BMXERR) ;Error processing
  1. S BMXI=BMXI+1
  1. S ^BMXTMP($J,BMXI)=BMXERR_"^^^"_$C(30)
  1. S BMXI=BMXI+1
  1. S ^BMXTMP($J,BMXI)=$C(31)
  1. Q
  1. ;
  1. VETRAP ;EP Error trap entry
  1. D ^%ZTER
  1. I '$D(BMXI) N BMXI S BMXI=999999
  1. S BMXI=BMXI+1
  1. D VERR(BMXI,"BMXRPC8 Error: "_$G(%ZTERROR))
  1. Q
  1. ;
  1. IMHERE(BMXRES) ;EP
  1. ;Entry point for BMX IM HERE remote procedure
  1. S BMXRES=1
  1. Q
  1. ;