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

VENPCCM2.m

Go to the documentation of this file.
  1. VENPCCM2 ; IHS/OIT/GIS - MANAGE SYSTEM SYNCHRONIZATION PRINT DEAMON - ;
  1. ;;2.6;PCC+;**1,3**;APR 03, 2012;Build 24
  1. ;
  1. ; 2.5 HEADR FILE COMPARISON NO LONGER NEEDED
  1. ;
  1. TSYNC(IP,IPA) ; EP-PRINT TEMPLATE SYNC
  1. N TSN,STOP S STOP=0
  1. F TSN=1,2 Q:$G(STOP) D TS1(TSN,$S(TSN=1:IP,1:IPA)) I IP=IPA Q
  1. K ^TMP("VEN TSYNC")
  1. Q
  1. ;
  1. TS1(TSN,IP) ; EP-PRINT SERVICE PRINT TEMPLATES
  1. N TS1,TS2,I,X,Y,RPMS,I,X,PCE,TIEN,OK,BAD,WARN
  1. S PCE=0,(TS1,TS2,RPMS,OK,BAD,WARN)=""
  1. F S PCE=$O(^TMP("VEN TSYNC",$J,TSN,PCE)) Q:'PCE S TS1=TS1_^(PCE)
  1. S TS1=$$LOW^XLFSTR(TS1)
  1. TS2 ; EP-RPMS PRINT TEMPLATES
  1. S TIEN=0 F S TIEN=$O(^VEN(7.41,TIEN)) Q:'TIEN D
  1. . S X=$P($G(^VEN(7.41,TIEN,0)),U),Y=$P($G(^(0)),U,3)
  1. . I '$L(X)!('$L(Y)) Q
  1. . I RPMS'="" S RPMS=RPMS_U,TS2=TS2_U
  1. . S RPMS=RPMS_X,TS2=TS2_Y_"_template.doc"
  1. . Q
  1. S TS2=$$LOW^XLFSTR(TS2)
  1. TSA ; ANALYZE PRINT TEMPLATES
  1. F I=1:1:$L(TS2,U) S X=$P(TS2,U,I) I $L(X),X'["HS2_",X'["hs2_" D
  1. . I (U_TS1_U)[(U_X_U) S:OK'="" OK=OK_U S OK=OK_X_" ("_$P(RPMS,U,I)_")" Q
  1. . I BAD'="" S BAD=BAD_U
  1. . S BAD=BAD_X_" ("_$P(RPMS,U,I)_")"
  1. . Q
  1. F I=1:1:$L(TS1,U) S X=$P(TS1,U,I) I $L(X),X'["HS2_",X'["hs2_",(U_TS2_U)'[(U_X_U) S:WARN'="" WARN=WARN_U S WARN=WARN_X
  1. TSM ; STATUS MESSAGE
  1. I TSN=2 W ! S STOP='$$WAIT^VENPCCU I STOP Q
  1. I OK="",BAD="" W !?5,"VEN EHP EF TEMPLATES file is empty! At least 1 template must exist." Q
  1. I OK="",WARN="" W !?5,"Print Service Templates folder is empty! At least 1 template must exist." Q
  1. W !!,"Checking out templates on Print Server #",TSN," (",IP,")"
  1. I $L(OK)>1 D
  1. . W !?5,"PRINT TEMPLATE(S) properly synchronized on the RPMS and Print Servers:"
  1. . F I=1:1:$L(OK,U) W !?10,$P(OK,U,I)
  1. . Q
  1. I $L(BAD)>1 W ! S STOP='$$WAIT^VENPCCU Q:STOP D
  1. . W ?5,"PRINT TEMPLATE(S) entered in the VEN EHP EF TEMPLATES file, but",!?5,"not registered on the Print Server:"
  1. . F I=1:1:$L(BAD,U) W !?10,$P(BAD,U,I)
  1. . W !?5,"Either remove TEMPLATE(S) from VEN EHP EF TEMPLATES file OR",!?5,"add TEMPLATE(S) to the PCC+ Print Service. TO AVOID CRASHES, DO THIS NOW!"
  1. . I $G(CFLG)=0 S CFLG=1
  1. . Q
  1. I $L(WARN)>1 W ! S STOP='$$WAIT^VENPCCU Q:STOP D
  1. . W ?5,"PRINT TEMPLATE(S) registered in the PCC+ Print Service but not",!?5,"in the VEN EHP EF TEMPLATES file:"
  1. . F I=1:1:$L(WARN,U) W !?10,$P(WARN,U,I)
  1. . W !?5,"This will not cause any tech problems, but you will not be able to access",!?5,"a PRINT TEMPLATE unless it is entered in the VEN EHP EF TEMPLATES file"
  1. . Q
  1. Q
  1. ;
  1. FS(FSN) ; EP-GET FILE FROM GLOBALS AND RETURN THE STRING
  1. N STG,I,X,PCE
  1. S PCE=0,STG=""
  1. F S PCE=$O(^TMP("VEN FSYNC",$J,FSN,PCE)) Q:'PCE S STG=STG_^(PCE)
  1. Q STG
  1. ;
  1. S Z=2
  1. I '$L($G(MN)) Q
  1. N X,Y,%,IP,IPA,RH,PH,GBL,H,PATH,CFIGIEN,TOT,POP,SOCK,PPATH,TARGET,MSG,N,A,B,C,RSTG
  1. S CFIGIEN=$$CFG^VENPCCU
  1. I 'CFIGIEN W !?7,"Unable to locate thePCC+ configuration!" Q
  1. S GBL=$NA(^TMP("VEN HVAL",$J)) K @GBL
  1. S PATH=$G(^VEN(7.5,CFIGIEN,2))
  1. I PATH="" W !?7,"Unable to find the Path to the header files on the RPMS Server!" Q
  1. S PPATH="c:\program files\ilc\ilc forms print service\templates\"
  1. S RH=MN_"header.txt",PH=MN_"_header.txt",TARGET=PPATH_PH,MSG="FILE_SEND^"_TARGET
  1. S %=$G(^VEN(7.5,CFIGIEN,11)),IP=$P(%,U,1)
  1. I IP="" W !?7,"Unable to find the Path to the header files on the Print Server(s)!" Q
  1. S IPA=$P(%,U,2) I IPA="" S IPA=IP
  1. S SOCK=$P(%,U,3) I SOCK="" S SOCK=5143
  1. S Z=1 ; FROME HERE ON, ERRORS ARE NOT FATAL
  1. S POP=$$OPN^VENPCCP(PATH,RH,"R","R RSTG") ; GET RPMS HEADER FILE
  1. I POP!($G(RSTG)="") W !?7,"Unable to find the header file on the RPMS Server!" K @GBL Q
  1. F TOT=1:1 S X=$E(RSTG,1,250),RSTG=$E(RSTG,251,99999),@GBL@(1,TOT)=X I RSTG="" Q ; RPMS HEADER GLOBAL
  1. D GET^VENPCCM1(IP,SOCK,MSG,"^TMP(""VEN HVAL"",$J,2)")
  1. I '$D(@GBL@(2,1)) W !?7,"Unable to find the header file on Print Server ",IP K @GBL Q
  1. I IP=IPA G HCMP
  1. D GET^VENPCCM1(IPA,SOCK,MSG,"^TMP(""VEN HVAL"",$J,3)")
  1. I '$D(@GBL@(2,1)) W !?7,"Unable to find the header file on Print Server ",IPA K @GBL Q
  1. HCMP S N=0,%=0 F S N=$O(@GBL@(1,N)) Q:'N D I % Q
  1. . S A=$G(@GBL@(1,N)),B=$G(@GBL@(2,N)),C=$G(@GBL@(3,N))
  1. . S X=$L(A) I X<250 S B=$E(B,1,X) I IP'=IPA S C=$E(C,1,X)
  1. . I A'=B S %=1 W !?7,"The header file on RPMS server does not match the file on ",IP
  1. . I IP'=IPA,A'=C S %=1 W !?7,"The header file on RPMS server does not match the file on ",IPA
  1. . Q
  1. I '% W !?7,"Header files valid/synchronized on RPMS Server & Print Server(s)",! S Z=0
  1. K @GBL
  1. Q
  1. ;
  1. HDR(IP,IPA,PHDR,COMP) ; EP-COMPARE HEADER FILES
  1. N FSN,CFIGIEN,POP,RSTG,PS,PATH
  1. S CFIGIEN=$$CFG^VENPCCU
  1. S PATH=$G(^VEN(7.5,CFIGIEN,2)) I PATH="" W !,"Unable to find the Path to the header files on the RPMS Server!" G HDRQ
  1. S POP=$$OPN^VENPCCP(PATH,COMP,"R","R RSTG")
  1. I POP W !,"Unable to find the header file '"_COMP_"' on the RPMS Server!" G HDRQ
  1. F FSN=1,2 S PS="Print Server #"_FSN_" ("_$S(FSN=1:IP,1:IPA)_")" D HDR1(PS,RSTG,PHDR,COMP) I IP=IPA Q
  1. HDRQ K ^TMP("VEN FSYNC",$J)
  1. Q
  1. ;
  1. HDR1(PS,RSTG,PHDR,COMP) ;
  1. W !
  1. N PSTG,X,Y,%
  1. S PSTG=$$FS(FSN)
  1. I PSTG="" W !,"Unable to locate the header file '",PHDR,"' on ",PS
  1. I $P(PSTG,$C(13))'=RSTG W !,"The header file '",PHDR,"' on ",PS,!,"does not match the header file on the RPMS Server '",COMP,"'." Q
  1. I $L(RSTG,U)*2'=($L(PSTG,U)+1) W !,"Invalid header file '",PHDR,"' on ",PS Q
  1. W !,"Header files '",PHDR,"' on ",PS,!,"and '",COMP,"' on the RPMS Server are valid and synchronized."
  1. Q
  1. ;
  1. FILE(FILE,IP) ; EP-GIVEN A PATHFILE AND IP, RETURN THE FILE IN A STRING
  1. N I,START,%,PCE,STG,CFIGIEN,SOCK
  1. I $D(SOCKET) S SOCK=SOCKET
  1. I '$D(SOCK) S SOCK=$P($G(^VEN(7.5,$$CFG^VENPCCU,11)),U,3) I 'SOCK Q ""
  1. S ^TMP("VEN SYNC",$J)="FILE_GET"_U_FILE_U_IP_U_SOCK
  1. I '$D(^TMP("VEN TASK")) S START=1 X "J"_" "_U_"VENPCCP" ; START THE PRINT DEAMON IF IT IS NOT RUNNING
  1. F I=1:1:30 Q:$D(^TMP("VEN GETFILE",$J,0)) H 1
  1. I '$D(^TMP("VEN GETFILE",$J,0)) Q ""
  1. I $G(START) D KILLTASK^VENPCCP ; STOP THE PRINT DEAMON IF IT WASN'T RUNNING BEFORE THIS REQUEST
  1. S STG=^TMP("VEN GETFILE",$J,0) I STG'="" K ^(0) Q STG
  1. S PCE=0
  1. F S PCE=$O(^TMP("VEN GETFILE",$J,PCE)) Q:'PCE S STG=STG_^(PCE)
  1. K ^TMP("VEN GETFILE")
  1. Q STG
  1. ;
  1. TEMPLATE(IP) ; EP-RETURN THE TEMPLATE LIST FROM A PRINT SERVER
  1. N I,START,%,SOCK,PCE,STG,CFIGIEN
  1. I $G(SOCKET) S SOCK=SOCKET
  1. I '$D(SOCK) S SOCK=$P($G(^VEN(7.5,$$CFG^VENPCCU,11)),U,3) I 'SOCK Q ""
  1. S ^TMP("VEN SYNC",$J)="TEMP_GET"_U_IP_U_SOCK
  1. I '$D(^TMP("VEN TASK")) S START=1 X "J"_" "_U_"VENPCCP" ; START THE PRINT DEAMON IF IT IS NOT RUNNING
  1. F I=1:1:30 Q:$D(^TMP("VEN GETTEMP",$J,0)) H 1
  1. I '$D(^TMP("VEN GETTEMP",$J,0)) Q ""
  1. I $G(START) D KILLTASK^VENPCCP ; STOP THE PRINT DEAMON IF IT WASN'T RUNNING BEFORE THIS REQUEST
  1. S STG=^TMP("VEN GETTEMP",$J,0) I STG'="" K ^(0) Q STG
  1. S PCE=0
  1. F S PCE=$O(^TMP("VEN GETTEMP",$J,PCE)) Q:'PCE S STG=STG_^(PCE)
  1. K ^TMP("VEN GETTEMP")
  1. Q STG
  1. ;
  1. PGRP(IP) ; EP-RETURN THE PRINT GROUP LIST FROM A PRINT SERVER
  1. N I,START,%,SOCK,PCE,STG,CFIGIEN
  1. I $D(SOCKET) S SOCK=SOCKET
  1. I '$D(SOCK) S SOCK=$P($G(^VEN(7.5,$$CFG^VENPCCU,11)),U,3) I 'SOCK Q ""
  1. S ^TMP("VEN SYNC",$J)="PG_GET"_U_IP_U_SOCK
  1. I '$D(^TMP("VEN TASK")) S START=1 X "J"_" "_U_"VENPCCP" ; START THE PRINT DEAMON IF IT IS NOT RUNNING
  1. PGG F I=1:1:30 Q:$D(^TMP("VEN GETPG",$J,0)) H 1
  1. I '$D(^TMP("VEN GETPG",$J,0)) Q ""
  1. I $G(START) D KILLTASK^VENPCCP ; STOP THE PRINT DEAMON IF IT WASN'T RUNNING BEFORE THIS REQUEST
  1. S STG=^TMP("VEN GETPG",$J,0) I STG'="" K ^(0) Q STG
  1. S PCE=0
  1. F S PCE=$O(^TMP("VEN GETPG",$J,PCE)) Q:'PCE S STG=STG_^(PCE)
  1. K ^TMP("VEN GETPG")
  1. Q STG
  1. ;