open-insight/LSL2/STPROC/TW_USE_MFS.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

211 lines
4.1 KiB
Plaintext

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<POS> = 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<POS>[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 <TW_USE_TW_USE_CODE$> = '99' THEN
GOTO NEXT.FS ;* No wafers used for code 99
END
NewQty = RECORD<TW_USE_TW_QTY$>
OrgQty = OrgRecord<TW_USE_TW_QTY$>
IF OrgQty = '' THEN
TransQty = 0
END ELSE
TransQty = NewQty - OrgQty
END
IF TransQty = 0 THEN GOTO NEXT.FS
TWType = RECORD<TW_USE_TW_TYPE$>
IF TWType = 'CUST' THEN
CustTWPartNo = RECORD<TW_USE_CUST_TW_PART_NO$>
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<POS>[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 <TW_USE_TW_USE_CODE$> = '99' THEN
GOTO NEXT.FS ;* No wafers used for code 99
END
OrgQty = OrgRecord<TW_USE_TW_QTY$>
TransQty = (0 - OrgQty)
IF TransQty = 0 THEN GOTO NEXT.FS
TWType = RECORD<TW_USE_TW_TYPE$>
IF TWType = 'CUST' THEN
CustTWPartNo = RECORD<TW_USE_CUST_TW_PART_NO$>
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