project BLF > class Database Component > method UpdateLastModified

Description

update LastModified*** fields


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method database.AdditionalUpdates

QadFinancials
method BPostingHist.AdditionalUpdates
method BPostingSafHist.AdditionalUpdates


program code (program1/database.p)

<M-1 run DataDescription
   (input  '' (icRowids), 
    input  '' (icPkey), 
    input  '' (icObjectIds), 
    input  no (ilAllTables), 
    output viFcReturnSuper (oiReturnStatus)) in database>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.

/* Save date and time in UTC */
session:timezone = 0.

for each tFcDynRel on error undo, throw:

    assign vhDate = ?
           vhTime = ?
           vhUser = ?.

    assign vhDate = tFcDynRel.thFcBuffer:buffer-field("LastModifiedDate":U)
           vhTime = tFcDynRel.thFcBuffer:buffer-field("LastModifiedTime":U)
           vhUser = tFcDynRel.thFcBuffer:buffer-field("LastModifiedUser":U) no-error.

    if  vhDate = ?
    and vhTime = ?
    and vhUser = ?
    then next.

    create query vhQuery in widget-pool "non-persistent".
    vhQuery:forward-only = yes.
    vhQuery:set-buffers(tFcDynRel.thFcBuffer).
    assign vlFcOk = vhQuery:query-prepare ("for each t_o":U + tFcDynRel.tcFcTo
                                           + " where t_o":U + tFcDynRel.tcFcTo + ".tc_Status = 'N'":U
                                              + " or t_o":U + tFcDynRel.tcFcTo + ".tc_Status = 'C'":U).
    if vlFcOk
    then assign vlFcOk = vhQuery:query-open().
    if vlFcOk = no
    then next.
    vhQuery:get-first().
    
    do while not vhQuery:query-off-end:

        if vhDate <> ?
        then vhDate:buffer-value = today.

        if vhTime <> ?
        then vhTime:buffer-value = time.

        if vhUser <> ?
        then vhUser:buffer-value = vcUserLogin.

        vhQuery:get-next().
    end.
    
    vhQuery:query-close().
    delete object vhQuery.
    vhQuery = ?.
end.

finally:
    session:timezone = viTimeOffset.
    if vhQuery <> ? then delete object vhQuery.
end finally.