project BLF > class BBaseDaemon > method CalcAllDaemonInfo
query calculated fields procedure
Description
Assign a value to query calculated fields
Parameters
iiDaemonId | input | integer | Daemon id |
icDaemonName | input | character | Name of the daemon |
icDaemonStatus | input | character | Status of the daemon |
icDaemonStatusDiffersFrom | input | character | Status the real daemon status has to be different from. |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/bbasedaemon.p)
create query vhQuery in widget-pool "non-persistent".
vhQuery:forward-only = yes.
vhQuery:set-buffers(ih_Buffer).
vhQuery:query-prepare("for each " + ih_Buffer:table).
vhQuery:query-open().
vhQuery:get-first().
do while not vhQuery:query-off-end:
assign {&tcDaemonLastEndTimeQInfoCalc} =
string(trunc({&tiDaemonLastEndTime} / 3600, 0), "99") + ":" +
string(trunc(({&tiDaemonLastEndTime} modulo 3600) / 60, 0), "99") + ":" +
string(({&tiDaemonLastEndTime} modulo 3600) modulo 60, "99")
{&tcDaemonLastStartTimeQInfoCalc} =
string(trunc({&tiDaemonLastStartTime} / 3600, 0), "99") + ":" +
string(trunc(({&tiDaemonLastStartTime} modulo 3600) / 60, 0), "99") + ":" +
string(({&tiDaemonLastStartTime} modulo 3600) modulo 60, "99").
if vcEnvRootBD = "?" and
(index({&tcDaemonLogFile} , "$ENVROOT") > 0 or
index({&tcDaemonStartDirectory}, "$ENVROOT") > 0) or
vcEnvAppServerURLBD = "?" and
index({&tcDaemonAppserver}, "$ENVAPPSERVERURL") > 0
then do:
<M-1 run MainBlock () in XML>
if index({&tcDaemonLogFile} , "$ENVROOT") > 0 or
index({&tcDaemonStartDirectory}, "$ENVROOT") > 0
then do:
<M-2 run ReadXMLNodeValue
(input search('server.xml') (icXMLFile),
input 'serverConfiguration' (icStartTag),
input 'ENVROOT' (icNodeTag),
output vcEnvRootBD (ocNodeValue),
output viFcReturnSuper (oiReturnStatus)) in XML>
end.
if index({&tcDaemonAppserver}, "$ENVAPPSERVERURL") > 0
then do:
<M-3 run ReadXMLNodeValue
(input search('server.xml') (icXMLFile),
input 'serverConfiguration' (icStartTag),
input 'ENVAPPSERVERURL' (icNodeTag),
output vcEnvAppServerURLBD (ocNodeValue),
output viFcReturnSuper (oiReturnStatus)) in XML>
end.
run gipr_deleteprocedure in vhFcComponent.
delete procedure vhFcComponent.
if viFcReturnSuper <> 0
then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
end.
if index({&tcDaemonLogFile}, "$ENVROOT") > 0
then assign {&tcDaemonLogFile} = replace({&tcDaemonLogFile}, "$ENVROOT", vcEnvRootBD).
if index({&tcDaemonStartDirectory}, "$ENVROOT") > 0
then assign {&tcDaemonStartDirectory} = replace({&tcDaemonStartDirectory}, "$ENVROOT", vcEnvRootBD).
if index({&tcDaemonAppserver}, "$ENVAPPSERVERURL") > 0
then assign {&tcDaemonAppserver} = replace({&tcDaemonAppserver}, "$ENVAPPSERVERURL", vcEnvAppServerURLBD).
vhQuery:get-next().
end.
vhQuery:query-close().
delete object vhQuery.