project BLF > class BXmlDaemonQueue > method Calculate

Description

Add code here to initialize the calculated fields of the class temp-tables after loading existing records from the application database.


Parameters


oiReturnStatusoutputinteger


Internal usage


unused


program code (program/bxmldaemonqueue.p)

/* backwards compatibility */
if can-find (first tXmlDaemonQueueSegment)
then for each tXmlDaemonQueue where tXmlDaemonQueue.tc_Status <> "D":
    vpConvert = tXmlDaemonQueue.XmlDaemonQueueLOB.
    for each tXmlDaemonQueueSegment where
             tXmlDaemonQueueSegment.tc_ParentRowid = tXmlDaemonQueue.tc_Rowid and
             tXmlDaemonQueueSegment.tc_Status <> "D"
             by tXmlDaemonQueueSegment.XmlDaemonQueueSegmentSeq:
        vpConvert = vpConvert + tXmlDaemonQueueSegment.XmlDaemonQueueSegmentText.
        tXmlDaemonQueueSegment.tc_Status = "D".
    end.
    assign tXmlDaemonQueue.XmlDaemonQueueLOB = vpConvert 
           tXmlDaemonQueue.tc_Status = "C".
end.

<ANCESTOR-CODE>

if vlXmlObjectsAddToParent = yes
and (vlKeepProcessedOKItems = yes or vlSetWorkResultSuccess = no)
then do:
    assign vlXmlObjectsAddToParent = no.

    find first tXmlDaemonQueue no-error.

    if available tXmlDaemonQueue
    then do:
        for each tXmlDaemonQueueObject where
                 tXmlDaemonQueueObject.tc_ParentRowid = tXmlDaemonQueue.tc_Rowid:
            assign tXmlDaemonQueueObject.tc_Status = "D":U.
        end.

        for each tXmlObjects:
            find first tXmlDaemonQueueObject where
                       tXmlDaemonQueueObject.tc_ParentRowid = tXmlDaemonQueue.tc_Rowid and
                       tXmlDaemonQueueObject.XmlDaemonQOSeq = tXmlObjects.tiObjectSeq
                       no-error.

            if available tXmlDaemonQueueObject
            then assign tXmlDaemonQueueObject.tc_Status = "C":U.
            else do:
                <M-1 run AddDetailLine
                   (input  'XmlDaemonQueueObject':U (icTable), 
                    input  tXmlDaemonQueue.tc_Rowid (icParentRowid), 
                    output viFcReturnSuper (oiReturnStatus)) in BXmlDaemonQueue>

                if viFcReturnSuper <> 0
                then assign oiReturnStatus = viFcReturnSuper.

                if viFcReturnSuper < 0
                then return.
            end.

            assign tXmlDaemonQueueObject.XmlDaemonQOSeq          = tXmlObjects.tiObjectSeq
                   tXmlDaemonQueueObject.XmlDaemonQOPrimaryKey   = tXmlObjects.tcObjectPK
                   tXmlDaemonQueueObject.XmlDaemonQOReturnStatus = tXmlObjects.tiObjectReturnStatus
                   tXmlDaemonQueueObject.XmlDaemonQORowid        = (if length(tXmlObjects.tcObjectRowid,"CHARACTER") > 20
                                                                    then ""
                                                                    else tXmlObjects.tcObjectRowid)
                   tXmlDaemonQueueObject.XmlDaemonQODraftID      = tXmlObjects.tiObjectDraftId.

            delete tXmlObjects.
        end.

        assign tXmlDaemonQueue.XmlDaemonQueueXmlFreeText   = vcXmlFreeText
               tXmlDaemonQueue.XmlDaemonQueueXmlCyCode     = vcXmlCyCode
               tXmlDaemonQueue.XmlDaemonQueueXmlClassName  = vcXmlClassName
               tXmlDaemonQueue.XmlDaemonQueueXmlOrigin     = vcXmlOriginator
               tXmlDaemonQueue.tc_Status                   = if tXmlDaemonQueue.tc_Status = ""
                                                             then "C":U
                                                             else tXmlDaemonQueue.tc_Status.
    end.
end.

assign vlXmlObjectsAddToParent = no.