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

AZHLRER.m

Go to the documentation of this file.
  1. AZHLRER ; DSM/GTH - REMOTE ERROR REPORTING ; [ 04/07/93 1:01 PM ]
  1. ;;1.9X;DSM REMOTE ERROR REPORTING;;FEB 19, 1993
  1. ;
  1. I $P(^%ZOSF("OS"),"^")'="MSM-UNIX" W !!,"SORRY. MSM-UNIX only.",! Q
  1. W *7,!?10,"Please read the internal documentation in this routine",!?10,"before running the utility."
  1. Q
  1. ;
  1. ; Read thru ^UTILITY("%ER", extracting errors from the past
  1. ; AZHLFREQ days for selected namespace(s). Write the errors to a
  1. ; unix file, with abbreviated global notation, pack the unix
  1. ; file, and uucp to a user at the identified destination.
  1. ; uucp to systems, according to parameter (ENTRY ACTION of option).
  1. ; Remove errors in ^("%ER" more than 180 days old.
  1. ;
  1. ; This routine is non-interactive. It is designed to run in
  1. ; background from TaskMan, only.
  1. ;
  1. ; Entry point OPT is used to set an option into the OPTION file,
  1. ; which is scheduled for each day at 6 PM, which begins the process
  1. ; at START. The value of the argument of the IF statement in the
  1. ; ENTRY ACTION of the option determines if the errors get sent to
  1. ; (1) system id at SYTM; (2) area office, or (3) both.
  1. ;
  1. ; Use entry point DEOPT to unschedule the option in the OPTION
  1. ; file set with entry point OPT.
  1. ;
  1. ; cmbsyb Any Timeplex 9600 .30-30 n:--n:--n: uucpb word: 10sne1
  1. ; cmbsyb Any ACU 2400 FTS-999-999-9999 n:--n:--n: uucpb word: 10sne1
  1. ; dpssyg Any Timeplex 9600 .00-15 n:--n:--n: uucpdps word: uucpdps
  1. ; dpssyg Any ACU2400 FTS-999-999-9999 n:--n:--n: uucpdps word: uucpdps
  1. ;
  1. OPT ;EP - Set option in OPTION file.
  1. I $P(^%ZOSF("OS"),"^")'="MSM-UNIX" W !!,"SORRY. MSM-UNIX only.",! Q
  1. S:'$D(DUZ(0)) DUZ(0)="@" D HOME^%ZIS,DT^DICRW,00:'$L($P(^AUTTSITE(1,0),U,14))
  1. NEW AZHLAREA,AZHLSYTM,DA,DIC,DIE,DR S AZHLSYTM=$P($T(SYTM),";;",2),%=1
  1. I $L($P(^AUTTSITE(1,0),U,14)) F D Q:(%=U)!(0<%&(4>%))
  1. .W !,"Do you want the errors sent to :",!?10,"1. ",AZHLSYTM," only",!?10,"2. ",$P(^(0),U,14)," only",!?10,"3. both",?40,"=> " R %:DTIME
  1. .I '$T!(%[U) S %=U Q
  1. .S %=+% I %<1!(%>3) W *7," ?? 1, 2, or 3, please.",!!
  1. .Q
  1. Q:%=U S AZHLAREA="20///I "_%
  1. S DIC="^DIC(19,",DIC(0)="",X="AZHL REMOTE ERROR REPORTING",DIC("DR")="1///Remote Error Reporting;4///R;"_AZHLAREA_";25///START^AZHLRER;200///T@1800;202///1D"
  1. I $D(^DIC(19,"B",X)) S DIE=DIC,DA=$O(^DIC(19,"B",X,0)),DR=AZHLAREA D ^DIE I 1
  1. E K DD,DO D FILE^DICN
  1. W !!,"Done."
  1. Q
  1. ;
  1. START ;EP - From TaskMan.
  1. ; Open a HFS. QUIT if unsuccessful.
  1. NEW AZHLIOP
  1. F AZHLIOP=0:0 S AZHLIOP=$O(^%ZIS(1,AZHLIOP)) Q:'AZHLIOP I ^(AZHLIOP,"TYPE")="HFS" S IOP=$P(^%ZIS(1,AZHLIOP,0),U) D ^%ZIS Q:'POP
  1. Q:POP!('AZHLIOP) S AZHLIOP=$P(^%ZIS(1,AZHLIOP,0),U)
  1. ;
  1. NEW AZHL,AZHLAREA,AZHLFILE,AZHLFREQ,AZHLJUDT,AZHLLOC,AZHLNMSP,AZHLSYTM,C,D,E,F,G,I,V,Y
  1. ; rm xmit files over 2 weeks old.
  1. S AZHLLOC=$P(^AUTTLOC($P(^AUTTSITE(1,0),U),0),U,10),X=$$JOBWAIT^%HOSTCMD("ls -l /usr/spool/uucppublic/*"_$E(AZHLLOC,3,6)_"z* > azhlrer.wrk"),IOP=AZHLIOP,%ZIS("IOPAR")="(""azhlrer.wrk"":""R"")" D ^%ZIS,JDT U IO
  1. F R % Q:%="" S %=$P(%,"/",5),X=+$E(%,$F(%,"z"),$F(%,"z")+2) I ((%?2.4U4N1"z"3N.1".z")!(%?1"%"4N1"z"3N.1".z")),$E(AZHLLOC,3,6)=$E(%,$F(%,"z")-5,$F(%,"z")-2),((+X>+AZHLJUDT)!(+X<(+AZHLJUDT-14))) D
  1. . S X=$$JOBWAIT^%HOSTCMD("rm /usr/spool/uucppublic/"_%)
  1. . Q
  1. S X=$$JOBWAIT^%HOSTCMD("rm azhlrer.wrk")
  1. ; Set C x-ref with namespaces not in PACKAGE file.
  1. F %=2:1 Q:$P($T(C),U,%)="" I '$D(^DIC(9.4,"C",$P($T(C),U,%))) S ^DIC(9.4,"C",$P($T(C),U,%),0)=""
  1. ; Initialize namespace, systems, and frequency.
  1. S AZHLNMSP="",%=0+$P(^DIC(19,$O(^DIC(19,"B","AZHL REMOTE ERROR REPORTING",0)),20)," ",2)
  1. I %>1 S AZHLAREA=$P(^AUTTSITE(1,0),U,14)
  1. I '(%=2) S AZHLSYTM=$P($T(SYTM),";;",2)
  1. S AZHLFREQ=$P(^DIC(19,$O(^DIC(19,"B","AZHL REMOTE ERROR REPORTING",0)),200),U,3),AZHLFREQ=+AZHLFREQ*$S(AZHLFREQ["S":0,AZHLFREQ["H":0,AZHLFREQ["M":30,1:1) I AZHLFREQ<1 S AZHLFREQ=1
  1. K ^TMP($J)
  1. MAIN ;
  1. F S AZHLNMSP=$O(^DIC(9.4,"C",AZHLNMSP)) Q:(AZHLNMSP="")!POP D
  1. .S AZHLFILE="/usr/spool/uucppublic/"_AZHLNMSP_$E(AZHLLOC,3,6)_"z"_AZHLJUDT
  1. .; KILL single-char vars before call to %ZIS.
  1. .KILL C,D,E,F,G,I,V,Y
  1. .; Open specific file.
  1. .S IOP=AZHLIOP,%ZIS("IOPAR")="("""_AZHLFILE_""":""W"")" D ^%ZIS
  1. .Q:POP U IO
  1. .; Get version and date installed.
  1. .S V="none",I=$O(^DIC(9.4,"C",AZHLNMSP,0)) I I S V=$S($D(^DIC(9.4,I,"VERSION")):^("VERSION"),1:"unk"),%=$O(^DIC(9.4,I,22,"B",V,0)) I % S I=$P(^DIC(9.4,I,22,%,0),U,3)
  1. .W ?5,"<<< BEGIN '",AZHLNMSP,"' v ",V,", ",I,", REMOTE ERROR REPORTING FOR '",AZHLLOC,"' >>>",!
  1. .; $O thru ^("%ER" for last AZHLFREQ days.
  1. .S C=+$H-AZHLFREQ-1,Y=0 F S C=$O(^UTILITY("%ER",C)) Q:'C S D=^(C,0) F E=1:1:D I $E($P($P(^UTILITY("%ER",C,E,0),U,2),":"),1,$L(AZHLNMSP))=AZHLNMSP S Y=1 D
  1. ..; Record 9 system vars.
  1. ..F F=0:1:9 I $D(^UTILITY("%ER",C,E,F)) W "^(,"_C_","_E_","_F_")=",^(F),!
  1. ..; Record routine's patch piece.
  1. ..S X=$P($P(^UTILITY("%ER",C,E,0),U,2),":") X ^%ZOSF("TEST") I X "ZL @X S %=$T(+2)" W "^(,"_C_","_E_",10)=PATCH PIECE=",$P(%,";",5),!
  1. ..; Record application vars.
  1. ..I $D(^UTILITY("%ER",C,E,100)) S G=^(100) F F=100:1:G+100 W "^(,"_C_","_E_","_F_")=",^(F),!
  1. ..Q
  1. .; If no errors found for ns, rm file and quit to next $O.
  1. .I 'Y S X=$$JOBWAIT^%HOSTCMD("rm "_AZHLFILE) Q
  1. .W ?5,">>> END '",AZHLNMSP,"' REMOTE ERROR REPORTING FOR '",AZHLLOC,"' <<<",!
  1. .S ^TMP($J,"RER",AZHLFILE)=""
  1. .Q
  1. ENDMAIN ;
  1. KILL C,D,E,F,G,I,V,Y S IOP=AZHLIOP,%ZIS("IOPAR")="(""azhlrer.wrk"":""W"")" D ^%ZIS,^%ZISC S X=$$JOBWAIT^%HOSTCMD("rm azhlrer.wrk")
  1. ; pack files and uucp to appropriate sys ids.
  1. S AZHLFILE="" F S AZHLFILE=$O(^TMP($J,"RER",AZHLFILE)) Q:AZHLFILE="" D
  1. .S X=$$JOBWAIT^%HOSTCMD("pack "_AZHLFILE)
  1. .I $D(AZHLSYTM) S X=$$JOBWAIT^%HOSTCMD("uucp -r "_AZHLFILE_".z "_AZHLSYTM_"!~"),X=$$JOBWAIT^%HOSTCMD("uucp -r "_AZHLFILE_" "_AZHLSYTM_"!~")
  1. .I $D(AZHLAREA) S X=$$JOBWAIT^%HOSTCMD("uucp -r "_AZHLFILE_".z "_AZHLAREA_"!~"),X=$$JOBWAIT^%HOSTCMD("uucp -r "_AZHLFILE_" "_AZHLAREA_"!~")
  1. .Q
  1. ; Remove non-PACKAGE namespaces from C x-ref.
  1. F %=2:1 Q:$P($T(C),U,%)="" K ^DIC(9.4,"C",$P($T(C),U,%),0)
  1. ; Remove entries from ^("%ER" more than 180 days old.
  1. F %=0:0 S %=$O(^UTILITY("%ER",%)) Q:('%)!((+$H-%)<180) K ^(%)
  1. K ^TMP($J) S ZTREQ="@"
  1. Q Q
  1. ;
  1. JDT S X2=$E(DT,1,3)_"0101",X1=DT D ^%DTC S X=X+1,X="00"_X,AZHLJUDT=$E(X,$L(X)-2,$L(X)) Q
  1. C ;;^%^DI^XB^XQ^ZIB^ZU
  1. SYTM ;;cmbsyb
  1. 10 ;;abr-ab
  1. 30 ;;akarea
  1. 20 ;;albtrn
  1. 40 ;;bilcsy
  1. 11 ;;bji-ao
  1. 61 ;;cao-as
  1. 80 ;;nav-aa
  1. 51 ;;nsa-oa
  1. 50 ;;okc-ao
  1. 60 ;;phx-ed
  1. 70 ;;pordps
  1. 00 ;;tucdev
  1. NEW DIE,DR,DA S DR="W $J("""",IOM-$L(X)\2)_X,!!"
  1. S DA=$P($T(@($P(^AUTTAREA($P(^AUTTLOC($P(^AUTTSITE(1,0),U),0),U,4),0),U,2))),";;",2) W !
  1. F X="A system id for your area computer does not exist in the RPMS SITE file.","Based on your area code, it should probably be '"_DA_"'.","Please enter an area system id into the RPMS SITE file, now.","(Calling DIE for you)." X DR
  1. S DIE="^AUTTSITE(",DR=".14//"_DA,DA=1 D ^DIE
  1. Q