ready for deployment

This commit is contained in:
Infineon\StieberD 2025-05-23 11:38:34 -07:00 committed by Stieber Daniel (CSC FI SPS MESLEO)
parent 6aad8036e5
commit 550f376a0b
11 changed files with 1457 additions and 1357 deletions

View File

@ -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",
@ -31,7 +31,7 @@
} }
}, },
"<7>": "REACT_ITEM", "<7>": "REACT_ITEM",
"<8>": "BY @ID", "<8>": "BY-DSND ENTER_DTM",
"<9>": { "<9>": {
"<9,1>": { "<9,1>": {
"<9,1,1>": "RI_NO", "<9,1,1>": "RI_NO",
@ -120,6 +120,22 @@
"<9,11,4>": "C", "<9,11,4>": "C",
"<9,11,5>": "D4/", "<9,11,5>": "D4/",
"<9,11,6>": "Retire Dt" "<9,11,6>": "Retire Dt"
},
"<9,12>": {
"<9,12,1>": "ENTER_DTM",
"<9,12,2>": "14",
"<9,12,3>": "L",
"<9,12,4>": "C",
"<9,12,5>": "DT2/^H",
"<9,12,6>": "Enter Dtm"
},
"<9,13>": {
"<9,13,1>": "CURR_STATUS",
"<9,13,2>": "5",
"<9,13,3>": "L",
"<9,13,4>": "C",
"<9,13,5>": "[CONV_ITEM_CURR_STATUS]",
"<9,13,6>": "Curr Status"
} }
}, },
"<10>": "T", "<10>": "T",
@ -147,7 +163,17 @@
"<32>": "0", "<32>": "0",
"<33>": "1", "<33>": "1",
"<34>": "16777215", "<34>": "16777215",
"<35>": "16777215" "<35>": "16766894",
"<36>": "",
"<37>": "",
"<38>": "",
"<39>": "",
"<40>": "-2",
"<41>": "1000",
"<42>": "",
"<43>": "",
"<44>": "",
"<45>": ""
} }
} }
} }

View File

@ -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>": "MS Sans Serif", "<6,1,1>": "MS Sans Serif",
@ -91,7 +91,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>": ""
} }
} }
} }

View File

@ -20,7 +20,7 @@ Declare Function Get_Property, Get_Status, Dialog_Box, Utility, Popup, Collect.I
Declare Function Send_Message, Msg, Security_Check, obj_React_Item, Select_Into, MemberOf, Create_Dialog, obj_Calendar Declare Function Send_Message, Msg, Security_Check, obj_React_Item, Select_Into, MemberOf, Create_Dialog, obj_Calendar
Declare Function GetAsyncKeyState, obj_Tables, MemberOf, Environment_Services, Database_Services, Rds_Services Declare Function GetAsyncKeyState, obj_Tables, MemberOf, Environment_Services, Database_Services, Rds_Services
Declare Function Reactor_Services, Error_Services, React_Servs_Services, Reactor_Log_Services, Send_Event, SRP_List Declare Function Reactor_Services, Error_Services, React_Servs_Services, Reactor_Log_Services, Send_Event, SRP_List
Declare Function Nica_Orders_Services Declare Function Nica_Orders_Services, SRP_Date, React_Item_Services, SRP_Datetime, Datetime
$Insert MSG_EQUATES $Insert MSG_EQUATES
$Insert APPCOLORS $Insert APPCOLORS
@ -1229,64 +1229,51 @@ SvcsOptions:
If ItemType NE '' then If ItemType NE '' then
RetVal = '' RetVal = ''
ItemType = ICONV(ItemType,'[CONV_CODE_DESC,REACT_ITEM_TYPE]')
ItemType = ICONV(ItemType,'[CONV_CODE_DESC,REACT_ITEM_TYPE]') RIKeys = React_Item_Services('GetReactItems', ItemType, 'N,U')
OPEN 'DICT.REACT_ITEM' to DictReactItem else If Error_Services('NoError') then
ErrMsg('Unable to open DICT.REACT_ITEM')
return TypeOver = ''
end TypeOVer<PMODE$> = 'K'
TypeOver<PDISPLAY$> = RIKeys
SearchString = 'RI_TYPE':@VM:ItemType:@FM RetVal = Popup(@Window,TypeOver,'REACT_ITEM')
SearchString := 'CURR_STATUS':@VM:'N':@VM:'U':@FM
If RetVal NE '' then
RIKeys = '' obj_AppWindow('LUValReturn',RetVal:@RM:@Window:'.SERV_INFO':@RM:SelPos)
Option = ''
Flag = '' RIRec = XLATE('REACT_ITEM',RetVal,'','X')
Btree.Extract(SearchString,'REACT_ITEM',DictReactItem,RIKeys,Option,Flag) If RIRec<REACT_ITEM_RI_TYPE$> = 'T' then
If Get_Status(errCode) then CardWindow = 'REACT_ITEM'
ErrMsg(errCode) CardKey = RetVal
return DefaultRec = ''
end NewCardCtrl = ''
RecalcCtrl = @Window:'.SERV_INFO'
TypeOver = '' RecalcPos = SelPos
TypeOVer<PMODE$> = 'K' RetCtrl = @Window:'.SERV_INFO'
TypeOver<PDISPLAY$> = RIKeys RetPos = SelPos
RetVal = Popup(@Window,TypeOver,'REACT_ITEM')
oAParms = CardWindow:@RM:CardKey:@RM:DefaultRec:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
If RetVal NE '' then
obj_AppWindow('LUValReturn',RetVal:@RM:@Window:'.SERV_INFO':@RM:SelPos) obj_AppWindow('ViewNewCard',oAParms)
RIRec = XLATE('REACT_ITEM',RetVal,'','X') Set_Property('REACT_ITEM.TUBE_GRADE','FOCUS',1)
If RIRec<REACT_ITEM_RI_TYPE$> = 'T' then If Get_Status(errCode) then
CardWindow = 'REACT_ITEM' ErrMsg(errCode)
CardKey = RetVal end
DefaultRec = '' end
NewCardCtrl = ''
RecalcCtrl = @Window:'.SERV_INFO' GoSub Refresh
RecalcPos = SelPos end
RetCtrl = @Window:'.SERV_INFO' end else
RetPos = SelPos Error_Services('DisplayError')
oAParms = CardWindow:@RM:CardKey:@RM:DefaultRec:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
obj_AppWindow('ViewNewCard',oAParms)
Set_Property('REACT_ITEM.TUBE_GRADE','FOCUS',1)
If Get_Status(errCode) then
ErrMsg(errCode)
end
end
GoSub Refresh
end end
end ;* End of check for null SNReq end ;* End of check for null SNReq
End Case End Case
GoSub Refresh GoSub Refresh
@ -1877,4 +1864,3 @@ ColorRemRiTable:
return return

