Annotation of freem_fileman/DIFROMSF.m, revision 1.1.1.1
1.1 snw 1: DIFROMSF ;SCISC/DCL-SILENT DIFROM EXTENDED DATABASE FILES;08:41 AM 22 Nov 1994;
2: ;;21.0;VA FileMan;;Dec 28, 1994
3: ;Per VHA Directive 10-93-142, this routine should not be modified.
4: Q
5: ;
6: ; * EXTENDED DATABASE ELEMENTS (EDE) *
7: EDEOUT(DIFRIEN,DIFRNAME,DIFRFLG,DIFRFIA,DIFRTA,DIFRLST,DIFRMSGR) ;
8: ;ENTRY,PKGNAME,FLAGS,FIA_ARRAY,TARGET_ARRAY,LIST_ARRAY,MSG_ROOT
9: I $G(DIFRNAME)']"" D ERR("PACKAGE NAME") Q
10: N DIFRFILE
11: S DIFRFILE=$S(DIFRFLG="F":.403,DIFRFLG="I":.402,DIFRFLG="P":.4,DIFRFLG="S":.401,DIFRFLG="$":.5,1:"")
12: I DIFRFILE'>0 D ERR("FLAG") Q
13: I $G(DIFRTA)="" S DIFRTA=$NA(^XTMP("XPDT",DIFRNAME,"KRN"))
14: ;
15: ; >*>*>*> c h e c k h e r e <*<*<*<
16: ;
17: S DIFRFIA=$G(DIFRFIA) S:DIFRFIA="" DIFRFIA=$NA(@DIFRTA@("FIA"))
18: I $G(DIFRIEN)'>0&($G(DIFRLST)="") D ERR("NO IENs PASSED") Q
19: I $G(DIFRIEN)'>0,$D(@DIFRLST)'>9 D ERR("LIST DOES NOT CONTAIN IENs") Q
20: D EDEOUT^DIFROMS5
21: G EXIT
22: ;
23: EDEIN ; * EXTENDED DATABASE ELEMENTS *
24: Q
25: FPRE(DIFRFILE,DIFRNAME,DIFRSA) ; FILE-PRE
26: K ^TMP("DIFROMS",$J)
27: ;FILENUMBER,SUBSCRIPT_NAME(package name for KIDS),SOURCE_ARRAY
28: S DIFRFILE=$G(DIFRFILE) S:DIFRFILE'>0 DIFRFILE=$G(XPDFIL)
29: I DIFRFILE'>0 D ERR("FILE NUMBER") Q
30: Q:DIFRFILE'=.403
31: I $G(DIFRNAME)="" D ERR("SUBSCRIPT NAME") Q
32: I $G(DIFRSA)="" S DIFRSA=$NA(^XTMP("XPDT",DIFRNAME,"KRN"))
33: I DIFRFILE=.403 D Q ;If Forms bring in Blocks
34: .N DIC,DIFRR,DIFRFILE,DIFRL,DIFRX,X,Y
35: .S DIC="^DIST(.404,",DIC(0)="LX",DLAYGO=.404,DIFRFILE=.404
36: .S DIFRR=0
37: .F S DIFRR=$O(@DIFRSA@(DIFRFILE,DIFRR)) Q:DIFRR'>0 S DIFRX=^(DIFRR,0) D
38: ..S DIFRL=$P(DIFRX,"^",2)
39: ..S X=$P(DIFRX,"^")
40: ..K DA
41: ..D ^DIC
42: ..I Y'>0 D ERR("UNABLE TO ADD "_$P(DIFRX,"^")_" BLOCK") Q
43: ..K ^DIST(.404,+Y)
44: ..I '$D(^DD(+DIFRL)) D ERR("BLOCK: "_$P(DIFRX,"^")_" installed but associated file "_DIFRL_" missing")
45: ..M ^DIST(.404,+Y)=@DIFRSA@(DIFRFILE,DIFRR)
46: ..S DIK=DIC,DA=+Y
47: ..D IX1^DIK
48: ..Q
49: .Q
50: Q
51: ;
52: EPRE(DIFRFILE,DIFRIEN,DIFROIEN,DIFRNAME,DIFRSA) ; ENTRY-PRE
53: ;FILENUM,NEW_ENTRY_NUM,OLD_ENTRY_NUM,PKG/SUBSCRIPT_NAME,SOURCE_ARRAY
54: ; Entry Pre - delete template on target system
55: N DIFRRDA,DIFRX,DIFRF
56: S DIFRFILE=$G(DIFRFILE) S:DIFRFILE'>0 DIFRFILE=$G(XPDFIL)
57: I DIFRFILE'>0 D ERR("FILE NUMBER") Q
58: S DIFRIEN=$G(DIFRIEN) S:DIFRIEN'>0 DIFRIEN=$G(DA)
59: I DIFRIEN'>0 D ERR("ENTRY NUMBER") Q
60: S DIFROIEN=$G(DIFROIEN) S:DIFROIEN'>0 DIFROIEN=$G(OLDA)
61: I DIFRIEN'>0 D ERR("OLD ENTRY NUMBER") Q
62: I $G(DIFRNAME)="" D ERR("PACKAGE/SUBSCRIPT NAME MISSING") Q ;GET VARIABLE FROM RON
63: I $G(DIFRSA)="" S DIFRSA=$NA(^XTMP("XPDT",DIFRNAME,"KRN"))
64: ; build file root with entry number and kill entry on target system
65: S DIFRRDA=$$CREF^DIQGU($$ROOT^DIQGU(DIFRFILE)_DIFRIEN)
66: S DIFRX=$P(@DIFRRDA@(0),"^")
67: S DIFRF=$S(DIFRFILE=.4:"DIPT",DIFRFILE=.402:"DIE",DIFRFILE=.401:"DIBT",DIFRFILE=.403:"DIST(.403,",DIFRFILE=.404:"DIST(.404,",1:"FUN")
68: S ^TMP("DIFROMS",$J,DIFRF,DIFRX)=DIFRIEN
69: K @DIFRRDA
70: I DIFRFILE=.403 D ;If Forms resolve Block Pointers
71: .N DIFRA0,DIFRA1,DIFRA2,DIFRJ,DIFRL,DIFRP,DIFRX,DIFRY
72: .S DIFRJ=0
73: .F S DIFRJ=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ)) Q:'DIFRJ I $D(^(DIFRJ,0)) S DIFRP=$P(^(0),"^",2) D
74: ..S:DIFRP]"" DIFRP=$O(^DIST(.404,"B",DIFRP,0))
75: ..S:DIFRP $P(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,0),"^",2)=DIFRP
76: ..S DIFRL=0
77: ..F S DIFRL=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL)) Q:'DIFRL S DIFRA0=$G(^(DIFRL,0)),DIFRP=$P(DIFRA0,"^") I DIFRP]"" D
78: ...S DIFRP=$O(^DIST(.404,"B",DIFRP,0)) I DIFRP D
79: ....S $P(DIFRA0,"^")=DIFRP,@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRP,0)=DIFRA0
80: ....Q
81: ...Q
82: ..S DIFRA0=$G(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,0))
83: ..Q:DIFRA0=""
84: ..K @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40)
85: ..S (DIFRA1,DIFRA2)=0
86: ..S DIFRL=0
87: ..F S DIFRL=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRL)) Q:'DIFRL S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL,0)=^(DIFRL,0),DIFRA1=DIFRL,DIFRA2=DIFRA2+1
88: ..S $P(DIFRA0,"^",3,4)=DIFRA1_"^"_DIFRA2
89: ..S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,0)=DIFRA0
90: ..K @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK")
91: ..Q
92: .Q
93: Q
94: EPOST ; ENTRY-POST
95: Q
96: FPOST ; FILE-POST RECOMPILE TEMPLATES
97: N DIFR,DIFR1,DIFR2,DMAX,X,Y
98: K DIC,DLAYGO
99: F DIFR="DIE","DIPT" D
100: .I ^DD("VERSION")>17.4,'$D(DISYS) D OS^DII
101: .E S DISYS=^DD("OS")
102: .Q:'$D(^DD("OS",DISYS,"ZS"))
103: .S DIFR1=""
104: DZ1 .S DIFR1=$O(^TMP("DIFROMS",$J,DIFR,DIFR1)) Q:DIFR1=""
105: .F DIFR2=0:0 S DIFR2=$O(^TMP("DIFROMS",$J,DIFR,DIFR1,DIFR2)) Q:'DIFR2 D
106: ..S Y=DIFR2
107: ..I $D(@("^"_DIFR_"(Y,""ROU"")")) K ^("ROU") I $D(^("ROUOLD")) S X=^("ROUOLD") D
108: ...S DMAX=^DD("ROU") D:X]"" @("EN^DI"_$E(DIFR,3)_"Z")
109: ...Q
110: ..Q
111: .G DZ1
112: K ^TMP("DIFROMS",$J)
113: Q
114: INITCHK ; check
115: ;
116: ;
117: I '$D(DIQUIET) N DIQUIET S DIQUIET=1
118: I '$D(DIFM) N DIFM S DIFM=1
119: I $G(U)'="^"!($G(DT)'>0)!($G(DTIME)'>0)!('$D(DUZ)) D DT^DICRW
120: Q
121: ;
122: ERR(X) S X(1)=X D BLD^DIALOG(1700,.X)
123: EXIT I $G(DIFRMSGR)]"" D CALLOUT^DIEFU(DIFRMSGR)
124: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>