Получить значение из несвязанного объекта, где совпадают два поля - PullRequest
0 голосов
/ 07 января 2020

У меня есть два объекта - «Аккаунт» и «Назначение». Я пытаюсь получить значение поля «Статус» из объекта «Назначение», где «Account.Initial_Date» соответствует «Appointment.Date_Time». Сначала я попытался создать новое поле в объекте «Account», чтобы вернуть текстовое поле и посмотреть, может ли оно вернуть первое значение:

Appointment__c.Status__c

, что приводит к ошибке:

«Назначение на месте __ c не существует. Проверьте орфографию».

Мне сказали, что слишком сложно связать «Назначение» с «Учетной записью», поскольку может быть несколько назначений на аккаунт, поэтому я пытаюсь связать на основе полей даты. Моя следующая попытка была с использованием VLOOKUP, но я прочитал, что это работает только между пользовательскими объектами, и я думаю, что я работаю со стандартными объектами здесь ... какое решение я должен искать?

Добавление тега в случае, если это может быть достигнуто только с помощью какого-либо сценария - если это так, я попытаюсь сделать это.

1 Ответ

1 голос
/ 07 января 2020

Мне сказали, что слишком сложно связать «Встречу» с «Аккаунтом», потому что может быть несколько встреч на одну учетную запись

Это неверно. Эта связь выглядит точно так же, как между контактом и учетной записью - один контакт, много учетных записей Это очень распространенный шаблон отношений в Salesforce.

Если Встреча логически связана с Учетной записью, она должна иметь поле отношения, ссылающееся на объект Учетной записи, с которым она связана.

Однако, имея Отношение «один ко многим» не означает, что вы можете тривиально представить определенные c точки данных от многих сторон к одной стороне. Родным инструментом для этого является поле сводной сводки, но оно не применимо к вашему варианту использования.

На самом деле есть три способа реализации вашей цели, которые, по сути, реализуют вариант свертки. резюме. VLOOKUP(), который работает только в Правилах валидации, здесь не применяется.

  1. Напишите два триггера Apex (один для учетной записи и один для назначения), чтобы реагировать на все изменения, которые влияют на то, какое значение должно появиться в поле Account__c.Status__c.
  2. Записать эквивалентную декларативную автоматизацию процессов и потоков, которая не может получить 100% пути, поскольку Process Builder и Flow не могут реагировать на удаление событий.
  3. Используйте бесплатное приложение с открытым исходным кодом Сводные сводки декларативного поиска Приложение для определения сводной сводки. DLRS может заполнять поле от дочернего объекта (Назначение) до родительского (Учетная запись) на основе сортировки по другому полю (Date_Time__c).
...