贝克汉姆
作者贝克汉姆·2012-08-26 17:43
软件开发工程师·IBM

2.3.9.1 Session Parameters(会话变量)

字数 1163阅读 6734评论 19赞 24
2.3.9.1 Session Paramters
会话参数是FM当前会话变量,如用户名、邮箱、邮政编码、语言区域都是会话参数。会话参数包含两种:
1、环境变量:存储在Content Manager,默认情况下下列会话参数将会出现在Framework Manger里,点击FM-->Project-->Session Parameters,如下图所示:

(图2.3.9 默认的会话变量)
建模设计阶段,以下参数显示的是建模者所在的区域;运行报表时,不同用户在各自客户端运行,以下会话参数相应变化:
※runLocale,返回当前FM使用的活动语言,当运行报表时根据用户客户端所在的区域语言动态生成
※account.defaultName 登录FM后,显示身份验证程序定义的登录用户名(first last name),匿名登录则显示 Anonymous。该参数对大多数身份验证程序通用,如LDAP,NTLM
※account.personalInfo.userName,登陆者的ID,和account.defaultName 不同
※current_timestamp 返回当前时间和时间
※machine 返回FM安装所在的机器名
使用它们时前面会带有美元符号$,我们直接引用以上参数到报表数据项展示,显示当期登录用户的会话变量信息,如#sq($machine)#,下图所示

(图2.3.9 报表显示sessions变量值)
根据身份验证程序的不同,所提供的Session参数也不同,Session参数可以单独使用亦可结合PrameterMap使用。如LDAP则提供了会话参数 account.personalInfo.email 用户邮件地址,account.personalInfo.surname用户别名。

2、模型变量:模型会话参数值可以是静态的,并必须有一个名称和默认值,如下添加一个 ‘模型创建者’静态值
如:ModelCreator shakar

(图2.3.9 创建模型变量)
报表数据项引用#sq($ModelCreator)#,运行结果如下

(图2.3.9 报表显示效果)
  会话参数为报表开发提供了极大的便利,根据不同的报表用户获取各自的会话参数,我们可在报表前段基于这些会话参数做出相应处理,如在报表前段显示用户的名称$account.defaultName,于是我们可以制作更为有好的界面 ‘亲爱的xxxx客户,欢迎您登陆CognosChina报绩效管理系统’,效果图如下:

(图2.3.9 显示欢迎信息)
比如$runlocal变量,对于多语言模型和报表非常有用,这可以根据报表客户所在的区域能看到符合客户喜好语言的报表字体。会话变量的用途还有很多,下一节将会讲解 2.3.9.2 Parameter Map

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

24

添加新评论19 条评论

yizhenyizhen研发工程师ntt
2018-06-06 11:28
你好,sdk是怎么实现添加id,name全局会话参数
happycockhappycock软件开发工程师IBM GDC( 上海)
2016-01-18 14:26
受教了。。。。。
ayhealthayhealth软件开发工程师XXXX
2015-03-03 10:31
贝总,比如我想实现,根据用户登录账号自动获取用户的所在部门及机构信息该怎么操作呢?我想知道,环境变量中的那些参数可以再哪里进行新增吗?
elvalinelvalin研发工程师18M
2014-01-18 19:48
学习/学习,感谢贝总分享!
dql2008dql2008软件架构设计师home
2013-10-31 22:35
学习一下!!!
jafejafe软件开发工程师abc
2013-09-05 12:09
Transformer runlocal如何设置哦,一直都是Chinese(china)(zh-cn),如何修改为en
为了明天time为了明天time商业智能工程师中科软科技股份有限公司
2013-08-16 13:37
学习了..
贝克汉姆贝克汉姆软件开发工程师IBM
2012-11-16 14:52
pjlo: 学习一下,我也很想知道答案啊,不知道有结果了没
能,Cookies传过来的参数,必须和认证程序的参数匹配,且参数名也是一样的。
pjlopjlo数据库管理员银行
2012-11-16 10:26
贝克汉姆: 记下来了,我有环境,试出来后再回复
学习一下,我也很想知道答案啊,不知道有结果了没
爱上零点半爱上零点半软件开发工程师1234
2012-11-05 15:10
顶起
gulangduhugulangduhu软件开发工程师普瑞邦克
2012-10-30 17:47
谢谢贝壳
贝克汉姆贝克汉姆软件开发工程师IBM
2012-10-30 17:22
gulangduhu: 能否不通过登录验证,直接通过Cookie将应用系统的Session信息传递给Cognos,然后通过Session Parameter来获取传递过来的变量
记下来了,我有环境,试出来后再回复
gulangduhugulangduhu软件开发工程师普瑞邦克
2012-10-30 14:57
能否不通过登录验证,直接通过Cookie将应用系统的Session信息传递给Cognos,然后通过Session Parameter来获取传递过来的变量
aqiang_007aqiang_007软件开发工程师longtop
2012-09-11 21:07
好久没来,越来越精彩了,多谢贝贝哥
aheadwateraheadwater软件开发工程师gbicc
2012-09-02 14:51
学习了......
tobattle1314tobattle1314软件开发工程师京北方信息技术有限公司
2012-08-31 14:43
谢谢分享,好好学习下
hikeplayguitarhikeplayguitar研发工程师山东城市商业银行联盟
2012-08-30 12:33
这个很棒啊,搞权限的时候用得着
gu84langgu84lang软件开发工程师gbicc
2012-08-29 11:31
gu84langgu84lang软件开发工程师gbicc
2012-08-29 11:31
挺好的。。。
Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广