updated WO_MAT and WM_IN actions to mark cassettes as processed when cassettes have a quantity of zero
This commit is contained in:
@ -59,7 +59,7 @@ Equ Comma$ to ','
|
||||
|
||||
Declare function Database_Services, obj_NCR, obj_SAP, Environment_Services, Logging_Services, Datetime
|
||||
Declare subroutine Error_Services, Database_Services, obj_NCR, obj_SAP, Material_Services, Work_Order_Services
|
||||
Declare subroutine Logging_Services, obj_Notes
|
||||
Declare subroutine Logging_Services, obj_Notes, Schedule_Services
|
||||
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WM_IN'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
@ -160,48 +160,8 @@ WRITE_RECORD:
|
||||
WONo = Field(Name, '*', 1)
|
||||
CassNo = Field(Name, '*', 3)
|
||||
ProcessedDTM = Datetime()
|
||||
// Find the SCHED_DET_NG event record that contains the cassette number.
|
||||
Query = 'SELECT SCHED_DET_NG WITH WO_NO EQ ':WONo:' AND WITH UNPROCESSED_CASS CONTAINING ':CassNo
|
||||
GoSub ClearCursors
|
||||
RList(Query, TARGET_ACTIVELIST$, '', '', '')
|
||||
EOF = False$
|
||||
Done = False$
|
||||
Loop
|
||||
Readnext SchedDetNGKey else EOF = True$
|
||||
Until EOF = True$
|
||||
SchedDetNGRec = Database_Services('ReadDataRow', 'SCHED_DET_NG', SchedDetNGKey)
|
||||
ProcessedCassettes = SchedDetNGRec<SCHED_DET_NG.PROCESSED_CASS$>
|
||||
ProcessedWfrQty = DCount(ProcessedCassettes, @VM) * 25
|
||||
TotalWfrs = SchedDetNGRec<SCHED_DET_NG.EVENT_TOTAL_WFRS$>
|
||||
CassRemWfrs = Xlate('WM_IN', Name, 'REM_WFRS', 'X')
|
||||
ProcessedCassQty = 25 - CassRemWfrs
|
||||
If (ProcessedWfrQty + ProcessedCassQty ) EQ TotalWfrs then
|
||||
// Mark cassette complete.
|
||||
UnprocessedCassettes = SchedDetNGRec<SCHED_DET_NG.UNPROCESSED_CASS$>
|
||||
Locate CassNo in UnprocessedCassettes using @VM setting vPos then
|
||||
UnprocessedCassettes = Delete(UnprocessedCassettes, 0, vPos, 0)
|
||||
ProcessedCassettes = SchedDetNGRec<SCHED_DET_NG.PROCESSED_CASS$>
|
||||
ProcessedCassettes<0, -1> = CassNo
|
||||
SchedDetNGRec<SCHED_DET_NG.UNPROCESSED_CASS$> = UnprocessedCassettes
|
||||
SchedDetNGRec<SCHED_DET_NG.PROCESSED_CASS$> = ProcessedCassettes
|
||||
Database_Services('WriteDataRow', 'SCHED_DET_NG', SchedDetNGKey, SchedDetNGRec, True$, False$, True$)
|
||||
Done = True$
|
||||
end
|
||||
// Mark previous cassette processed if it isn't already. This covers situations where users fail to
|
||||
// sign the unload stage for a cassette.
|
||||
PrevCassNo = CassNo - 1
|
||||
Locate PrevCassNo in UnprocessedCassettes using @VM setting vPos then
|
||||
UnprocessedCassettes = Delete(UnprocessedCassettes, 0, vPos, 0)
|
||||
ProcessedCassettes = SchedDetNGRec<SCHED_DET_NG.PROCESSED_CASS$>
|
||||
ProcessedCassettes<0, -1> = PrevCassNo
|
||||
SchedDetNGRec<SCHED_DET_NG.UNPROCESSED_CASS$> = UnprocessedCassettes
|
||||
SchedDetNGRec<SCHED_DET_NG.PROCESSED_CASS$> = ProcessedCassettes
|
||||
Database_Services('WriteDataRow', 'SCHED_DET_NG', SchedDetNGKey, SchedDetNGRec, True$, False$, True$)
|
||||
end
|
||||
end
|
||||
|
||||
Until Done EQ True$
|
||||
Repeat
|
||||
// This service will determine if the cassette needs to be marked as complete.
|
||||
Schedule_Services('MarkCassProcessed', WONo, CassNo, ProcessedDtm)
|
||||
|
||||
WfrCount = DCount(Record<WM_IN_SLOT_NO$>, @VM)
|
||||
If WfrCount LT 25 then
|
||||
@ -301,4 +261,3 @@ Restore_System_Variables:
|
||||
@FILE.ERROR = OrigFileError
|
||||
return
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user