页面树结构
转至元数据结尾
转至元数据起始

系统函数指与用户信息相关的一类函数,包括内置的系统函数和用户自定义的函数。

例如在数据权限管理、与用户权限相关的查询定义中通常会使用到这些函数。

其中内置的函数不允许删除,自定义的函数允许删除。

 

系统内置函数

系统内置的函数主要是一些常用的函数,比如当前用户的信息。一般用户在数据权限设置中使用。

系统内置的函数如下:

函数

说明

CurrentUserAlias()

获取当前用户别名。无参数。

CurrentUserID()

获取当前用户的编号。无参数。

CurrentUserName()

获取当前用户的名称。无参数。

GetCookie()

获取Cookie信息。参数1:cookiePropertyName[字符串]

GetFirstDayOfFrequencyParameter()

获取频度日期参数值对应的第一天,例如获取2012年第1周的第一天,返回值为2012-01-01。参数:参数值[字符串]

GetLastDayOfFrequencyParameter()

获取频度日期参数值对应的最后一天,例如获取2012年第1周的最后一天,返回值为2012-01-07。参数:参数值[字符串]

GetUserProperty(propertyName)

获取用户属性的值。参数:propertyName—指系统管理中的“用户属性”名。

CurrentUserAllDepartmentIDRecursively()

当前用户所属机构及其所有子机构的ID。无参数。

CurrentUserDepartments()

获取用户所属机构的编号,无参数。用法常见于 select 字段 from table where 字段 in (CurrentUserDepartments())

CurrentUserDefaultDepartmentAlias()

获取用户所属默认用户组的别名。无参数。

CurrentUserDefaultDepartmentID()

获取用户所属默认用户组的编号。无参数。对应知识库中t_group表中的c_orgid字段

CurrentUserDefaultDepartmentName()

获取用户所属默认用户组的真名。无参数。

GetSessionAttribute(AttributeName)

获取当前会话中的属性值;参数是“属性名称”。

GetSelectedMembers()

获取当前多维分析中指定维度层次下的所有成员。参数是“hierarchy”即维度层次。该函数常用于自定义成员中汇总表达式。

GetUserAccessibleMembers()

获取指定维度层次中当前用户具有数据访问权限的成员。参数有两个:

  • 第一个参数:“hierarchy”即维度层次。
  • 第二个参数:“Self”表示获取顶层成员;“SelfAndChildren”表示获取顶层成员及其子成员;“Children”表示获取顶层成员的子成员。

GetUserPropertyWithoutBrackets(propertyName)

获取用户属性(不使用括号)。参数1:propertyName[字符串]

GetUserIP()获取当前用户登录的IP地址。无参数。
GetUserExAttr(attrName)获取当前用户的指定扩展属性。参数1:attrName[字符串] (扩展属性的属性名)

 

系统函数应用参数示例:

自定义函数

系统允许用户自定义“字符串”类型的系统函数,以实现一些特殊功能需求:如实现“上年同期”、“取年末或是月末的值”等。

在系统中设置自定义函数,请执行下列操作:

(1)     创建扩展包,编写自定义系统函数类(使用Java语言编写,示例可参考 自定义函数-Oracle in语法超1000的问题)。

(2)     将编写好的自定义函数类文件存放在扩展包的以下包名下:smartbi.freequery.expression.function。

(3)     在应用服务器上重新部署扩展包

(4)     重启应用服务器,在定制管理界面,找到 函数列表 > 系统函数 > 字符串节点。

         

(5)     在“字符串”的右键菜单中选择 增加自定义函数,弹出“自定义函数”窗口。

(6)     在“自定义函数”窗口输入名称,该名称必须要与放入到“function”目录中的自定义函数类文件名称一致。

(7)     创建完成后,就可以和系统内置函数一样在产品中拖拽使用了。