Отфильтруйте пользователей в выпадающем списке PCF - PullRequest
2 голосов
/ 25 марта 2019

В ClaimCenter я пытаюсь отфильтровать раскрывающийся список, чтобы отображать только пользователей с определенной ролью. Я использую ячейку ввода пользователя. Диапазон значений только для входной ячейки пользователя отсутствует. Значение задает пользователя, которого они выбирают, поэтому сейчас он отображает всех пользователей в системе, а не только тех, с ролью которых я хочу. Есть ли способ показать только пользователям, которые имеют роль «Настройщик». Я не вижу опции фильтра в этой ячейке.

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Вам необходимо изменить тип ввода на Range Input (или Range Cell, если вы используете представление списка), где свойство 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
  }    
}
1 голос
/ 27 марта 2019

Щелкните правой кнопкой мыши по элементу и выберите «Изменить тип элемента»

enter image description here

Затем выберите «Ввод диапазона».Затем в свойстве 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()
}
...