Restored obj_RDS('MetPropFlag') to previous version for performance reasons. Refactored Supplement_Services to improve performance.

This commit is contained in:
Infineon\StieberD
2025-08-14 13:15:21 -07:00
parent e1c7544fac
commit 494988d394
4 changed files with 71 additions and 88 deletions

View File

@ -508,23 +508,23 @@ GetRdsColumns:
GoSub GetView GoSub GetView
If CurrentViewSelection _EQC 'quick' then If CurrentViewSelection _EQC 'quick' then
RDSColumns = '' RDSColumns = ''
RDSColumns<0, 1> = 'ABBREV_OR_CO_NAME' RDSColumns<0, 1> = 'ABBREV_OR_CO_NAME'
RDSColumns<0, 2> = 'WO' RDSColumns<0, 2> = 'WO'
RDSColumns<0, 3> = 'WO_STEP' RDSColumns<0, 3> = 'WO_STEP'
RDSColumns<0, 4> = 'SEQ' RDSColumns<0, 4> = 'SEQ'
RDSColumns<0, 5> = 'REACTOR' RDSColumns<0, 5> = 'REACTOR'
RDSColumns<0, 6> = 'RUN_ORDER_NUM' RDSColumns<0, 6> = 'RUN_ORDER_NUM'
RDSColumns<0, 7> = 'UNLOAD_THICK_TEST' RDSColumns<0, 7> = 'UNLOAD_THICK_TEST'
RDSColumns<0, 8> = 'HGCV_TEST' RDSColumns<0, 8> = 'HGCV_TEST'
RDSColumns<0, 9> = 'DATE_IN' RDSColumns<0, 9> = 'DATE_IN'
RDSColumns<0, 10> = 'TIME_IN' RDSColumns<0, 10> = 'TIME_IN'
RDSColumns<0, 11> = 'DATE_OUT' RDSColumns<0, 11> = 'DATE_OUT'
RDSColumns<0, 12> = 'TIME_OUT' RDSColumns<0, 12> = 'TIME_OUT'
RDSColumns<0, 13> = 'PART_NUM' RDSColumns<0, 13> = 'PART_NUM'
RDSColumns<0, 14> = 'LOT_NUM' RDSColumns<0, 14> = 'LOT_NUM'
RDSColumns<0, 15> = 'SUPPL_INST' RDSColumns<0, 15> = 'SUPPL_INST'
RDSColumns<0, 16> = 'HOLD_STATUS' RDSColumns<0, 16> = 'HOLD_STATUS'
end else end else
RDSColumns = '' RDSColumns = ''
RDSColumns<0, 1> = 'ABBREV_OR_CO_NAME' RDSColumns<0, 1> = 'ABBREV_OR_CO_NAME'
@ -677,6 +677,3 @@ CheckSelectedForHolds:
return return

View File

@ -1169,10 +1169,13 @@ MetPropFlag:
IF RDSRec = '' THEN RETURN IF RDSRec = '' THEN RETURN
WONo = RDSRec<RDS_WO$> WONo = RDSRec<RDS_WO$>
WOStepKey = RDSRec<RDS_WO_STEP_KEY$>
ReactNo = RDSRec<RDS_REACTOR$> ReactNo = RDSRec<RDS_REACTOR$>
PSNo = RDSRec<RDS_PROD_SPEC_ID$> PSNo = RDSRec<RDS_PROD_SPEC_ID$>
ReactRDSNos = Rds_Services('GetRDSRunHistoryByReactorAndWO', ReactNo, WONo) WOStepNo = FIELD(WOStepKey,'*',2)
ReactRDSNos = XLATE('WO_REACT',WONo:'*':WOStepNo:'*':ReactNo,WO_REACT_RDS_NO$,'X')
LOCATE RDSNo IN ReactRDSNos USING @VM SETTING Pos THEN LOCATE RDSNo IN ReactRDSNos USING @VM SETTING Pos THEN
Result = obj_PRS_Prop('GetIntervalFlag',PSNo:@RM:PropCd:@RM:Pos) Result = obj_PRS_Prop('GetIntervalFlag',PSNo:@RM:PropCd:@RM:Pos)
@ -1239,4 +1242,3 @@ CalcThickTarget:
RETURN RETURN

View File

