在PCF下拉列表中过滤掉用户

问题描述 投票:2回答:2

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

guidewire gosu
2个回答
1
投票

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

enter image description here

然后选择“范围输入”。然后在ValueRange属性中添加对您编写的代码的调用。应该找到要在下拉列表中显示的用户子集并将其作为List或User []返回的代码,这样的事情可能会起作用

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()
}

1
投票

您需要将输入类型更改为Range Input(或条件单元格,以防您使用列表视图),其中valueRange属性调用检索具有特定角色的用户的方法。

.pcf文件:

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

user role UT IL_ext.公司:

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
  }    
}
© www.soinside.com 2019 - 2024. All rights reserved.