Set Reactor wafer size based on installed
susceptor. Commit to change branches post-UAT 1. Commit to change branches. Commit to change branches. Final changes and re-factor duplicate code.
This commit is contained in:
committed by
Stieber Daniel (CSC FI SPS MESLEO)
parent
2eff7c5a37
commit
8a5c1572e7
16729
LSL2/OIWIN/REACTOR.json
16729
LSL2/OIWIN/REACTOR.json
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@
|
|||||||
"<2>": "-1",
|
"<2>": "-1",
|
||||||
"<3>": "-1",
|
"<3>": "-1",
|
||||||
"<4>": "-1",
|
"<4>": "-1",
|
||||||
"<5>": "16777215",
|
"<5>": "-2",
|
||||||
"<6>": {
|
"<6>": {
|
||||||
"<6,1>": {
|
"<6,1>": {
|
||||||
"<6,1,1>": "Tahoma",
|
"<6,1,1>": "Tahoma",
|
||||||
@ -43,39 +43,19 @@
|
|||||||
"<8,2,3>": "High Thruput"
|
"<8,2,3>": "High Thruput"
|
||||||
},
|
},
|
||||||
"<8,3>": {
|
"<8,3>": {
|
||||||
"<8,3,1>": "4",
|
"<8,3,1>": "5",
|
||||||
"<8,3,2>": "HTR",
|
"<8,3,2>": "HTR",
|
||||||
"<8,3,3>": "High Thruput"
|
"<8,3,3>": "High Thruput"
|
||||||
},
|
},
|
||||||
"<8,4>": {
|
"<8,4>": {
|
||||||
"<8,4,1>": "5",
|
"<8,4,1>": "8",
|
||||||
"<8,4,2>": "HTR",
|
"<8,4,2>": "EPP",
|
||||||
"<8,4,3>": "High Thruput"
|
"<8,4,3>": "EpiPro"
|
||||||
},
|
},
|
||||||
"<8,5>": {
|
"<8,5>": {
|
||||||
"<8,5,1>": "8",
|
"<8,5,1>": "18",
|
||||||
"<8,5,2>": "EPP",
|
"<8,5,2>": "EPP",
|
||||||
"<8,5,3>": "EpiPro"
|
"<8,5,3>": "EpiPro"
|
||||||
},
|
|
||||||
"<8,6>": {
|
|
||||||
"<8,6,1>": "18",
|
|
||||||
"<8,6,2>": "EPP",
|
|
||||||
"<8,6,3>": "EpiPro"
|
|
||||||
},
|
|
||||||
"<8,7>": {
|
|
||||||
"<8,7,1>": "24",
|
|
||||||
"<8,7,2>": "EPP",
|
|
||||||
"<8,7,3>": "EpiPro"
|
|
||||||
},
|
|
||||||
"<8,8>": {
|
|
||||||
"<8,8,1>": "5",
|
|
||||||
"<8,8,2>": "GAN",
|
|
||||||
"<8,8,3>": "G5+"
|
|
||||||
},
|
|
||||||
"<8,9>": {
|
|
||||||
"<8,9,1>": "8",
|
|
||||||
"<8,9,2>": "GAN",
|
|
||||||
"<8,9,3>": "G5"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<9>": {
|
"<9>": {
|
||||||
@ -129,7 +109,17 @@
|
|||||||
"<32>": "0",
|
"<32>": "0",
|
||||||
"<33>": "1",
|
"<33>": "1",
|
||||||
"<34>": "16777215",
|
"<34>": "16777215",
|
||||||
"<35>": "16777215"
|
"<35>": "16777215",
|
||||||
|
"<36>": "",
|
||||||
|
"<37>": "",
|
||||||
|
"<38>": "",
|
||||||
|
"<39>": "",
|
||||||
|
"<40>": "-2",
|
||||||
|
"<41>": "1000",
|
||||||
|
"<42>": "",
|
||||||
|
"<43>": "",
|
||||||
|
"<44>": "",
|
||||||
|
"<45>": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,7 +9,7 @@
|
|||||||
"<2>": "-1",
|
"<2>": "-1",
|
||||||
"<3>": "-1",
|
"<3>": "-1",
|
||||||
"<4>": "-1",
|
"<4>": "-1",
|
||||||
"<5>": "16777215",
|
"<5>": "-2",
|
||||||
"<6>": {
|
"<6>": {
|
||||||
"<6,1>": {
|
"<6,1>": {
|
||||||
"<6,1,1>": "Tahoma",
|
"<6,1,1>": "Tahoma",
|
||||||
@ -33,32 +33,12 @@
|
|||||||
"<7>": "",
|
"<7>": "",
|
||||||
"<8>": {
|
"<8>": {
|
||||||
"<8,1>": {
|
"<8,1>": {
|
||||||
"<8,1,1>": "35",
|
"<8,1,1>": "8",
|
||||||
"<8,1,2>": "35 inch EpiPro"
|
"<8,1,2>": "200mm 8 in"
|
||||||
},
|
},
|
||||||
"<8,2>": {
|
"<8,2>": {
|
||||||
"<8,2,1>": "18",
|
"<8,2,1>": "6",
|
||||||
"<8,2,2>": "18 inch HTR"
|
"<8,2,2>": "150mm 6 in"
|
||||||
},
|
|
||||||
"<8,3>": {
|
|
||||||
"<8,3,1>": "15",
|
|
||||||
"<8,3,2>": "15 inch HTR"
|
|
||||||
},
|
|
||||||
"<8,4>": {
|
|
||||||
"<8,4,1>": "8",
|
|
||||||
"<8,4,2>": "8 inch 200mm"
|
|
||||||
},
|
|
||||||
"<8,5>": {
|
|
||||||
"<8,5,1>": "6",
|
|
||||||
"<8,5,2>": "6 inch 150mm"
|
|
||||||
},
|
|
||||||
"<8,6>": {
|
|
||||||
"<8,6,1>": "5",
|
|
||||||
"<8,6,2>": "5 inch 125mm"
|
|
||||||
},
|
|
||||||
"<8,7>": {
|
|
||||||
"<8,7,1>": "4",
|
|
||||||
"<8,7,2>": "4 inch 100mm"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"<9>": {
|
"<9>": {
|
||||||
@ -104,7 +84,17 @@
|
|||||||
"<32>": "0",
|
"<32>": "0",
|
||||||
"<33>": "1",
|
"<33>": "1",
|
||||||
"<34>": "16777215",
|
"<34>": "16777215",
|
||||||
"<35>": "16777215"
|
"<35>": "16777215",
|
||||||
|
"<36>": "",
|
||||||
|
"<37>": "",
|
||||||
|
"<38>": "",
|
||||||
|
"<39>": "",
|
||||||
|
"<40>": "-2",
|
||||||
|
"<41>": "1000",
|
||||||
|
"<42>": "",
|
||||||
|
"<43>": "",
|
||||||
|
"<44>": "",
|
||||||
|
"<45>": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -527,7 +527,7 @@ end service
|
|||||||
// Reads a data column for the indicated Key ID and database table.
|
// Reads a data column for the indicated Key ID and database table.
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
Service ReadDataColumn(TableName, KeyID, ColumnNo, NotExpired, ExpirationDuration, IgnoreMFSRoutines)
|
Service ReadDataColumn(TableName, KeyID, ColumnNo, NotExpired, ExpirationDuration, IgnoreMFSRoutines)
|
||||||
|
|
||||||
If NotExpired NE False$ then NotExpired = True$
|
If NotExpired NE False$ then NotExpired = True$
|
||||||
If (ExpirationDuration EQ '') OR (Not(Num(ExpirationDuration))) then ExpirationDuration = 0
|
If (ExpirationDuration EQ '') OR (Not(Num(ExpirationDuration))) then ExpirationDuration = 0
|
||||||
If IgnoreMFSRoutines NE True$ then IgnoreMFSRoutines = False$
|
If IgnoreMFSRoutines NE True$ then IgnoreMFSRoutines = False$
|
||||||
@ -609,6 +609,7 @@ Service ReadDataRow(TableName, KeyID, NotExpired, ExpirationDuration, IgnoreMFSR
|
|||||||
Memory_Services('SetValue', ServiceKeyID, DataRow)
|
Memory_Services('SetValue', ServiceKeyID, DataRow)
|
||||||
end else
|
end else
|
||||||
Error_Services('Add', 'Error reading ' : KeyID : ' from the ' : TableName : ' table in the ' : Service : ' service. Error = ' : @File_Error<1>)
|
Error_Services('Add', 'Error reading ' : KeyID : ' from the ' : TableName : ' table in the ' : Service : ' service. Error = ' : @File_Error<1>)
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -1008,17 +1009,12 @@ Service WriteDataColumn(TableName, KeyID, ColumnNo, Value, IgnoreSelfLock, Ignor
|
|||||||
Error_Services('Add', ErrorMsg)
|
Error_Services('Add', ErrorMsg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
If IgnoreAllLocks EQ False$ then
|
* end
|
||||||
Database_Services('ReleaseKeyIDLock', TableName, KeyID)
|
|
||||||
end
|
|
||||||
end else
|
|
||||||
Error_Services('Add', 'Unable to lock ' : KeyID : ' for the ' : TableName : ' table in the ' : Service : ' service.')
|
|
||||||
end
|
|
||||||
end else
|
end else
|
||||||
Error_Services('Add', 'ColumnNo was not a number or was not greater than zero in the ' :Service : ' service.')
|
Error_Services('Add', 'Unable to lock ' : KeyID : ' for the ' : TableName : ' table in the ' : Service : ' service.')
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
Error_Services('Add', 'TableName, KeyID, or ColumnNo argument was missing in the ' : Service : ' service.')
|
Error_Services('Add', 'TableName or KeyID argument was missing in the ' : Service : ' service.')
|
||||||
end
|
end
|
||||||
|
|
||||||
end service
|
end service
|
||||||
|
@ -18,7 +18,7 @@ COMPILE FUNCTION obj_Reactor_Log(Method,Parms)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, obj_React_Item_Hist, Update_Index, obj_Post_Log
|
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, obj_React_Item_Hist, Update_Index, obj_Post_Log
|
||||||
Declare subroutine Error_Services, Database_Services, React_Item_Services
|
Declare subroutine Error_Services, Database_Services, React_Item_Services, Reactor_Services
|
||||||
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, obj_React_Item, obj_Calendar, Database_Services
|
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, obj_React_Item, obj_Calendar, Database_Services
|
||||||
|
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ PostReactItems:
|
|||||||
InstRINos = ReactorLogRec<REACTOR_LOG_INST_RI_NO$>
|
InstRINos = ReactorLogRec<REACTOR_LOG_INST_RI_NO$>
|
||||||
|
|
||||||
CurrRINos = XLATE('REACTOR_LOG', RLNo, 'CURR_RI_NO', 'X')
|
CurrRINos = XLATE('REACTOR_LOG', RLNo, 'CURR_RI_NO', 'X')
|
||||||
|
ReactorType = Xlate('REACTOR', ReactNo, REACTOR_REACT_TYPE$, 'X')
|
||||||
//Check to make sure that everything is valid before adding or removing anything
|
//Check to make sure that everything is valid before adding or removing anything
|
||||||
ValidationFailureReason = ''
|
ValidationFailureReason = ''
|
||||||
for each InstRINo in InstRINos using @VM
|
for each InstRINo in InstRINos using @VM
|
||||||
@ -125,6 +125,22 @@ PostReactItems:
|
|||||||
If InstRIRec<REACT_ITEM_RETIRE_DT$> NE '' then
|
If InstRIRec<REACT_ITEM_RETIRE_DT$> NE '' then
|
||||||
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : ' because its status is retired!'
|
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : ' because its status is retired!'
|
||||||
end
|
end
|
||||||
|
If InstRIRec<REACT_ITEM_RI_TYPE$> EQ 'S' then
|
||||||
|
If InstRIRec<REACT_ITEM_PKT_SIZE$> EQ '' then
|
||||||
|
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Pocket/Ring Size cannot be empty for Susceptor Reactor Items.'
|
||||||
|
end
|
||||||
|
If InstRIRec<REACT_ITEM_PKT_QTY$> EQ '' then
|
||||||
|
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Pocket Qty cannot be empty for Susceptor Reactor Items.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
If (InstRIRec<REACT_ITEM_RI_TYPE$> NE 'RE') AND (InstRIRec<REACT_ITEM_RI_TYPE$> NE 'LE') then
|
||||||
|
If InstRIRec<REACT_ITEM_SERIAL_NO$> EQ '' then
|
||||||
|
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Serial Number cannot be blank to non-elevator Reactor Items.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
If (InstRIRec<REACT_ITEM_PART_TYPE$> NE ReactorType) then
|
||||||
|
ValidationFailureReason = 'Unable to install Reactor Item No. ' : InstRINo : '. Reactor Type must match Reactor Item Part Type.'
|
||||||
|
end
|
||||||
Until ValidationFailureReason NE ''
|
Until ValidationFailureReason NE ''
|
||||||
Next InstRINo
|
Next InstRINo
|
||||||
|
|
||||||
@ -147,9 +163,17 @@ PostReactItems:
|
|||||||
|
|
||||||
obj_React_Item_Hist('Install',oriParms)
|
obj_React_Item_Hist('Install',oriParms)
|
||||||
|
|
||||||
IF Get_Status(errCode) THEN
|
IF Not(Get_Status(errCode)) THEN
|
||||||
|
RIKey = InstRINos<1,I>
|
||||||
END
|
RIRec = Xlate('REACT_ITEM', RIKey, '', 'X')
|
||||||
|
RIType = RIRec<REACT_ITEM_RI_TYPE$>
|
||||||
|
If RIType EQ 'S' then
|
||||||
|
PktSize = Xlate('REACT_ITEM', RIKey, 'PKT_SIZE_DESC', 'X')
|
||||||
|
PktQty = RIRec<REACT_ITEM_PKT_QTY$>
|
||||||
|
Reactor_Services('SetWaferSize', ReactNo, PktSize)
|
||||||
|
Reactor_Services('SetPocketQty', ReactNo, PktQty)
|
||||||
|
end
|
||||||
|
END
|
||||||
END ;* End of LOCATE check for Install RI number already in the reactor
|
END ;* End of LOCATE check for Install RI number already in the reactor
|
||||||
|
|
||||||
NEXT I
|
NEXT I
|
||||||
@ -384,3 +408,5 @@ RemHistKeys:
|
|||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,8 +41,9 @@ Function Reactitems_API(@API)
|
|||||||
$insert APP_INSERTS
|
$insert APP_INSERTS
|
||||||
$insert API_SETUP
|
$insert API_SETUP
|
||||||
$insert HTTP_INSERTS
|
$insert HTTP_INSERTS
|
||||||
|
$Insert REACT_ITEM_EQUATES
|
||||||
|
|
||||||
Declare subroutine OI_Wizard_Services, SRP_JSON, Database_Services
|
Declare subroutine OI_Wizard_Services, SRP_JSON, Database_Services, React_Item_Services
|
||||||
Declare function React_Item_Services, SRP_JSON, OI_Wizard_Services
|
Declare function React_Item_Services, SRP_JSON, OI_Wizard_Services
|
||||||
|
|
||||||
GoToAPI else
|
GoToAPI else
|
||||||
@ -220,13 +221,17 @@ API ReactItems.ID.PUT
|
|||||||
SRP_JSON(hJSON, 'Release')
|
SRP_JSON(hJSON, 'Release')
|
||||||
KeyID = EndpointSegment
|
KeyID = EndpointSegment
|
||||||
Record = React_Item_Services('ConvertJSONToRecord', JSON)
|
Record = React_Item_Services('ConvertJSONToRecord', JSON)
|
||||||
If KeyID NE '' and Record NE '' then
|
|
||||||
Database_Services('WriteDataRow', 'REACT_ITEM', KeyID, Record)
|
|
||||||
end
|
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
StatusCode = 200
|
If KeyID NE '' and Record NE '' then
|
||||||
Message = 'React Item Updated'
|
React_Item_Services('UpdateReactItem', KeyID, Record)
|
||||||
GoSub CreateHalItem
|
end
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
StatusCode = 200
|
||||||
|
Message = 'React Item Updated'
|
||||||
|
GoSub CreateHalItem
|
||||||
|
end else
|
||||||
|
HTTP_Services('SetResponseStatus', 400, Error_Services('GetMessage'))
|
||||||
|
end
|
||||||
end else
|
end else
|
||||||
HTTP_Services('SetResponseStatus', 400, Error_Services('GetMessage'))
|
HTTP_Services('SetResponseStatus', 400, Error_Services('GetMessage'))
|
||||||
end
|
end
|
||||||
@ -357,3 +362,5 @@ CreateHALCollection:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,10 +165,14 @@ Service SignReactorLog(ReactorLogID, UserID)
|
|||||||
RIPostBy = ReactorLogRec<REACTOR_LOG_RI_POST_BY$>
|
RIPostBy = ReactorLogRec<REACTOR_LOG_RI_POST_BY$>
|
||||||
If RIPostBy EQ '' then
|
If RIPostBy EQ '' then
|
||||||
obj_Reactor_Log('PostReactItems',ReactorLogID:@RM:UserID)
|
obj_Reactor_Log('PostReactItems',ReactorLogID:@RM:UserID)
|
||||||
// Pull in a fresh copy of the record with the POST_BY signature set
|
If Error_Services('NoError') then
|
||||||
ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID)
|
// Pull in a fresh copy of the record with the POST_BY signature set
|
||||||
If Get_Status(ErrCode) then
|
ReactorLogRec = Database_Services('ReadDataRow', 'REACTOR_LOG', ReactorLogID)
|
||||||
ErrorMsg = 'Error in ':Service:' service. Error calling obj_Reactor_Log("PostReactItems"). Error code: ':ErrCode:'.'
|
If Get_Status(ErrCode) then
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Error calling obj_Reactor_Log("PostReactItems"). Error code: ':ErrCode:'.'
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -961,3 +965,4 @@ ClearCursors:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -677,12 +677,93 @@ Service ResetWfrMetric(ReactorNo, MetricType = REACTORMETRIC)
|
|||||||
|
|
||||||
end service
|
end service
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
// SetWaferSize
|
||||||
|
//
|
||||||
|
// Sets the Reactor's Wafer Size.
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
Service SetWaferSize(ReactNo, WaferSize)
|
||||||
|
|
||||||
|
ErrMsg = ''
|
||||||
|
If ReactNo EQ '' then
|
||||||
|
ErrMsg := 'ReactNo value is missing.'
|
||||||
|
end
|
||||||
|
If WaferSize EQ '' then
|
||||||
|
ErrMsg := 'WaferSize value is missing.'
|
||||||
|
end
|
||||||
|
If ErrMsg EQ '' then
|
||||||
|
If RowExists('REACTOR', ReactNo) then
|
||||||
|
WaferSizeOptions = Xlate('SYSREPOSPOPUPS', 'LSL2**WAFER_SIZES', 8, 'X')
|
||||||
|
Swap @VM with @FM in WaferSizeOptions
|
||||||
|
Swap @SVM with @VM in WaferSizeOptions
|
||||||
|
WaferSizeOptions = SRP_Array('Rotate', WaferSizeOptions)
|
||||||
|
WaferSizeOptions = WaferSizeOptions<2>
|
||||||
|
If Count(WaferSizeOptions, WaferSize) NE 0 then
|
||||||
|
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo)
|
||||||
|
ReactorRec<REACTOR_SUSC_POCKET_SIZE$> = WaferSize
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactNo, ReactorRec, True$, False$, False$)
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
ErrMsg := Error_Services('GetMessage')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrMsg := 'Invalid Wafer Size.'
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrMsg := 'The chosen Reactor No. ': ReactNo: ' does not exist.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
If ErrMsg NE '' then
|
||||||
|
Error_Services('Add', ErrMsg)
|
||||||
|
end
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
// SetPocketQty
|
||||||
|
//
|
||||||
|
// Sets the Reactor's Wafer Size.
|
||||||
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
Service SetPocketQty(ReactNo, PocketQty)
|
||||||
|
|
||||||
|
ErrMsg = ''
|
||||||
|
If ReactNo EQ '' then
|
||||||
|
ErrMsg := 'ReactNo value is missing.'
|
||||||
|
end
|
||||||
|
If PocketQty EQ '' then
|
||||||
|
ErrMsg := 'PocketQty value is missing.'
|
||||||
|
end
|
||||||
|
If ErrMsg EQ '' then
|
||||||
|
If RowExists('REACTOR', ReactNo) then
|
||||||
|
PocketQtyOptions = Xlate('SYSREPOSPOPUPS', 'LSL2**SUSCEPTOR_POCKETS', 8, 'X')
|
||||||
|
Swap @VM with @FM in PocketQtyOptions
|
||||||
|
Swap @SVM with @VM in PocketQtyOptions
|
||||||
|
PocketQtyOptions = SRP_Array('Rotate', PocketQtyOptions)
|
||||||
|
PocketQtyOptions = PocketQtyOptions<1>
|
||||||
|
If Count(PocketQtyOptions, PocketQty) NE 0 then
|
||||||
|
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo)
|
||||||
|
ReactorRec<REACTOR_SUSC_POCKET_QTY$> = PocketQty
|
||||||
|
Database_Services('WriteDataRow', 'REACTOR', ReactNo, ReactorRec, True$, False$, False$)
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
ErrMsg := Error_Services('GetMessage')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrMsg := 'Invalid Pocket Qty..'
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrMsg := 'The chosen Reactor No. ': ReactNo: ' does not exist.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
If ErrMsg NE '' then
|
||||||
|
Error_Services('Add', ErrMsg)
|
||||||
|
end
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
// GetReactors
|
// GetReactors
|
||||||
//
|
//
|
||||||
// Returns a JSON formatted array of reactor objects. Reactor number 0 will be ommitted. If the MatchType or MatchSize
|
// Returns a JSON formatted array of reactor objects. Reactor number 0 will be ommitted. If the MatchType or MatchSize
|
||||||
// arguments are populated, the array will be filterd accordingly.
|
// arguments are populated, the array will be filtered accordingly.
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
Service GetReactors(MatchType, MatchSize)
|
Service GetReactors(MatchType, MatchSize)
|
||||||
|
|
||||||
@ -4431,3 +4512,4 @@ ClearCursors:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ COMPILE FUNCTION React_Item(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5)
|
|||||||
01/13/2014 - John C. Henry, J.C. Henry & Co., Inc. cloned from Graphite
|
01/13/2014 - John C. Henry, J.C. Henry & Co., Inc. cloned from Graphite
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DECLARE SUBROUTINE Set_Property, ErrMsg, obj_Appwindow, Btree.Extract, Send_Event, Post_Event, obj_React_Item
|
DECLARE SUBROUTINE Set_Property, ErrMsg, obj_Appwindow, Btree.Extract, Send_Event, Post_Event, obj_React_Item, Forward_Event
|
||||||
DECLARE FUNCTION Get_Property, Send_Message, NextKey, Popup, obj_Calendar, Printer_Select
|
DECLARE FUNCTION Get_Property, Send_Message, NextKey, Popup, obj_Calendar, Printer_Select
|
||||||
DECLARE FUNCTION Set_Printer, obj_Install, Start_Window, obj_React_Item_Hist, obj_React_Item, Dialog_Box
|
DECLARE FUNCTION Set_Printer, obj_Install, Start_Window, obj_React_Item_Hist, obj_React_Item, Dialog_Box
|
||||||
|
|
||||||
@ -15,6 +15,7 @@ $INSERT REACT_ITEM_EQUATES
|
|||||||
$INSERT REACT_ITEM_HIST_EQUATES
|
$INSERT REACT_ITEM_HIST_EQUATES
|
||||||
$INSERT APPCOLORS
|
$INSERT APPCOLORS
|
||||||
$INSERT POPUP_EQUATES
|
$INSERT POPUP_EQUATES
|
||||||
|
$INSERT LOGICAL
|
||||||
|
|
||||||
EQU COL$REACT_NO TO 1
|
EQU COL$REACT_NO TO 1
|
||||||
EQU COL$SVC_HRS TO 2
|
EQU COL$SVC_HRS TO 2
|
||||||
@ -77,6 +78,9 @@ BEGIN CASE
|
|||||||
CASE EntID = @WINDOW:'.LU_PKT_QTY' AND Event = 'CLICK' ; GOSUB LUPktQty
|
CASE EntID = @WINDOW:'.LU_PKT_QTY' AND Event = 'CLICK' ; GOSUB LUPktQty
|
||||||
CASE EntID = @WINDOW:'.RETIRE_BUTTON' AND Event = 'CLICK' ; GOSUB RetireItem
|
CASE EntID = @WINDOW:'.RETIRE_BUTTON' AND Event = 'CLICK' ; GOSUB RetireItem
|
||||||
CASE EntID = @WINDOW:'.PRINT_LABEL' AND Event = 'CLICK' ; GOSUB PrintLabel
|
CASE EntID = @WINDOW:'.PRINT_LABEL' AND Event = 'CLICK' ; GOSUB PrintLabel
|
||||||
|
CASE EntID = @WINDOW:'.RI_TYPE' AND Event = 'CHANGED' ; GOSUB RITypeChange
|
||||||
|
CASE EntID = @WINDOW:'.PKT_SIZE' AND Event = 'CHANGED' ; GOSUB PktSizeChange
|
||||||
|
CASE EntID = @WINDOW:'.PART_TYPE' AND Event = 'LOSTFOCUS' ; GOSUB PktSizeChange
|
||||||
|
|
||||||
CASE 1
|
CASE 1
|
||||||
|
|
||||||
@ -142,10 +146,6 @@ RETURN
|
|||||||
Read:
|
Read:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GOSUB Refresh
|
GOSUB Refresh
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
@ -154,11 +154,6 @@ RETURN
|
|||||||
Write:
|
Write:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
Parent = Get_Property(@WINDOW,'PARENT')
|
|
||||||
|
|
||||||
IF Parent = 'REACTOR_LOG' OR Parent = 'REACT_STATE' THEN
|
|
||||||
Post_Event(@WINDOW,'CLOSE')
|
|
||||||
END
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
@ -261,9 +256,68 @@ FOR Line = 1 TO ListCnt
|
|||||||
NEXT N
|
NEXT N
|
||||||
END
|
END
|
||||||
NEXT Line
|
NEXT Line
|
||||||
|
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||||
|
If RIType EQ 'S' then
|
||||||
|
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_QTY_LABEL', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', True$)
|
||||||
|
end else
|
||||||
|
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE', 'TEXT', '')
|
||||||
|
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_DESC', 'TEXT', '')
|
||||||
|
Set_Property(@Window:'PKT_QTY_LABEL', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||||
|
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO', 'TEXT', '')
|
||||||
|
end
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
* * * * * * *
|
||||||
|
RITypeChange:
|
||||||
|
* * * * * * *
|
||||||
|
|
||||||
|
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||||
|
If RIType EQ 'S' then
|
||||||
|
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PKT_QTY_LABEL', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', True$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', True$)
|
||||||
|
end else
|
||||||
|
Set_Property(@Window:'.SUSC_GROUP', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_LABEL', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE', 'TEXT', '')
|
||||||
|
Set_Property(@Window:'.LU_PKT_SIZE', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_DESC', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_SIZE_DESC', 'TEXT', '')
|
||||||
|
Set_Property(@Window:'PKT_QTY_LABEL', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||||
|
Set_Property(@Window:'.LU_PKT_QTY', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO_LABEL', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO', 'ENABLED', False$)
|
||||||
|
Set_Property(@Window:'.PPLUS_RDS_NO', 'TEXT', '')
|
||||||
|
end
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
RetireItem:
|
RetireItem:
|
||||||
@ -443,19 +497,46 @@ RETURN
|
|||||||
LUPktSize:
|
LUPktSize:
|
||||||
* * * * * * *
|
* * * * * * *
|
||||||
|
|
||||||
RetVal = Popup(@WINDOW,'','WAFER_SIZES')
|
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||||
|
If RIType EQ 'S' then
|
||||||
IF RetVal NE '' THEN
|
PocketQty = ''
|
||||||
oaParms = RetVal:@RM:@WINDOW:'.PKT_SIZE'
|
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||||
obj_Appwindow('LUValReturn',oaParms)
|
PartType = Get_Property(@Window: '.PART_TYPE', 'TEXT')
|
||||||
END
|
If (PartType EQ 'HTR') OR (PartType EQ 'EPP') OR (PartType EQ 'ASM') then
|
||||||
|
RetVal = Popup(@WINDOW,TypeOver,'WAFER_SIZES')
|
||||||
|
IF RetVal NE '' THEN
|
||||||
|
oaParms = RetVal:@RM:@WINDOW:'.PKT_SIZE'
|
||||||
|
obj_Appwindow('LUValReturn',oaParms)
|
||||||
|
Begin Case
|
||||||
|
Case PartType EQ 'HTR'
|
||||||
|
If RetVal EQ 8 then
|
||||||
|
PocketQty = 3
|
||||||
|
end else
|
||||||
|
If RetVal EQ 6 then PocketQty = 5
|
||||||
|
end
|
||||||
|
Case PartType EQ 'EPP'
|
||||||
|
If RetVal EQ 8 then
|
||||||
|
PocketQty = 8
|
||||||
|
end else
|
||||||
|
If RetVal EQ 6 then PocketQty = 18
|
||||||
|
end
|
||||||
|
Case PartType EQ 'ASM'
|
||||||
|
If RetVal EQ 8 OR RetVal EQ 6 then PocketQty = 1
|
||||||
|
|
||||||
|
End Case
|
||||||
|
Set_Property(@Window:'.PKT_QTY', 'TEXT', PocketQty)
|
||||||
|
END
|
||||||
|
end else
|
||||||
|
ErrMsg('A valid Part Type (EPP, ASM, HTR) must be selected before selecting Pocket Size.')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
* * * * * * *
|
* * * * * *
|
||||||
LUPktQty:
|
LUPktQty:
|
||||||
* * * * * * *
|
* * * * * *
|
||||||
|
|
||||||
ReactType = Get_Property(@WINDOW:'.REACT_TYPE','INVALUE')
|
ReactType = Get_Property(@WINDOW:'.REACT_TYPE','INVALUE')
|
||||||
|
|
||||||
@ -508,3 +589,41 @@ obj_React_Item('PrintLabel',RINo:@RM:CurrRec)
|
|||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
PktSizeChange:
|
||||||
|
|
||||||
|
RIType = Get_Property(@Window:'.RI_TYPE', 'TEXT')
|
||||||
|
If RIType EQ 'S' then
|
||||||
|
PocketQty = ''
|
||||||
|
Set_Property(@Window:'.PKT_QTY', 'TEXT', '')
|
||||||
|
PktSize = Get_Property(@Window: '.PKT_SIZE', 'TEXT')
|
||||||
|
PartType = Get_Property(@Window: '.PART_TYPE', 'TEXT')
|
||||||
|
If (PartType EQ 'HTR') OR (PartType EQ 'EPP') OR (PartType EQ 'ASM') then
|
||||||
|
If PktSize EQ 6 OR PktSize EQ 8 then
|
||||||
|
Begin Case
|
||||||
|
Case PartType EQ 'HTR'
|
||||||
|
If PktSize EQ 8 then
|
||||||
|
PocketQty = 3
|
||||||
|
end else
|
||||||
|
If PktSize EQ 6 then PocketQty = 5
|
||||||
|
end
|
||||||
|
Case PartType EQ 'EPP'
|
||||||
|
If PktSize EQ 8 then
|
||||||
|
PocketQty = 8
|
||||||
|
end else
|
||||||
|
If PktSize EQ 6 then PocketQty = 18
|
||||||
|
end
|
||||||
|
Case PartType EQ 'ASM'
|
||||||
|
If PktSize EQ 8 OR PktSize EQ 6 then PocketQty = 1
|
||||||
|
|
||||||
|
End Case
|
||||||
|
Set_Property(@Window:'.PKT_QTY', 'TEXT', PocketQty)
|
||||||
|
end else
|
||||||
|
ErrMsg('A valid Pocket Size (6 or 8 in.) is required.')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrMsg('A valid Part Type (EPP, ASM, HTR) must be selected before selecting Pocket Size.')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return
|
||||||
|
@ -136,11 +136,59 @@ return
|
|||||||
WRITE_RECORD_PRE:
|
WRITE_RECORD_PRE:
|
||||||
|
|
||||||
ErrMsg = ''
|
ErrMsg = ''
|
||||||
|
|
||||||
// Req'd parameter checks
|
// Req'd parameter checks
|
||||||
ItemType = {RI_TYPE}
|
ItemType = {RI_TYPE}
|
||||||
|
|
||||||
If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
|
If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
|
||||||
|
|
||||||
|
If (ItemType NE 'LE') AND (ItemType NE 'RE') then
|
||||||
|
SerialNo = Record<REACT_ITEM_SERIAL_NO$>
|
||||||
|
If SerialNo EQ '' then
|
||||||
|
ErrMsg := 'Serial No. is required for this Reactor Item type. '
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
If ItemType EQ 'S' then
|
||||||
|
PocketQty = Record<REACT_ITEM_PKT_QTY$>
|
||||||
|
PocketSize = Record<REACT_ITEM_PKT_SIZE$>
|
||||||
|
If PocketSize EQ '' then
|
||||||
|
ErrMsg := 'Pocket size is required for Susceptor Item Type. '
|
||||||
|
end
|
||||||
|
If PocketQty EQ '' then
|
||||||
|
ErrMsg := 'Pocket quantity is required for Susceptor Item Type. '
|
||||||
|
end
|
||||||
|
If ErrMsg = '' then
|
||||||
|
ExpectedQty = ''
|
||||||
|
Begin Case
|
||||||
|
Case Record<REACT_ITEM_PART_TYPE$> EQ 'ASM'
|
||||||
|
If PocketSize EQ 6 OR PocketSize EQ 8 then
|
||||||
|
ExpectedQty = 1
|
||||||
|
end
|
||||||
|
Case Record<REACT_ITEM_PART_TYPE$> EQ 'HTR'
|
||||||
|
If PocketSize EQ 8 then
|
||||||
|
ExpectedQty = 3
|
||||||
|
end else
|
||||||
|
If PocketSize EQ 6 then ExpectedQty = 5
|
||||||
|
end
|
||||||
|
Case Record<REACT_ITEM_PART_TYPE$> EQ 'EPP'
|
||||||
|
If PocketSize EQ 8 then
|
||||||
|
ExpectedQty = 8
|
||||||
|
end else
|
||||||
|
If PocketSize EQ 6 then ExpectedQty = 18
|
||||||
|
end
|
||||||
|
Case Record<REACT_ITEM_PART_TYPE$> EQ ''
|
||||||
|
ErrMsg := 'Part Type. is required for Susceptor Reactor Item type. '
|
||||||
|
Case Otherwise$
|
||||||
|
ErrMsg := 'Invalid Part Type for Susceptor Reactor Item Type. '
|
||||||
|
End Case
|
||||||
|
If ExpectedQty NE '' then
|
||||||
|
If PocketQty NE ExpectedQty then
|
||||||
|
ErrMsg := 'Invalid Pocket Quantity for Part Type/Pocket Size combination. '
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
If ErrMsg NE '' then
|
If ErrMsg NE '' then
|
||||||
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
|
||||||
@ -233,3 +281,5 @@ Restore_System_Variables:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ Options BOOLEAN = True$, False$
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt=BOOLEAN)
|
Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt=BOOLEAN, PartType)
|
||||||
|
|
||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
Response = ''
|
Response = ''
|
||||||
@ -99,6 +99,9 @@ Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStar
|
|||||||
Swap ',' with @VM in CurrStatus
|
Swap ',' with @VM in CurrStatus
|
||||||
SearchString := 'CURR_STATUS_STATIC':@VM:CurrStatus:@FM
|
SearchString := 'CURR_STATUS_STATIC':@VM:CurrStatus:@FM
|
||||||
end
|
end
|
||||||
|
If PartType NE '' then
|
||||||
|
SearchString := 'PART_TYPE':@VM:PartType:@FM
|
||||||
|
end
|
||||||
Flag = ''
|
Flag = ''
|
||||||
RIKeys = ''
|
RIKeys = ''
|
||||||
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, 'E', Flag)
|
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, 'E', Flag)
|
||||||
@ -370,7 +373,7 @@ Service GetReactItemTemplateJSON()
|
|||||||
end else
|
end else
|
||||||
Error_Services('Add', 'Unable to create JSON representation in the ' : Service : ' service.')
|
Error_Services('Add', 'Unable to create JSON representation in the ' : Service : ' service.')
|
||||||
end
|
end
|
||||||
|
|
||||||
Response = jsonRecord
|
Response = jsonRecord
|
||||||
|
|
||||||
end service
|
end service
|
||||||
@ -381,17 +384,15 @@ Service CreateReactItem(Record)
|
|||||||
ErrMsg = ''
|
ErrMsg = ''
|
||||||
KeyID = ''
|
KeyID = ''
|
||||||
If Record NE '' then
|
If Record NE '' then
|
||||||
//Need to do some parameter checks here
|
|
||||||
ReactItemType = Record<REACT_ITEM_RI_TYPE$>
|
|
||||||
If ReactItemType EQ '' then
|
|
||||||
ErrMsg := 'React Item Type was blank!' : CRLF$
|
|
||||||
end
|
|
||||||
If ErrMsg EQ '' then
|
If ErrMsg EQ '' then
|
||||||
KeyID = NextKey('REACT_ITEM')
|
KeyID = NextKey('REACT_ITEM')
|
||||||
If Error_Services('NoError') and KeyID NE '' then
|
If Error_Services('NoError') and KeyID NE '' then
|
||||||
Database_Services('WriteDataRow', 'REACT_ITEM', KeyID, Record)
|
Database_Services('WriteDataRow', 'REACT_ITEM', KeyID, Record, True$, False$, False$)
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
ErrMsg := Error_Services('GetMessage')
|
||||||
|
end
|
||||||
end else
|
end else
|
||||||
ErrMsg := 'Failed to generate a key for a new react item. ' : CRLF$
|
ErrMsg := 'Failed to generate a key for a new react item. '
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -457,6 +458,31 @@ Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
|
|||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
|
Service UpdateReactItem(RINo, Record)
|
||||||
|
|
||||||
|
ErrorMsg = ''
|
||||||
|
If RINo EQ '' then
|
||||||
|
ErrorMsg := 'React Item ID argument was missing in the ' : Service : ' service. '
|
||||||
|
end
|
||||||
|
If Record EQ '' then
|
||||||
|
ErrorMsg := 'React Item Record argument was missing in the ' : Service : ' service. '
|
||||||
|
end
|
||||||
|
If ErrorMsg EQ '' then
|
||||||
|
If RowExists('REACT_ITEM', RINo) then
|
||||||
|
Database_Services('WriteDataRow', 'REACT_ITEM', RINo, Record, True$, False$, False$)
|
||||||
|
If Error_Services('HasError') then
|
||||||
|
ErrorMsg := Error_Services('GetMessage')
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg := 'React Item not found. '
|
||||||
|
end
|
||||||
|
end
|
||||||
|
If ErrorMsg NE '' then
|
||||||
|
Error_Services('Add', ErrorMsg)
|
||||||
|
end
|
||||||
|
|
||||||
|
end service
|
||||||
|
|
||||||
Service UpdateReactItemStatus(RINo)
|
Service UpdateReactItemStatus(RINo)
|
||||||
|
|
||||||
If RINo NE '' then
|
If RINo NE '' then
|
||||||
@ -493,3 +519,7 @@ ClearCursors:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user