COMPILE SUBROUTINE TW_USE_MFS(Code, BFS, Handle, Name, FMC, Record, Status) DECLARE Subroutine Msg, FSMsg, Set_Status,obj_SAP DECLARE FUNCTION Set_Status, Get_Status COMMON /FILENAME/ Files_Array, Handles_Array FS = DELETE(BFS,1,1,1) NEXTFS = FS<1,1,1> @FILE.ERROR = '' $INSERT FILE.SYSTEM.ONGOSUB $INSERT FILE.SYSTEM.EQUATES $INSERT MSG_EQUATES $INSERT DICT_EQUATES $INSERT TW_USE_EQUATES $INSERT RDS_TEST_EQUATES $INSERT REACT_RUN_EQUATES $INSERT WO_LOG_EQUATES EQU ReadRec$ TO 1 RETURN /* Directly called functions - don't pass to next file system */ INSTALL: FLUSH: UNLOCK.ALL: FLUSH.CACHE: Status = 1 RETURN /* Not available to MFS */ LOCK.SEMAPHORE: UNLOCK.SEMAPHORE: SET.USER.SEMAPHORE: RETURN /* Directory level calls */ CREATE.MEDIA: OPEN.MEDIA: CLOSE.MEDIA: READ.MEDIA: WRITE.MEDIA: GROUP.NUMBER: RECORD.COUNT: CREATE.FILE: RENAME.FILE: MOVE.FILE: DELETE.FILE: Goto NEXT.FS OPEN.FILE: * Call BFS in order to get file handle FS = DELETE(BFS,1,1,1) NEXTFS = FS<1,1,1> CALL @NEXTFS(Code, FS, Handle, Name, FMC, Record, Status) * Load handle and file name into labelled common IF Status THEN LOCATE Name IN Files_Array USING @FM SETTING POS THEN Handles_Array = Record END ELSE Files_Array<-1> = Name Handles_Array<-1> = Record END END RETURN CLEARFILE: REMAKE.FILE: SELECT: READNEXT: CLEARSELECT: READ.RECORD: READO.RECORD: GOTO NEXT.FS * * * * * * * WRITE.RECORD: * * * * * * * * Get original record and compare with RECORD being written LOCATE Handle IN Handles_Array USING @FM SETTING POS ELSE mesg = "Missing file handle in WM_MFS!|" mesg := handle MSG('',mesg) GOTO NEXT.FS END FileName = Files_Array[1,'*'] ;* Extract corresponding file name Write_Flag = 0 OrgRecord = '' NextFS = BFS<1,1,2> CALL @NextFS(ReadRec$, FS, Handle, Name, FMC, OrgRecord, Status) ;* Read old record MetNo = Name[1,'*'] RDSNo = XLATE('RDS_TEST',MetNo,RDS_TEST_RDS_NO$,'X') WONo = XLATE('REACT_RUN',RDSNo,REACT_RUN_WO_NO$,'X') SAPOrderNo = XLATE('WO_LOG',WONo,WO_LOG_PROD_ORD_NO$,'X') IF SAPOrderNo = '' THEN GOTO NEXT.FS IF RECORD = '99' THEN GOTO NEXT.FS ;* No wafers used for code 99 END NewQty = RECORD OrgQty = OrgRecord IF OrgQty = '' THEN TransQty = 0 END ELSE TransQty = NewQty - OrgQty END IF TransQty = 0 THEN GOTO NEXT.FS TWType = RECORD IF TWType = 'CUST' THEN CustTWPartNo = RECORD obj_SAP('AddTransaction','CUST_TW':@RM:SAPOrderNo:@RM:CustTWPartNo:@RM:TransQty) END IF TWType = 'PROD' THEN obj_SAP('AddTransaction','PROD_TW':@RM:SAPOrderNo:@RM:TransQty) END GOTO NEXT.FS * * * * * * * DELETE.RECORD: * * * * * * * LOCATE Handle IN Handles_Array USING @FM SETTING POS ELSE mesg = "Missing file handle in DUEIN_MFS!|" mesg := handle MSG('',mesg) GOTO NEXT.FS END FileName = Files_Array[1,'*'] ;* Extract corresponding file name MetNo = Name[1,'*'] RDSNo = XLATE('RDS_TEST',MetNo,RDS_TEST_RDS_NO$,'X') WONo = XLATE('REACT_RUN',RDSNo,REACT_RUN_WO_NO$,'X') SAPOrderNO = XLATE('WO_LOG',WONo,WO_LOG_PROD_ORD_NO$,'X') IF SAPOrderNo = '' THEN GOTO NEXT.FS IF RECORD = '99' THEN GOTO NEXT.FS ;* No wafers used for code 99 END OrgQty = OrgRecord TransQty = (0 - OrgQty) IF TransQty = 0 THEN GOTO NEXT.FS TWType = RECORD IF TWType = 'CUST' THEN CustTWPartNo = RECORD obj_SAP('AddTransaction','CUST_TW':@RM:SAPOrderNo:@RM:CustTWPartNo:@RM:TransQty) END IF TWType = 'PROD' THEN obj_SAP('AddTransaction','PROD_TW':@RM:SAPOrderNo:@RM:TransQty) END GOTO NEXT.FS /* Unused calls */ LOCK.RECORD: UNLOCK.RECORD: RESERVED: OMNI.SCRIPT: CREATE.INDEX: DELETE.INDEX: SELECT.INDEX: UPDATE.INDEX: READNEXT.INDEX: NEXT.FS: FS = DELETE(BFS,1,1,1) NEXTFS = FS<1,1,1> CALL @NEXTFS(Code, FS, Handle, Name, FMC, Record, Status) RETURN