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

AIBMRG1.m

Go to the documentation of this file.
  1. AIBMRG1 ;RPMS/CMB/TJF ;GENERIC GLOBAL MERGE MULTIPLE REEL ROUTINE [ 02/01/89 9:13 AM ]
  1. ;1.3 ;MODIFY TO KILL LOCAL VARIABLES OVERLOOKED IN VER 1.30
  1. ;1.3; 9/23/88 RESTRUCTURE, ALLOW FOR REGISTRATION ELIGIBILITY FILE
  1. ;1.1 ;5/30/88
  1. INIT ;INITIALIZE FIELDS
  1. S AIBPCC=0 S:'$D(U) U="^"
  1. K X,AIBGBL,AIBFD S AIBSEQ=1,(AIBA,AIBMSG)=""
  1. S (IO(0),AIBCDV)=$I I ^%ZOSF("OS")["MSM" S AIBOS="M"
  1. E S AIBOS="D"
  1. K AIBFBD,AIBFED,AIBS,AIBFTR
  1. D IN^AIBSDEV
  1. G RETURN
  1. NEXTFILE ;
  1. U AIBCDV W !,"Sequence #",AIBSEQ," restored",!
  1. U AIBDEV R AIBXX:DTIME G:'$T SEQNO U AIBCDV I AIBXX="**" S QUIT=1 G RETURN
  1. SEQNO U AIBCDV W !,"Please put sequence #",AIBSEQ+1," into the drive and"
  1. S AIBSEQ=AIBSEQ+1
  1. NEXTFIL1 R !,"Press <RETURN> when ready",AIBXX:DTIME G:'$T NEXTFIL1
  1. I AIBXX?1"?".E W !!,"Press <RETURN> to continue restoring from sequence #",AIBSEQ,!,"or abort the restore by entering 'control C'" G NEXTFIL1
  1. D CLOSE^AIBSDEV S IN=1,AIBPARMS=AIBPSV D OPEN^AIBSDEV
  1. U AIBDEV I '$ZA R AIBXX:DTIME G:'$T NXTSEQ
  1. I $ZC U AIBCDV
  1. E W !!,"Cannot access ",AIBFN,", please correct" G NEXTFIL1
  1. I AIBXX?2NP1":"2N1" ".E S AIBXX=1
  1. I AIBXX'=AIBSEQ W !!,"Out of sequence, this file is #",AIBXX,", please correct" G NEXTFIL1
  1. S QUIT=0 G RETURN
  1. NXTSEQ ;RETRY ACCESS OF FILE
  1. U AIBCDV W !!,"Cannot access ",AIBFN,", please correct"
  1. G NEXTFIL1
  1. FACTSET ;SETUP FACILITY TAPE HEADER VALUES
  1. U AIBCDV W AIBGSEL,!
  1. S AIBGBLP=$E(AIBGSEL,2,5),AIBGBL=U_AIBGBLP_"GLOB"
  1. S AIBGBLN=AIBGBL_"(0)"
  1. S AIBGBLF=AIBGBL_"(AIBFTL,0)"
  1. S AIBGBLD=AIBGBL_"(AIBFTL,AIBCT)"
  1. I AIBPCC G PCCFACL
  1. S AIBFD=AIBGV G GETFCDAT
  1. PCCFACL ;FIND FACILITY LOCATION FOR PCC
  1. S AIBW=$E(AIBGV,21,26),(AIBX,AIBY)="",AIBX=$O(^AUTTLOC("C",AIBW,AIBX))
  1. I AIBX="" G BLDPCC
  1. S AIBY=$P(^AUTTLOC(AIBX,0),U,2)
  1. BLDPCC ;BUILD PCC FACILITY ZEROTH NODE DATA
  1. S AIBFD=AIBW_U_AIBY_U_U_U_U_U
  1. GETFCDAT ;GET FACILITY DATA FROM INPUT FILE
  1. S AIBFTL=$P(AIBFD,"^",1)
  1. S AIBFTN=$P(AIBFD,"^",2)
  1. S AIBFRD=$P(AIBFD,"^",3)
  1. S AIBFTB=$P(AIBFD,"^",4)
  1. S AIBFTE=$P(AIBFD,"^",5)
  1. S AIBFTT=$P(AIBFD,"^",6)
  1. S AIBFCT=$P(AIBFD,"^",7)
  1. S AIBFTC=$P(AIBFD,"^",8)
  1. S AIBFTD=$P(AIBFD,"^",9)
  1. G RETURN
  1. ZERSET ;
  1. S AIBZB=$P(@AIBGBLN,"^",1)
  1. S AIBZE=$P(@AIBGBLN,"^",2)
  1. S AIBZN=$P(@AIBGBLN,"^",3)
  1. S AIBZR=$P(@AIBGBLN,"^",4)
  1. S AIBZF=$P(@AIBGBLN,"^",5)
  1. I $D(@AIBGBLF) G CKMLOG
  1. S $P(@AIBGBLF,"^",1)=$P(AIBFD,"^",4)
  1. S $P(@AIBGBLF,"^",2)=$P(AIBFD,"^",2)
  1. S $P(@AIBGBLF,"^",3)=0
  1. S $P(@AIBGBLF,"^",4)=0
  1. S $P(@AIBGBLF,"^",5)=$P(AIBFD,"^",2)
  1. CKMLOG ;CHECK MERGE LOG FILE
  1. ;D SEARCHM^AIBLOGF
  1. G RETURN
  1. FACSET ;
  1. S AIBFBD=$P(@AIBGBLF,"^",1)
  1. S AIBFED=$P(@AIBGBLF,"^",2)
  1. S AIBFTR=$P(@AIBGBLF,"^",3)
  1. S AIBS=$P(@AIBGBLF,"^",4)
  1. S AIBFNM=$P(@AIBGBLF,"^",5)
  1. G RETURN
  1. UPDATE ;BALANCE CHECK
  1. D:$D(AIBDEV) CLOSE^AIBSDEV
  1. I AIBFCT=AIBRC!(AIBPCC) G COMPUTE
  1. U AIBCDV W !!,"# Records Merged and Tape Count Not Equal"
  1. W !,"Tape count was ",AIBFCT
  1. COMPUTE ;UPDATE ZEROTH NODES IN MERGE GLOBAL
  1. I AIBFTB<AIBZB S $P(@AIBGBLN,"^",1)=AIBFTB
  1. I AIBFTE>AIBZE S $P(@AIBGBLN,"^",2)=AIBFTE
  1. S $P(@AIBGBLN,"^",3)=AIBZN
  1. S $P(@AIBGBLN,"^",4)=AIBZR+AIBRC
  1. S $P(@AIBGBLN,"^",5)=AIBFTL
  1. I AIBFTB<AIBFBD S $P(@AIBGBLF,"^",1)=AIBFTB
  1. I AIBFTE>AIBFED S $P(@AIBGBLF,"^",2)=AIBFTE
  1. S $P(@AIBGBLF,"^",3)=AIBFTR+AIBRC
  1. S $P(@AIBGBLF,"^",4)=AIBCT-1
  1. U AIBCDV
  1. W !!,"Merge Complete"," ",AIBRC
  1. W " Records Merged ",AIBNC," Nodes Merged"
  1. KILLVAR ;KILL LOCAL VARIABLES
  1. K AIBA,AIBCDV,AIBCT
  1. K AIBFBD,AIBFCT,AIBFD,AIBFED,AIBFNM
  1. K AIBFRD,AIBFTB,AIBFTC,AIBFTD,AIBFTE,AIBFTL,AIBFTN,AIBFTR,AIBFTT
  1. K AIBGBL,AIBGBLD,AIBGBLF,AIBGBLN,AIBLK,AIBMSG
  1. K AIBNC,AIBPCC,AIBPSV,AIBR,AIBRC,AIBRM,AIBT2,AIBTONL,AIBTDV,AIBS,AIBV
  1. K AIBW,AIBX,AIBY,AIBZB,AIBZE,AIBZF,AIBZN,AIBZR
  1. K QUIT,X,Y,IO
  1. K AIBANS,AIBCMT,AIBFN,AIBGN,AIBGNL,AIBGNN,AIBGSEL,AIBGV,AIB,%IS,%MT,AIBPARMS,AIBTIME
  1. K AIBSBP,AIBSEL,AIBSEQ,AIBSIZE,AIBT,AIBXX
  1. RETURN ;RETURN TO CALLING ROUTINE
  1. Q