project BLF > class Session > method SetDateValue

Description

Change the value of any date data item in the session component.


Parameters


icNameinputcharacterName of the data item.
itValueinputdatevalue of the data item
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program1/session.p)

find tDataItems where
     tDataItems.tcName     = icName and
     tDataItems.tcDataType = "t":U  no-error.
if available tDataItems
then do:
    /* do not allow external clients to overwrite business session values */
    if  program-name (3) = ?
    and tDataItems.tlBusinessValue
    then do:
        <M-3 run SetMessage
          (input  '[$1] is a read-only session value.':U (icMessage), 
           input  icName (icArguments), 
           input  '' (icFieldName), 
           input  '' (icFieldValue), 
           input  'S':U (icType), 
           input  3 (iiSeverity), 
           input  '' (icRowid), 
           input  'BLF-408':U (icFcMsgNumber), 
           input  '' (icFcExplanation), 
           input  '' (icFcIdentification), 
           input  '' (icFcContext), 
           output viFcReturnSuper (oiReturnStatus)) in Session>
        assign oiReturnStatus = -3.
        return.
    end.
end.
else do:
    create tDataItems.
    assign tDataItems.tcName     = icName
           tDataItems.tcDataType = "t":U.
end.

assign tDataItems.ttDateValue = itValue
       tDataItems.tlBusinessValue = (program-name(3) <> ?).

/* ======================================================================= */
/* Always update the cache with the current values                         */
/* ======================================================================= */
<M-1 run StartCacher (output vhFcComponent (ohCacher), 
                      output viFcReturnSuper (oiReturnStatus)) in Session>
<M-2 run SetDateValue
   (input  icName (icName), 
    input  itValue (itValue), 
    input  viFcCurrentInstanceId (iiSessionID), 
    output viFcReturnSuper (oiReturnStatus)) in Cacher>