project BLF > class Business Component > method ReadSessionValues
Description
Read some comonly used values from session like current user login or current company ID and store these values in variables available to all business classes.
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/business.p)
assign vhFcComponent = vhCacher
vcNameList = "ValidLogin,l,UserName,c,UsrID,i,CompanyId,i,CompanyCode,c,"
+ vcFcComponentName + "FieldSecurityActive,l,"
+ {&SETTINGCONFIG-ENABLEPERSISTENTCACHE} + ",l,"
+ "UICustomizationActive,l,CPO,c,vcDateFormat,c,vcNumericFormat,c,UserLogin,c,LocalisationCode,c,"
+ "GlobalSessionId,c,MaxInstancesInTransaction,i,vlTranslationTracing,l,SessionDebugLevel,i,TimeOffset,i,"
+ "UseTranslations,l".
<M-30 run GetValuesFromSession
(input viSessionID (iiSessionId),
input vcNameList (icNameList),
output vcValueList (ocValueList),
output viFcReturnSuper (oiReturnStatus)) in Cacher>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
if entry(1,vcValueList,chr(2)) <> "TRUE"
then do:
<M-14 run SetMessage
(input #T-1'You are not logged on to the system.':100(415)T-1# (icMessage),
input '' (icArguments),
input '' (icFieldName),
input '' (icFieldValue),
input 'D':U (icType),
input 1 (iiSeverity),
input '' (icRowid),
input 'BLF-264':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in business>
assign oiReturnStatus = -5.
return.
end.
assign vcUserName = entry(2,vcValueList,chr(2))
viUsrID = integer(entry(3,vcValueList,chr(2)))
viCompanyId = integer(entry(4,vcValueList,chr(2)))
vcCompanyCode = entry(5,vcValueList,chr(2))
vlFieldSecurityActiveOnBC = (entry(6,vcValueList,chr(2)) = "TRUE")
vlEnablePersistentCache = (entry(7,vcValueList,chr(2)) = "TRUE")
vlUICustomizationActive = (entry(8,vcValueList,chr(2)) = "TRUE")
vcClientPrincipalObject = entry(9,vcValueList,chr(2))
vcFcDateFormat = entry(10,vcValueList,chr(2))
vcFcNumericFormat = entry(11,vcValueList,chr(2))
vcUserLogin = entry(12,vcValueList,chr(2))
vcLocalisationCode = entry(13,vcValueList,chr(2))
vcGlobalSessionId = entry(14,vcValueList,chr(2))
viFcMaxInstancesInTransaction = integer(entry(15,vcValueList,chr(2)))
vlTranslationTracing = (entry(16,vcValueList,chr(2)) = "TRUE")
viSessionDebugLevel = integer(entry(17,vcValueList,chr(2)))
viTimeOffset = integer(entry(18,vcValueList,chr(2)))
vlObjectTranslationsActive = entry(19, vcValueList, chr(2)) = "TRUE".
session:timezone = viTimeOffset.
if viSessionDebugLevel = ?
then viSessionDebugLevel = 0.
/*
<M-17 run RegisterClientPrincipalInPool
(input 'showusage' (icObjectKey),
output viFcReturnSuper (oiReturnStatus)) in ComponentPool>
*/
run RegisterClientPrincipalInPool (input vcClientPrincipalObject, output viFcReturnSuper).
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.