project BLF > class BXmlDaemon > method ApiSynchronise

Description

This method creates or updates the static data in the fcDaemon table (make sure a record exists for every known daemon, with some default values).


Parameters


olUpdatesDoneoutputlogical
oiReturnStatusoutputinteger


Internal usage


BLF
method BSystem.ApiSynchronise


program code (program/bxmldaemon.p)

<ANCESTOR-CODE>


if not olUpdatesDone
then do :

    /*  Double check the existence of the xmldaemon record */
    <Q-6 run DaemonInfoLimited (all) (Read) (NoCache)
          (input 0, (DaemonId)
           input vcFcDaemonName, (DaemonName)
           input '', (DaemonStatus)
           input '', (DaemonStatusDiffersFrom)
           output dataset tqDaemonInfoLimited) in BBaseDaemon >
    find first tqDaemonInfoLimited no-error.
    if available tqDaemonInfoLimited
    then do :
        <Q-2 assign vlFcQueryRecordsAvailable = XmlDaemonInfo (NoCache)  (input tqDaemonInfoLimited.tiDaemonId, (DaemonId)) in BXmlDaemon >
        if not vlFcQueryRecordsAvailable
        then do :
            /*  Create the XMLdaemon record */
            <M-3 run DataLoad
               (input  '' (icRowids), 
                input  string(tqDaemonInfoLimited.tiDaemonId) (icPkeys), 
                input  '' (icObjectIds), 
                input  '' (icFreeform), 
                input  false (ilKeepPrevious), 
                output viFcReturnSuper (oiReturnStatus)) in BXmlDaemon>
            if viFcReturnSuper <> 0
            then do:
                assign oiReturnStatus = viFcReturnSuper.
                return.
            end.
            <M-4 run AddDetailLine (input  'xmldaemon':U (icTable), 
                        input  tfcDaemon.tc_Rowid (icParentRowid), 
                        output viFcReturnSuper (oiReturnStatus)) in BXmlDaemon>
            if viFcReturnSuper <> 0
            then do:
                assign oiReturnStatus = viFcReturnSuper.
                return.
            end.
            <M-5 run DataSave (output viFcReturnSuper (oiReturnStatus)) in BXmlDaemon>
            if viFcReturnSuper <> 0
            then do:
                assign oiReturnStatus = viFcReturnSuper.
                return.
            end.
            assign olUpdatesDone = true.
        end.
    end.
end.