在我们的Siebel 7.8应用程序中,我们有三个实体:服务请求(SR),组和雇员。每个员工可以是一个或多个组的成员,每个服务请求也可以分配给一个或多个组。在Siebel计算字段中使用EXISTS和GetProfileAttrAsList
我有一个请求,在服务请求BC上创建一个计算字段,它将指示当前用户是否属于任何与服务请求关联的组。
我已经在服务请求BC上创建了一个名为SR Groups
的多值字段。我还有另一个多值字段,Employee Groups
;这是一个Personalization Profile
业务组件,这意味着Siebel将自动生成具有相同名称的多值概要文件属性。以上所有内容均按预期工作。
接下来我创建这个计算字段:
IIf(InList([SR Groups], GetProfileAttrAsList("Employee Groups")), "Y", "N")
它的工作原理,但它只有在SR的主要组是当前用户的群体之一检查。我需要检查所有的SR组,而不仅仅是主组。所以,我创建了另一个计算字段:
IIf(EXISTS([SR Groups] = GetProfileAttrAsList("Employee Groups")), "Y", "N")
这一个不起作用。它总是显示“N”。但是,根据this Bookshelf document:
在这种情况下,EXISTS运算符的典型用法是
EXISTS ([Targeted States] = GetProfileAttrAsList("State"))
。这会根据MVG配置文件属性状态进行MVG业务组件字段目标状态的多对多匹配。
这正是我想要做的,没有成功。我看不出我的表情和例子之间的区别。并且没有任何典型的书架警告,如“如果您要使用此功能,则必须激活MVF”或其他任何类似的链接规范属性。
业务组件是基于专业类,CSSBCServiceRequest,但
我不认为这应该是在这种情况下
一个问题 - 它切换到CSSBCBase没有任何解决问题。唯一不起作用的似乎是EXISTS
操作员,这在Siebel中非常标准。另外,如果我使用表达式EXISTS([SR Groups] = GetProfileAttrAsList("Employee Groups"))
在应用程序上执行查询,它不会过滤掉任何服务请求,因为它应该如此。
任何线索?