Merged PR 13809: ABORT/ALARM Nica Integration
## Background Currently when a mode change sub mode is an ABORT/ALARM sub mode, operators must refer to an Excel spreadsheet matrix of which paper checklists to complete. This feature is part of an effort to further digitize work instructions and streamline the process of determining which checklists should be completed depending on the reason why a reactor alarmed / aborted. ## Description of Change NICA_ORDERS_SERVICES (and the NICA Integration Service) now support an order type "ABORT_ALARM", which may be triggered when a reactor mode change occurs and the sub mode contains "ABORT/ALARM". Whether or not a NICA order is created depends on if the NICA checklist defined in OpenInsight applies to that reactor type (EpiPro is excluded for now). The "flows" of checklists to prescribe are defined in the REACT_PROB_CAT records for the ABORT/ALARM sub modes. Furthermore, NICA checklists defined in OpenInsight can now feature a property of whether or not they should _not_ be re-prescribed if a new NICA order is created of the same type while one is already active. ## Testing - Local testing - UAT by Jonathon Sperling ## Notes In the previous NICA integration feature, Intrusive Maintenance, the MonA group resource name was stored in environment variables instead of in ENVIRONMENT_SERVICES. After further testing, this turned out to be an unviable option as environment variables that are picked up are from the user's client or the terminal server they are running OpenInsight from. Setting environment variables on all clients and the terminal servers is not practical, so this was removed in a previous PR. Related work items: #175188
This commit is contained in:
parent
0716e25303
commit
6050b346a5
@ -231,3 +231,4 @@ Restore_System_Variables:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,11 +27,14 @@ $Insert SERVICE_SETUP
|
|||||||
$Insert REACTOR_EQUATES
|
$Insert REACTOR_EQUATES
|
||||||
$Insert REACTOR_LOG_EQUATES
|
$Insert REACTOR_LOG_EQUATES
|
||||||
$Insert NICA_ORDERS_EQUATES
|
$Insert NICA_ORDERS_EQUATES
|
||||||
|
$Insert NICA_CHECKLISTS_EQUATES
|
||||||
$Insert NICA_ORDERS_CHECKLISTS_EQUATES
|
$Insert NICA_ORDERS_CHECKLISTS_EQUATES
|
||||||
$Insert RLIST_EQUATES
|
$Insert RLIST_EQUATES
|
||||||
|
|
||||||
|
Equ SECONDS_IN_DAY$ to 86400
|
||||||
|
|
||||||
Declare function Environment_Services, Database_Services, Error_Services, Logging_Services, Nica_Orders_Services
|
Declare function Environment_Services, Database_Services, Error_Services, Logging_Services, Nica_Orders_Services
|
||||||
Declare function Httpclient_Services, SRP_JSON, Reactor_Services, Reactor_Log_Services, SRP_Array
|
Declare function Httpclient_Services, SRP_JSON, Reactor_Services, Reactor_Log_Services, SRP_Array, Datetime
|
||||||
Declare subroutine Error_Services, Btree.Extract, Database_Services, Logging_Services, Nica_Orders_Services, Delay
|
Declare subroutine Error_Services, Btree.Extract, Database_Services, Logging_Services, Nica_Orders_Services, Delay
|
||||||
Declare subroutine Httpclient_Services, SRP_JSON, Mona_Services, Service_Services, Extract_SI_Keys
|
Declare subroutine Httpclient_Services, SRP_JSON, Mona_Services, Service_Services, Extract_SI_Keys
|
||||||
|
|
||||||
@ -49,7 +52,7 @@ Return Response or ""
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Options BOOLEAN = True$, False$
|
Options BOOLEAN = True$, False$
|
||||||
Options ENTITY_TYPES = 'REACTOR','REACTOR_LOG'
|
Options ENTITY_TYPES = 'REACTOR','REACTOR_LOG'
|
||||||
Options ORDER_TYPES = 'INTRUSIVE_MAINT','CHANGEOVER','INITIATE_IDLE','IDLE','ASM_HTR_TUBE_CHANGE','ASM_HTR_ANNUAL_PM','ASM_HTR_SEMIANNUAL_PM','ASM_HTR_FIVE_AND_TEN_YEAR_PM','IQS_HGCV_ALARM'
|
Options ORDER_TYPES = 'INTRUSIVE_MAINT','CHANGEOVER','INITIATE_IDLE','IDLE','ASM_HTR_TUBE_CHANGE','ASM_HTR_ANNUAL_PM','ASM_HTR_SEMIANNUAL_PM','ASM_HTR_FIVE_AND_TEN_YEAR_PM','IQS_HGCV_ALARM','ABORT_ALARM'
|
||||||
Options ORDER_STATUSES = 'new','creating','not-started','in-progress','cancelled','done'
|
Options ORDER_STATUSES = 'new','creating','not-started','in-progress','cancelled','done'
|
||||||
Options REACTOR_TYPES = 'ASM','ASM+','HTR','EPP'
|
Options REACTOR_TYPES = 'ASM','ASM+','HTR','EPP'
|
||||||
|
|
||||||
@ -125,9 +128,10 @@ Service UpdateNicaFlags()
|
|||||||
Open 'REACTOR' to hReactor then
|
Open 'REACTOR' to hReactor then
|
||||||
Open 'REACTOR_LOG' to hReactorLog then
|
Open 'REACTOR_LOG' to hReactorLog then
|
||||||
For each ReactNo in ReactNos using @FM
|
For each ReactNo in ReactNos using @FM
|
||||||
ProveInActive = Reactor_Services('GetProveInActive', ReactNo)
|
ProveInActive = Reactor_Services('GetProveInActive', ReactNo)
|
||||||
HgCVChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM') NE '')
|
HgCVChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM') NE '')
|
||||||
IntrMaintChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'INTRUSIVE_MAINT') NE '')
|
IntrMaintChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'INTRUSIVE_MAINT') NE '')
|
||||||
|
AbortAlarmChecklistActive = (Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'ABORT_ALARM') NE '')
|
||||||
Open 'REACTOR' to hReactor then
|
Open 'REACTOR' to hReactor then
|
||||||
ReadV CacheProveInActive from hReactor, ReactNo, REACTOR_PROVE_IN_ACTIVE$ then
|
ReadV CacheProveInActive from hReactor, ReactNo, REACTOR_PROVE_IN_ACTIVE$ then
|
||||||
If CacheProveInActive NE ProveInActive then
|
If CacheProveInActive NE ProveInActive then
|
||||||
@ -153,6 +157,14 @@ Service UpdateNicaFlags()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
ReadV CacheAbortAlarmChecklistActive from hReactor, ReactNo, REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$ then
|
||||||
|
If CacheAbortAlarmChecklistActive NE AbortAlarmChecklistActive then
|
||||||
|
Lock hReactor, ReactNo then
|
||||||
|
WriteV AbortAlarmChecklistActive on hReactor, ReactNo, REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$ else Null
|
||||||
|
Unlock hReactor, ReactNo else Null
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, 'REACT_MODE_KEY_IDS', 'X')
|
CurrModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, 'REACT_MODE_KEY_IDS', 'X')
|
||||||
CurrModeKey = CurrModeKey[-1, 'B':@VM]
|
CurrModeKey = CurrModeKey[-1, 'B':@VM]
|
||||||
@ -182,12 +194,12 @@ Service GetActiveOrders(EntityType=ENTITY_TYPES, EntityId, OrderTypes=ORDER_TYPE
|
|||||||
end service
|
end service
|
||||||
|
|
||||||
|
|
||||||
Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES, OrderFlows)
|
Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES, OrderFlows, OrderResponseLevel, ChecklistIds)
|
||||||
|
|
||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
EntityTypes = 'REACTOR,REACTOR_LOG'
|
EntityTypes = 'REACTOR,REACTOR_LOG'
|
||||||
OrderTypes = 'INTRUSIVE_MAINT,CHANGEOVER,INITIATE_IDLE,IDLE,ASM_HTR_TUBE_CHANGE,ASM_HTR_ANNUAL_PM,'
|
OrderTypes = 'INTRUSIVE_MAINT,CHANGEOVER,INITIATE_IDLE,IDLE,ASM_HTR_TUBE_CHANGE,ASM_HTR_ANNUAL_PM,'
|
||||||
OrderTypes := 'ASM_HTR_SEMIANNUAL_PM,ASM_HTR_FIVE_AND_TEN_YEAR_PM,IQS_HGCV_ALARM'
|
OrderTypes := 'ASM_HTR_SEMIANNUAL_PM,ASM_HTR_FIVE_AND_TEN_YEAR_PM,IQS_HGCV_ALARM,ABORT_ALARM'
|
||||||
|
|
||||||
Machine = Environment_Services('GetServer')
|
Machine = Environment_Services('GetServer')
|
||||||
Headers = 'Logging DTM' : @FM : 'Machine' : @FM : 'Log'
|
Headers = 'Logging DTM' : @FM : 'Machine' : @FM : 'Log'
|
||||||
@ -198,7 +210,7 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES,
|
|||||||
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
||||||
|
|
||||||
Prod = Environment_Services('IsProd')
|
Prod = Environment_Services('IsProd')
|
||||||
IgnoreCertErrors = Not(Prod)
|
IgnoreCertErrors = Not(Prod)
|
||||||
|
|
||||||
If ( (EntityType NE '') and (EntityID NE '') and (OrderType NE '') ) then
|
If ( (EntityType NE '') and (EntityID NE '') and (OrderType NE '') ) then
|
||||||
|
|
||||||
@ -220,7 +232,7 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES,
|
|||||||
CurrActiveOrders = Nica_Orders_Services('GetActiveOrders', EntityType, EntityID, OrderType)
|
CurrActiveOrders = Nica_Orders_Services('GetActiveOrders', EntityType, EntityID, OrderType)
|
||||||
OrderTypeAlreadyActive = (CurrActiveOrders NE '')
|
OrderTypeAlreadyActive = (CurrActiveOrders NE '')
|
||||||
|
|
||||||
If ( (OrderTypeAlreadyActive EQ False$) or (OrderType EQ 'INTRUSIVE_MAINT') ) then
|
If ( (OrderTypeAlreadyActive EQ False$) or (OrderType EQ 'INTRUSIVE_MAINT') or (OrderType EQ 'ABORT_ALARM') ) then
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
Case EntityType EQ 'REACTOR'
|
Case EntityType EQ 'REACTOR'
|
||||||
@ -233,7 +245,7 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES,
|
|||||||
// Build request
|
// Build request
|
||||||
Body = ''
|
Body = ''
|
||||||
NewSortedChecklistIds = ''
|
NewSortedChecklistIds = ''
|
||||||
If OrderType NE 'INTRUSIVE_MAINT' then
|
If ( (OrderType NE 'INTRUSIVE_MAINT') and (OrderType NE 'ABORT_ALARM') ) then
|
||||||
// Original API endpoint just uses query params, no body.
|
// Original API endpoint just uses query params, no body.
|
||||||
NicaURL = Environment_Services("GetProveInApiUrl"):'/checklists?'
|
NicaURL = Environment_Services("GetProveInApiUrl"):'/checklists?'
|
||||||
NicaURL := 'checklistType=':OrderType
|
NicaURL := 'checklistType=':OrderType
|
||||||
@ -242,46 +254,71 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES,
|
|||||||
// New API endpoint uses JSON body instead of query params.
|
// New API endpoint uses JSON body instead of query params.
|
||||||
NicaURL = Environment_Services("GetProveInApiUrl"):'/order'
|
NicaURL = Environment_Services("GetProveInApiUrl"):'/order'
|
||||||
If OrderFlows NE '' then
|
If OrderFlows NE '' then
|
||||||
ReactorType = Xlate('REACTOR', ReactNo, REACTOR_REACT_TYPE$, 'X')
|
If ChecklistIds NE '' then
|
||||||
NewChecklistIds = Nica_Orders_Services('GetFlowChecklistIds', OrderFlows, OrderType, ReactorType)
|
NewChecklistIds = ChecklistIds
|
||||||
// Get incomplete checklists and add them to the new order
|
If CurrActiveOrders NE '' then
|
||||||
If CurrActiveOrders NE '' then
|
IncompleteChecklistIds = ''
|
||||||
IncompleteChecklistIds = ''
|
CompleteChecklistIds = ''
|
||||||
Open 'DICT.NICA_ORDERS_CHECKLISTS' to hDict then
|
Open 'DICT.NICA_ORDERS_CHECKLISTS' to hDict then
|
||||||
For each ActiveNicaOrdersId in CurrActiveOrders using @VM
|
For each ActiveNicaOrdersId in CurrActiveOrders using @VM
|
||||||
IncompleteOrderChecklistIds = ''
|
// Get incomplete checklists so we can add them to the new order
|
||||||
Flag = ''
|
IncompleteOrderChecklistIds = ''
|
||||||
Query = 'NICA_ORDERS_ID':@VM:ActiveNicaOrdersId:@FM
|
Flag = ''
|
||||||
Query := 'IS_COMPLETE':@VM:False$:@FM
|
Query = 'NICA_ORDERS_ID':@VM:ActiveNicaOrdersId:@FM
|
||||||
Btree.Extract(Query, 'NICA_ORDERS_CHECKLISTS', hDict, IncompleteOrderChecklistIds, 'E', Flag)
|
Query := 'IS_COMPLETE':@VM:False$:@FM
|
||||||
If Flag EQ 0 then
|
Btree.Extract(Query, 'NICA_ORDERS_CHECKLISTS', hDict, IncompleteOrderChecklistIds, 'E', Flag)
|
||||||
IncompleteOrderChecklistIdsRot = SRP_Array('Rotate', IncompleteOrderChecklistIds, @VM, '*')
|
If Flag EQ 0 then
|
||||||
PrevChecklistIds = IncompleteOrderChecklistIdsRot<0, 2>
|
IncompleteOrderChecklistIdsRot = SRP_Array('Rotate', IncompleteOrderChecklistIds, @VM, '*')
|
||||||
Swap '*' with @VM in PrevChecklistIds
|
PrevChecklistIds = IncompleteOrderChecklistIdsRot<0, 2>
|
||||||
IncompleteChecklistIds<0, -1> = PrevChecklistIds
|
Swap '*' with @VM in PrevChecklistIds
|
||||||
end
|
IncompleteChecklistIds<0, -1> = PrevChecklistIds
|
||||||
Next ActiveNicaOrdersId
|
end
|
||||||
|
|
||||||
|
// Build a list of completed checklists which should not be prescribed again in the replacement NICA order
|
||||||
|
CompleteOrderChecklistIds = ''
|
||||||
|
Flag = ''
|
||||||
|
Query = 'NICA_ORDERS_ID':@VM:ActiveNicaOrdersId:@FM
|
||||||
|
Query := 'IS_COMPLETE':@VM:True$:@FM
|
||||||
|
Btree.Extract(Query, 'NICA_ORDERS_CHECKLISTS', hDict, CompleteOrderChecklistIds, 'E', Flag)
|
||||||
|
If Flag EQ 0 then
|
||||||
|
CompleteOrderChecklistIdsRot = SRP_Array('Rotate', CompleteOrderChecklistIds, @VM, '*')
|
||||||
|
CompChecklistIds = CompleteOrderChecklistIdsRot<0, 2>
|
||||||
|
Swap '*' with @VM in CompChecklistIds
|
||||||
|
end
|
||||||
|
For each CompChecklistId in CompChecklistIds using @VM
|
||||||
|
RemoveIfComp = Xlate('NICA_CHECKLISTS', CompChecklistId, NICA_CHECKLISTS.REMOVE_IF_COMPLETE$, 'X')
|
||||||
|
If RemoveIfComp then
|
||||||
|
Locate CompChecklistId in NewChecklistIds using @VM setting vPos then
|
||||||
|
NewChecklistIds = Delete(NewChecklistIds, 0, vPos, 0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Next CompChecklistId
|
||||||
|
|
||||||
|
Next ActiveNicaOrdersId
|
||||||
|
end
|
||||||
|
NewChecklistIds<0, -1> = IncompleteChecklistIds
|
||||||
|
end
|
||||||
|
|
||||||
|
NewChecklistIds = SRP_Array('Clean', NewChecklistIds, 'TrimAndMakeUnique', @VM)
|
||||||
|
NewChecklistPriorities = Xlate('NICA_CHECKLISTS', NewChecklistIds, 'PRIORITY', 'X')
|
||||||
|
ChecklistArray = NewChecklistIds:@FM:NewChecklistPriorities
|
||||||
|
ChecklistArray = SRP_Array('SortRows', ChecklistArray, 'AR2', 'ARRAY', @FM, @VM)
|
||||||
|
NewSortedChecklistIds = ChecklistArray<1>
|
||||||
|
JsonRequest = ''
|
||||||
|
objJson = ''
|
||||||
|
If SRP_JSON(objJson, 'New', 'Object') then
|
||||||
|
SRP_JSON(objJson, 'SetValue', 'orderType', OrderType)
|
||||||
|
SRP_JSON(objJson, 'SetValue', 'reactorNumber', ReactNo)
|
||||||
|
NewChecklistInstIds = Xlate('NICA_CHECKLISTS', NewSortedChecklistIds, 'NICA_BASE_INSTRUCTION_ID', 'X')
|
||||||
|
SRP_JSON(objJson, 'SetValueArray', 'baseInstructionIds', NewChecklistInstIds, @VM)
|
||||||
|
Body = SRP_JSON(objJson, 'Stringify', 'Styled')
|
||||||
|
Convert @FM to '' in Body
|
||||||
|
SRP_JSON(objJson, 'Release')
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Failed to initialize JSON object for request body.'
|
||||||
end
|
end
|
||||||
NewChecklistIds<0, -1> = IncompleteChecklistIds
|
|
||||||
end
|
|
||||||
|
|
||||||
NewChecklistIds = SRP_Array('Clean', NewChecklistIds, 'TrimAndMakeUnique', @VM)
|
|
||||||
NewChecklistPriorities = Xlate('NICA_CHECKLISTS', NewChecklistIds, 'PRIORITY', 'X')
|
|
||||||
ChecklistArray = NewChecklistIds:@FM:NewChecklistPriorities
|
|
||||||
ChecklistArray = SRP_Array('SortRows', ChecklistArray, 'AR2', 'ARRAY', @FM, @VM)
|
|
||||||
NewSortedChecklistIds = ChecklistArray<1>
|
|
||||||
JsonRequest = ''
|
|
||||||
objJson = ''
|
|
||||||
If SRP_JSON(objJson, 'New', 'Object') then
|
|
||||||
SRP_JSON(objJson, 'SetValue', 'orderType', OrderType)
|
|
||||||
SRP_JSON(objJson, 'SetValue', 'reactorNumber', ReactNo)
|
|
||||||
NewChecklistInstIds = Xlate('NICA_CHECKLISTS', NewSortedChecklistIds, 'NICA_BASE_INSTRUCTION_ID', 'X')
|
|
||||||
SRP_JSON(objJson, 'SetValueArray', 'baseInstructionIds', NewChecklistInstIds, @VM)
|
|
||||||
Body = SRP_JSON(objJson, 'Stringify', 'Styled')
|
|
||||||
Convert @FM to '' in Body
|
|
||||||
SRP_JSON(objJson, 'Release')
|
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error in ':Service:' service. Failed to initialize JSON object for request body.'
|
ErrorMsg = 'Error in ':Service:' service. Null ChecklistIds variable passed in.'
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error in ':Service:' service. Null Orderflows variable passed in.'
|
ErrorMsg = 'Error in ':Service:' service. Null Orderflows variable passed in.'
|
||||||
@ -314,24 +351,30 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES,
|
|||||||
OrderId = SRP_JSON(ObjResponseJson, 'GetValue', 'id')
|
OrderId = SRP_JSON(ObjResponseJson, 'GetValue', 'id')
|
||||||
If OrderId NE '' then
|
If OrderId NE '' then
|
||||||
Convert @Lower.Case to @Upper.Case in OrderId
|
Convert @Lower.Case to @Upper.Case in OrderId
|
||||||
|
ReqDtm = SRP_JSON(ObjResponseJson, 'GetValue', 'requestedDate')
|
||||||
|
ReqDate = IConv(ReqDtm[1, 'FT'], 'DJ')
|
||||||
|
ReqTime = IConv(ReqDtm[Col2() + 1, 'F.'], 'MT')
|
||||||
|
CreatedDtm = ReqDate + (ReqTime/SECONDS_IN_DAY$)
|
||||||
NicaOrderRec = ''
|
NicaOrderRec = ''
|
||||||
NicaOrderRec<NICA_ORDERS.ORDER_TYPE$> = OrderType
|
NicaOrderRec<NICA_ORDERS.ORDER_TYPE$> = OrderType
|
||||||
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
||||||
NicaOrderRec<NICA_ORDERS.ENTITY_TYPE$> = EntityType
|
NicaOrderRec<NICA_ORDERS.ENTITY_TYPE$> = EntityType
|
||||||
NicaOrderRec<NICA_ORDERS.ENTITY_ID$> = EntityID
|
NicaOrderRec<NICA_ORDERS.ENTITY_ID$> = EntityID
|
||||||
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
||||||
|
NicaOrderRec<NICA_ORDERS.CREATED_DTM$> = CreatedDtm
|
||||||
If NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> EQ False$ then
|
If NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> EQ False$ then
|
||||||
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
||||||
end else
|
end else
|
||||||
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = 100
|
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = 100
|
||||||
end
|
end
|
||||||
|
NicaOrderRec<NICA_ORDERS.ORDER_FLOW_IDS$> = OrderFlows
|
||||||
LogNicaOrderRec = NicaOrderRec
|
NicaOrderRec<NICA_ORDERS.ORDER_RESPONSE_LEVEL$> = OrderResponseLevel
|
||||||
|
LogNicaOrderRec = NicaOrderRec
|
||||||
Swap @FM with ',' in LogNicaOrderRec
|
Swap @FM with ',' in LogNicaOrderRec
|
||||||
LogData = ''
|
LogData = ''
|
||||||
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM
|
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM
|
||||||
LogData<2> = Machine
|
LogData<2> = Machine
|
||||||
LogData<3> = 'Nica order record to write: ':LogNicaOrderRec
|
LogData<3> = 'Nica order record to write: ':LogNicaOrderRec
|
||||||
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
|
||||||
|
|
||||||
Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$)
|
Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$)
|
||||||
@ -342,8 +385,8 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES,
|
|||||||
ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.'
|
ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
If OrderType _EQC 'INTRUSIVE_MAINT' then
|
If ( (OrderType _EQC 'INTRUSIVE_MAINT') or (OrderType _EQC 'ABORT_ALARM') ) then
|
||||||
// Create NICA_ORDERS_CHECKLISTS child records for each checklist
|
// Create NICA_ORDERS_CHECKLISTS child records for each checklist
|
||||||
If NewSortedChecklistIds NE '' then
|
If NewSortedChecklistIds NE '' then
|
||||||
For each ChecklistId in NewSortedChecklistIds using @VM
|
For each ChecklistId in NewSortedChecklistIds using @VM
|
||||||
@ -394,10 +437,10 @@ Service CreateNewOrder(EntityType=ENTITY_TYPES, EntityID, OrderType=ORDER_TYPES,
|
|||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error encountered when attempting to create Nica in order for reactor ':ReactNo:' of type ':OrderType
|
ErrorMsg = 'Error encountered when attempting to create Nica in order for reactor ':ReactNo:' of type ':OrderType
|
||||||
Mona_Services('SendBufferedStatus', MonAResource, StatusName, 'Critical')
|
Mona_Services('SendBufferedStatus', MonAResource, StatusName, 'Critical')
|
||||||
end
|
end
|
||||||
end else
|
|
||||||
ErrorMsg = 'Error encountered when attempting to create Nica order for entity ':EntityType:' ' :EntityID:' of type ':OrderType:'. Active order already exists.'
|
|
||||||
end
|
end
|
||||||
|
end else
|
||||||
|
ErrorMsg = 'Error encountered when attempting to create Nica order for entity ':EntityType:' ' :EntityID:' of type ':OrderType:'. Active order already exists.'
|
||||||
end
|
end
|
||||||
end else
|
end else
|
||||||
ErrorMsg = 'Error in ':Service:' service. Null EntityType, EntityID, or OrderType passed in.'
|
ErrorMsg = 'Error in ':Service:' service. Null EntityType, EntityID, or OrderType passed in.'
|
||||||
@ -492,9 +535,11 @@ Service CancelOrder(OrderId)
|
|||||||
If HttpResponseJson NE '' then
|
If HttpResponseJson NE '' then
|
||||||
ObjResponseJson = ''
|
ObjResponseJson = ''
|
||||||
If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then
|
If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then
|
||||||
IsComplete = SRP_JSON(ObjResponseJson, 'GetValue', 'pendingUpdate')
|
IsComplete = SRP_JSON(ObjResponseJson, 'GetValue', 'pendingUpdate')
|
||||||
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
||||||
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
||||||
|
CloseDtm = Datetime()
|
||||||
|
NicaOrderRec<NICA_ORDERS.CLOSED_DTM$> = CloseDtm
|
||||||
If IsComplete EQ False$ then
|
If IsComplete EQ False$ then
|
||||||
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
||||||
end else
|
end else
|
||||||
@ -509,7 +554,18 @@ Service CancelOrder(OrderId)
|
|||||||
ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.'
|
ErrorMsg = 'Error in ':Service:' service. Error setting IDLE_STARTUP_REQUIRED flag in REACTOR record.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
If (OrderType EQ 'ABORT_ALARM') then
|
||||||
|
ActiveAbortAlarmOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'ABORT_ALARM')
|
||||||
|
AbortAlarmOrderActive = (ActiveAbortAlarmOrders NE '')
|
||||||
|
If (AbortAlarmOrderActive EQ False$) then
|
||||||
|
Open 'REACTOR' to hReactor then
|
||||||
|
WriteV True$ on hReactor, ReactNo, REACTOR_ABORT_ALARM_COMPLETE$ else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Error setting ABORT_ALARM_COMPLETE flag in REACTOR record.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
If ( (Response EQ True$) or (Response EQ False$) ) then IsSuccessful = True$
|
If ( (Response EQ True$) or (Response EQ False$) ) then IsSuccessful = True$
|
||||||
end else
|
end else
|
||||||
ErrorMsg = Error_Services('GetMessage')
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
@ -645,9 +701,15 @@ Service GetOrderStatusUpdate(OrderId)
|
|||||||
If HttpResponseJson NE '' then
|
If HttpResponseJson NE '' then
|
||||||
ObjResponseJson = ''
|
ObjResponseJson = ''
|
||||||
If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then
|
If SRP_JSON(ObjResponseJson, 'Parse', HttpResponseJson) EQ '' then
|
||||||
IsComplete = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
IsComplete = SRP_JSON(ObjResponseJson, 'GetValue', 'isComplete')
|
||||||
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
State = SRP_JSON(ObjResponseJson, 'GetValue', 'state')
|
||||||
|
NicaOrderRec<NICA_ORDERS.ORDER_STATUS$> = State
|
||||||
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = IsComplete
|
NicaOrderRec<NICA_ORDERS.IS_COMPLETE$> = IsComplete
|
||||||
|
CloseDtm = NicaOrderRec<NICA_ORDERS.CLOSED_DTM$>
|
||||||
|
If ( (CloseDtm EQ '' ) and ( (State _EQC 'done') or (State _EQC 'cancelled') ) ) then
|
||||||
|
CloseDtm = Datetime()
|
||||||
|
NicaOrderRec<NICA_ORDERS.CLOSED_DTM$> = CloseDtm
|
||||||
|
end
|
||||||
If IsComplete EQ False$ then
|
If IsComplete EQ False$ then
|
||||||
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
NicaOrderRec<NICA_ORDERS.PROGRESS_PERCENTAGE$> = SRP_JSON(ObjResponseJson, 'GetValue', 'progressPercentage')
|
||||||
end else
|
end else
|
||||||
@ -656,7 +718,7 @@ Service GetOrderStatusUpdate(OrderId)
|
|||||||
Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$)
|
Database_Services('WriteDataRow', 'NICA_ORDERS', OrderId, NicaOrderRec, True$, False$, False$)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
OrderType = NicaOrderRec<NICA_ORDERS.ORDER_TYPE$>
|
OrderType = NicaOrderRec<NICA_ORDERS.ORDER_TYPE$>
|
||||||
If (OrderType _EQC 'INTRUSIVE_MAINT') then
|
If ( (OrderType _EQC 'INTRUSIVE_MAINT') or (OrderType _EQC 'ABORT_ALARM') ) then
|
||||||
// Update NICA_ORDERS_CHECKLISTS records (documents)
|
// Update NICA_ORDERS_CHECKLISTS records (documents)
|
||||||
Open 'NICA_ORDERS_CHECKLISTS' to hNicaOrdersChecklists then
|
Open 'NICA_ORDERS_CHECKLISTS' to hNicaOrdersChecklists then
|
||||||
// Parse documents array for their isComplete flag
|
// Parse documents array for their isComplete flag
|
||||||
@ -704,7 +766,17 @@ Service GetOrderStatusUpdate(OrderId)
|
|||||||
ErrorMsg = 'Error in ':Service:' service. Error opening NICA_ORDERS_CHECKLISTS table.'
|
ErrorMsg = 'Error in ':Service:' service. Error opening NICA_ORDERS_CHECKLISTS table.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
If ( (OrderType _EQC 'ABORT_ALARM') and ( (State _EQC 'done') or (State _EQC 'cancelled') ) ) then
|
||||||
|
ActiveAbortAlarmOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'ABORT_ALARM')
|
||||||
|
AbortAlarmOrderActive = (ActiveAbortAlarmOrders NE '')
|
||||||
|
If (AbortAlarmOrderActive EQ False$) then
|
||||||
|
Open 'REACTOR' to hReactor then
|
||||||
|
WriteV True$ on hReactor, ReactNo, REACTOR_ABORT_ALARM_COMPLETE$ else
|
||||||
|
ErrorMsg = 'Error in ':Service:' service. Error setting ABORT_ALARM_COMPLETE flag in REACTOR record.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
If IsComplete EQ True$ then
|
If IsComplete EQ True$ then
|
||||||
If ( (OrderType _EQC 'IDLE') and (EntityType _EQC 'REACTOR') ) then
|
If ( (OrderType _EQC 'IDLE') and (EntityType _EQC 'REACTOR') ) then
|
||||||
Open 'REACTOR' to hReactor then
|
Open 'REACTOR' to hReactor then
|
||||||
|
@ -82,7 +82,7 @@ end service
|
|||||||
|
|
||||||
|
|
||||||
Service SignReactorLog(ReactorLogID, UserID)
|
Service SignReactorLog(ReactorLogID, UserID)
|
||||||
|
|
||||||
Flag = ''
|
Flag = ''
|
||||||
ErrCode = ''
|
ErrCode = ''
|
||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
@ -208,14 +208,18 @@ Service SignReactorLog(ReactorLogID, UserID)
|
|||||||
If ( (IntrMaintFeatureFlag EQ True$) and (CCnt GT 0) ) then
|
If ( (IntrMaintFeatureFlag EQ True$) and (CCnt GT 0) ) then
|
||||||
IntrMaintFlowCodes = React_Servs_Services('GetIntrMaintFlowIds', CurServices)
|
IntrMaintFlowCodes = React_Servs_Services('GetIntrMaintFlowIds', CurServices)
|
||||||
If IntrMaintFlowCodes NE '' then
|
If IntrMaintFlowCodes NE '' then
|
||||||
// Create INTRUSIVE_MAINT NICA order
|
ReactorType = Xlate('REACTOR', ReactorNo, REACTOR_REACT_TYPE$, 'X')
|
||||||
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactorNo, 'INTRUSIVE_MAINT', IntrMaintFlowCodes)
|
ChecklistIds = Nica_Orders_Services('GetFlowChecklistIds', IntrMaintFlowCodes, 'INTRUSIVE_MAINT', ReactorType)
|
||||||
If Error_Services('NoError') then
|
If ChecklistIds NE '' then
|
||||||
LogFlows = IntrMaintFlowCodes
|
// Create INTRUSIVE_MAINT NICA order
|
||||||
Convert @VM to ', ' in LogFlows
|
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactorNo, 'INTRUSIVE_MAINT', IntrMaintFlowCodes, '', ChecklistIds)
|
||||||
Reactor_Log_Services('AddComment', ReactorNo, 'Intrusive Maintenance initiated for flow(s) ':LogFlows:'.', UserID)
|
If Error_Services('NoError') then
|
||||||
end else
|
LogFlows = IntrMaintFlowCodes
|
||||||
ErrorMsg = Error_Services('GetMessage')
|
Convert @VM to ', ' in LogFlows
|
||||||
|
Reactor_Log_Services('AddComment', ReactorNo, 'Intrusive Maintenance initiated for flow(s) ':LogFlows:'.', UserID)
|
||||||
|
end else
|
||||||
|
ErrorMsg = Error_Services('GetMessage')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -53,6 +53,8 @@ $Insert REACTOR_DAILY_UPTIME_EQUATES
|
|||||||
$Insert REACT_LL_EQUATES
|
$Insert REACT_LL_EQUATES
|
||||||
$Insert IQS_VIOL_DATA_EQUATES
|
$Insert IQS_VIOL_DATA_EQUATES
|
||||||
$Insert FEATURE_FLAGS_EQUATES
|
$Insert FEATURE_FLAGS_EQUATES
|
||||||
|
$Insert REACT_PROB_CAT_EQUATES
|
||||||
|
$Insert NICA_ORDERS_EQUATES
|
||||||
|
|
||||||
Equ WOCust$ to 2
|
Equ WOCust$ to 2
|
||||||
|
|
||||||
@ -66,13 +68,13 @@ Equ ENG$ to 5
|
|||||||
Declare subroutine Error_Services, Reactor_Services, Memory_Services, RList, Database_Services, SRP_JSON
|
Declare subroutine Error_Services, Reactor_Services, Memory_Services, RList, Database_Services, SRP_JSON
|
||||||
Declare subroutine Excel_Services, Schedule_Services, Logging_Services, Set_Status, obj_React_Status, Errmsg
|
Declare subroutine Excel_Services, Schedule_Services, Logging_Services, Set_Status, obj_React_Status, Errmsg
|
||||||
Declare subroutine Obj_Notes, Btree.Extract, SRP_Fastarray, Delay, Mona_Services, SRP_List, Msg, Rds_Services
|
Declare subroutine Obj_Notes, Btree.Extract, SRP_Fastarray, Delay, Mona_Services, SRP_List, Msg, Rds_Services
|
||||||
Declare subroutine React_Assign_Conv, Nica_Orders_Services, obj_React_Mode
|
Declare subroutine React_Assign_Conv, Nica_Orders_Services, obj_React_Mode, Reactor_Log_Services
|
||||||
Declare function SRP_Array, Reactor_Services, Memory_Services, Database_Services, SRP_Sort_Array, Excel_Services
|
Declare function SRP_Array, Reactor_Services, Memory_Services, Database_Services, SRP_Sort_Array, Excel_Services
|
||||||
Declare function SRP_Math, SRP_Hash, SRP_JSON, Epi_Part_Services, Schedule_Services, Date_Services, Environment_Services
|
Declare function SRP_Math, SRP_Hash, SRP_JSON, Epi_Part_Services, Schedule_Services, Date_Services, Environment_Services
|
||||||
Declare function Logging_Services, GetCommandLine, NextKey, Reactor_Log_Services, SRP_DateTime, ole_getwebpage
|
Declare function Logging_Services, GetCommandLine, NextKey, Reactor_Log_Services, SRP_DateTime, ole_getwebpage
|
||||||
Declare function Datetime, Reactor_Modes_Services, Work_Order_Services, React_Mode_NG_Services, Lsl_Users_Services
|
Declare function Datetime, Reactor_Modes_Services, Work_Order_Services, React_Mode_NG_Services, Lsl_Users_Services
|
||||||
Declare function SRP_Time, Rds_Services, SRP_Fastarray, Httpclient_Services, SRP_List, Utility, Memberof, Error_Services
|
Declare function SRP_Time, Rds_Services, SRP_Fastarray, Httpclient_Services, SRP_List, Utility, Memberof, Error_Services
|
||||||
Declare function Nica_Orders_Services
|
Declare function Nica_Orders_Services, Max
|
||||||
|
|
||||||
// Report paths for various performance report services.
|
// Report paths for various performance report services.
|
||||||
TemplatesFolder = Environment_Services('GetApplicationRootPath') : '\Reports\Scheduler\Templates\'
|
TemplatesFolder = Environment_Services('GetApplicationRootPath') : '\Reports\Scheduler\Templates\'
|
||||||
@ -1873,7 +1875,7 @@ end service
|
|||||||
|
|
||||||
|
|
||||||
Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, ForceModeChange)
|
Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, ForceModeChange)
|
||||||
|
|
||||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ReactorModeChg'
|
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\ReactorModeChg'
|
||||||
LogDate = Oconv(Date(), 'D4/')
|
LogDate = Oconv(Date(), 'D4/')
|
||||||
LogTime = Oconv(Time(), 'MTS')
|
LogTime = Oconv(Time(), 'MTS')
|
||||||
@ -1885,13 +1887,13 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
ErrorMsg = ''
|
ErrorMsg = ''
|
||||||
IF ForceModeChange NE True$ then ForceModeChange = False$
|
IF ForceModeChange NE True$ then ForceModeChange = False$
|
||||||
If ( (UserID NE '') and (ReactNo NE '') and (Mode NE '') and (ModeSubCat NE '')) then
|
If ( (UserID NE '') and (ReactNo NE '') and (Mode NE '') and (ModeSubCat NE '')) then
|
||||||
CurTime = Time()
|
CurTime = Time()
|
||||||
CurDate = Date()
|
CurDate = Date()
|
||||||
NGPrevModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, REACTOR_CHILD_KEY_IDS_REACT_MODE_KEY_IDS$, 'X')<1, 1>
|
NGPrevModeKey = Xlate('REACTOR_CHILD_KEY_IDS_NG', ReactNo, REACTOR_CHILD_KEY_IDS_REACT_MODE_KEY_IDS$, 'X')<1, 1>
|
||||||
PrevModeRec = Reactor_Services('GetReactCurrModeRec', ReactNo)
|
PrevModeRec = Reactor_Services('GetReactCurrModeRec', ReactNo)
|
||||||
SelectedModeRec = Database_Services('ReadDataRow', 'REACTOR_MODES', Mode)
|
SelectedModeRec = Database_Services('ReadDataRow', 'REACTOR_MODES', Mode)
|
||||||
SelE10State = SelectedModeRec<REACTOR_MODES_E10_STATE$>
|
SelE10State = SelectedModeRec<REACTOR_MODES_E10_STATE$>
|
||||||
|
RlComment = ''
|
||||||
CommentException = False$
|
CommentException = False$
|
||||||
|
|
||||||
Begin Case
|
Begin Case
|
||||||
@ -1990,6 +1992,53 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
If ErrorMsg EQ '' then
|
||||||
|
AbortAlarmFeatureFlag = Xlate('FEATURE_FLAGS', 'NICA_ABORT_ALARM', FEATURE_FLAGS.ENABLED$, 'X')
|
||||||
|
If AbortAlarmFeatureFlag EQ True$ then
|
||||||
|
ModeSubCatFlowId = Xlate('REACT_PROB_CAT', ModeSubCatId, REACT_PROB_CAT_ABORT_ALARM_FLOW_ID$, 'X')
|
||||||
|
ModeSubCatRespLvl = Xlate('REACT_PROB_CAT', ModeSubCatId, REACT_PROB_CAT_ABORT_ALARM_RESPONSE_LEVEL$, 'X')
|
||||||
|
AbortAlarmComp = Xlate('REACTOR', ReactNo, REACTOR_ABORT_ALARM_COMPLETE$, 'X')
|
||||||
|
ActiveAbortAlarmOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'ABORT_ALARM')
|
||||||
|
AbortAlarmOrderActive = (ActiveAbortAlarmOrders NE '')
|
||||||
|
Begin Case
|
||||||
|
Case ( AbortAlarmOrderActive and (SelE10State _EQC 'Productive') )
|
||||||
|
ErrorMsg = "An ABORT/ALARM Checklist is active for this reactor and must be completed or overridden in order to change to a productive state."
|
||||||
|
|
||||||
|
Case ( AbortAlarmOrderActive and IndexC(ModeSubCat, 'ABORT/ALARM', 1) and (ModeSubCatFlowId NE '') )
|
||||||
|
// If there is an active ABORT/ALARM NICA order, then we need to check if the new sub mode is different than the sub mode entered when the ABORT/ALARM
|
||||||
|
// NICA order was created and is of a higher response level or the new mode is WAITING_FOR_OPERATOR and the sub mode has changed. This means the maintenance
|
||||||
|
// team deemed the true ABORT/ALARM root cause was different than the cause the operators selected.
|
||||||
|
ActiveAbortAlarmFlowIds = Xlate('NICA_ORDERS', ActiveAbortAlarmOrders, NICA_ORDERS.ORDER_FLOW_IDS$, 'X')
|
||||||
|
ActiveAbortAlarmRespLvls = Xlate('NICA_ORDERS', ActiveAbortAlarmOrders, NICA_ORDERS.ORDER_RESPONSE_LEVEL$, 'X')
|
||||||
|
MaxActiveRespLvl = ''
|
||||||
|
For each ActiveAbortAlarmRespLvl in ActiveAbortAlarmRespLvls using @VM
|
||||||
|
MaxActiveRespLvl = Max(MaxActiveRespLvl, ActiveAbortAlarmRespLvl)
|
||||||
|
Next ActiveAbortAlarmRespLvl
|
||||||
|
If ( (Mode _EQC 'WAITING_FOR_OPERATOR') and (ModeSubCatFlowId NE ActiveAbortAlarmFlowIds) ) |
|
||||||
|
or ( (ModeSubCatFlowId NE ActiveAbortAlarmFlowIds) and (ModeSubCatRespLvl GT MaxActiveRespLvl) ) then
|
||||||
|
ReactorType = Xlate('REACTOR', ReactNo, REACTOR_REACT_TYPE$, 'X')
|
||||||
|
ChecklistIds = Nica_Orders_Services('GetFlowChecklistIds', ModeSubCatFlowId, 'ABORT_ALARM', ReactorType)
|
||||||
|
If ChecklistIds NE '' then
|
||||||
|
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactNo, 'ABORT_ALARM', ModeSubCatFlowId, ModeSubCatRespLvl, ChecklistIds)
|
||||||
|
RlComment = 'ABORT/ALARM initiated for flow ':ModeSubCatFlowId:'.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Case ( Not(AbortAlarmComp) and Not(AbortAlarmOrderActive) and IndexC(ModeSubCat, 'ABORT/ALARM', 1) and (ModeSubCatFlowId NE '') )
|
||||||
|
ReactorType = Xlate('REACTOR', ReactNo, REACTOR_REACT_TYPE$, 'X')
|
||||||
|
ChecklistIds = Nica_Orders_Services('GetFlowChecklistIds', ModeSubCatFlowId, 'ABORT_ALARM', ReactorType)
|
||||||
|
If ChecklistIds NE '' then
|
||||||
|
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactNo, 'ABORT_ALARM', ModeSubCatFlowId, ModeSubCatRespLvl, ChecklistIds)
|
||||||
|
RlComment = 'ABORT/ALARM initiated for flow ':ModeSubCatFlowId:'.'
|
||||||
|
end
|
||||||
|
Case Otherwise$
|
||||||
|
// Don't create an ABORT/ALARM NICA order
|
||||||
|
Null
|
||||||
|
|
||||||
|
End Case
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
If ErrorMsg EQ '' then
|
If ErrorMsg EQ '' then
|
||||||
If Len(Mode) GT 10 and Mode[1, 10] EQ 'CHANGEOVER' then
|
If Len(Mode) GT 10 and Mode[1, 10] EQ 'CHANGEOVER' then
|
||||||
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactNo, 'CHANGEOVER')
|
Nica_Orders_Services('CreateNewOrder', 'REACTOR', ReactNo, 'CHANGEOVER')
|
||||||
@ -2005,7 +2054,7 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
end
|
end
|
||||||
|
|
||||||
If ErrorMsg EQ '' then
|
If ErrorMsg EQ '' then
|
||||||
//Log the current Mode Change
|
// Log the current Mode Change
|
||||||
LogData = ''
|
LogData = ''
|
||||||
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM
|
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM
|
||||||
LogData<2> = 'Reactor No: ' : ReactNo : ' - Requested Mode Change: ' : Mode
|
LogData<2> = 'Reactor No: ' : ReactNo : ' - Requested Mode Change: ' : Mode
|
||||||
@ -2025,7 +2074,7 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
**********************************************************************************
|
**********************************************************************************
|
||||||
* WRITE OUT NEW MODE INFORMATION
|
* WRITE OUT NEW MODE INFORMATION
|
||||||
|
|
||||||
//Create new React_Util record
|
// Create new React_Util record
|
||||||
NewRUKey = NextKey('REACT_UTIL')
|
NewRUKey = NextKey('REACT_UTIL')
|
||||||
|
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
@ -2052,7 +2101,7 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
RUtilRec<react_util_cust_no$> = xlate( 'WO_LOG', WorkOrder, wo_log_cust_no$, 'X' ) ;
|
RUtilRec<react_util_cust_no$> = xlate( 'WO_LOG', WorkOrder, wo_log_cust_no$, 'X' ) ;
|
||||||
********************************************************************************************************
|
********************************************************************************************************
|
||||||
|
|
||||||
//Create a new Reactor_Log Entry
|
// Create a new Reactor_Log Entry
|
||||||
EntryId = UserID
|
EntryId = UserID
|
||||||
|
|
||||||
RLRec = ''
|
RLRec = ''
|
||||||
@ -2118,7 +2167,7 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
END ;* End of check on Current Mode
|
END ;* End of check on Current Mode
|
||||||
|
|
||||||
* * * End of changes * * * * *
|
* * * End of changes * * * * *
|
||||||
//Write new mode info to config table.
|
// Write new mode info to config table.
|
||||||
OrigConfigRec = Database_Services('ReadDataRow', 'CONFIG', RecName)
|
OrigConfigRec = Database_Services('ReadDataRow', 'CONFIG', RecName)
|
||||||
Database_Services('WriteDataRow', 'CONFIG', RecName, Rec)
|
Database_Services('WriteDataRow', 'CONFIG', RecName, Rec)
|
||||||
|
|
||||||
@ -2168,6 +2217,24 @@ Service CreateReactModeChange(UserID, ReactNo, Mode, ModeSubCat, ModeText, Force
|
|||||||
// Reopen previous react mode
|
// Reopen previous react mode
|
||||||
Database_Services('WriteDataRow', 'REACT_MODE_NG', NGPrevModeKey, PrevModeRec)
|
Database_Services('WriteDataRow', 'REACT_MODE_NG', NGPrevModeKey, PrevModeRec)
|
||||||
end else
|
end else
|
||||||
|
If RlComment NE '' then Reactor_Log_Services('AddComment', ReactNo, RlComment, UserID)
|
||||||
|
If SelE10State _EQC 'Productive' then
|
||||||
|
// Reset ABORT/ALARM flag
|
||||||
|
Open 'REACTOR' to hReactor then
|
||||||
|
WriteV False$ to hReactor, ReactNo, REACTOR_ABORT_ALARM_COMPLETE$ then
|
||||||
|
LogData = ''
|
||||||
|
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM
|
||||||
|
LogData<2> = 'Successfully set ABORT_ALARM_COMPLETE flag to false for Reactor No: ' : ReactNo
|
||||||
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
|
||||||
|
end else
|
||||||
|
LogData = ''
|
||||||
|
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') ; // Logging DTM
|
||||||
|
LogData<2> = 'Failed set ABORT_ALARM_COMPLETE flag to false for Reactor No: ' : ReactNo
|
||||||
|
Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
// Check to see if notifications are active for this mode
|
// Check to see if notifications are active for this mode
|
||||||
If SelectedModeRec<REACTOR_MODES_NOTIFICATION_ACTIVE$> then
|
If SelectedModeRec<REACTOR_MODES_NOTIFICATION_ACTIVE$> then
|
||||||
//If notifications are active get the classes from the REACTOR_MODE record
|
//If notifications are active get the classes from the REACTOR_MODE record
|
||||||
|
@ -280,7 +280,19 @@ Event APPLY.CLICK()
|
|||||||
end
|
end
|
||||||
|
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
|
|
||||||
|
Def = ""
|
||||||
|
Def<MCAPTION$> = "Changing Reactor Mode..."
|
||||||
|
Def<MCOL$> = -2
|
||||||
|
Def<MROW$> = -2
|
||||||
|
Def<MTYPE$> = "U"
|
||||||
|
MsgHandle = Msg(@Window, Def)
|
||||||
|
|
||||||
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
|
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
|
||||||
|
|
||||||
|
// Take down the message
|
||||||
|
Msg(@Window, MsgHandle)
|
||||||
|
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
|
|
||||||
End_Dialog(@Window, NewMode)
|
End_Dialog(@Window, NewMode)
|
||||||
@ -290,10 +302,10 @@ Event APPLY.CLICK()
|
|||||||
Error_Services('DisplayError')
|
Error_Services('DisplayError')
|
||||||
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo)
|
ReactorRec = Database_Services('ReadDataRow', 'REACTOR', ReactNo)
|
||||||
If Error_Services('NoError') then
|
If Error_Services('NoError') then
|
||||||
ActiveProveInOrder = ReactorRec<REACTOR_PROVE_IN_ACTIVE$>
|
ActiveProveInOrder = ReactorRec<REACTOR_PROVE_IN_ACTIVE$>
|
||||||
ActiveHgCVOrder = ReactorRec<REACTOR_HGCV_CHECKLIST_ACTIVE$>
|
ActiveHgCVOrder = ReactorRec<REACTOR_HGCV_CHECKLIST_ACTIVE$>
|
||||||
ActiveIntrMaintOrder = ReactorRec<REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$>
|
ActiveIntrMaintOrder = ReactorRec<REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$>
|
||||||
|
ActiveAbortAlarmOrder = ReactorRec<REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$>
|
||||||
Begin Case
|
Begin Case
|
||||||
|
|
||||||
Case ActiveProveInOrder
|
Case ActiveProveInOrder
|
||||||
@ -387,6 +399,32 @@ Event APPLY.CLICK()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Case ActiveAbortAlarmOrder
|
||||||
|
|
||||||
|
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
|
||||||
|
UserMsg = "ABORT/ALARM Checklist must be completed in NICA. Override required from a lead or supervisor to bypass NICA."
|
||||||
|
UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg)
|
||||||
|
Override = UserVerification<1>
|
||||||
|
If Override then
|
||||||
|
|
||||||
|
ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2>
|
||||||
|
If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then
|
||||||
|
ActiveIntrMaintOrders = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'ABORT_ALARM')
|
||||||
|
For each ActiveIntrMaintOrderId in ActiveIntrMaintOrders using @VM
|
||||||
|
Nica_Orders_Services('CancelOrder', ActiveIntrMaintOrderId)
|
||||||
|
Next ActiveIntrMaintOrderId
|
||||||
|
|
||||||
|
Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'ABORT_ALARM_CHECKLIST')
|
||||||
|
|
||||||
|
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
|
||||||
|
If Error_Services('NoError') then
|
||||||
|
End_Dialog(@Window, NewMode)
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
End Case
|
End Case
|
||||||
end else
|
end else
|
||||||
Error_Services('DisplayError')
|
Error_Services('DisplayError')
|
||||||
|
@ -1,46 +1,58 @@
|
|||||||
Compile function React_Prob_Cat_Services(@Service, @Params)
|
Compile function React_Prob_Cat_Services(@Service, @Params)
|
||||||
Declare Function Next_Key, Date
|
/***********************************************************************************************************************
|
||||||
Declare Subroutine Msg, Database_Services
|
|
||||||
|
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 : React_Prob_Cat_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)
|
||||||
|
|
||||||
|
***********************************************************************************************************************/
|
||||||
#pragma precomp SRP_PreCompiler
|
#pragma precomp SRP_PreCompiler
|
||||||
$insert LOGICAL
|
|
||||||
|
$Insert SERVICE_SETUP
|
||||||
|
$Insert APP_INSERTS
|
||||||
$insert REACT_PROB_CAT_EQUATES
|
$insert REACT_PROB_CAT_EQUATES
|
||||||
|
|
||||||
|
Declare Function NextKey
|
||||||
|
Declare Subroutine Database_Services, Error_Services
|
||||||
|
|
||||||
GoToService
|
GoToService
|
||||||
|
|
||||||
Return Response or ""
|
Return Response or ""
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
// SERVICES
|
// SERVICES
|
||||||
//-----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Service Create(ReactProbCatName, ReactProbCat)
|
Service Create(ReactProbCatName, ReactProbCat)
|
||||||
OPEN 'REACT_PROB_CAT' TO RPTable ELSE
|
|
||||||
MSG( '', 'Unable to open REACT_PROB_CAT...' )
|
|
||||||
RETURN
|
|
||||||
END
|
|
||||||
RPRec = ''
|
|
||||||
NewCatKey = Next_Key('REACT_PROB_CAT', RPTable, 'NEXT', '')
|
|
||||||
RPRec<REACT_PROB_CAT_CAT_DESC$> = ReactProbCatName
|
|
||||||
RPRec<REACT_PROB_CAT_ENTRY_ID$> = @User4
|
|
||||||
RPRec<REACT_PROB_CAT_ENTRY_DATE$> = Date()
|
|
||||||
RPRec<REACT_PROB_CAT_REACT_PROB_ID$> = ''
|
|
||||||
//RPRec<5> = 0
|
|
||||||
RPRec<6> = ReactProbCat
|
|
||||||
|
|
||||||
WRITE RPRec ON RPTable, NewCatKey ELSE
|
Response = ''
|
||||||
MSG( '', 'Damn')
|
If ReactProbCatName NE '' then
|
||||||
RETURN
|
RPRec = ''
|
||||||
END
|
NewCatKey = NextKey('REACT_PROB_CAT')
|
||||||
UNLOCK RPTable, NewCatKey else
|
RPRec<REACT_PROB_CAT_CAT_DESC$> = ReactProbCatName
|
||||||
MSG( '', 'Damn' )
|
RPRec<REACT_PROB_CAT_ENTRY_ID$> = @User4
|
||||||
RETURN
|
RPRec<REACT_PROB_CAT_ENTRY_DATE$> = Date()
|
||||||
END
|
RPRec<REACT_PROB_CAT_REACT_PROB_ID$> = ''
|
||||||
Response = NewCatKey
|
Database_Services('WriteDataRow', 'REACT_PROB_CAT', NewCatKey, RPRec, True$, False$, False$)
|
||||||
|
Response = NewCatKey
|
||||||
|
end else
|
||||||
|
Error_Services('Add', 'Error in ':Service:' service. Null ReactProbCatName passed into service.')
|
||||||
|
end
|
||||||
|
|
||||||
End Service
|
End Service
|
||||||
|
|
||||||
Service Delete(ProbCatId)
|
|
||||||
|
|
||||||
end service
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,14 +83,14 @@ ChecklistButton:
|
|||||||
If ReactorPmOrderIds NE '' then
|
If ReactorPmOrderIds NE '' then
|
||||||
For each ReactorPmOrderId in ReactorPmOrderIds using @VM setting vPos
|
For each ReactorPmOrderId in ReactorPmOrderIds using @VM setting vPos
|
||||||
ProgressPercentage = Xlate('NICA_ORDERS', ReactorPmOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
ProgressPercentage = Xlate('NICA_ORDERS', ReactorPmOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
||||||
ChecklistInfo<-1> = Xlate('NICA_ORDERS', ReactorPmOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.'
|
ChecklistInfo<-1> = Xlate('NICA_ORDERS', ReactorPmOrderId, 'ORDER_TYPE', 'X') : ' - ' : ProgressPercentage :'% Complete.'
|
||||||
Next RlPmType
|
Next RlPmType
|
||||||
end
|
end
|
||||||
|
|
||||||
If ReactorNicaOrders NE '' then
|
If ReactorNicaOrders NE '' then
|
||||||
For each NicaOrderId in ReactorNicaOrders using @VM
|
For each NicaOrderId in ReactorNicaOrders using @VM
|
||||||
ProgressPercentage = Xlate('NICA_ORDERS', NicaOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
ProgressPercentage = Xlate('NICA_ORDERS', NicaOrderId, 'PROGRESS_PERCENTAGE', 'X')
|
||||||
ChecklistInfo<-1> = Xlate('NICA_ORDERS', NicaOrderId, 'ORDER_TYPE', 'X') : '- ' : ProgressPercentage :'% Complete.'
|
ChecklistInfo<-1> = Xlate('NICA_ORDERS', NicaOrderId, 'ORDER_TYPE', 'X') : ' - ' : ProgressPercentage :'% Complete.'
|
||||||
Next NicaOrderId
|
Next NicaOrderId
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -270,18 +270,14 @@ FORM_CREATE:
|
|||||||
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveReactorPM.png')
|
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveReactorPM.png')
|
||||||
end
|
end
|
||||||
|
|
||||||
Status_HgCV_Alarm = Xlate('REACTOR', I, REACTOR_HGCV_CHECKLIST_ACTIVE$, 'X')
|
Status_HgCV_Alarm = Xlate('REACTOR', I, REACTOR_HGCV_CHECKLIST_ACTIVE$, 'X')
|
||||||
|
|
||||||
If Status_HgCV_Alarm EQ True$ then
|
|
||||||
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveProveIn.png')
|
|
||||||
end
|
|
||||||
|
|
||||||
Status_Intrusive_Maint = Xlate('REACTOR', I, REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$, 'X')
|
Status_Intrusive_Maint = Xlate('REACTOR', I, REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$, 'X')
|
||||||
If Status_Intrusive_Maint EQ True$ then
|
Status_Abort_Alarm = Xlate('REACTOR', I, REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$, 'X')
|
||||||
|
If Status_HgCV_Alarm or Status_Intrusive_Maint or Status_Abort_Alarm then
|
||||||
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveProveIn.png')
|
Set_Property(Window:'.OLE_PIC_':I, 'OLE.Image', '.\BMPS\ActiveProveIn.png')
|
||||||
end
|
end
|
||||||
|
|
||||||
OlePicVisible = ( Status_ProveIn or Status_0311 or Status_ReactorPM or Status_HgCV_Alarm or Status_Intrusive_Maint)
|
OlePicVisible = ( Status_ProveIn or Status_0311 or Status_ReactorPM or Status_HgCV_Alarm or Status_Intrusive_Maint or Status_Abort_Alarm )
|
||||||
Set_Property(Window:'.OLE_PIC_':I,'VISIBLE', OlePicVisible)
|
Set_Property(Window:'.OLE_PIC_':I,'VISIBLE', OlePicVisible)
|
||||||
|
|
||||||
IQSPicControl = @Window : '.OLE_PIC_IQS_': i
|
IQSPicControl = @Window : '.OLE_PIC_IQS_': i
|
||||||
@ -329,3 +325,4 @@ REACT_DETAIL:
|
|||||||
return
|
return
|
||||||
*===============================================================================================*
|
*===============================================================================================*
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,5 +12,7 @@ compile insert NICA_CHECKLISTS_EQUATES
|
|||||||
equ NICA_CHECKLISTS.NICA_ORDER_FLOW_IDS$ to 3
|
equ NICA_CHECKLISTS.NICA_ORDER_FLOW_IDS$ to 3
|
||||||
equ NICA_CHECKLISTS.NICA_ORDER_FLOW_TYPE$ to 4
|
equ NICA_CHECKLISTS.NICA_ORDER_FLOW_TYPE$ to 4
|
||||||
equ NICA_CHECKLISTS.REACTOR_TYPES$ to 5
|
equ NICA_CHECKLISTS.REACTOR_TYPES$ to 5
|
||||||
|
equ NICA_CHECKLISTS.REMOVE_IF_COMPLETE$ to 6
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -7,14 +7,18 @@ compile insert NICA_ORDERS_EQUATES
|
|||||||
#ifndef __NICA_ORDERS_EQUATES__
|
#ifndef __NICA_ORDERS_EQUATES__
|
||||||
#define __NICA_ORDERS_EQUATES__
|
#define __NICA_ORDERS_EQUATES__
|
||||||
|
|
||||||
equ NICA_ORDERS.ORDER_TYPE$ to 1
|
equ NICA_ORDERS.ORDER_TYPE$ to 1
|
||||||
equ NICA_ORDERS.ORDER_STATUS$ to 2
|
equ NICA_ORDERS.ORDER_STATUS$ to 2
|
||||||
equ NICA_ORDERS.ENTITY_TYPE$ to 3
|
equ NICA_ORDERS.ENTITY_TYPE$ to 3
|
||||||
equ NICA_ORDERS.ENTITY_ID$ to 4
|
equ NICA_ORDERS.ENTITY_ID$ to 4
|
||||||
equ NICA_ORDERS.IS_COMPLETE$ to 5
|
equ NICA_ORDERS.IS_COMPLETE$ to 5
|
||||||
equ NICA_ORDERS.PROGRESS_PERCENTAGE$ to 6
|
equ NICA_ORDERS.PROGRESS_PERCENTAGE$ to 6
|
||||||
equ NICA_ORDERS.ORDER_CHECKLIST_IDS$ to 7
|
equ NICA_ORDERS.ORDER_CHECKLIST_IDS$ to 7
|
||||||
|
equ NICA_ORDERS.ORDER_FLOW_IDS$ to 8
|
||||||
|
equ NICA_ORDERS.ORDER_RESPONSE_LEVEL$ to 9
|
||||||
|
equ NICA_ORDERS.CREATED_DTM$ to 10
|
||||||
|
equ NICA_ORDERS.CLOSED_DTM$ to 11
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,4 +81,6 @@ Equ REACTOR_IQS_ALARM_DTM$ To 69
|
|||||||
Equ REACTOR_IQS_ALARM_TEST$ To 70
|
Equ REACTOR_IQS_ALARM_TEST$ To 70
|
||||||
Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71
|
Equ REACTOR_HGCV_CHECKLIST_ACTIVE$ To 71
|
||||||
Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72
|
Equ REACTOR_INTRUSIVE_MAINT_CHECKLIST_ACTIVE$ To 72
|
||||||
|
Equ REACTOR_ABORT_ALARM_CHECKLIST_ACTIVE$ To 73
|
||||||
|
Equ REACTOR_ABORT_ALARM_COMPLETE$ To 74
|
||||||
|
|
||||||
|
@ -6,10 +6,13 @@ compile insert REACT_PROB_CAT_EQUATES
|
|||||||
----------------------------------------*/
|
----------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
Equ REACT_PROB_CAT_SEQ$ To 0
|
Equ REACT_PROB_CAT_SEQ$ To 0
|
||||||
Equ REACT_PROB_CAT_CAT_DESC$ To 1
|
Equ REACT_PROB_CAT_CAT_DESC$ To 1
|
||||||
Equ REACT_PROB_CAT_REACTOR_PROBLEM_CATEGORY$ To 1
|
Equ REACT_PROB_CAT_REACTOR_PROBLEM_CATEGORY$ To 1
|
||||||
Equ REACT_PROB_CAT_ENTRY_ID$ To 2
|
Equ REACT_PROB_CAT_ENTRY_ID$ To 2
|
||||||
Equ REACT_PROB_CAT_ENTRY_DATE$ To 3
|
Equ REACT_PROB_CAT_ENTRY_DATE$ To 3
|
||||||
Equ REACT_PROB_CAT_REACT_PROB_ID$ To 4
|
Equ REACT_PROB_CAT_REACT_PROB_ID$ To 4
|
||||||
Equ REACT_PROB_CAT_NOTES$ To 5
|
Equ REACT_PROB_CAT_NOTES$ To 5
|
||||||
|
Equ REACT_PROB_CAT_ABORT_ALARM_FLOW_ID$ To 6
|
||||||
|
Equ REACT_PROB_CAT_ABORT_ALARM_RESPONSE_LEVEL$ To 7
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user