project BLF > class BTimeOutDaemonQueue > method CreateTimeOutDaemonQueue
Description
Method to create the TimeOutDaemonQueue records.
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/btimeoutdaemonqueue.p)
/* Set default return-status and clear the data */
If oiReturnStatus = 0
Then assign oiReturnStatus = -98.
<M-5 run ClearData
(output viFcReturnSuper (oiReturnStatus)) in BTimeOutDaemonQueue>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then Return.
/* Find the Budget Daemon-record */
<Q-6 run DaemonPrim (all) (Read) (NoCache)
(input {&TIMEOUTDAEMON}, (DaemonName)
input ?, (DaemonId)
output dataset tqDaemonPrim) in BBaseDaemon >
find tqDaemonPrim where
tqDaemonPrim.tcDaemonName = {&TIMEOUTDAEMON}
no-lock no-error.
if not available tqDaemonPrim
then do:
assign vcMsg = trim(#T-1'TimeOut-Daemon record does not exist.':100(8534)T-1#)
oiReturnStatus = -3.
<M-7 run SetMessage
(input vcMsg (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'E':U (icType),
input 1 (iiSeverity),
input '' (icRowid),
input 'BLF-225':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BTimeOutDaemonQueue>
Return.
end. /* if not available tqDaemonPrim */
assign viParentDaemonId = tqDaemonPrim.tiDaemonId
vcParentDaemonName = tqDaemonPrim.tcDaemonName.
/* create daemon queue records */
<Q-13 run FcSessionByAll (all) (Read) (NoCache)
(input ?, (SessionInstanceId)
input True, (GlobalSessionNeedsUpdate)
output dataset tqFcSessionByAll) in BFcSession >
For Each tqFcSessionByAll:
<M-12 run AddDetailLine
(input 'fcDaemonQueue':U (icTable),
input ? (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BTimeOutDaemonQueue>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then Return.
assign tfcDaemonQueue.DaemonId = tqDaemonPrim.tiDaemonId
tfcDaemonQueue.DaemonQueueStatus = {&DAEMONQUEUESTATUS-WAITING}
tfcDaemonQueue.DaemonQueuePriority = 1
tfcDaemonQueue.DaemonQueueRef = "TIMEOUT" + String(tqFcSessionByAll.tiSessionInstance_ID)
tfcDaemonQueue.DaemonQueueRefDescription = tqFcSessionByAll.tcGlobalSessionId .
End. /*For Each tqFcSessionByAll:*/
/* Validate, AddtionalUpdates and Save */
if can-find (first tfcDaemonQueue where
tfcDaemonQueue.tc_Status = "N":U)
then do :
<M-8 run ValidateBC
(output viFcReturnSuper (oiReturnStatus)) in BTimeOutDaemonQueue>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then Return.
<M-9 run AdditionalUpdates
(output viFcReturnSuper (oiReturnStatus)) in BTimeOutDaemonQueue>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then Return.
<M-10 run DataSave
(output viFcReturnSuper (oiReturnStatus)) in BTimeOutDaemonQueue>
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then Return.
end. /* if can find */
/* ========================= */
/* Set return-status = 0 */
/* ========================= */
if oiReturnStatus = -98
then assign oiReturnStatus = 0.