View File

@ -440,7 +440,7 @@ END
IF CurrStatus NE '' THEN IF CurrStatus NE '' THEN
SWAP @VM WITH '" "' IN CurrStatus SWAP @VM WITH '" "' IN CurrStatus
IF SelectSent NE '' THEN SelectSent := ' AND' IF SelectSent NE '' THEN SelectSent := ' AND'
SelectSent := ' WITH CURR_STATUS ':QUOTE(CurrStatus) SelectSent := ' WITH CURR_STATUS_STATIC ':QUOTE(CurrStatus)
END END
IF PartTypes NE '' THEN IF PartTypes NE '' THEN
@ -471,7 +471,7 @@ SelectSent = 'SELECT REACT_ITEM ':SelectSent
Def = "" Def = ""
Def<MTEXT$> = "Selecting Reactor Events..." Def<MTEXT$> = "Selecting Reactor Items..."
Def<MTYPE$> = "U" Def<MTYPE$> = "U"
* display the processing message and do the processing * display the processing message and do the processing
@ -502,6 +502,3 @@ End_Dialog(@WINDOW,RINos)
RETURN RETURN

View File

@ -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 Declare subroutine Error_Services, Database_Services, React_Item_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
@ -195,18 +195,16 @@ PostReactItems:
ReactorLogRec<REACTOR_LOG_RI_POST_DTM$> = PostDTM ReactorLogRec<REACTOR_LOG_RI_POST_DTM$> = PostDTM
otParms = FIELDSTORE(otParms,@RM,4,0,ReactorLogRec) otParms = FIELDSTORE(otParms,@RM,4,0,ReactorLogRec)
//obj_Tables('WriteRec',otParms)
Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1, 0, 1) Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1, 0, 1)
Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now
Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$) Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$)
end else end else
Error_Services('Add', ValidationFailureReason) Error_Services('Add', ValidationFailureReason)
end end
RETURN RETURN
@ -386,10 +384,3 @@ RemHistKeys:
RETURN RETURN

View File

