пакетный процесс для синхронизации ролей контактов с пользовательским объектом - PullRequest
0 голосов
/ 06 февраля 2012

, поскольку у ролей контактов возможности нет возможности записывать триггеры, я использую пакетный процесс для синхронизации его с моим пользовательским объектом.

Opp и OpportunityContactRole связаны с oppid, Project и customobj связаны с projectid

Project и Opp связаны с oppid. У проекта есть возможность поиска.

Вопрос, который у меня есть,

  1. Если бы он просто вставлял из optioncontactRole в пустой пользовательский объект, то я мог бы перебрать все optioncontactRole и создать новую запись для customobj и заменить oppid на projectid из карты oppid и projectid. Но если запись уже присутствует и если в контакт внесено только изменение, как я могу проверить и обновить его? Также, если в customobj было несколько записей, я застрял в том, как это сделать

Любой указатель будет очень полезен

1 Ответ

0 голосов
/ 09 февраля 2012

Хорошо ... я нашел решение сам ... На всякий случай, если у кого-то было подобное требование.

Создал новое поле в настраиваемом объекте для хранения идентификатора роли контакта

Циклвесь активный проект, захватить все внешние оттуда в набор, захватить все идентификаторы проекта в другой набор, записать все проекты в карту с идентификатором OPID и проекта

Перебрать все записи в настраиваемом объекте для проектов из проектанабор захватывает все идентификаторы контактных ролей в набор, создает карту контактного идентификатора и пользовательского объекта и добавляет туда записи (Mapcontactrole)

Перебирает все oppcontactrole для всех опп, записанных в oppidset. Проверьте, присутствует ли contactroleid в mapcontactrole, если да, Проверьте, есть ли какие-либо изменения в полях, если есть изменения, сделайте обновление и добавьте эту запись в новый список настраиваемого объекта, иначе добавьте ее в список настраиваемого объекта

, добавьте новый список настраиваемого объекта

...