BSDX24 ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ; ;;1.5;BSDX;;Jan 25, 2011 ; ; Q CRCONTXT(RESULT,OPTION) ;EP ;Entry point for debugging XWBSEC ; ;D DEBUG^%Serenji("CRCONTXT^XWBSEC(.RESULT,OPTION)") ;;H .5 ;;D CRCONTXT^XWBSEC(.RESULT,OPTION) ;;S BSDX="^BSDXTMP($J," ;;S ^BSDXTMP($J,0)=RESULT ;;S RESULT=1 Q TEST0(BSDX) ;EP Delete user from 200 S DIK="^VA(200," S DA=BSDX D ^DIK ; Q KILLM ;EP Delete BMXMENU entry S DIK="^DIC(19," S DA=$O(^DIC(19,"B","BMXMENU",0)) Q:'+DA D ^DIK Q ; TEST1 ;EP Adding an entry to 200 ; S BSDXFDA(200,"+1,",.01)="BMXNET,APPLICATION" K BSDXIEN,BSDXMSG S DIC(0)="" D UPDATE^DIE("","BSDXFDA","BSDXIEN","BSDXMSG") ; Q TEST2 ;EP ;How to change the ACCESS CODE, VERIFY CODE, DATE VERIFY CODE LAST CHANGED field ;ACCESS CODE BSDXXX1^1_(a>yr}:3x3ja9\8vbH ;VERIFY CODE BSDXXX2^$;HOSs|:3w25lLD}Be= N BSDXFDA S BSDXFDA(200,"36,",2)="1_(a>yr}:3x3ja9\8vbH" S BSDXFDA(200,"36,",11)="$;HOSs|:3w25lLD}Be=" S BSDXFDA(200,"36,",11.2)="88888,88888" S BSDXFDA(200,"36,",201)="BMXRPC" D FILE^DIE("","BSDXFDA","BSDXMSG") Q ; ; SEARCHD(BSDXY,BSDXRES,BSDXSTRT,BSDXEND,BSDXTYPES,BSDXAMPM,BSDXWKDY) ;EP ;Entry point for debugging ; ;D DEBUG^%Serenji("SEARCH^BSDX24(.RES,""ROGERS,BUCK|FUNAKOSHI,GICHIN"","""","""","""","""","""")") ;D DEBUG^%Serenji("SEARCH^BSDX24(.BSDXY,BSDXRES,BSDXSTRT,BSDXEND,BSDXTYPES,BSDXAMPM,BSDXWKDY)") Q ; SEARCH(BSDXY,BSDXRES,BSDXSTRT,BSDXEND,BSDXTYPES,BSDXAMPM,BSDXWKDY) ;EP ;Searches availability database for availability blocks between ;BSDXSTRT and BSDXEND for each of the resources in BSDXRES. ;The av blocks must be one of the types in BSDXTYPES, must be ;AM or PM depending on value in BSDXAMPM and ;must be on one of the weekdays listed in BSDXWKDY. ; ;Return recordset containing the start times of availability blocks ;meeting the search criteria. ; ;Variables: ;BSDXRES |-Delimited list of resource names ;BSDXSTRT FM-formatted beginning date of search ;BSDXEND FM-Formatted ending date of search ;BSDXTYPES |-Delimited list of access type IENs ;BSDXAMPM "AM" for am-only, "PM" for pm-only, "BOTH" for both ;BSDXWKDY "" if any weekday, else |-delimited list of weekdays ; ;NOTE: If BSDXEND="" Then: ; either ONE record is returned matching the first available block ; -or- NO record is returned indicating no available block exists ; ;Called by BSDX SEARCH AVAILABILITY ;Test Line: ;D SEARCH^BSDX24(.RES,"ROGERS,BUCK|FUNAKOSHI,GICHIN","","","","","") ZW RES ; ; S X=BSDXSTRT,%DT="X" D ^%DT S BSDXSTRT=$P(Y,".") S:+BSDXSTRT<0 BSDXSTRT=DT S X=BSDXEND,%DT="X" D ^%DT S BSDXEND=$P(Y,".") S:+BSDXEND<0 BSDXEND=9990101 S BSDXEND=BSDXEND_".99" N BSDXRESN,BSDXRESD,BSDXDATE,BSDXI,BSDXABD,BSDXNOD,BSDXATD,BSDXATN N BSDXTYPE ; ;Set up access types array F BSDX=1:1:$L(BSDXTYPES,"|") D . S BSDXATD=$P(BSDXTYPES,"|",BSDX) . S:+BSDXATD BSDXTYPE(BSDXTYPD)="" ; S BSDXI=0 S BSDXY="^BSDXTMP("_$J_")" S ^BSDXTMP($J,0)="T00030RESOURCENAME^D00030DATE^T00030ACCESSTYPE^T00030COMMENT"_$C(30) F BSDX=1:1:$L(BSDXRES,"|") S BSDXRESN=$P(BSDXRES,"|",BSDX) D . Q:'$D(^BSDXRES("B",BSDXRESN)) . S BSDXRESD=$O(^BSDXRES("B",BSDXRESN,0)) . Q:'+BSDXRESD . Q:'$D(^BSDXRES(BSDXRESD,0)) . Q:'$D(^BSDXAB("ARSCT",BSDXRESD)) . S BSDXDATE=$O(^BSDXAB("ARSCT",BSDXRESD,BSDXSTRT)) . Q:BSDXDATE="" . Q:BSDXDATE>BSDXEND . ;TODO: Screen for AMPM . ;TODO: Screen for Weekday . ; . S BSDXI=BSDXI+1 . S BSDXABD=$O(^BSDXAB("ARSCT",BSDXRESD,BSDXDATE,0)) . S BSDXNOD=$G(^BSDXAB(BSDXABD,0)) . Q:BSDXNOD="" . S Y=$P(BSDXDATE,".") . D DD^%DT . S BSDXATD=$P(BSDXNOD,U,5) ;ACCESS TYPE POINTER . S BSDXATD=$G(^BSDXTYPE(+BSDXATD,0)) . S BSDXATN=$P(BSDXATD,U) . I +BSDXATD,BSDXTYPES]"" Q:'$D(BSDXTYPES(BSDXATD)) . ;TODO: Screen for TYPE ----DONE! . ;TODO: Comment . S ^BSDXTMP($J,BSDXI)=BSDXRESN_U_Y_U_BSDXATN_U_$C(30) S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=$C(31) Q