@ -18,11 +18,12 @@ COMPILE FUNCTION obj_React_Item_Hist(Method,Parms)
*/ */
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Send_Dyn, obj_Popup DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Send_Dyn, obj_Popup
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, ErrMsg, Btree.Extract, React_Item_Services
DECLARE SUBROUTINE ErrMsg, Btree.Extract
$Insert LOGICAL
$INSERT REACT_ITEM_HIST_EQUATES $INSERT REACT_ITEM_HIST_EQUATES
$INSERT RLIST_EQUATES
EQU CRLF$ TO \0D0A\ EQU CRLF$ TO \0D0A\
EQU TAB$ TO CHAR(9) EQU TAB$ TO CHAR(9)
@ -62,26 +63,26 @@ RETURN Result
Install: Install:
* * * * * * * * * * * * * *
RIHKey = Parms[1,@RM] RIHKey = Parms[1,@RM]
RL_Id = Parms[COL2()+1,@RM] RL_Id = Parms[COL2()+1,@RM]
ReactWfrCnt = Parms[COL2()+1,@RM] ReactWfrCnt = Parms[COL2()+1,@RM]
ReactHrs = Parms[COL2()+1,@RM] ReactHrs = Parms[COL2()+1,@RM]
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')' IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')' IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
*IF ReactWfrCnt = '' THEN ErrorMsg = 'Null Parameter "ReactWfrCnt" passed to routine. (':Method:')' ;* Optional
*IF ReactHrs = '' THEN ErrorMsg = 'Null Parameter "ReactHrs" passed to routine. (':Method:')' ;* Optional
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
RIHRec = '' RIHRec = ''
RIHRec<REACT_ITEM_HIST_INST_RL_ID$> = RL_ID RIHRec<REACT_ITEM_HIST_INST_RL_ID$> = RL_ID
RIHRec<REACT_ITEM_HIST_INST_REACT_WFR_CNT$> = ReactWfrCnt RIHRec<REACT_ITEM_HIST_INST_REACT_WFR_CNT$> = ReactWfrCnt
RIHRec<REACT_ITEM_HIST_INST_REACT_HRS$> = ReactHrs RIHRec<REACT_ITEM_HIST_INST_REACT_HRS$> = ReactHrs
otParms = 'REACT_ITEM_HIST':@RM:RIHKey:@RM:@RM:RIHRec otParms = 'REACT_ITEM_HIST':@RM:RIHKey:@RM:@RM:RIHRec
obj_Tables('WriteRec',otParms) obj_Tables('WriteRec',otParms)
RINo = Field(RIHKey, '*', 2, 1)
React_Item_Services('UpdateReactItemStatus', RINo)
RETURN RETURN
@ -90,38 +91,36 @@ RETURN
Remove: Remove:
* * * * * * * * * * * * * *
RIHKey = Parms[1,@RM] RIHKey = Parms[1,@RM]
RemoveDTM = Parms[COL2()+1,@RM] ;* Internal format * RemoveDTM = Parms[COL2()+1,@RM] ;* Internal format *
RL_Id = Parms[COL2()+1,@RM] RL_Id = Parms[COL2()+1,@RM]
ReactWfrCnt = Parms[COL2()+1,@RM] ReactWfrCnt = Parms[COL2()+1,@RM]
ReactHrs = Parms[COL2()+1,@RM] ReactHrs = Parms[COL2()+1,@RM]
IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')' IF RIHKey = '' THEN ErrorMsg = 'Null Parameter "RIHKey" passed to routine. (':Method:')'
IF RemoveDTM = '' THEN ErrorMsg = 'Null Parameter "RemoveDTM" passed to routine. (':Method:')' IF RemoveDTM = '' THEN ErrorMsg = 'Null Parameter "RemoveDTM" passed to routine. (':Method:')'
IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')' IF RL_Id = '' THEN ErrorMsg = 'Null Parameter "RL_Id" passed to routine. (':Method:')'
*IF ReactWfrCnt = '' THEN ErrorMsg = 'Null Parameter "ReactWfrCnt" passed to routine. (':Method:')' ;* Optional
*IF ReactHrs = '' THEN ErrorMsg = 'Null Parameter "ReactHrs" passed to routine. (':Method:')' ;* Optional
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
* Read and update record * otParms = 'REACT_ITEM_HIST':@RM:RIHKey
otParms = 'REACT_ITEM_HIST':@RM:RIHKey RIHRec = obj_Tables('ReadRec',otParms)
RIHRec = obj_Tables('ReadRec',otParms) IF Get_Status(errCode) THEN
Set_Status(0)
RIHRec = ''
END
IF Get_Status(errCode) THEN RIHRec<REACT_ITEM_HIST_REM_DTM$> = RemoveDTM
Set_Status(0) RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = RL_Id
RIHRec = '' RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ReactWfrCnt
END RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ReactHrs
RIHRec<REACT_ITEM_HIST_REM_DTM$> = RemoveDTM otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = RL_Id obj_Tables('WriteRec',otParms)
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ReactWfrCnt RINo = Field(RIHKey, '*', 2, 1)
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ReactHrs React_Item_Services('UpdateReactItemStatus', RINo)
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
obj_Tables('WriteRec',otParms)
RETURN RETURN
@ -130,24 +129,21 @@ RETURN
ClearRemove: ClearRemove:
* * * * * * * * * * * * * *
RIHKey = Parms[1,@RM] RIHKey = Parms[1,@RM]
IF RIHKey = '' THEN RETURN IF RIHKey = '' THEN RETURN
otParms = 'REACT_ITEM_HIST':@RM:RIHKey
* Read and update record * RIHRec = obj_Tables('ReadRec',otParms)
otParms = 'REACT_ITEM_HIST':@RM:RIHKey RIHRec<REACT_ITEM_HIST_REM_DTM$> = ''
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = ''
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ''
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ''
RIHRec = obj_Tables('ReadRec',otParms) otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
obj_Tables('WriteRec',otParms)
RIHRec<REACT_ITEM_HIST_REM_DTM$> = ''
RIHRec<REACT_ITEM_HIST_REM_RL_ID$> = ''
RIHRec<REACT_ITEM_HIST_REM_REACT_WFR_CNT$> = ''
RIHRec<REACT_ITEM_HIST_REM_REACT_HRS$> = ''
otParms = FIELDSTORE(otParms,@RM,4,0,RIHRec)
obj_Tables('WriteRec',otParms)
RETURN RETURN
@ -156,49 +152,50 @@ RETURN
GetHistory: GetHistory:
* * * * * * * * * * * * * *
ReactNo = Parms[1,@RM] ReactNo = Parms[1,@RM]
RINo = Parms[COL2()+1,@RM] RINo = Parms[COL2()+1,@RM]
RIType = Parms[COL2()+1,@RM] RIType = Parms[COL2()+1,@RM]
IF ReactNo = '' AND RINo = '' AND RIType = '' THEN RETURN IF ReactNo = '' AND RINo = '' AND RIType = '' THEN RETURN
OPEN 'DICT.REACT_ITEM_HIST' TO DictVar ELSE OPEN 'DICT.REACT_ITEM_HIST' TO DictVar ELSE
ErrorMsg = 'Unable to open DICT.REACT_ITEM_HIST for index lookup' ErrorMsg = 'Unable to open DICT.REACT_ITEM_HIST for index lookup'
RETURN RETURN
END END
Search = '' Search = ''
IF ReactNo NE '' THEN Search := 'REACT_NO':@VM:ReactNo:@FM IF ReactNo NE '' THEN Search := 'REACT_NO':@VM:ReactNo:@FM
IF RINo NE '' THEN Search := 'RI_NO':@VM:RINo:@FM IF RINo NE '' THEN Search := 'RI_NO':@VM:RINo:@FM
IF RIType NE '' THEN Search := 'RI_TYPE':@VM:RIType:@FM IF RIType NE '' THEN Search := 'RI_TYPE':@VM:RIType:@FM
Option = '' Option = ''
Flag = '' Flag = ''
Btree.Extract(Search, 'REACT_ITEM_HIST', DictVar, RIKeys, Option, Flag) ;* Get unsorted keys based on Search parameters Btree.Extract(Search, 'REACT_ITEM_HIST', DictVar, RIKeys, Option, Flag) ;* Get unsorted keys based on Search parameters
* Put sort data in first column (Install DTM) // Put sort data in first column (Install DTM)
WorkList = '' WorkList = ''
riCnt = COUNT(RIKeys,@VM) + (RIKeys NE '') riCnt = COUNT(RIKeys,@VM) + (RIKeys NE '')
FOR I = 1 TO riCnt FOR I = 1 TO riCnt
RIKey = RIKeys<1,I> RIKey = RIKeys<1,I>
WorkList<I> = FIELD(RIKey,'*',3):@VM:RIKey WorkList<I> = FIELD(RIKey,'*',3):@VM:RIKey
NEXT I NEXT I
WorkList := @RM WorkList := @RM
CONVERT @FM:@VM TO @RM:@FM IN WorkList ;* push delimiters higher for V119 CONVERT @FM:@VM TO @RM:@FM IN WorkList ;* push delimiters higher for V119
CALL V119('S','','D','L',WorkList,'') ;* Descending Left justified sort CALL V119('S','','D','L',WorkList,'') ;* Descending Left justified sort
CONVERT @FM:@RM TO @VM:@FM IN WorkList ;* pull delimiters lower CONVERT @FM:@RM TO @VM:@FM IN WorkList ;* pull delimiters lower
WorkList[-1,1] = '' ;* Trim trailing delimiter WorkList[-1,1] = '' ;* Trim trailing delimiter
FOR I = 1 TO riCnt FOR I = 1 TO riCnt
Result<1,I> = WorkList<I,2> ;* Strip Sort column(s) Result<1,I> = WorkList<I,2> ;* Strip Sort column(s)
NEXT I NEXT I
RETURN RETURN

