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

AZAXPAH.m

Go to the documentation of this file.
  1. AZAXPAH ;IHS/OIRM/DSD/AEF - DISPLAY PATCH APPLICATION HISTORY [ 02/11/2004 2:44 PM ]
  1. ;;V1.0;ANNE'S SPECIAL ROUTINES;;FEB 11, 2004
  1. ;
  1. ;*** TESTING - AEF *** NEW ROUTINE
  1. ;
  1. DESC ;----- ROUTINE DESCRIPTION
  1. ;;
  1. ;; This option produces a listing of all patches that have
  1. ;; been installed for the selected package and version.
  1. ;;
  1. ;;$$END
  1. ;
  1. EN ;EP -- MAIN ENTRY POINT
  1. ;
  1. D TXT
  1. D SELECT
  1. Q
  1. EN2 ;EP -- MAIN ENTRY POINT #2
  1. ;
  1. W !!,"This entry point produces a listing of all patches that"
  1. W !,"have been installed for the current version of all packages."
  1. W !!
  1. D HOME^%ZIS
  1. D ^XBKVAR
  1. D QUE("DQ2^AZAXPAH",,"PATCH APPLICATION HISTORY")
  1. Q
  1. SELECT ;EP -- SELECT WHICH PACKAGE AND VERSION FOR PAH DISPLAY
  1. ;
  1. N AZAPIEN,AZAVIEN,ZTSAVE
  1. ;
  1. D HOME^%ZIS
  1. D ^XBKVAR
  1. ;
  1. D PKG(.AZAPIEN)
  1. Q:AZAPIEN'>0
  1. ;
  1. D VER(AZAPIEN,.AZAVIEN)
  1. Q:AZAVIEN'>0
  1. ;
  1. S ZTSAVE("AZAPIEN")=""
  1. S ZTSAVE("AZAVIEN")=""
  1. D QUE("DQ^AZAXPAH",.ZTSAVE,"PATCH APPLICATION HISTORY")
  1. Q
  1. CUR(X) ;----- DISPLAY PATCH APPLICATION HISTORY FOR CURRENT VERSION
  1. ;
  1. ; X = PACKAGE NAME
  1. ;
  1. N AZACVER,AZAPIEN,AZAPKG,AZAVIEN,ZTSAVE
  1. ;
  1. D HOME^%ZIS
  1. D ^XBKVAR
  1. ;
  1. S AZAPIEN=$$PIEN^AZAXPAH(X)
  1. ;
  1. S AZACVER=$$CVER^AZAXPAH(AZAPIEN)
  1. ;
  1. S AZAVIEN=$$VIEN^AZAXPAH(AZACVER,AZAPIEN)
  1. ;
  1. S ZTSAVE("PIEN")=""
  1. S ZTSAVE("VIEN")=""
  1. ;
  1. D QUE("DQ^AZAXPAH",.ZTSAVE,"PATCH APPLICATION HISTORY")
  1. ;
  1. Q
  1. PKG(AZAPIEN) ;
  1. ;----- ASKS PACKAGE AND RETURNS PACKAGE IEN
  1. ;
  1. N DIC,X,Y
  1. S DIC="^DIC(9.4,"
  1. S DIC(0)="AEQM"
  1. D ^DIC
  1. I $D(DTOUT)!($D(DUOUT)) S Y=-1
  1. S AZAPIEN=+Y
  1. Q
  1. VER(AZAPIEN,AZAVIEN) ;
  1. ;----- ASKS VERSION AND RETURNS VERSION IEN
  1. ;
  1. N DIC,X,Y
  1. S DA(1)=AZAPIEN
  1. S DIC="^DIC(9.4,"_DA(1)_",22,"
  1. S DIC(0)="AEQ"
  1. D ^DIC
  1. I $D(DTOUT)!($D(DUOUT)) S Y=-1
  1. S AZAVIEN=+Y
  1. Q
  1. DQ ;EP -- QUEUED JOB STARTS HERE
  1. ;
  1. ; INCOMING VARIABLES:
  1. ; AZAPIEN = PACKAGE IEN
  1. ; AZAVIEN = VERSION IEN
  1. ;
  1. N AZAOUT
  1. ;
  1. D PRT(AZAPIEN,AZAVIEN,.AZAOUT)
  1. Q:AZAOUT
  1. D ^%ZISC
  1. D PAWS(.AZAOUT)
  1. Q
  1. DQ2 ;EP -- QUEUED JOB FROM EN2 STARTS HERE
  1. ;
  1. N AZACUR,AZANAME,AZAOUT,AZAPIEN,AZAVIEN
  1. ;
  1. S AZAOUT=0
  1. ;
  1. D NAMES(.AZANAME)
  1. ;
  1. S AZANAME=""
  1. F S AZANAME=$O(AZANAME(AZANAME)) Q:AZANAME']"" D Q:AZAOUT
  1. . S AZAPIEN=$O(AZANAME(AZANAME,0))
  1. . Q:'AZAPIEN
  1. . S AZACUR=$G(^DIC(9.4,AZAPIEN,"VERSION"))
  1. . Q:AZACUR']""
  1. . S AZAVIEN=$O(^DIC(9.4,AZAPIEN,22,"B",AZACUR,0))
  1. . Q:'AZAVIEN
  1. . D PRT(AZAPIEN,AZAVIEN,.AZAOUT)
  1. . Q:AZAOUT
  1. . D PAWS(.AZAOUT)
  1. ;
  1. D ^%ZISC
  1. Q
  1. PRT(AZAPIEN,AZAVIEN,AZAOUT) ;
  1. ;----- PRINT THE REPORT
  1. N AZABY,AZADATA,AZADATA,AZADATE,AZAINSBY,AZAINST,AZANAME,AZAPAGE,AZAPCH,AZAVER,X
  1. ;
  1. S AZADATA=$G(^DIC(9.4,AZAPIEN,22,AZAVIEN,0))
  1. S AZAVER=$P(AZADATA,U)
  1. S AZAINST=$$SLDATE($P(AZADATA,U,3))
  1. S AZAINSBY=$$INSBY($P(AZADATA,U,4))
  1. S AZANAME=$P($G(^DIC(9.4,AZAPIEN,0)),U)
  1. S AZAPAGE=0
  1. S AZAOUT=0
  1. ;
  1. D HDR(AZANAME,AZAVER,.AZAPAGE,.AZAOUT)
  1. Q:$G(AZAOUT)
  1. ;
  1. W !!,AZANAME," ",AZAVER," INSTALLED ON ",AZAINST," BY ",AZAINSBY
  1. W !
  1. ;
  1. I '$O(^DIC(9.4,AZAPIEN,22,AZAVIEN,"PAH",0)) D Q
  1. . W !?10,"No patches found",!
  1. ;
  1. S AZAOUT=0
  1. S X=0
  1. F S X=$O(^DIC(9.4,AZAPIEN,22,AZAVIEN,"PAH",X)) Q:'X D Q:$G(AZAOUT)
  1. . S AZADATA=$G(^DIC(9.4,AZAPIEN,22,AZAVIEN,"PAH",X,0))
  1. . S AZAPCH=$P(AZADATA,U)
  1. . S AZADATE=$P(AZADATA,U,2)
  1. . I AZADATE]"" S AZADATE=$$SLDATE(AZADATE)
  1. . S AZABY=$P(AZADATA,U,3)
  1. . I AZABY S AZABY=$P($G(^VA(200,AZABY,0)),U)
  1. . I $Y>(IOSL-5) D HDR(AZANAME,AZAVER,.AZAPAGE,.AZAOUT)
  1. . Q:$G(AZAOUT)
  1. . W !,AZAPCH
  1. . W ?15,AZADATE
  1. . W ?30,AZABY
  1. Q
  1. HDR(AZANAME,AZAVER,AZAPAGE,AZAOUT) ;
  1. ;----- PRINT HEADER
  1. ;
  1. N DIR,X,Y
  1. ;
  1. I $E(IOST)="C",$G(AZAPAGE) S DIR(0)="E" D ^DIR K DIR I 'Y S AZAOUT=1 Q
  1. ;
  1. S AZAPAGE=$G(AZAPAGE)+1
  1. W @IOF
  1. W !,AZANAME," VERSION ",AZAVER," PATCH APPLICATION HISTORY"
  1. W !?49,$$NOW
  1. W " PAGE ",AZAPAGE
  1. W !,"PATCH"
  1. W ?15,"DATE APPLIED"
  1. W ?30,"APPLIED BY"
  1. W !
  1. F I=1:1:IOM W "-"
  1. Q
  1. NAMES(AZANAME) ;
  1. ;----- BUILD ARRAY OF PACKAGE NAMES
  1. ;
  1. N X
  1. ;
  1. S X=0
  1. F S X=$O(^DIC(9.4,X)) Q:'X D
  1. . S AZANAME=$P($G(^DIC(9.4,X,0)),U)
  1. . Q:AZANAME']""
  1. . S AZANAME(AZANAME,X)=""
  1. Q
  1. PIEN(X) ;----- GET PACKAGE IEN
  1. ;
  1. ; X = PACKAGE NAME
  1. ;
  1. N DIC,Y
  1. S DIC="^DIC(9.4,"
  1. S DIC(0)=""
  1. D ^DIC
  1. Q +Y
  1. CVER(X) ;----- GET CURRENT VERSION
  1. ;
  1. ; X = PACKAGE IEN
  1. ;
  1. N Y
  1. S Y=""
  1. I X S Y=$P($G(^DIC(9.4,X,"VERSION")),U)
  1. Q Y
  1. VIEN(X,AZAPKG) ;
  1. ;----- GET VERSION IEN
  1. ;
  1. ; AZAPKG = PACKAGE IEN
  1. ; X = VERSION NUMBER
  1. ;
  1. N Y
  1. S DIC="^DIC(9.4,"_AZAPKG_",22,"
  1. S DIC(0)=""
  1. D ^DIC
  1. Q +Y
  1. TXT ;----- PRINT OPTION DESCRIPTION
  1. ;
  1. N I,X
  1. F I=1:1 S X=$P($T(DESC+I),";",3) Q:X["$$END" W !,X
  1. Q
  1. PAWS(AZAOUT) ;
  1. ;----- ISSUE 'RETURN' PROMPT
  1. ;
  1. N DIR,X,Y
  1. Q:$E($G(IOST),1,2)'="C-"
  1. W !
  1. S DIR(0)="E"
  1. D ^DIR
  1. I 'Y S AZAOUT=1
  1. Q
  1. NOW() ;----- RETURNS CURRENT DATE/TIME
  1. ;
  1. N %,%H,%I,X
  1. D ^XBKVAR
  1. D NOW^%DTC
  1. S Y=DT
  1. X ^DD("DD")
  1. Q Y_" "_$E($P(%,".",2),1,2)_":"_$E($P(%,".",2),3,4)
  1. ;
  1. SLDATE(X) ;
  1. ;----- RETURNS DATE IN MM/DD/YYYY FORMAT
  1. ;
  1. ; X = INTERNAL FILEMANAGER DATE IN YYYMMDD FORMAT
  1. ;
  1. N Y
  1. S Y=""
  1. I X D
  1. . S X=$P(X,".")
  1. . Q:$L(X)'=7
  1. . S Y=$E(X,4,5)_"/"_$E(X,6,7)_"/"_($E(X,1,3)+1700)
  1. Q Y
  1. INSBY(X) ;----- INSTALLED BY
  1. ;
  1. ; X = NEW PERSON IEN
  1. ;
  1. N Y
  1. S Y=""
  1. I X S Y=$P($G(^VA(200,X,0)),U)
  1. Q Y
  1. QUE(ZTRTN,ZTSAVE,ZTDESC) ;
  1. ;----- QUEUEING CODE
  1. ;
  1. N %ZIS,IO,POP,ZTIO,ZTSK
  1. S %ZIS="Q"
  1. D ^%ZIS
  1. Q:POP
  1. I $D(IO("Q")) D Q
  1. . K IO("Q")
  1. . S ZTIO=ION_";"_IOST_";"_IOM_";"_IOSL
  1. . D ^%ZTLOAD
  1. . I $G(ZTSK) W !,"Task #",ZTSK," queued"
  1. D @ZTRTN
  1. Q