[613] | 1 | DIFROMS4 ;SFISC/DCL- DATA FROM DISTRIBUTION ARRAY ;5/24/00 15:22
|
---|
| 2 | ;;22.0;VA FileMan;**41**;Mar 30, 1999
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | Q
|
---|
| 6 | EN ;
|
---|
| 7 | I '$D(@DIFRFIA) D ERR(2) Q
|
---|
| 8 | ;N DIFRFILP S DIFRFILP=$D(DIFRFILP)#2
|
---|
| 9 | N %,%H,A,B,D,D0,D1,DA,DDF,DDT,DFL,DFN,DFR,DIC,DIFL,DIIX,DIK,DINUM,DIU
|
---|
| 10 | N DKP,DMRG,DTL,DTN,DTO,I,V,W,X,Y,Z
|
---|
| 11 | G:$G(DIFRFILE) FILE
|
---|
| 12 | S DIFRFILE=0 F S DIFRFILE=$O(@DIFRFIA@(DIFRFILE)) Q:DIFRFILE'>0 D FILE
|
---|
| 13 | Q
|
---|
| 14 | FCHK I '$D(@DIFRFIA@(DIFRFILE)) D ERR(5) Q ; * * * PHASING OUT * * *
|
---|
| 15 | FILE N DIFRDA,DIFRND0,DIFROOT,DIFR01,DIFR02,DIFRRLR,DIFRFRV
|
---|
| 16 | N DIFRDKP,DIFRDKPD,DIFRDKPR,DIFRDKPS
|
---|
| 17 | D KILL
|
---|
| 18 | I '$D(@DIFRFIA) D ERR(2) Q
|
---|
| 19 | I $G(@DIFRFIA@(DIFRFILE,DIFRFILE)) D Q
|
---|
| 20 | .N DIFRERR S DIFRERR(1)=DIFRFILE
|
---|
| 21 | .D BLD^DIALOG(9515,.DIFRERR)
|
---|
| 22 | .Q
|
---|
| 23 | S DIFROOT=@DIFRFIA@(DIFRFILE,0),DIFRDA=0
|
---|
| 24 | S DIFR01=@DIFRFIA@(DIFRFILE,0,1),DIFR02=$G(^(2))
|
---|
| 25 | I $P(DIFR02,"^",8)="" S $P(DIFR02,"^",8)=$$TL^DIFROMSP(DIFRFILE,"",DIFRSA)
|
---|
| 26 | S DIFRRLR=$G(@DIFRFIA@(DIFRFILE,0,"RLRI")) ; * * * phasing out * * *
|
---|
| 27 | S:DIFRRLR="" DIFRRLR=$NA(@DIFRSA@("DATA",DIFRFILE))
|
---|
| 28 | I $D(@DIFRRLR)'>9 D ERR(4) Q
|
---|
| 29 | ;
|
---|
| 30 | ; Recover from a failure in Replace Mode RE-INSTALL on target system
|
---|
| 31 | I $D(@DIFRSA@("TMP")) D K @DIFRSA@("TMP")
|
---|
| 32 | .S (D,DDF(1),DDT(0))=DIFRFILE
|
---|
| 33 | .S DTO=0,DMRG=1,DTO(0)=DIFROOT,DKP=$S($TR($P(DIFR01,"^",8),"O","o")="o":0,1:1)
|
---|
| 34 | .S DFR(1)=$$OREF^DILF(DIFRSA)_"""TMP"",DIFRFILE,D0,"
|
---|
| 35 | .S D0=$O(@DIFRSA@("TMP",DIFRFILE,0)) Q:'$D(^(D0,0)) S Z=^(0)
|
---|
| 36 | .D I^DITR,REINDEX
|
---|
| 37 | .D KILL Q
|
---|
| 38 | ;
|
---|
| 39 | F S DIFRDA=$O(@DIFRRLR@(DIFRDA)) Q:DIFRDA'>0 D
|
---|
| 40 | .S (D,DDF(1),DDT(0))=DIFRFILE
|
---|
| 41 | .S DTO=0,DMRG=1,DTO(0)=DIFROOT
|
---|
| 42 | .S DFR(1)=$$OREF^DILF($NA(@DIFRSA@("DATA")))_"DDF(1),D0,"
|
---|
| 43 | .S DKP=$S($TR($P(DIFR01,"^",8),"O","o")="o":0,1:1)
|
---|
| 44 | .S (DIFRDKPD,DIFRDKPR)=$S($TR($P(DIFR01,"^",8),"R","r")="r":1,1:0)
|
---|
| 45 | .S (DIFRND0,DIFRDKP)=0
|
---|
| 46 | .S:+DIFR02 (DIFRDKPD,DIFRDKPR)=0 ;if file is new Replace not needed
|
---|
| 47 | .S DIFRDKPS=$P(DIFR02,"^",8) ;save local data
|
---|
| 48 | .S DIFRFRV=$TR($P(DIFR01,"^",5),"Y","y")="y"
|
---|
| 49 | .S D0=DIFRDA,Z=@DIFRSA@("DATA",DIFRFILE,DIFRDA,0)
|
---|
| 50 | .K @DIFRSA@("TMP")
|
---|
| 51 | .D I^DITR,REINDEX
|
---|
| 52 | .; If no data in local fields, quit.
|
---|
| 53 | .I $D(@DIFRSA@("TMP"))'>9 D KILL Q
|
---|
| 54 | .; restore data in local fields from old entry
|
---|
| 55 | .S DIFRDKP=1,DIFRFRV=0
|
---|
| 56 | .K DFR,DA,D0
|
---|
| 57 | .;S DFR(1)="^TMP(""DIFRDKPD"",$J,DIFRFILE,D0,"
|
---|
| 58 | .S DFR(1)=$$OREF^DILF(DIFRSA)_"""TMP"",DIFRFILE,D0,"
|
---|
| 59 | .S D0=$O(@DIFRSA@("TMP",DIFRFILE,0)) Q:'$D(^(D0,0)) S Z=^(0)
|
---|
| 60 | .D I^DITR,REINDEX,KILL
|
---|
| 61 | .Q
|
---|
| 62 | K @DIFRSA@("TMP")
|
---|
| 63 | ; DO A CHECK HERE LIKE Q:'$D(DIFQ) LATER ON
|
---|
| 64 | Q
|
---|
| 65 | ;
|
---|
| 66 | KILL K %,%H,A,B,D,D0,D1,DA,DDF,DDT,DFL,DFN,DFR,DIC,DIFL,DIIX,DIK,DINUM,DIU
|
---|
| 67 | K DKP,DMRG,DTL,DTN,DTO,I,V,W,X,Y,Z Q
|
---|
| 68 | ;
|
---|
| 69 | REINDEX ; REINDEX ENTRY
|
---|
| 70 | Q:DIFRND0'>0
|
---|
| 71 | N DIK,DA S DA=DIFRND0,DIK=DIFROOT,DIK(0)="AB"
|
---|
| 72 | D IX1^DIK Q
|
---|
| 73 | ;
|
---|
| 74 | ERR(X) N Y S Y=$P($T(ERR+X),";",5) Q:'Y D BLD^DIALOG(Y) Q
|
---|
| 75 | ;;FIA Node Is Set To "No Data";1;9509
|
---|
| 76 | ;;FIA Array Does Not Exist;2;9501
|
---|
| 77 | ;;;3;
|
---|
| 78 | ;;Records Do Not Exist;4;9510
|
---|
| 79 | ;;FIA File Number Invalid;5;9502
|
---|
| 80 | ;;Partial DD. No sending of data allowed for file |1|;1;9515
|
---|