2

在 ClaimCenter 中,我试图过滤下拉列表以仅显示具有特定角色的用户。我正在使用用户输入单元格。用户输入单元格的唯一值没有值范围。该值设置为他们选择的用户,因此现在它显示系统中的所有用户,而不仅仅是具有我想要的角色的用户。有没有办法只显示具有“调整者”角色的用户。我在此单元格上也没有看到过滤器选项。

4

2 回答 2

1

您需要将输入类型更改为范围输入(如果您使用的是列表视图,则为范围单元格),其中 valueRange 属性调用一个检索具有特定角色的用户的方法。

.pcf 文件:

<RangeInput
  editable="true"
  id="userInput"
  label="&quot;Adjusters&quot;"
  value="claim.AssignedUser"
  valueRange="UserRoleUtil_Ext.Adjusters"
  valueType="entity.User"/>

UserRoleUtil_Ext.gs:

uses gw.api.database.Query
uses gw.api.database.Relop

class UserRoleUtil_Ext {

  public static property get Adjusters() : User[] {
    var adjusterRole = Query.make(Role).compare(Role#Name, Relop.Equals, "Adjuster").select().AtMostOneRow
    // Alternatively, you can retrieve the Role by its public-id, e.g.:
    // var roleRetrievedById = Query.make(Role).compare(Role#PublicID, Relop.Equals, "cc:1").select().AtMostOneRow
    return adjusterRole.AllUsersArray
  }    
}
于 2019-03-27T09:00:52.657 回答
1

右键单击元素并选择“更改元素类型”

在此处输入图像描述

然后选择“范围输入”。然后在 ValueRange 属性中添加对您编写的代码的调用。代码应该找到您要在下拉列表中显示的用户子集并将它们作为列表或用户 [] 返回,类似这样的东西可能有效

function myValueRangeFunction(pClaim: Claim) : User[] {
  //gets the group from the DB by public ID
  var adjusterGroup = Group ("cc:123");
  var adjustersOnly = new Set<User>();
  var groupUsers = adjusterGroup.MembersNoSystemUsers
  adjustersOnly.addAll(groupUsers*.Users)
  return adjustersOnly.toArray()
}
于 2019-03-27T01:21:26.067 回答