@ -128,6 +128,12 @@ Service CreateSupplement(LotType=LOTTYPES, LotID, Stage=STAGES, SupplText, Entry
NewSupRec<SUPPLEMENTS_SUPPL_TEXT$> = SupplText NewSupRec<SUPPLEMENTS_SUPPL_TEXT$> = SupplText
NewSupRec<SUPPLEMENTS_ENTRY_USER$> = EntryUser NewSupRec<SUPPLEMENTS_ENTRY_USER$> = EntryUser
NewSupRec<SUPPLEMENTS_ENTRY_DATETIME$> = Datetime() NewSupRec<SUPPLEMENTS_ENTRY_DATETIME$> = Datetime()
If Stages NE False$ then
StageList = Stages<1>
Locate Stage in StageList using @VM setting StageIndex then
NewSupRec<SUPPLEMENTS_STAGE_INDEX$> = StageIndex
end
end
Database_Services('WriteDataRow', 'SUPPLEMENTS', SupplID, NewSupRec, True$, False$, False$) Database_Services('WriteDataRow', 'SUPPLEMENTS', SupplID, NewSupRec, True$, False$, False$)
If Error_Services('NoError') then If Error_Services('NoError') then
Response = SupplID Response = SupplID
@ -305,48 +311,29 @@ Service GetSupplementsForLot(LotType=LOTTYPES, LotID, Stage=STAGES)
Response = False$ Response = False$
If ( (LotType NE '') and (LotID NE '') ) then If ( (LotType NE '') and (LotID NE '') ) then
If (Stage EQ '') then If Stage EQ '' then Stage = '#0'
KeyList = '' StageSupplementList = ''
Query = '' Query = ''
Query<1> = 'LOT_TYPE' : @VM : LotType Query<1> = 'LOT_TYPE' : @VM : LotType
Query<2> = 'LOT_ID' : @VM : LotID : @FM Query<2> = 'LOT_ID' : @VM : LotID
Flag = '' Query<3> = 'STAGE' : @VM : Stage : @FM
Open 'DICT.SUPPLEMENTS' to hDict then Flag = ''
Btree.Extract(Query, 'SUPPLEMENTS', hDict, KeyList, 'E', Flag) Open 'DICT.SUPPLEMENTS' to hDict then
If (Flag EQ 0) then Btree.Extract(Query, 'SUPPLEMENTS', hDict, StageSupplementList, 'E', Flag)
If (KeyList NE '') then If (Flag EQ 0) then
SupplementList = '' If StageSupplementList NE '' then
Stages = Supplement_Services('GetStagesForLot', LotType, LotID) StageIndexes = Xlate('SUPPLEMENTS', StageSupplementList, 'STAGE_INDEX', 'X')
StageCount = Dcount(Stages<1>, @VM) SortArray = StageIndexes:@FM:StageSupplementList
For I = 1 to StageCount SortArray = SRP_Array('SortRows', SortArray, 'AR1', 'ARRAY', @FM, @VM)
SupplementStage = Supplement_Services('GetSupplementsForLot', LotType, LotID, Stages<1,I>) SortedStageSupplementList = SortArray<2>
If SupplementStage NE False$ then SupplementList<-1> = SupplementStage Convert @VM to @FM in SortedStageSupplementList
Next I Response = SortedStageSupplementList
If SupplementList NE '' then Response = SupplementList
end
end else
Error_Services('Add', 'Error in ':Service:' service. Error calling Btree.Extract')
end
end else
Error_Services('Add', 'Error in ':Service:' service. Error opening SUPPLEMENTS dictionary.')
end
end else
StageSupplementList = ''
Query = ''
Query<1> = 'LOT_TYPE' : @VM : LotType
Query<2> = 'LOT_ID' : @VM : LotID
Query<3> = 'STAGE' : @VM : Stage : @FM
Flag = ''
Open 'DICT.SUPPLEMENTS' to hDict then
Btree.Extract(Query, 'SUPPLEMENTS', hDict, StageSupplementList, 'E', Flag)
If (Flag EQ 0) then
If StageSupplementList NE '' then Response = StageSupplementList
end else
Error_Services('Add', 'Error in ':Service:' service. Error calling Btree.Extract')
end end
end else end else
Error_Services('Add', 'Error in ':Service:' service. Error opening SUPPLEMENTS dictionary.') Error_Services('Add', 'Error in ':Service:' service. Error calling Btree.Extract')
end end
end else
Error_Services('Add', 'Error in ':Service:' service. Error opening SUPPLEMENTS dictionary.')
end end
end else end else
Error_Services('Add', 'LotType or LotID was missing in the ' : Service : ' service.') Error_Services('Add', 'LotType or LotID was missing in the ' : Service : ' service.')
@ -683,6 +670,3 @@ Service SendNotifications(RDSList, EditEvent, Instructions, EntryUser)
end service end service

View File

@ -6,15 +6,15 @@ compile insert SUPPLEMENTS_EQUATES
----------------------------------------*/ ----------------------------------------*/
Equ SUPPLEMENTS_SUPPL_ID$ To 0 Equ SUPPLEMENTS_SUPPL_ID$ To 0
Equ SUPPLEMENTS_LOT_TYPE$ To 1 Equ SUPPLEMENTS_LOT_TYPE$ To 1
Equ SUPPLEMENTS_LOT_ID$ To 2 Equ SUPPLEMENTS_LOT_ID$ To 2
Equ SUPPLEMENTS_STAGE$ To 3 Equ SUPPLEMENTS_STAGE$ To 3
Equ SUPPLEMENTS_SUPPL_TEXT$ To 4 Equ SUPPLEMENTS_SUPPL_TEXT$ To 4
Equ SUPPLEMENTS_SUPPL_ACK$ To 5 Equ SUPPLEMENTS_SUPPL_ACK$ To 5
Equ SUPPLEMENTS_ACK_USER$ To 6 Equ SUPPLEMENTS_ACK_USER$ To 6
Equ SUPPLEMENTS_ACK_DTM$ To 7 Equ SUPPLEMENTS_ACK_DTM$ To 7
Equ SUPPLEMENTS_ENTRY_USER$ To 8 Equ SUPPLEMENTS_ENTRY_USER$ To 8
Equ SUPPLEMENTS_ENTRY_DATETIME$ To 9 Equ SUPPLEMENTS_ENTRY_DATETIME$ To 9
Equ SUPPLEMENTS_STAGE_INDEX$ To 10