Annotation of freem_fileman/DIFROMS4.m, revision 1.1

1.1     ! snw         1: DIFROMS4       ;SFISC/DCL- DATA FROM DISTRIBUTION ARRAY;03:10 PM  14 Sep 1994;
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             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:        G:$G(DIFRFILE) FILE
        !            10:        S DIFRFILE=0 F  S DIFRFILE=$O(@DIFRFIA@(DIFRFILE)) Q:DIFRFILE'>0  D FILE
        !            11:        Q
        !            12: FCHK   I '$D(@DIFRFIA@(DIFRFILE)) D ERR(5) Q  ;  * * * PHASING OUT * * *
        !            13: FILE   N DIFRS,DIFRSCR,DIFRDA,DIFRND0,DIFROOT,DIFR01,DIFR02,DIFRRLR
        !            14:        N DIFRQ,DIFRTART,D,DDF,DDT,DTO,DFR,D0,DA,DKP,DIFRFRV,DIFRFRV1,DIFRFRV2
        !            15:        N DTL,DMRG,DIU,DIK,DIIX,DIC,DFL,D0,D1,A,B,%H,V,W,X,Y,Z
        !            16:        N DIFRDKP,DIFRDKPD,DIFRDKPR,DIFRDKPS,DIFRNOAD,DIFRX
        !            17:        I '$D(@DIFRFIA) D ERR(2) Q
        !            18:        I $G(@DIFRFIA@(DIFRFILE,DIFRFILE)) D  Q
        !            19:        .N DIFRERR S DIFRERR(1)=DIFRFILE
        !            20:        .D BLD^DIALOG(9515,.DIFRERR)
        !            21:        .Q
        !            22:        S DIFROOT=@DIFRFIA@(DIFRFILE,0),DIFRDA=0
        !            23:        S DIFR01=@DIFRFIA@(DIFRFILE,0,1),DIFR02=$G(^(2))
        !            24:        I $P(DIFR02,"^",8)="" S $P(DIFR02,"^",8)=$$TL^DIFROMSP(DIFRFILE,"",DIFRSA)
        !            25:        S DIFRRLR=$G(@DIFRFIA@(DIFRFILE,0,"RLRI"))  ;  * * * phasing out * * *
        !            26:        S:DIFRRLR="" DIFRRLR=$NA(@DIFRSA@("DATA",DIFRFILE))
        !            27:        I $D(@DIFRRLR)'>9 D ERR(4) Q
        !            28:        S (D,DDF(1),DDT(0))=DIFRFILE
        !            29:        ;
        !            30:        ;   Recover from a failure in Replace Mode RE-INSTALL on target system
        !            31:        I $D(@DIFRSA@("TMP")) D  K @DIFRSA@("TMP")
        !            32:        .N DFR,DA,D0,DTO,DKP,Z
        !            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
        !            37:        .Q
        !            38:        ;
        !            39:        F  S DIFRDA=$O(@DIFRRLR@(DIFRDA)) Q:DIFRDA'>0  D
        !            40:        .S DTO=0,DMRG=1,DTO(0)=DIFROOT
        !            41:        .S DFR(1)=$$OREF^DILF($NA(@DIFRSA@("DATA")))_"DDF(1),D0,"
        !            42:        .S DKP=$S($TR($P(DIFR01,"^",8),"O","o")="o":0,1:1)
        !            43:        .S (DIFRDKPD,DIFRDKPR)=$S($TR($P(DIFR01,"^",8),"R","r")="r":1,1:0)
        !            44:        .S (DIFRND0,DIFRDKP)=0
        !            45:        .S:+DIFR02 (DIFRDKPD,DIFRDKPR)=0  ;if file is new Replace not needed
        !            46:        .S DIFRDKPS=$P(DIFR02,"^",8)  ;save local data
        !            47:        .S DIFRFRV=$TR($P(DIFR01,"^",5),"Y","y")="y"
        !            48:        .S D0=DIFRDA,Z=@DIFRSA@("DATA",DIFRFILE,DIFRDA,0)
        !            49:        .K @DIFRSA@("TMP")
        !            50:        .D I^DITR
        !            51:        .Q:$D(@DIFRSA@("TMP"))'>9
        !            52:        .;           re-index entry so old data can find it, in DITR1
        !            53:        .D:DIFRND0
        !            54:        ..N %,A,B,D0,DA,DIK,DDF,DDT,DFL,DFN,DFR,DKPKDMGR,DTL,DTN,DTO,I,V,W,X,Y,Z
        !            55:        ..S DA=DIFRND0,DIK=DIFROOT
        !            56:        ..D IX1^DIK
        !            57:        ..Q
        !            58:        .;           preserve data in local fields from old entry
        !            59:        .S DIFRDKP=1,DIFRFRV=0
        !            60:        .N DFR,DA,D0
        !            61:        .;S DFR(1)="^TMP(""DIFRDKPD"",$J,DIFRFILE,D0,"
        !            62:        .S DFR(1)=$$OREF^DILF(DIFRSA)_"""TMP"",DIFRFILE,D0,"
        !            63:        .S D0=$O(@DIFRSA@("TMP",DIFRFILE,0)) Q:'$D(^(D0,0))  S Z=^(0)
        !            64:        .D I^DITR
        !            65:        .Q
        !            66:        K DDF,DDT,DDO,DFR,DFN,DTN,@DIFRSA@("TMP")
        !            67:        ; DO A CHECK HERE LIKE Q:'$D(DIFQ) LATER ON
        !            68:        S DIK=DIFROOT,DIK(0)="AB"
        !            69:        D IXALL^DIK:$O(@(DIK_"0)"))
        !            70:        Q
        !            71: ERR(X) N Y S Y=$P($T(ERR+X),";",5) Q:'Y  D BLD^DIALOG(Y) Q
        !            72:        ;;FIA Node Is Set To "No Data";1;9509
        !            73:        ;;FIA Array Does Not Exist;2;9501
        !            74:        ;;;3;
        !            75:        ;;Records Do Not Exist;4;9510
        !            76:        ;;FIA File Number Invalid;5;9502
        !            77:        ;; *PARTIAL DD*, Data Transport Not Allowed

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>