View File

@ -62,24 +62,80 @@ API reactItems.HEAD
API reactItems.GET API reactItems.GET
QueryFields = HTTP_Services('GetHTTPGetString') QueryFields = HTTP_Services('GetHTTPGetString')
If Index(QueryFields, 'riType', 1) then If IndexC(QueryFields, 'includeNullRetireDt', 1) then
RIType = HTTP_Services('GetQueryField', 'riType') IncludeNullRetireDt = HTTP_Services('GetQueryField', 'includeNullRetireDt')
Begin Case
Case ( (IncludeNullRetireDt EQ 1) or (IncludeNullRetireDt EQ 0) )
Null
Case ( (IncludeNullRetireDt _EQC 'true') or (IncludeNullRetireDt _EQC 'yes') )
IncludeNullRetireDt = True$
Case ( (IncludeNullRetireDt _EQC 'false') or (IncludeNullRetireDt _EQC 'no') )
IncludeNullRetireDt = False$
Case Otherwise$
Error_Services('Add', 'Error in ':CurrentAPI:' API. Invalid value "':IncludeNullRetireDt:'" passed in for includeNullRetireDt.')
End Case
end else end else
RIType = '' IncludeNullRetireDt = ''
end
If Error_Services('NoError') then
If IndexC(QueryFields, 'showAllDetails', 1) then
ShowAllDetails = HTTP_Services('GetQueryField', 'showAllDetails')
Begin Case
Case ( (ShowAllDetails EQ 1) or (ShowAllDetails EQ 0) )
Null
Case ( (ShowAllDetails _EQC 'true') or (ShowAllDetails _EQC 'yes') )
ShowAllDetails = True$
Case ( (ShowAllDetails _EQC 'false') or (ShowAllDetails _EQC 'no') )
ShowAllDetails = False$
Case Otherwise$
Error_Services('Add', 'Error in ':CurrentAPI:' API. Invalid value "':ShowAllDetails:'" passed in for showAllDetails.')
End Case
end else
ShowAllDetails = False$
end
If Error_Services('NoError') then
If IndexC(QueryFields, 'currStatus', 1) then
CurrStatus = HTTP_Services('GetQueryField', 'currStatus')
end else
CurrStatus = ''
end
If IndexC(QueryFields, 'riType', 1) then
RIType = HTTP_Services('GetQueryField', 'riType')
end else
RIType = ''
end
If IndexC(QueryFields, 'entryDtStart', 1) then
EntryDtStart = HTTP_Services('GetQueryField', 'entryDtStart')
end else
EntryDtStart = ''
end
If IndexC(QueryFields, 'entryDtEnd', 1) then
EntryDtEnd = HTTP_Services('GetQueryField', 'entryDtEnd')
end else
EntryDtEnd = ''
end
If IndexC(QueryFields, 'retireDtStart', 1) then
RetireDtStart = HTTP_Services('GetQueryField', 'retireDtStart')
end else
RetireDtStart = ''
end
If IndexC(QueryFields, 'retireDtEnd', 1) then
RetireDtEnd = HTTP_Services('GetQueryField', 'retireDtEnd')
end else
RetireDtEnd = ''
end
StatusCode = 200
GoSub CreateHALCollection
end else
HTTP_Services('SetResponseStatus', 400, Error_Services("GetMessage"))
end
end else
HTTP_Services('SetResponseStatus', 400, Error_Services("GetMessage"))
end end
If Index(QueryFields, 'currStatus', 1 ) then
CurrStatus = Http_Services('GetQueryField', 'currStatus')
end else
CurrStatus = ''
end
If Index(QueryFields, 'showAllDetails', 1 ) then
ShowAllDetails = Http_Services('GetQueryField', 'showAllDetails')
end else
ShowAllDetails = False$
end
StatusCode = 200
GoSub CreateHALCollection
end api end api
@ -254,11 +310,7 @@ CreateHALCollection:
JSONCollection = '' JSONCollection = ''
Abort = False$ Abort = False$
If RIType NE '' OR CurrStatus NE '' then ReactItems = React_Item_Services('GetReactItems', RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt)
ReactItems = React_Item_Services('GetReactItems', RIType, CurrStatus)
end else
ReactItems = React_Item_Services('GetAllReactItemKeys')
end
If ReactItems NE '' then If ReactItems NE '' then
If SRP_JSON(hJSONCollection, 'New', 'Object') then If SRP_JSON(hJSONCollection, 'New', 'Object') then
@ -304,3 +356,4 @@ CreateHALCollection:
end end
return return

File diff suppressed because it is too large Load Diff

View File

