project BLF > class BBaseDaemon > method CalcAllDaemonInfo

query calculated fields procedure

Description

Assign a value to query calculated fields


Parameters


iiDaemonIdinputintegerDaemon id
icDaemonNameinputcharacterName of the daemon
icDaemonStatusinputcharacterStatus of the daemon
icDaemonStatusDiffersFrominputcharacterStatus the real daemon status has to be different from.
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
query DaemonInfo


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.