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

AIBCVT1.m

Go to the documentation of this file.
  1. AIBCVT1 ;IHS/DDPS/DFM-IBM STAT RECORDS NODE PROCESSING [ 09/23/88 11:52 AM ]
  1. ;1.3; 9/23/88 RESTRUCTURE, ALLOW FOR REGISTRATION ELIGIBILITY FILE
  1. ;1.0; 3/28/88
  1. PROCESS ;READ FACILITY HEADER RECORD
  1. S AIBZ=$O(@AIBGBLT) I AIBZ="" G EOJ
  1. S AIBZZ="",AIBZZ=$O(@AIBGBFT),AIBIN=@AIBGBFT I AIBZZ=0 G FACFOUND
  1. S AIBMSG="Facility Header Record Missing" G ABEND
  1. FACFOUND ;FACILITY HEADER RECORD FOUND
  1. S AIBFNR=$P(AIBIN,U,5),AIBFCD=AIBZ,AIBFSQ=AIBFSQ+1 S:$L(AIBFSQ)>4 AIBFSQ=$E(AIBFSQ,2,5)+1
  1. S Y=$P(AIBIN,U,1) X ^DD("DD") S AIBFBD=Y,Y=$P(AIBIN,U,2) X ^DD("DD") S AIBFED=Y
  1. S AIBFCT=$P(AIBIN,U,3) D FACHEAD^AIBCVT2
  1. READREC ;PROCESS INITIAL NODE FOR FACILITY
  1. S AIBCN1=1
  1. READNODE ;PROCESS NEXT NODE
  1. S AIBZZ=$O(@AIBGBFT) I AIBZZ="" G NEXTFAC
  1. S AIBIN=@AIBGBFT,AIBNK=$P(AIBIN,U,1),AIBCK=$P(AIBC(AIBCN1),U,1),AIBC=$P(AIBC(AIBCN1),U,3)
  1. I AIBNK=AIBCK G GOODNODE
  1. I AIBCN1=AIBC(0) G CKTEMP
  1. F AIBC(0,0)=AIBCN1+1:1:AIBC(0) I AIBNK=$P(AIBC(AIBC(0,0)),U,1) G NODERR
  1. CKTEMP ;CHECK IF SECONDARY FILE IS BEING CREATED
  1. I $L(AIBTMP)>0 D WRITET^AIBCVT3 G READREC
  1. G NODERR
  1. GOODNODE ;PROCESS FIELDS IN NODE
  1. S AIBER=""
  1. F AIBI=1:1:AIBC D FIELDS^AIBCVT5 G:$L(AIBER)>0 ERROR
  1. S:AIBNK'="RG1" AIBCTI=AIBCTI+1
  1. G:AIBCN1=AIBC(0) EOD S AIBCN1=AIBCN1+1 G READNODE
  1. NODERR ;PROCESS NODE ERROR
  1. S AIBMSG="Bad node key = "_AIBNK_" should be = "_AIBCK,AIBER="Y"
  1. ERROR ;ERROR PROCESSING ROUTINE
  1. S AIBCTE=AIBCTE+1 D ERRMSP^AIBCVT6 G:AIBER="A" ABEND
  1. S AIBMSG=" Reject Node:"_AIBIN D ERRMSP^AIBCVT6 W ! G READREC
  1. EOD ;RECORD COMPLETE
  1. S AIBCTO=AIBCTO+1
  1. I AIBRLN>250 G OVERFLOW
  1. S AIBOT=AIBOT_$J("",AIBRLN-$L(AIBOT))
  1. I $L(AIBOT)>AIBRLN S AIBOT=$E(AIBOT,1,AIBRLN)
  1. G WRITE
  1. OVERFLOW ;MORE THAT 250 CHARACTER RECORD - OVERFLOW IN AIBOT(1)
  1. S AIBOT=AIBOT_$J("",250-$L(AIBOT))
  1. S AIBOT(1)=AIBOT(1)_$J("",AIBRLN-250-$L(AIBOT(1)))
  1. I $L(AIBOT(1))+$L(AIBOT)>AIBRLN S AIBOT(1)=$E(AIBOT(1),1,AIBRLN-$L(AIBOT))
  1. WRITE ;PERFORM WRITE ROUTINE
  1. D ^AIBCVT3 G READREC
  1. NEXTFAC ;WRITE FACILITY FOOTINGS, GO GET NEXT FACILITY
  1. D FACFOOT^AIBCVT2 G PROCESS
  1. EOJ ;END OF GLOBAL PROCESSING
  1. S AIBA="E" G RETURN
  1. ABEND ;ABNORMAL END OR PROCESSING
  1. S AIBA="A" G RETURN
  1. RETURN ;RETURN TO CALLING ROUTINE
  1. QUIT