158 lines
7.7 KiB
Plaintext
158 lines
7.7 KiB
Plaintext
Function FlatFinder_Services(@Service, @Params)
|
|
/***********************************************************************************************************************
|
|
|
|
This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
|
|
permission from SRP Computer Solutions, Inc.
|
|
|
|
Name : FlatFinder_Services
|
|
|
|
Description : Handler program for all module related services.
|
|
|
|
Notes : The generic parameters should contain all the necessary information to process the services. Often
|
|
this will be information like the data Record and Key ID.
|
|
|
|
Parameters :
|
|
Service [in] -- Name of the service being requested
|
|
Param1-10 [in/out] -- Additional request parameter holders
|
|
Response [out] -- Response to be sent back to the Controller (MCP) or requesting procedure
|
|
|
|
Metadata :
|
|
|
|
History : (Date, Initials, Notes)
|
|
08/29/17 dmb Original programmer. - [EPIOI-8]
|
|
03/29/18 dmb Update logic to ignore preceeding 0s in RDS Key IDs. Update all WriteDataRow service calls
|
|
to ignore all locks.
|
|
|
|
***********************************************************************************************************************/
|
|
|
|
#pragma precomp SRP_PreCompiler
|
|
|
|
$insert LOGICAL
|
|
$insert SERVICE_SETUP
|
|
$insert RDS_EQUATES
|
|
$insert WO_LOG_EQUATES
|
|
$insert WM_OUT_EQUATES
|
|
|
|
Equ Tab$ to \09\
|
|
Equ CRLF$ to \0D0A\
|
|
Equ LF$ to \0A\
|
|
Equ Comma$ to ','
|
|
|
|
Declare subroutine SRP_Stopwatch, Error_Services, FlatFinder_Services, Database_Services, Logging_Services
|
|
Declare function SRP_Array, FlatFinder_Services, Database_Services, Environment_Services, Logging_Services
|
|
|
|
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\FlatFinder'
|
|
LogDate = Oconv(Date(), 'D4/')
|
|
LogTime = Oconv(Time(), 'MTS')
|
|
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' FlatFinder Import Log.csv'
|
|
Headers = 'Logging DTM':@FM:'ToolID':@FM:'Operation':@FM:'Datetime':@FM:'LotID':@FM:'CassNo':@FM:'Wafer Count':@FM:'Import Result'
|
|
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
|
|
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
|
|
|
GoToService else
|
|
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
|
|
end
|
|
|
|
Return Response else ''
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Services
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
// ImportFlatFinderFiles
|
|
//
|
|
// Looks for available flatfinder CSV files that are ready to be imported into the RDS table.
|
|
//----------------------------------------------------------------------------------------------------------------------
|
|
Service ImportFlatFinderFiles()
|
|
|
|
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
|
|
Lock hSysLists, ServiceKeyID then
|
|
DataPath = Environment_Services('GetApplicationRootPath') : '\FlatFinder\Data\'
|
|
BackupPath = Environment_Services('GetApplicationRootPath') : '\FlatFinder\BackupFiles\'
|
|
InitDir DataPath : '*.csv'
|
|
FileList = DirList()
|
|
For Each File in FileList using @FM
|
|
OSRead FlatFinderData from DataPath : File then
|
|
BackupDate = Oconv(Date(), 'D4/')
|
|
BackupTime = Oconv(Time(), 'MTS')
|
|
Convert ':' to '-' in BackupTime
|
|
BackupFileName = BackupDate[7, 4] : '-' : BackupDate[1, 2] : '-' : BackupDate[4, 2] : '-' : BackupTime : ' ' : File
|
|
If Count(File, '-') LE 1 then
|
|
OSWrite FlatFinderData to BackupPath : BackupFileName
|
|
end
|
|
Swap CRLF$ with '' in FlatFinderData
|
|
Swap ',' with @FM in FlatFinderData
|
|
ToolID = Trim(FlatFinderData<2>)
|
|
Operation = Trim(FlatFinderData<3>)
|
|
Datetime = IConv(Trim(FlatFinderData<4>), 'DT')
|
|
ReferenceKeyID = Trim(FlatFinderData<5>)
|
|
CassetteNo = Trim(FlatFinderData<6>)
|
|
WaferCount = Trim(FlatFinderData<7>)
|
|
|
|
Result = False$
|
|
LogData = LoggingDTM
|
|
LogData<2> = ToolID
|
|
LogData<3> = Operation
|
|
LogData<4> = Trim(FlatFinderData<4>)
|
|
LogData<5> = ReferenceKeyID
|
|
LogData<6> = CassetteNo
|
|
LogData<7> = WaferCount
|
|
|
|
If ReferenceKeyID[1, 2] EQ '1T' then
|
|
Convert 'O' to '' in ReferenceKeyID
|
|
Swap '1T' with '' in ReferenceKeyID
|
|
If Index(ReferenceKeyID, '.', 1) then
|
|
// A dot means this is a WorkOrderNo.Cassette value. Need to create a WM_OUT Key ID.
|
|
WorkOrderNo = ReferenceKeyID[1, '.']
|
|
WOStepKeyID = ReferenceKeyID[Col2() + 1, '.']
|
|
CassetteNo = ReferenceKeyID[Col2() + 1, '.']
|
|
WMOutKeyID = WorkOrderNo : '*' : WOStepKeyID : '*' : CassetteNo
|
|
WMOutRow = Database_Services('ReadDataRow', 'WM_OUT', WMOutKeyID)
|
|
If Error_Services('NoError') then
|
|
WMOutRow<WM_OUT_FLATFINDER_DTM$> = DateTime
|
|
WMOutRow<WM_OUT_FLATFINDER_WAFER_CNT$> = WaferCount
|
|
Database_Services('WriteDataRow', 'WM_OUT', WMOutKeyID, WMOutRow, True$, False$, True$)
|
|
end
|
|
end else
|
|
// No dot in the reference key means this is an RDS Key ID.
|
|
Transfer ReferenceKeyID to RDSKeyID
|
|
If Num(RDSKeyID) then RDSKeyID = RDSKeyID + 0
|
|
RDSRow = Database_Services('ReadDataRow', 'RDS', RDSKeyID)
|
|
If Error_Services('NoError') then
|
|
RDSRow<RDS_FLATFINDER_DTM$> = DateTime
|
|
RDSRow<RDS_FLATFINDER_WAFER_CNT$> = WaferCount
|
|
Database_Services('WriteDataRow', 'RDS', RDSKeyID, RDSRow, True$, False$, True$)
|
|
end
|
|
end
|
|
If Error_Services('NoError') then
|
|
Result = 'Success'
|
|
end else
|
|
Result = 'Failure: ':Error_Services('GetMessage')
|
|
end
|
|
end else
|
|
// Throw error - either invalid barcode scanned or user manually entered data
|
|
Result = 'Failure: ReferenceKeyID "':ReferenceKeyID:'" is invalid.'
|
|
end
|
|
|
|
LogData<8> = Result
|
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM)
|
|
|
|
OSDelete DataPath : File
|
|
end
|
|
Next File
|
|
|
|
Unlock hSysLists, ServiceKeyID else Null
|
|
end
|
|
|
|
end service
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Internal GoSubs
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|