Я пытаюсь запросить историю поля возможности, чтобы получить результаты для пользовательского поля поиска, в котором есть отслеживание истории. Я возвращаю 2 записи для 1 единственного изменения, одна из записей имеет старое значение и новое значение в качестве идентификатора поиска, а другая запись имеет имя поиска как старое и новое значение. Мне было интересно, почему история поля создает 2 записи для одного и того же изменения. Я пытаюсь запросить его и установить полученный список в таблицу внешнего интерфейса, но поскольку он возвращает 2 значения для одного изменения, отображается повторяющееся значение. как я могу ограничить это?

Мой запрос выглядит как этот идентификатор выбора, OldVlaue, NewVlaue из OpportunityFieldHistory, где OpportunityId = 'oppID'

0
aakash poudel 29 Июн 2020 в 02:57
Попробуйте добавить столбец «Поле» в свой запрос, он должен указать вам отслеживаемое поле каждой строки. Я предполагаю, что это не одно и то же поле.
 – 
Hengky Djapar
29 Июн 2020 в 03:54
Я добавил столбец «Поле» в запрос запроса, он по-прежнему показывает мне 2 записи для одного и того же отслеживаемого поля поиска, одну с идентификатором для старого значения и новым значением для поля поиска, а другую — со значением имени поля поиска в старом значении и новом значении.
 – 
aakash poudel
29 Июн 2020 в 04:07

1 ответ

Лучший ответ

Это "работает как задумано"

Например, история полей на Opportunity.OwnerId вернет две записи.

OldValue      NewValue
----------     --------
oldId          newId
oldOwner.Name  newOwner.Name  // facilitates display in the Related List

Поскольку вы не можете фильтровать OldValue или NewValue в запросе; вам потребуется выполнить постобработку в Apex, протестировав OldValue / NewValue, чтобы увидеть, приводятся ли они к типу ID

try {
   Id oldValAsId = (Id) fieldHistoryItem.OldValue;
}
 catch (Exception e) { // ignore item  }
0
cropredy 30 Июн 2020 в 01:38