@ -1,254 +1,235 @@
Function REACT_ITEM_Actions(Action, CalcColName, FSList, Handle, Name, FMC, Record, Status, OrigRecord, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) Function REACT_ITEM_ACTIONS(Action, CalcColName, FSList, Handle, Name, FMC, Record, Status, OrigRecord, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)
/*********************************************************************************************************************** /***********************************************************************************************************************
This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written 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 Infineon. permission from Infineon.
Name : RDS_Actions Name : React_Item_Actions
Description : Handles calculated columns and MFS calls for the current table. Description : Handles calculated columns and MFS calls for the current table.
Notes : This function uses @ID, @RECORD, and @DICT to make sure {ColumnName} references work correctly. Notes : This function uses @ID, @RECORD, and @DICT to make sure {ColumnName} references work correctly.
If called from outside of a calculated column these will need to be set and restored. If called from outside of a calculated column these will need to be set and restored.
Parameters : Parameters :
Action [in] -- Name of the action to be taken Action [in] -- Name of the action to be taken
CalcColName [in] -- Name of the calculated column that needs to be processed. Normally this should only be CalcColName [in] -- Name of the calculated column that needs to be processed. Normally this should only be
populated when the CalcField action is being used. populated when the CalcField action is being used.
FSList [in] -- The list of MFSs and the BFS name for the current file or volume. This is an @SVM FSList [in] -- The list of MFSs and the BFS name for the current file or volume. This is an @SVM
delimited array, with the current MFS name as the first value in the array, and the BFS delimited array, with the current MFS name as the first value in the array, and the BFS
name as the last value. Normally set by a calling MFS. name as the last value. Normally set by a calling MFS.
Handle [in] -- The file handle of the file or media map being accessed. Note, this does contain the Handle [in] -- The file handle of the file or media map being accessed. Note, this does contain the
entire handle structure that the Basic+ Open statement would provide. Normally set by a entire handle structure that the Basic+ Open statement would provide. Normally set by a
calling MFS. calling MFS.
Name [in] -- The name (key) of the record or file being accessed. Normally set by a calling MFS. Name [in] -- The name (key) of the record or file being accessed. Normally set by a calling MFS.
FMC [in] -- Various functions. Normally set by a calling MFS. FMC [in] -- Various functions. Normally set by a calling MFS.
Record [in] -- The entire record (for record-oriented functions) or a newly-created handle (for Record [in] -- The entire record (for record-oriented functions) or a newly-created handle (for
"get handle" functions). Normally set by a calling MFS. "get handle" functions). Normally set by a calling MFS.
Status [in/out] -- Indicator of the success or failure of an action. Normally set by the calling MFS but Status [in/out] -- Indicator of the success or failure of an action. Normally set by the calling MFS but
for some actions can be set by the action handler to indicate failure. for some actions can be set by the action handler to indicate failure.
OrigRecord [in] -- Original content of the record being processed by the current action. This is OrigRecord [in] -- Original content of the record being processed by the current action. This is
automatically being assigned by the WRITE_RECORD and DELETE_RECORD actions within automatically being assigned by the WRITE_RECORD and DELETE_RECORD actions within
BASE_MFS. BASE_MFS.
Param1-10 [in/out] -- Additional request parameter holders Param1-10 [in/out] -- Additional request parameter holders
ActionFlow [out] -- Used to control the action chain (see the ACTION_SETUP insert for more information.) ActionFlow [out] -- Used to control the action chain (see the ACTION_SETUP insert for more information.)
Can also be used to return a special value, such as the results of the CalcField Can also be used to return a special value, such as the results of the CalcField
method. method.
History : (Date, Initials, Notes) History : (Date, Initials, Notes)
04/10/18 dmb Original programmer. 05/12/25 djs Updated WRITE_PRE action to update the CURR_STATUS_STATIC field if the retire date changes.
10/04/18 djs Added a trigger within the WRITE_RECORD event, which fires when the reactor number has
changed. When this occurs the related RDS_LAYER records for this RDS record are populated ***********************************************************************************************************************/
with the most recent associated TOOL_PARMS record. (related by PSN and Reactor)
#pragma precomp SRP_PreCompiler
***********************************************************************************************************************/
$Insert ACTION_SETUP
#pragma precomp SRP_PreCompiler $Insert APP_INSERTS
$Insert FILE.SYSTEM.EQUATES
$Insert FILE.SYSTEM.EQUATES $Insert REACT_ITEM_EQUATES
$Insert ACTION_SETUP
$Insert RDS_EQUATES Declare function obj_React_Item
$Insert CLEAN_INSP_EQUATES Declare subroutine Error_Services
$Insert COMPANY_EQUATES
$Insert RDS_LAYER_EQUATES If KeyID then GoSub Initialize_System_Variables
$Insert TOOL_PARMS_EQUATES
$Insert RLIST_EQUATES Begin Case
$Insert APP_INSERTS
$Insert QA_MET_EQUATES Case Action _EQC 'CalculateColumn' ; GoSub CalculateColumn
$Insert PRS_STAGE_EQUATES Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE
$Insert WO_MAT_EQUATES Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD
$Insert WO_MAT_QA_EQUATES Case Action _EQC 'READONLY_RECORD_PRE' ; GoSub READONLY_RECORD_PRE
Case Action _EQC 'READONLY_RECORD' ; GoSub READONLY_RECORD
Equ COMMA$ to ',' Case Action _EQC 'WRITE_RECORD_PRE' ; GoSub WRITE_RECORD_PRE
Case Action _EQC 'WRITE_RECORD' ; GoSub WRITE_RECORD
Declare function Error_Services, Database_Services, obj_RDS_Test, Logging_Services, Environment_Services, SRP_Math Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE
Declare function Tool_Parms_Services, Signature_Services, obj_WO_Mat_QA, Datetime, Override_Services, obj_WO_Mat Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD
Declare subroutine Error_Services, Database_Services, Logging_Services, Set_Status, Schedule_Services_Dev Case Otherwise$ ; Status = 'Invalid Action'
Declare subroutine Work_Order_Services, Material_Services, Set_FSError
End Case
If KeyID then GoSub Restore_System_Variables
If Assigned(ActionFlow) else ActionFlow = ACTION_CONTINUE$
If KeyID then GoSub Initialize_System_Variables
Return ActionFlow
Begin Case
Case Action _EQC 'CalculateColumn' ; GoSub CalculateColumn ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE // Calculated Columns
Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD //
Case Action _EQC 'READONLY_RECORD_PRE' ; GoSub READONLY_RECORD_PRE // The typical structure of a calculated column will look like this:
Case Action _EQC 'READONLY_RECORD' ; GoSub READONLY_RECORD //
Case Action _EQC 'WRITE_RECORD_PRE' ; GoSub WRITE_RECORD_PRE // Declare function Database_Services
Case Action _EQC 'WRITE_RECORD' ; GoSub WRITE_RECORD //
Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE // @ANS = Database_Services('CalculateColumn')
Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Case Otherwise$ ; Status = 'Invalid Action'
CalculateColumn:
End Case
// Make sure the ActionFlow return variable is cleared in case nothing is calculated.
If KeyID then GoSub Restore_System_Variables ActionFlow = ''
If Assigned(ActionFlow) else ActionFlow = ACTION_CONTINUE$ return
Return ActionFlow // ----- MFS calls -----------------------------------------------------------------------------------------------------
READ_RECORD_PRE:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // In order to stop a record from being read in this action these lines of code must be used:
// Calculated Columns //
// // OrigFileError = 100 : @FM : KeyID
// The typical structure of a calculated column will look like this: // Status = 0
// // Record = ''
// Declare function Database_Services // ActionFlow = ACTION_STOP$
// return
// @ANS = Database_Services('CalculateColumn')
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
READ_RECORD:
CalculateColumn:
// In order to stop a record from being read in this action these lines of code must be used:
// Make sure the ActionFlow return variable is cleared in case nothing is calculated. //
ActionFlow = '' // OrigFileError = 100 : @FM : KeyID
// Status = 0
// Record = ''
return return
READONLY_RECORD_PRE:
// ----- MFS calls ----------------------------------------------------------------------------------------------------- // In order to stop a record from being read in this action these lines of code must be used:
//
READ_RECORD_PRE: // OrigFileError = 100 : @FM : KeyID
// In order to stop a record from being read in this action these lines of code must be used: // Status = 0
// // Record = ''
// OrigFileError = 100 : @FM : KeyID // ActionFlow = ACTION_STOP$
// Status = 0 return
// Record = ''
// ActionFlow = ACTION_STOP$
READONLY_RECORD:
// In order to stop a record from being read in this action these lines of code must be used:
return //
// OrigFileError = 100 : @FM : KeyID
READ_RECORD: // Status = 0
// Record = ''
// In order to stop a record from being read in this action these lines of code must be used: return
//
// OrigFileError = 100 : @FM : KeyID
// Status = 0 WRITE_RECORD_PRE:
// Record = ''
ErrMsg = ''
return
// Req'd parameter checks
READONLY_RECORD_PRE: ItemType = {RI_TYPE}
// In order to stop a record from being read in this action these lines of code must be used:
// * If ItemType EQ '' then ErrMsg := 'Item Type was not specified. '
// OrigFileError = 100 : @FM : KeyID
// Status = 0 If ErrMsg NE '' then
// Record = '' Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
// ActionFlow = ACTION_STOP$ OrigFileError = 104:': Error Saving Reactor Item: ' : ErrMsg
return Status = 0
Record = ''
READONLY_RECORD: ActionFlow = ACTION_STOP$
// In order to stop a record from being read in this action these lines of code must be used: end else
// OrigRetireDt = OrigRecord<REACT_ITEM_RETIRE_DT$>
// OrigFileError = 100 : @FM : KeyID NewRetireDt = Record<REACT_ITEM_RETIRE_DT$>
// Status = 0 OrigNotes = OrigRecord<REACT_ITEM_NOTES$>
// Record = '' NewNotes = Record<REACT_ITEM_NOTES$>
return If ( (OrigRetireDt NE NewRetireDt) or (OrigNotes NE NewNotes) ) then
CurrStatus = obj_React_Item('CurrStatus', Name:@RM:Record)
WRITE_RECORD_PRE: Record<REACT_ITEM_CURR_STATUS_STATIC$> = CurrStatus
SaveRecord = Record
ErrMsg = '' end
end
//Req'd parameter checks
ItemType = {RI_TYPE} return
If ItemType EQ '' then WRITE_RECORD:
ErrMsg := 'Item Type was not specified. ' return
end
DELETE_RECORD_PRE:
If ErrMsg NE '' then return
Error_Services('Add', 'Error Saving Reactor Item: ' : ErrMsg)
OrigFileError = 104:': Error Saving Reactor Item: ' : ErrMsg DELETE_RECORD:
Status = 0 return
Record = ''
ActionFlow = ACTION_STOP$
end ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs
return ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
WRITE_RECORD: ClearCursors:
For counter = 0 to 8
ClearSelect counter
return Next counter
DELETE_RECORD_PRE: return
return Initialize_System_Variables:
DELETE_RECORD: // Save these for restoration later
return SaveDict = @DICT
SaveID = @ID
SaveRecord = @RECORD
OrigFileError = @FILE.ERROR
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs // Now make sure @DICT, ID, and @RECORD are populated
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// CurrentDictName = ''
If @DICT then
ClearCursors: DictHandle = @DICT<1, 2>
For counter = 0 to 8 Locate DictHandle in @TABLES(5) Using @FM Setting fPos then
ClearSelect counter CurrentDictName = Field(@TABLES(0), @FM, fPos, 1)
Next counter end
return end
If CurrentDictName NE DictName then
Initialize_System_Variables: Open DictName to @DICT else Status = 'Unable to initialize @DICT'
end
// Save these for restoration later
SaveDict = @DICT @ID = KeyID
SaveID = @ID If Record else
SaveRecord = @RECORD // Record might not have been passed in. Read the record from the database table just to make sure.
OrigFileError = @FILE.ERROR @FILE.ERROR = ''
Open TableName to hTable then
// Now make sure @DICT, ID, and @RECORD are populated FullFSList = hTable[1, 'F' : @VM]
CurrentDictName = '' BFS = FullFSList[-1, 'B' : @SVM]
If @DICT then LastHandle = hTable[-1, 'B' : \0D\]
DictHandle = @DICT<1, 2> FileHandle = \0D\ : LastHandle[1, @VM]
Locate DictHandle in @TABLES(5) Using @FM Setting fPos then
CurrentDictName = Field(@TABLES(0), @FM, fPos, 1) Call @BFS(READO.RECORD, BFS, FileHandle, KeyID, FMC, Record, ReadOStatus)
end end
end end
@RECORD = Record
If CurrentDictName NE DictName then
Open DictName to @DICT else Status = 'Unable to initialize @DICT' return
end
@ID = KeyID Restore_System_Variables:
If Record else
// Record might not have been passed in. Read the record from the database table just to make sure. Transfer SaveDict to @DICT
@FILE.ERROR = '' Transfer SaveID to @ID
Open TableName to hTable then Transfer SaveRecord to @RECORD
FullFSList = hTable[1, 'F' : @VM] @FILE.ERROR = OrigFileError
BFS = FullFSList[-1, 'B' : @SVM]
LastHandle = hTable[-1, 'B' : \0D\] return
FileHandle = \0D\ : LastHandle[1, @VM]
Call @BFS(READO.RECORD, BFS, FileHandle, KeyID, FMC, Record, ReadOStatus)
end
end
@RECORD = Record
return
Restore_System_Variables:
Transfer SaveDict to @DICT
Transfer SaveID to @ID
Transfer SaveRecord to @RECORD
@FILE.ERROR = OrigFileError
return

