- FSCRPXU ;SLC/STAFF-NOIS RPC Process Utility ;8/8/98 00:39
- ;;1.1;NOIS;;Sep 06, 1998
- ;
- USERS ; display users
- N USER,VERSION,CNT,NCNT
- S CNT=0,NCNT=0
- S USER=0 F S USER=$O(^XTMP("FSCRPC","<VERSION>",USER)) Q:USER<1 S VERSION=^(USER) D
- .W !,USER,?10,VERSION,?20 W:$$ACCESS^FSCU(USER,"SPEC") "* " W $P($G(^VA(200,USER,0)),U)
- .S CNT=CNT+1 I '$L(VERSION) S NCNT=NCNT+1
- W !,CNT," ",NCNT
- Q
- ;
- TODAY ; display todays users
- N TIME,USER
- S TIME="" F S TIME=$O(^XTMP("FSCRPC","<STARTUP>",TIME)) Q:TIME="" D
- .I -TIME<DT Q ;(DT-1) Q
- .S USER=0 F S USER=$O(^XTMP("FSCRPC","<STARTUP>",TIME,USER)) Q:USER<1 D
- ..W !,$$FMTE^XLFDT(-TIME) W:$$ACCESS^FSCU(USER,"SPEC") ?25,"*",$E($P($G(^FSC("SPEC",USER,0)),U,4)) W ?30,$P($G(^VA(200,USER,0)),U)
- ..W ?50,$G(^XTMP("FSCRPC","<VERSION>",USER))
- ..W ?60,$P($G(^DIC(4,+$P($G(^VA(200,USER,120000)),U,2),0)),U)
- Q
- ;
- DAYS ;
- N CNT,DAY,TIME,USER K ^TMP($J)
- S TIME="" F S TIME=$O(^XTMP("FSCRPC","<STARTUP>",TIME)) Q:TIME="" D
- .;I -TIME<DT Q
- .S DAY=-TIME\1
- .S USER=0 F S USER=$O(^XTMP("FSCRPC","<STARTUP>",TIME,USER)) Q:USER<1 D
- ..S ^TMP($J,DAY,USER)=""
- S DAY=0 F S DAY=$O(^TMP($J,DAY)) Q:DAY<1 D
- .W !,DAY
- .S CNT=0
- .S USER=0 F S USER=$O(^TMP($J,DAY,USER)) Q:USER<1 S CNT=CNT+1
- .W ?20,CNT
- K ^TMP($J)
- Q
- ;
- PROF ;
- N CNT,RTN,USER
- S DIC=200,DIC(0)="AEMOQZ",DIC("A")="User: "
- D ^DIC I Y<1 Q
- S USER=+Y
- S RTN="" F S RTN=$O(^XTMP("FSCRPC","ZZUSER",USER,RTN)) Q:RTN="" S CNT=+^(RTN) D
- .W !,RTN,?20,CNT
- Q
- ;
- ROU ;
- N CNT,RTN,TCNT,USER K ^TMP("FSCTEST",$J)
- W !,"Enter routine: " R X:30 I $L(X)'>6 Q
- S RTN=X
- S USER=0 F S USER=$O(^XTMP("FSCRPC","ZZUSER",USER)) Q:USER<1 D
- .S CNT=+$G(^XTMP("FSCRPC","ZZUSER",USER,RTN)) I 'CNT Q
- .S NAME=$P(^VA(200,+USER,0),U) I $$ACCESS^FSCU(+USER,"SPEC") S NAME="* "_NAME
- .S ^TMP("FSCTEST",$J,CNT,NAME,USER)=""
- S CNT=0 F S CNT=$O(^TMP("FSCTEST",$J,CNT)) Q:CNT<1 D
- .S NAME="" F S NAME=$O(^TMP("FSCTEST",$J,CNT,NAME)) Q:NAME="" D
- ..S USER=0 F S USER=$O(^TMP("FSCTEST",$J,CNT,NAME,USER)) Q:USER<1 D
- ...W !,CNT,?10,NAME
- K ^TMP("FSCTEST",$J)
- Q
- ;
- RTN ;
- N CNT,RTN K ^TMP("FSCRPC",$J)
- S RTN="" F S RTN=$O(^XTMP("FSCRPC",RTN)) Q:RTN="" D
- .I RTN=0 Q
- .I RTN="<STARTUP>" Q
- .I RTN="<VERSION>" Q
- .I RTN="ZZUSER" Q
- .S CNT=+^XTMP("FSCRPC",RTN)
- .S ^TMP("FSCRPC",$J,CNT,RTN)=""
- S CNT="" F S CNT=$O(^TMP("FSCRPC",$J,CNT)) Q:CNT="" D
- .S RTN="" F S RTN=$O(^TMP("FSCRPC",$J,CNT,RTN)) Q:RTN="" D
- ..W !,CNT,?10,RTN
- K ^TMP("FSCRPC",$J)
- Q
- EPTYPE ;
- K ^FSCD("CALL","AET")
- S CNT=0
- S CALL=0 F S CALL=$O(^FSCD("CALL",CALL)) Q:CALL<1 S NODE=$G(^(CALL,120)) D
- .S EPTYPE=$P(NODE,U,21)
- .I 'EPTYPE W !,CALL Q
- .S CNT=CNT+1
- .I CNT#1000=0 W !,"*",CNT
- .I EPTYPE=1 S EPTYPE=3
- .S $P(^FSCD("CALL",CALL,120),U,21)=EPTYPE
- .S ^FSCD("CALL","AET",EPTYPE,CALL)=""
- Q
- TEST ;
- S CALL=60000 F S CALL=$O(^FSCD("STATUS HIST","B",CALL)) Q:CALL<1 D
- .S COUNT=0
- .S NUM=0 F S NUM=$O(^FSCD("STATUS HIST","B",CALL,NUM)) Q:NUM<1 D
- ..S ZERO=$G(^FSCD("STATUS HIST",NUM,0)) I '$L(ZERO) Q
- ..I $P(ZERO,U,4)=1,$P(ZERO,U,5)="" S COUNT=COUNT+1
- .I COUNT>1 W !,CALL," ",COUNT," ",$P(^FSCD("CALL",CALL,0),U)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFSCRPXU 3181 printed Mar 13, 2025@21:25:03 Page 2
- FSCRPXU ;SLC/STAFF-NOIS RPC Process Utility ;8/8/98 00:39
- +1 ;;1.1;NOIS;;Sep 06, 1998
- +2 ;
- USERS ; display users
- +1 NEW USER,VERSION,CNT,NCNT
- +2 SET CNT=0
- SET NCNT=0
- +3 SET USER=0
- FOR
- SET USER=$ORDER(^XTMP("FSCRPC","<VERSION>",USER))
- if USER<1
- QUIT
- SET VERSION=^(USER)
- Begin DoDot:1
- +4 WRITE !,USER,?10,VERSION,?20
- if $$ACCESS^FSCU(USER,"SPEC")
- WRITE "* "
- WRITE $PIECE($GET(^VA(200,USER,0)),U)
- +5 SET CNT=CNT+1
- IF '$LENGTH(VERSION)
- SET NCNT=NCNT+1
- End DoDot:1
- +6 WRITE !,CNT," ",NCNT
- +7 QUIT
- +8 ;
- TODAY ; display todays users
- +1 NEW TIME,USER
- +2 SET TIME=""
- FOR
- SET TIME=$ORDER(^XTMP("FSCRPC","<STARTUP>",TIME))
- if TIME=""
- QUIT
- Begin DoDot:1
- +3 ;(DT-1) Q
- IF -TIME<DT
- QUIT
- +4 SET USER=0
- FOR
- SET USER=$ORDER(^XTMP("FSCRPC","<STARTUP>",TIME,USER))
- if USER<1
- QUIT
- Begin DoDot:2
- +5 WRITE !,$$FMTE^XLFDT(-TIME)
- if $$ACCESS^FSCU(USER,"SPEC")
- WRITE ?25,"*",$EXTRACT($PIECE($GET(^FSC("SPEC",USER,0)),U,4))
- WRITE ?30,$PIECE($GET(^VA(200,USER,0)),U)
- +6 WRITE ?50,$GET(^XTMP("FSCRPC","<VERSION>",USER))
- +7 WRITE ?60,$PIECE($GET(^DIC(4,+$PIECE($GET(^VA(200,USER,120000)),U,2),0)),U)
- End DoDot:2
- End DoDot:1
- +8 QUIT
- +9 ;
- DAYS ;
- +1 NEW CNT,DAY,TIME,USER
- KILL ^TMP($JOB)
- +2 SET TIME=""
- FOR
- SET TIME=$ORDER(^XTMP("FSCRPC","<STARTUP>",TIME))
- if TIME=""
- QUIT
- Begin DoDot:1
- +3 ;I -TIME<DT Q
- +4 SET DAY=-TIME\1
- +5 SET USER=0
- FOR
- SET USER=$ORDER(^XTMP("FSCRPC","<STARTUP>",TIME,USER))
- if USER<1
- QUIT
- Begin DoDot:2
- +6 SET ^TMP($JOB,DAY,USER)=""
- End DoDot:2
- End DoDot:1
- +7 SET DAY=0
- FOR
- SET DAY=$ORDER(^TMP($JOB,DAY))
- if DAY<1
- QUIT
- Begin DoDot:1
- +8 WRITE !,DAY
- +9 SET CNT=0
- +10 SET USER=0
- FOR
- SET USER=$ORDER(^TMP($JOB,DAY,USER))
- if USER<1
- QUIT
- SET CNT=CNT+1
- +11 WRITE ?20,CNT
- End DoDot:1
- +12 KILL ^TMP($JOB)
- +13 QUIT
- +14 ;
- PROF ;
- +1 NEW CNT,RTN,USER
- +2 SET DIC=200
- SET DIC(0)="AEMOQZ"
- SET DIC("A")="User: "
- +3 DO ^DIC
- IF Y<1
- QUIT
- +4 SET USER=+Y
- +5 SET RTN=""
- FOR
- SET RTN=$ORDER(^XTMP("FSCRPC","ZZUSER",USER,RTN))
- if RTN=""
- QUIT
- SET CNT=+^(RTN)
- Begin DoDot:1
- +6 WRITE !,RTN,?20,CNT
- End DoDot:1
- +7 QUIT
- +8 ;
- ROU ;
- +1 NEW CNT,RTN,TCNT,USER
- KILL ^TMP("FSCTEST",$JOB)
- +2 WRITE !,"Enter routine: "
- READ X:30
- IF $LENGTH(X)'>6
- QUIT
- +3 SET RTN=X
- +4 SET USER=0
- FOR
- SET USER=$ORDER(^XTMP("FSCRPC","ZZUSER",USER))
- if USER<1
- QUIT
- Begin DoDot:1
- +5 SET CNT=+$GET(^XTMP("FSCRPC","ZZUSER",USER,RTN))
- IF 'CNT
- QUIT
- +6 SET NAME=$PIECE(^VA(200,+USER,0),U)
- IF $$ACCESS^FSCU(+USER,"SPEC")
- SET NAME="* "_NAME
- +7 SET ^TMP("FSCTEST",$JOB,CNT,NAME,USER)=""
- End DoDot:1
- +8 SET CNT=0
- FOR
- SET CNT=$ORDER(^TMP("FSCTEST",$JOB,CNT))
- if CNT<1
- QUIT
- Begin DoDot:1
- +9 SET NAME=""
- FOR
- SET NAME=$ORDER(^TMP("FSCTEST",$JOB,CNT,NAME))
- if NAME=""
- QUIT
- Begin DoDot:2
- +10 SET USER=0
- FOR
- SET USER=$ORDER(^TMP("FSCTEST",$JOB,CNT,NAME,USER))
- if USER<1
- QUIT
- Begin DoDot:3
- +11 WRITE !,CNT,?10,NAME
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +12 KILL ^TMP("FSCTEST",$JOB)
- +13 QUIT
- +14 ;
- RTN ;
- +1 NEW CNT,RTN
- KILL ^TMP("FSCRPC",$JOB)
- +2 SET RTN=""
- FOR
- SET RTN=$ORDER(^XTMP("FSCRPC",RTN))
- if RTN=""
- QUIT
- Begin DoDot:1
- +3 IF RTN=0
- QUIT
- +4 IF RTN="<STARTUP>"
- QUIT
- +5 IF RTN="<VERSION>"
- QUIT
- +6 IF RTN="ZZUSER"
- QUIT
- +7 SET CNT=+^XTMP("FSCRPC",RTN)
- +8 SET ^TMP("FSCRPC",$JOB,CNT,RTN)=""
- End DoDot:1
- +9 SET CNT=""
- FOR
- SET CNT=$ORDER(^TMP("FSCRPC",$JOB,CNT))
- if CNT=""
- QUIT
- Begin DoDot:1
- +10 SET RTN=""
- FOR
- SET RTN=$ORDER(^TMP("FSCRPC",$JOB,CNT,RTN))
- if RTN=""
- QUIT
- Begin DoDot:2
- +11 WRITE !,CNT,?10,RTN
- End DoDot:2
- End DoDot:1
- +12 KILL ^TMP("FSCRPC",$JOB)
- +13 QUIT
- EPTYPE ;
- +1 KILL ^FSCD("CALL","AET")
- +2 SET CNT=0
- +3 SET CALL=0
- FOR
- SET CALL=$ORDER(^FSCD("CALL",CALL))
- if CALL<1
- QUIT
- SET NODE=$GET(^(CALL,120))
- Begin DoDot:1
- +4 SET EPTYPE=$PIECE(NODE,U,21)
- +5 IF 'EPTYPE
- WRITE !,CALL
- QUIT
- +6 SET CNT=CNT+1
- +7 IF CNT#1000=0
- WRITE !,"*",CNT
- +8 IF EPTYPE=1
- SET EPTYPE=3
- +9 SET $PIECE(^FSCD("CALL",CALL,120),U,21)=EPTYPE
- +10 SET ^FSCD("CALL","AET",EPTYPE,CALL)=""
- End DoDot:1
- +11 QUIT
- TEST ;
- +1 SET CALL=60000
- FOR
- SET CALL=$ORDER(^FSCD("STATUS HIST","B",CALL))
- if CALL<1
- QUIT
- Begin DoDot:1
- +2 SET COUNT=0
- +3 SET NUM=0
- FOR
- SET NUM=$ORDER(^FSCD("STATUS HIST","B",CALL,NUM))
- if NUM<1
- QUIT
- Begin DoDot:2
- +4 SET ZERO=$GET(^FSCD("STATUS HIST",NUM,0))
- IF '$LENGTH(ZERO)
- QUIT
- +5 IF $PIECE(ZERO,U,4)=1
- IF $PIECE(ZERO,U,5)=""
- SET COUNT=COUNT+1
- End DoDot:2
- +6 IF COUNT>1
- WRITE !,CALL," ",COUNT," ",$PIECE(^FSCD("CALL",CALL,0),U)
- End DoDot:1
- +7 QUIT