added LSL2 stored procedures
This commit is contained in:
453
LSL2/STPROC/OI_WIZARD_SERVICES.txt
Normal file
453
LSL2/STPROC/OI_WIZARD_SERVICES.txt
Normal file
@ -0,0 +1,453 @@
|
||||
Compile function OI_Wizard_Services(@Service, @Params)
|
||||
#pragma precomp SRP_PreCompiler
|
||||
$insert LOGICAL
|
||||
$insert OI_WIZARD_EQUATES
|
||||
$insert OI_WIZARD_TRANSACTIONS_EQUATES
|
||||
$Insert REACT_MODE_NG_EQUATES
|
||||
|
||||
Declare function RTI_CreateGUID, Database_Services, Error_Services, SRP_Json, MemberOf
|
||||
Declare function OI_Wizard_Services, Reactor_Services, Reactor_Modes_Services
|
||||
Declare subroutine Database_Services, Error_Services, SRP_Json, Service_Services
|
||||
|
||||
GoToService
|
||||
|
||||
Return Response or ""
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// SERVICES
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Service CreateWizardID(LSLUserID)
|
||||
|
||||
WizardID = RTI_CreateGUID()
|
||||
If WizardID NE '' then
|
||||
WizardRow = ''
|
||||
WizardRow<OI_WIZARD.CREATED_DATE$> = Date()
|
||||
WizardRow<OI_WIZARD.CREATED_TIME$> = Time()
|
||||
WizardRow<OI_WIZARD.TRANS_TYPE$> = 'Login'
|
||||
WizardRow<OI_WIZARD.TERMINATED$> = False$
|
||||
WizardRow<OI_WIZARD.EMPLOYEE_ID$> = LSLUserID
|
||||
Database_Services('WriteDataRow', 'OI_WIZARD', WizardID, WizardRow, True$, False$, True$)
|
||||
end else
|
||||
Error_Services('Add', 'WizardID was not created in the ' : Service : ' service.')
|
||||
end
|
||||
|
||||
Response = WizardID
|
||||
|
||||
End Service
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// ConvertMVWizardToJSON
|
||||
//
|
||||
// Converts a MultiValue formatted OI_WIZARD row into a serialized JSON object and returns the result. If the mvWizard
|
||||
// argument is empty, the service will attempt to get it from the OI_WIZARD table. If the itemURL argument is not empty,
|
||||
// HAL+JSON properties will be added to the JSON object.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service ConvertMVWizardToJSON(WizardID, mvWizard, itemURL)
|
||||
|
||||
jsonWizard = ''
|
||||
|
||||
If WizardID NE '' then
|
||||
|
||||
If mvWizard EQ '' then mvWizard = Database_Services('ReadDataRow', 'OI_WIZARD', WizardID)
|
||||
If Error_Services('NoError') then
|
||||
@DICT = Database_Services('GetTableHandle', 'DICT.OI_WIZARD')
|
||||
@ID = WizardID
|
||||
@RECORD = mvWizard
|
||||
|
||||
If SRP_JSON(objJSONWizard, 'New', 'Object') then
|
||||
// Wizard object.
|
||||
If SRP_JSON(objWizard, 'New', 'Object') then
|
||||
SRP_JSON(objWizard, 'SetValue', 'ID', @ID, 'String')
|
||||
If SRP_JSON(objTransArray, 'New', 'Array') then
|
||||
AvailTrans = OI_Wizard_Services('GetAvailTrans', {EMPLOYEE_ID})
|
||||
For each TransType in AvailTrans using @VM setting vPos
|
||||
If SRP_JSON(objTrans, 'New', 'Object') then
|
||||
SRP_JSON(objTrans, 'SetValue', 'ID', TransType, 'String')
|
||||
TransTitle = Xlate('OI_WIZARD_TRANS_TYPES', TransType, 'TITLE', 'X')
|
||||
SRP_JSON(objTrans, 'SetValue', 'Title', TransTitle, 'String')
|
||||
SRP_JSON(objTransArray, 'Add', objTrans)
|
||||
SRP_JSON(objTrans, 'Release')
|
||||
end
|
||||
Next TransType
|
||||
SRP_JSON(objWizard, 'Set', 'availableTransactions', objTransArray)
|
||||
SRP_JSON(objTransArray, 'Release', objTransArray)
|
||||
end
|
||||
SRP_JSON(objJSONWizard, 'Set', 'session', objWizard)
|
||||
SRP_JSON(objWizard, 'Release')
|
||||
end
|
||||
|
||||
If itemURL NE '' then
|
||||
// The itemURL was passed in so add HAL+JSON properties.
|
||||
|
||||
// Create the _links property and then all link objects needed for this resource.
|
||||
If SRP_JSON(objLinks, 'New', 'Object') then
|
||||
// Create a self link.
|
||||
If SRP_JSON(objLink, 'New', 'Object') then
|
||||
SRP_JSON(objLink, 'SetValue', 'href', ItemURL, 'String')
|
||||
SRP_JSON(objLink, 'SetValue', 'title', 'Self', 'String')
|
||||
SRP_JSON(objLinks, 'Set', 'self', objLink)
|
||||
SRP_JSON(objLink, 'Release')
|
||||
end
|
||||
SRP_JSON(objJSONWizard, 'Set', '_links', objLinks)
|
||||
SRP_JSON(objLinks, 'Release')
|
||||
end
|
||||
|
||||
// Create the _form property to help UIs determine what to display.
|
||||
If SRP_JSON(objForm, 'New', 'Object') then
|
||||
If SRP_JSON(arrayFields, 'New', 'Array') then
|
||||
If {EMPLOYEE_ID} NE '' then
|
||||
If SRP_JSON(objField, 'New', 'Object') then
|
||||
SRP_JSON(objField, 'SetValue', 'label', 'Employee', 'String')
|
||||
SRP_JSON(objField, 'SetValue', 'value', {EMPLOYEE_NAME}, 'String')
|
||||
SRP_JSON(arrayFields, 'Add', objField)
|
||||
SRP_JSON(objField, 'Release')
|
||||
end
|
||||
end
|
||||
SRP_JSON(objForm, 'Set', 'fields', arrayFields)
|
||||
SRP_JSON(arrayFields, 'Release')
|
||||
end
|
||||
SRP_JSON(objJSONWizard, 'Set', '_form', objForm)
|
||||
SRP_JSON(objForm, 'Release')
|
||||
end
|
||||
// Create the _class property for this resource.
|
||||
SRP_JSON(objJSONWizard, 'SetValue', '_class', 'resource')
|
||||
end
|
||||
jsonWizard = SRP_JSON(objJSONWizard, 'Stringify', 'Styled')
|
||||
SRP_JSON(objJSONWizard, 'Release')
|
||||
end else
|
||||
Error_Services('Add', 'Unable to create JSON representation in the ' : Service : ' service.')
|
||||
end
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'WizardID argument was missing in the ' : Service : ' service.')
|
||||
end
|
||||
|
||||
Response = jsonWizard
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service CreateTransaction(OIWizardID, TransType, Data)
|
||||
|
||||
If ( (OIWizardID NE '') and (TransType NE '') ) then
|
||||
// Create a new OI_WIZARD_TRANSACTIONS record and associate it with the OI Wizard ID.
|
||||
Rec = ''
|
||||
KeyID = RTI_CreateGUID()
|
||||
Rec<OI_WIZARD_TRANSACTIONS.OI_WIZARD_ID$> = OIWizardID
|
||||
Rec<OI_WIZARD_TRANSACTIONS.CREATE_DATE$> = Date()
|
||||
Rec<OI_WIZARD_TRANSACTIONS.CREATE_TIME$> = Time()
|
||||
Rec<OI_WIZARD_TRANSACTIONS.COMPLETED$> = False$
|
||||
Rec<OI_WIZARD_TRANSACTIONS.TRANS_TYPE$> = TransType
|
||||
Rec<OI_WIZARD_TRANSACTIONS.DATA$> = Data
|
||||
Database_Services('WriteDataRow', 'OI_WIZARD_TRANSACTIONS', KeyID, Rec)
|
||||
If Error_Services('NoError') then
|
||||
Response = KeyID
|
||||
end else
|
||||
Response = False$
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'Error in ':Service:' service. Null OIWizardID or TransType passed in.'
|
||||
Error_Services('Add', ErrorMsg)
|
||||
Response = False$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service GetAvailTrans(UserID)
|
||||
|
||||
AvailTrans = ''
|
||||
If UserID NE '' then
|
||||
Open 'OI_WIZARD_TRANS_TYPES' to hTable then
|
||||
Select hTable
|
||||
EOF = False$
|
||||
Loop
|
||||
Readnext TransType else EOF = True$
|
||||
Until EOF
|
||||
PermittedGroups = Xlate('OI_WIZARD_TRANS_TYPES', TransType, 'PERMITTED_GROUPS', 'X')
|
||||
Done = False$
|
||||
For each Group in PermittedGroups using @VM setting vPos
|
||||
If MemberOf(UserID, Group) then
|
||||
AvailTrans<0, -1> = TransType
|
||||
Done = True$
|
||||
end
|
||||
Until Done
|
||||
Next Group
|
||||
Repeat
|
||||
Response = AvailTrans
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service ValidateSession(OIWizardID)
|
||||
|
||||
ErrorMsg = ''
|
||||
If OIWizardID NE '' then
|
||||
OIWizardRec = Database_Services('ReadDataRow', 'OI_WIZARD', OIWizardID)
|
||||
If Error_Services('NoError') then
|
||||
ValidSession = Xlate('OI_WIZARD', OIWizardID, 'VALID', 'X')
|
||||
If ValidSession then
|
||||
// Set session updated time and date to extend session life.
|
||||
OIWizardRec<OI_WIZARD.UPDATED_DATES$, -1> = Date()
|
||||
OIWizardRec<OI_WIZARD.UPDATED_TIMES$, -1> = Time()
|
||||
Database_Services('WriteDataRow', 'OI_WIZARD', OIWizardID, OIWizardRec)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
end else
|
||||
ErrorMsg = 'Expired session.'
|
||||
end
|
||||
end else
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'Error in ':Service:' service. Null OIWizardID passed in.'
|
||||
end
|
||||
|
||||
If ErrorMsg EQ '' then
|
||||
Response = True$
|
||||
end else
|
||||
Error_Services('Add', ErrorMsg)
|
||||
Response = False$
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service TerminateSession(OIWizardID)
|
||||
|
||||
ErrorMsg = ''
|
||||
If OIWizardID NE '' then
|
||||
OIWizardRec = Database_Services('ReadDataRow', 'OI_WIZARD', OIWizardID)
|
||||
If Error_Services('NoError') then
|
||||
OIWizardRec<OI_WIZARD.TERMINATED$> = True$
|
||||
Database_Services('WriteDataRow', 'OI_WIZARD', OIWizardID, OIWizardRec)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'Error in ':Service:' service. Null OIWizardID passed in.'
|
||||
end
|
||||
|
||||
If ErrorMsg EQ '' then
|
||||
Response = True$
|
||||
end else
|
||||
Error_Services('Add', ErrorMsg)
|
||||
Response = False$
|
||||
end
|
||||
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service UpdateTransaction(TransactionID, FieldData)
|
||||
|
||||
ErrorMsg = ''
|
||||
If ( (TransactionID NE '') and (FieldData NE '') ) then
|
||||
TransactionRec = Database_Services('ReadDataRow', 'OI_WIZARD_TRANSACTIONS', TransactionID)
|
||||
If Error_Services('NoError') then
|
||||
TransType = TransactionRec<OI_WIZARD_TRANSACTIONS.TRANS_TYPE$>
|
||||
ServiceModule = Xlate('OI_WIZARD_TRANS_TYPES', TransType, 'SERVICE_MODULE', 'X')
|
||||
UpdateService = Xlate('OI_WIZARD_TRANS_TYPES', TransType, 'UPDATE_SERVICE', 'X')
|
||||
If ( (ServiceModule NE '') and (UpdateService NE '') ) then
|
||||
Service_Services('RunService', ServiceModule, UpdateService, FieldData)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'Null TransactionID or FieldData passed into service.'
|
||||
end
|
||||
|
||||
If ErrorMsg EQ '' then
|
||||
Response = True$
|
||||
end else
|
||||
Response = False$
|
||||
Error_Services('Add', 'Error in ':Service:' service. ':ErrorMsg)
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service CompleteTransaction(TransactionID)
|
||||
|
||||
ErrorMsg = ''
|
||||
If TransactionID NE '' then
|
||||
TransactionRec = Database_Services('ReadDataRow', 'OI_WIZARD_TRANSACTIONS', TransactionID)
|
||||
If Error_Services('NoError') then
|
||||
TransactionRec<OI_WIZARD_TRANSACTIONS.COMPLETED$> = True$
|
||||
Database_Services('WriteDataRow', 'OI_WIZARD_TRANSACTIONS', TransactionID, TransactionRec)
|
||||
If Error_Services('HasError') then ErrorMsg = Error_Services('GetMessage')
|
||||
end else
|
||||
ErrorMsg = Error_Services('GetMessage')
|
||||
end
|
||||
end else
|
||||
ErrorMsg = 'Null TransactionID or FieldData passed into service.'
|
||||
end
|
||||
|
||||
If ErrorMsg EQ '' then
|
||||
Response = True$
|
||||
end else
|
||||
Response = False$
|
||||
Error_Services('Add', 'Error in ':Service:' service. ':ErrorMsg)
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// ConvertMVTransactionToJSON
|
||||
//
|
||||
// Converts a MultiValue formatted TRANSACTIONS row into a serialized JSON object and returns the result. If the
|
||||
// mvTransaction argument is empty, the service will attempt to get it from the TRANSACTIONS table. If the itemURL
|
||||
// argument is not empty, HAL+JSON properties will be added to the JSON object.
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
Service ConvertMVTransactionToJSON(TransactionID, mvTransaction, itemURL)
|
||||
|
||||
jsonTransaction = ''
|
||||
|
||||
If TransactionID NE '' then
|
||||
|
||||
If mvTransaction EQ '' then mvTransaction = Database_Services('ReadDataRow', 'OI_WIZARD_TRANSACTIONS', TransactionID)
|
||||
If Error_Services('NoError') then
|
||||
@DICT = Database_Services('GetTableHandle', 'DICT.OI_WIZARD_TRANSACTIONS')
|
||||
@ID = TransactionID
|
||||
@RECORD = mvTransaction
|
||||
CurrUser = Xlate('OI_WIZARD', {OI_WIZARD_ID}, 'EMPLOYEE_ID', 'X')
|
||||
If SRP_JSON(objJSONTransaction, 'New', 'Object') then
|
||||
|
||||
// Wizard/Session object
|
||||
If SRP_JSON(objWizard, 'New', 'Object') then
|
||||
SRP_JSON(objWizard, 'SetValue', 'ID', {OI_WIZARD_ID}, 'String')
|
||||
SRP_JSON(objJSONTransaction, 'Set', 'session', objWizard)
|
||||
SRP_JSON(objWizard, 'Release')
|
||||
end
|
||||
|
||||
// Transaction object
|
||||
If SRP_JSON(objTransaction, 'New', 'Object') then
|
||||
SRP_JSON(objTransaction, 'SetValue', 'ID', @ID, 'String')
|
||||
SRP_JSON(objTransaction, 'SetValue', 'completed', {COMPLETED}, 'Boolean')
|
||||
// Add transaction required fields
|
||||
SRP_JSON(objTransaction, 'SetValue', 'transType', {TRANS_TYPE}, 'String')
|
||||
TransTitle = Xlate('OI_WIZARD_TRANS_TYPES', {TRANS_TYPE}, 'TITLE', 'X')
|
||||
SRP_JSON(objTransaction, 'SetValue', 'title', TransTitle, 'String')
|
||||
ReqFields = Xlate('OI_WIZARD_TRANS_TYPES', {TRANS_TYPE}, 'REQUIRED_FIELDS', 'X')
|
||||
SRP_JSON(objTransaction, 'SetValueArray', 'requiredFields', ReqFields, @VM)
|
||||
|
||||
If {DATA} then
|
||||
Begin Case
|
||||
Case {TRANS_TYPE} EQ 'REACT_MODE_CHG'
|
||||
ReactorNo = {DATA}<0, 1>
|
||||
If ReactorNo then
|
||||
// Add in reactor current mode, available modes, and available sub categories.
|
||||
CurrModeKey = Reactor_Services('GetReactCurrModeId', ReactorNo)
|
||||
CurrMode = Xlate('REACT_MODE_NG', CurrModeKey, REACT_MODE_NG_MODE$, 'X')
|
||||
ServiceDesc = Xlate('REACT_MODE_NG', CurrModeKey, REACT_MODE_NG_SERVICE_DESC$, 'X')
|
||||
AvailModes = '':@VM:Reactor_Modes_Services('AvailableModes', CurrMode, CurrUser)
|
||||
CurrRLKey = Xlate('REACT_MODE_NG', CurrModeKey, REACT_MODE_NG_START_RL_ID$ , 'X')
|
||||
AvailMaintComments = '':@VM:Xlate('APP_INFO', 'REACT_MODE_CHANGE_MAINT_COMMENT_OPTIONS', 1, 'X')
|
||||
AvailEngrComments = '':@VM:Xlate('APP_INFO', 'REACT_MODE_CHANGE_ENGR_COMMENT_OPTIONS', 1, 'X')
|
||||
// Create reactor object
|
||||
If SRP_JSON(objReactor, 'New', 'Object') then
|
||||
SRP_JSON(objReactor, 'SetValue', 'reactorNo', ReactorNo, 'String')
|
||||
SRP_JSON(objReactor, 'SetValue', 'currMode', CurrMode, 'String')
|
||||
SRP_JSON(objReactor, 'SetValue', 'currModeKey', CurrModeKey, 'String')
|
||||
SRP_JSON(objReactor, 'SetValue', 'serviceDesc', ServiceDesc, 'String')
|
||||
SRP_JSON(objReactor, 'SetValue', 'reactLogKey', CurrRLKey, 'Number')
|
||||
If SRP_JSON(objModesArray, 'New', 'Array') then
|
||||
For each AvailMode in AvailModes using @FM setting fPos
|
||||
If SRP_JSON(objMode, 'New', 'Object') then
|
||||
SRP_JSON(objMode, 'SetValue', 'mode', AvailMode, 'String')
|
||||
SubCats = '':@VM:Xlate('REACTOR_MODES', AvailMode, 'SERVICE_CATEGORIES', 'X')
|
||||
SRP_JSON(objMode, 'SetValueArray', 'subCategories', SubCats, @VM)
|
||||
SRP_JSON(objModesArray, 'Add', objMode)
|
||||
SRP_JSON(objMode, 'Release')
|
||||
end
|
||||
Next AvailMode
|
||||
// Add modes array object to reactor object
|
||||
SRP_JSON(objReactor, 'Set', 'availableModes', objModesArray)
|
||||
SRP_JSON(objModesArray, 'Release')
|
||||
end
|
||||
If SRP_JSON(objComments, 'New', 'Array') then
|
||||
If SRP_JSON(maintComments, 'New', 'Object') then
|
||||
SRP_Json(maintComments, 'SetValue', 'category', 'WAITING_FOR_MAINTENANCE_UNSCHEDULED', 'String')
|
||||
SRP_Json(maintComments, 'SetValueArray', 'comments', AvailMaintComments, @VM)
|
||||
SRP_Json(objComments, 'Add', maintComments)
|
||||
SRP_Json(maintComments, 'Release')
|
||||
end
|
||||
If SRP_JSON(engrComments, 'New', 'Object') then
|
||||
SRP_Json(engrComments, 'SetValue', 'category', 'WAITING_FOR_ENGTECH_UNSCHEDULED', 'String')
|
||||
SRP_Json(engrComments, 'SetValueArray', 'comments', AvailEngrComments, @VM)
|
||||
SRP_Json(objComments, 'Add', engrComments)
|
||||
SRP_Json(engrComments, 'Release')
|
||||
end
|
||||
SRP_JSON(objReactor, 'Set', 'availableComments', objComments)
|
||||
SRP_JSON(objComments, 'Release')
|
||||
end
|
||||
SRP_JSON(objTransaction, 'Set', 'reactor', objReactor)
|
||||
SRP_JSON(objReactor, 'Release')
|
||||
end
|
||||
end
|
||||
End Case
|
||||
end
|
||||
|
||||
SRP_JSON(objJSONTransaction, 'Set', 'transaction', objTransaction)
|
||||
SRP_JSON(objTransaction, 'Release')
|
||||
end
|
||||
|
||||
If itemURL NE '' then
|
||||
// The itemURL was passed in so add HAL+JSON properties.
|
||||
|
||||
// Create the _links property and then all link objects needed for this resource.
|
||||
If SRP_JSON(objLinks, 'New', 'Object') then
|
||||
// Create a self link.
|
||||
If SRP_JSON(objLink, 'New', 'Object') then
|
||||
SRP_JSON(objLink, 'SetValue', 'href', ItemURL, 'String')
|
||||
SRP_JSON(objLink, 'SetValue', 'title', 'Self', 'String')
|
||||
SRP_JSON(objLinks, 'Set', 'self', objLink)
|
||||
SRP_JSON(objLink, 'Release')
|
||||
end
|
||||
SRP_JSON(objJSONTransaction, 'Set', '_links', objLinks)
|
||||
SRP_JSON(objLinks, 'Release')
|
||||
end
|
||||
|
||||
// Create the _form property to help UIs determine what to display.
|
||||
If SRP_JSON(objForm, 'New', 'Object') then
|
||||
If SRP_JSON(arrayFields, 'New', 'Array') then
|
||||
If SRP_JSON(objField, 'New', 'Object') then
|
||||
SRP_JSON(objField, 'SetValue', 'label', 'Example Label', 'String')
|
||||
SRP_JSON(objField, 'SetValue', 'value', 'Example Value', 'String')
|
||||
SRP_JSON(arrayFields, 'Add', objField)
|
||||
SRP_JSON(objField, 'Release')
|
||||
end
|
||||
SRP_JSON(objForm, 'Set', 'fields', arrayFields)
|
||||
SRP_JSON(arrayFields, 'Release')
|
||||
end
|
||||
SRP_JSON(objJSONTransaction, 'Set', '_form', objForm)
|
||||
SRP_JSON(objForm, 'Release')
|
||||
end
|
||||
// Create the _class property for this resource.
|
||||
SRP_JSON(objJSONTransaction, 'SetValue', '_class', 'resource')
|
||||
end
|
||||
jsonTransaction = SRP_JSON(objJSONTransaction, 'Stringify', 'Styled')
|
||||
SRP_JSON(objJSONTransaction, 'Release')
|
||||
end else
|
||||
Error_Services('Add', 'Unable to create JSON representation in the ' : Service : ' service.')
|
||||
end
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'TransactionID argument was missing in the ' : Service : ' service.')
|
||||
end
|
||||
|
||||
Response = jsonTransaction
|
||||
|
||||
end service
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user