View File

@ -20,62 +20,110 @@ Compile function React_Item_Services(@Service, @Params)
08/02/22 djs Original programmer. 08/02/22 djs Original programmer.
***********************************************************************************************************************/ ***********************************************************************************************************************/
#pragma precomp SRP_PreCompiler #pragma precomp SRP_PreCompiler
$Insert LOGICAL
$Insert APP_INSERTS $Insert APP_INSERTS
$Insert SERVICE_SETUP
$Insert RLIST_EQUATES $Insert RLIST_EQUATES
$Insert REACT_ITEM_EQUATES $Insert REACT_ITEM_EQUATES
Declare function Database_Services, Error_Services, SRP_JSON, NextKey Declare function Database_Services, Error_Services, SRP_JSON, NextKey, SRP_Date, obj_React_Item, SRP_Array
Declare subroutine SRP_JSON, Error_Services, Btree.Extract, Database_Services Declare subroutine SRP_JSON, Error_Services, Btree.Extract, Database_Services, Update_Index
GoToService
Return Response or "" GoToService else
Error_Services('Set', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.')
end
//----------------------------------------------------------------------------- Return Response else ''
// SERVICES
//-----------------------------------------------------------------------------
Service GetAllReactItemKeys() ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
AllKeys = '' // Service Parameter Options
RList('SELECT REACT_ITEM', TARGET_ACTIVELIST$, '', '', '') ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Done = False$ Options BOOLEAN = True$, False$
Reactors = ''
Loop
Readnext keyId else Done = True$
Until Done
AllKeys<1,-1> = keyId
Repeat
Response = AllKeys
end service
Service GetReactItems(RIType, CurrStatus) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Services
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Service GetReactItems(RIType, CurrStatus, EntryDtStart, EntryDtEnd, RetireDtStart, RetireDtEnd, IncludeNullRetireDt=BOOLEAN)
ErrorMsg = '' ErrorMsg = ''
Response = '' Response = ''
Swap ',' with @VM in RIType If ( (RIType NE '') or (CurrStatus NE '') or (EntryDtStart NE '') or (EntryDtEnd NE '') or (RetireDtStart NE '') or (RetireDtEnd NE '') or (IncludeNullRetireDt NE '') ) then
Swap ',' with @VM in CurrStatus If EntryDtStart NE '' and Not(Num(EntryDtStart)) then EntryDtStart = IConv(EntryDtStart, 'D')
If EntryDtEnd NE '' and Not(Num(EntryDtEnd)) then EntryDtEnd = IConv(EntryDtEnd, 'D')
Open 'DICT.REACT_ITEM' to DictReactItem then If RetireDtStart NE '' and Not(Num(RetireDtStart)) then RetireDtStart = IConv(RetireDtStart, 'D')
If RetireDtEnd NE '' and Not(Num(RetireDtEnd)) then RetireDtEnd = IConv(RetireDtEnd, 'D')
SearchString = '' Open 'DICT.REACT_ITEM' to DictReactItem then
If RIType NE '' then SearchString := 'RI_TYPE':@VM:RIType:@FM SearchString = ''
If CurrStatus NE '' then SearchString := 'CURR_STATUS':@VM:CurrStatus:@FM If RIType NE '' then
RIKeys = '' Swap ',' with @VM in RIType
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, '', '') SearchString := 'RI_TYPE':@VM:RIType:@FM
ErrCode = '' end
IF Get_Status(ErrCode) then Begin Case
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract. Error code ':ErrCode:'.' Case ( (EntryDtStart NE '') and (EntryDtEnd NE '') )
EntryDtStart = OConv(EntryDtStart - 1, 'D4/')
EntryDtEnd = OConv(EntryDtEnd + 1, 'D4/')
SearchString := 'ENTER_DT':@VM:EntryDtStart:'~':EntryDtEnd:@FM
Case (EntryDtStart NE '')
EntryDtStart = OConv(EntryDtStart, 'D4/')
SearchString := 'ENTER_DT':@VM:'>=':EntryDtStart:@FM
Case (EntryDtEnd NE '')
SearchString := 'ENTER_DT':@VM:'<=':EntryDtEnd:@FM
Case Otherwise$
Null
End Case
Begin Case
Case ( (RetireDtStart NE '') and (RetireDtEnd NE '') )
RetireDtStart = OConv(RetireDtStart - 1, 'D4/')
RetireDtEnd = OConv(RetireDtEnd + 1, 'D4/')
SearchString := 'RETIRE_DT':@VM:RetireDtStart:'~':RetireDtEnd
If IncludeNullRetireDt then SearchString := @VM:''
SearchString := @FM
Case (RetireDtStart NE '')
RetireDtStart = OConv(RetireDtStart, 'D4/')
SearchString := 'RETIRE_DT':@VM:'>=':RetireDtStart
If IncludeNullRetireDt then SearchString := @VM:''
SearchString := @FM
Case (RetireDtEnd NE '')
SearchString := 'RETIRE_DT':@VM:'<=':RetireDtEnd
If IncludeNullRetireDt then SearchString := @VM:''
SearchString := @FM
Case IncludeNullRetireDt
SearchString := 'RETIRE_DT':@VM:'':@FM
Case Otherwise$
Null
End Case
If CurrStatus NE '' then
Swap ',' with @VM in CurrStatus
SearchString := 'CURR_STATUS_STATIC':@VM:CurrStatus:@FM
end
Flag = ''
RIKeys = ''
Btree.Extract(SearchString, 'REACT_ITEM', DictReactItem, RIKeys, 'E', Flag)
If Flag EQ 0 then
EnterDtms = Xlate('REACT_ITEM', RIKeys, 'ENTER_DTM', 'X')
Array = RIKeys:@FM:EnterDtms
Array = SRP_Array('SortRows', Array, 'DN2', 'ARRAY', @FM, @VM)
Response = Array<1>
end else
ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract.'
end
end else end else
Response = RIKeys ErrorMsg = 'Error in ':Service:' service. Error opening REACT_ITEM dictionary.'
end end
end else end else
ErrorMsg = 'Error in ':Service:' service. Error opening REACT_ITEM dictionary.' AllKeys = ''
RList('SELECT REACT_ITEM', TARGET_ACTIVELIST$, '', '', '')
Done = False$
Loop
Readnext KeyId else Done = True$
Until Done
AllKeys<1, -1> = KeyId
Repeat
Response = AllKeys
end end
If ErrorMsg NE '' then If ErrorMsg NE '' then
Error_Services('Add', ErrorMsg) Error_Services('Add', ErrorMsg)
end end
@ -155,7 +203,6 @@ Service ConvertRecordToJSON(KeyID, Record, ItemURL)
Response = jsonRecord Response = jsonRecord
end service end service
@ -326,11 +373,11 @@ Service GetReactItemTemplateJSON()
Response = jsonRecord Response = jsonRecord
end service end service
Service CreateReactItem(Record) Service CreateReactItem(Record)
ErrMsg = '' ErrMsg = ''
KeyID = '' KeyID = ''
If Record NE '' then If Record NE '' then
@ -355,6 +402,7 @@ Service CreateReactItem(Record)
end service end service
Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL) Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
jsonRecord = '' jsonRecord = ''
@ -407,6 +455,32 @@ Service ConvertRecordToJSONQuick(KeyID, Record, ItemURL)
Response = jsonRecord Response = jsonRecord
end service end service
Service UpdateReactItemStatus(RINo)
If RINo NE '' then
If RowExists('REACT_ITEM', RINo) then
RIRec = Database_Services('ReadDataRow', 'REACT_ITEM', RINo)
If Error_Services('NoError') then
Update_Index('REACT_ITEM_HIST', 'RI_NO', False$, True$)
ReactItemCurrStatus = obj_React_Item('CurrStatus', RINo:@RM:RIRec)
ReactItemCurrStatusStatic = RIRec<REACT_ITEM_CURR_STATUS_STATIC$>
If ReactItemCurrStatus NE ReactItemCurrStatusStatic then
Open 'REACT_ITEM' to hTable then
WriteV ReactItemCurrStatus on hTable, RINo, REACT_ITEM_CURR_STATUS_STATIC$ else
Error_Services('Add', 'Error in ':Service:' service. Error writing CURR_STATUS_STATIC, ':ReactItemCurrStatus:', for REACT_ITEM ':RINo:'.')
end
end else
Error_Services('Add', 'Error in ':Service:' service. Error opening REACT_ITEM table for status update.')
end
end
end
end
end
end service
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs // Internal GoSubs
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -419,6 +493,3 @@ ClearCursors:
return return

