project BLF > class BUser > 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/buser.p)

<ANCESTOR-CODE>

<Q-1 run DomainsByActive (all) (Read) (NoCache)
   (input true, (DomainIsActive)
    output dataset tqDomainsByActive) in BDomain >

assign vhAvailableDomains = temp-table tAvailableDomains:handle.
vhAvailableDomains:copy-temp-table(temp-table tqDomainsByActive:handle).

empty temp-table tAvailableCompanies.

for each tUsr on error undo, throw:

    if vlDataLoadKeepPrevious and can-find (tAlreadyCalculatedRecords where
             tAlreadyCalculatedRecords.tcTableName = "Usr" and
             tAlreadyCalculatedRecords.tc_Rowid = tUsr.tc_Rowid)
    then next.

    for each tUsrDomain where
             tUsrDomain.tc_ParentRowid = tUsr.tc_Rowid on error undo, throw:
        <Q-3 run CompanyByDomainActive (all) (Read) (NoCache)
           (input ?, (CompanyId)
            input tUsrDomain.Domain_ID, (DomainId)
            input true, (CompanyIsActive)
            output dataset tqCompanyByDomainActive) in BCompany >

        for each tqCompanyByDomainActive where
                 tqCompanyByDomainActive.tiDomain_ID       = tUsrDomain.Domain_ID and
                 tqCompanyByDomainActive.tlCompanyIsActive = true on error undo, throw:
            create tAvailableCompanies.

            assign tAvailableCompanies.tcCompanyCode = tqCompanyByDomainActive.tcCompanyCode
                   tAvailableCompanies.tcDomainCode  = tUsrDomain.tcDomainCode
                   tAvailableCompanies.tiCompanyId   = tqCompanyByDomainActive.tiCompany_ID
                   tAvailableCompanies.tiDomainId    = tqCompanyByDomainActive.tiDomain_ID.
        end.
    end.
end.