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

A5PLIST.m

Go to the documentation of this file.
  1. A5PLIST ;SLC/RJS-Display Due and Overdue patches in account from imported data; 12/10/2015
  1. ;class3
  1. S ;
  1. ;
  1. K ^TMP($J)
  1. S TODAY=$$DAYS(DT)
  1. S NMSP=^%ZOSF("PROD")
  1. ;
  1. ;
  1. ;
  1. W !!," Scanning Install File for installed patches... "
  1. ;
  1. S D0=0 F S D0=$O(^XPD(9.7,D0)) Q:'D0 D
  1. .S PNAME=$P($G(^XPD(9.7,D0,0)),"^",1)
  1. .Q:'(PNAME["*")
  1. .S INDATE=$P($G(^XPD(9.7,D0,1)),"^",3)
  1. .S INUSER=$P($G(^XPD(9.7,D0,0)),"^",11)
  1. .S COMMENT=$G(^XPD(9.7,D0,2))
  1. .Q:'(COMMENT["SEQ")
  1. .S SEQ="SEQ"_$P(COMMENT,"SEQ",2)
  1. .S PNAME=$$UPCASE(PNAME)
  1. .S ^TMP($J,"INSTALL",PNAME,+INDATE)=INUSER
  1. ;
  1. W !!," Scanning Package File for installed patches..."
  1. ;
  1. S D0=0 F S D0=$O(^DIC(9.4,D0)) Q:'D0 D
  1. .S PACK=$P($G(^DIC(9.4,D0,0)),"^",2) Q:'$L(PACK)
  1. .S D1=0 F S D1=$O(^DIC(9.4,D0,22,D1)) Q:'D1 D
  1. ..S VERS=$P($G(^DIC(9.4,D0,22,D1,0)),"^",1) Q:'$L(VERS)
  1. ..S D2=0 F S D2=$O(^DIC(9.4,D0,22,D1,"PAH",D2)) Q:'D2 D
  1. ...S NODE0=$G(^DIC(9.4,D0,22,D1,"PAH",D2,0))
  1. ...S PATCH=$$UPCASE(PACK_"*"_VERS_"*"_$P(NODE0,"^",1))
  1. ...S PATCH=$P(PATCH," ",1)
  1. ...Q:$O(^TMP($J,"INSTALL",PATCH,0))
  1. ...S DATE=$P(NODE0,"^",2) Q:'DATE
  1. ...I '(DATE[".") S DATE=DATE+.0001
  1. ...S USER=$P(NODE0,"^",3)
  1. ...S ^TMP($J,"INSTALL",PATCH,DATE)=USER
  1. ;
  1. ;
  1. W !!," Build Uninstalled Patch list by release date.. "
  1. ;
  1. S D0=0 F S D0=$O(^A5PATCH("EXLIST",D0)) Q:'D0 D
  1. .S REC=$G(^A5PATCH("EXLIST",D0))
  1. .Q:'$L(REC)
  1. .S PATCH=$P(REC,"^",1)
  1. .S SEQ=$P(REC,"^",5)
  1. .S PNAME=$P(REC,"^",8)
  1. .S ^TMP($J,"PLIST",PNAME)=1
  1. .S RELEASE=$P(REC,"^",2)
  1. .S INSTALL=$O(^TMP($J,"INSTALL",PNAME,RELEASE))
  1. .Q:INSTALL
  1. .S ^TMP($J,"PREL",RELEASE,$P(PNAME,"*",1),+SEQ,PNAME)=REC
  1. ;
  1. S D0=0 F S D0=$O(^XPD(9.9,D0)) Q:'D0 D
  1. .S REC=$G(^XPD(9.9,D0,0))
  1. .Q:'$L(REC)
  1. .S PATCH=$P(REC,"^",1)
  1. .S SEQ=$P(REC,"^",5)
  1. .S PNAME=$P(REC,"^",8)
  1. .Q:$G(^TMP($J,"PLIST",PNAME))
  1. .S RELEASE=$P(REC,"^",2)
  1. .S INSTALL=$P(REC,"^",11,12)
  1. .Q:INSTALL
  1. .S INSTALL=$O(^TMP($J,"INSTALL",PNAME,RELEASE))
  1. .Q:INSTALL
  1. .S ^TMP($J,"PREL",RELEASE,$P(PNAME,"*",1),+SEQ,PNAME)=REC
  1. ;
  1. ; Print Report
  1. ;
  1. S D0="" F S D0=$O(^TMP($J,"PREL",D0)) Q:'$L(D0) D
  1. .W !!,$$DATE(D0),!
  1. .S D1="" F S D1=$O(^TMP($J,"PREL",D0,D1)) Q:'$L(D1) D
  1. ..S D2="" F S D2=$O(^TMP($J,"PREL",D0,D1,D2)) Q:'$L(D2) D
  1. ...S D3="" F S D3=$O(^TMP($J,"PREL",D0,D1,D2,D3)) Q:'$L(D3) D
  1. ....S REC=$G(^TMP($J,"PREL",D0,D1,D2,D3))
  1. ....Q:'$L(REC)
  1. ....S PATCH=$P(REC,"^",1)
  1. ....S SEQ=$P(REC,"^",5)
  1. ....S DESC=$P(REC,"^",7)
  1. ....S PNAME=$P(REC,"^",8)
  1. ....S RELEASE=$P(REC,"^",2)
  1. ....S COMPLY=$P(REC,"^",9)
  1. ....S INSTALL=$P(REC,"^",11,12)
  1. ....W !,?5,PNAME,$$PAD(12-$L(PNAME))," SEQ# ",SEQ,?30,DESC
  1. ;
  1. Q
  1. ;
  1. EXPORT ;
  1. ;
  1. K ^TMP($J)
  1. S TODAY=$$DAYS(DT)
  1. S NMSP=^%ZOSF("PROD")
  1. ;
  1. W !,"K ^A5PATCH(""EXLIST"")"
  1. ;
  1. S D0=0 F S D0=$O(^XPD(9.9,D0)) Q:'D0 U $I:132 D
  1. .S REC=$G(^XPD(9.9,D0,0))
  1. .Q:'$L(REC)
  1. .S RELEASE=$P(REC,"^",2)
  1. .;Q:(RELEASE<3150101)
  1. .S $P(REC,"^",4)=""
  1. .S $P(REC,"^",11)=""
  1. .S $P(REC,"^",12)=""
  1. .U $I:130 W !,"S ^A5PATCH(""EXLIST"","_D0_")="""_REC_""""
  1. Q
  1. ;
  1. PAD(X) ;
  1. N Y,Z
  1. S Y=""
  1. F Z=1:1:X S Y=Y_" "
  1. Q Y
  1. ;
  1. INSTALL(X) ;
  1. ;
  1. N INSTALL,TIME,USER
  1. S INSTALL=""
  1. I X D
  1. .S TIME=$$DATE($P(X,"^",1))
  1. .S USER=$$USER(+$P(X,"^",2))
  1. .S INSTALL=$J(TIME,10)_" "_USER
  1. Q INSTALL
  1. ;
  1. USER(X) ;
  1. ;
  1. N USER
  1. S USER=$P($G(^VA(200,X,0)),"^",1)
  1. S:'$L(USER) USER=" Unknown"
  1. ;
  1. Q USER
  1. ;
  1. DAYS(X) Q ($E(X,1,3)*365)+($E(X,4,5)*30)+($E(X,6,7))
  1. ;
  1. DATE(X) ;
  1. N DAY,TIME
  1. Q:'X ""
  1. S DAY=$P(X,".",1)
  1. S DAY=$E(DAY,4,5)_"/"_$E(DAY,6,7)_"/"_($E(DAY,1,3)+1700)
  1. S TIME=$P(X,".",2)
  1. I TIME S TIME=$E(TIME_"000000",1,6),TIME=$E(TIME,1,2)_":"_$E(TIME,3,4)_"."_$E(TIME,5,6)
  1. Q DAY
  1. ;
  1. UPCASE(X) Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. ;
  1. ZP ;
  1. ;
  1. W !!
  1. S TEXT="" F LINE=1:1:9999 D Q:'$L(TEXT)
  1. .S TEXT=$T(+LINE)
  1. .W !,$P(TEXT," ",1)_$C(126)_$P(TEXT," ",2,$L(TEXT," "))
  1. Q
  1. ;