View File

@ -6,25 +6,27 @@ compile insert REACT_ITEM_EQUATES
----------------------------------------*/ ----------------------------------------*/
Equ REACT_ITEM_RI_NO$ To 0 Equ REACT_ITEM_RI_NO$ To 0
Equ REACT_ITEM_DESC$ To 1 Equ REACT_ITEM_DESC$ To 1
Equ REACT_ITEM_ENTER_BY$ To 2 Equ REACT_ITEM_ENTER_BY$ To 2
Equ REACT_ITEM_ENTER_DTM$ To 3 Equ REACT_ITEM_ENTER_DTM$ To 3
Equ REACT_ITEM_RETIRE_BY$ To 4 Equ REACT_ITEM_RETIRE_BY$ To 4
Equ REACT_ITEM_RETIRE_DT$ To 5 Equ REACT_ITEM_RETIRE_DT$ To 5
Equ REACT_ITEM_PART_TYPE$ To 6 Equ REACT_ITEM_PART_TYPE$ To 6
Equ REACT_ITEM_MFR_CD$ To 7 Equ REACT_ITEM_MFR_CD$ To 7
Equ REACT_ITEM_MFR_PART_NO$ To 8 Equ REACT_ITEM_MFR_PART_NO$ To 8
Equ REACT_ITEM_MFR_PART_NO_REV$ To 9 Equ REACT_ITEM_MFR_PART_NO_REV$ To 9
Equ REACT_ITEM_SERIAL_NO$ To 10 Equ REACT_ITEM_SERIAL_NO$ To 10
Equ REACT_ITEM_RI_TYPE$ To 11 Equ REACT_ITEM_RI_TYPE$ To 11
Equ REACT_ITEM_SUSC_SIZE$ To 12 Equ REACT_ITEM_SUSC_SIZE$ To 12
Equ REACT_ITEM_PKT_QTY$ To 13 Equ REACT_ITEM_PKT_QTY$ To 13
Equ REACT_ITEM_PKT_SIZE$ To 14 Equ REACT_ITEM_PKT_SIZE$ To 14
Equ REACT_ITEM_NOTES$ To 15 Equ REACT_ITEM_NOTES$ To 15
Equ REACT_ITEM_PPLUS_RDS_NO$ To 16 Equ REACT_ITEM_PPLUS_RDS_NO$ To 16
Equ REACT_ITEM_SERIAL$ To 17 Equ REACT_ITEM_SERIAL$ To 17
Equ REACT_ITEM_TUBE_GRADE$ To 18 Equ REACT_ITEM_TUBE_GRADE$ To 18
Equ REACT_ITEM_TUBE_PRESS$ To 19 Equ REACT_ITEM_TUBE_PRESS$ To 19
Equ REACT_ITEM_TUBE_STYLE$ To 20 Equ REACT_ITEM_TUBE_STYLE$ To 20
Equ REACT_ITEM_NEW_OR_REFURB$ To 21 Equ REACT_ITEM_NEW_OR_REFURB$ To 21
Equ REACT_ITEM_CURR_STATUS_STATIC$ To 22