Занимался этим вопросом некоторое время и хотел бы получить некоторую помощь. Больше всего на мой взгляд, это вопрос о том, как обходить разрешения. Я надеюсь, что это правильное место, чтобы задать этот вопрос: я пытался спросить на форумах SF Developer, но не получил ответа.
Обзор:
Мы используем плагин программного обеспечения для вызовов Five9, который синхронизируется с Salesforce на основе добавления / удаления участников кампании. На основе определенных критериев потенциальных клиентов, которые задает основной пользователь, автоматически запускается поток, который добавляет или удаляет потенциальные клиенты в / из кампании. Это работает для учетных записей администраторов: например, если я (с полными системными разрешениями) активирую поток, который добавляет или удаляет отрывок к / из кампании, Salesforce будет использовать мою учетную запись для вызова класса средства обновления (который является общедоступным классом, но это важно не глобально) из установленного / управляемого пакета, предоставляемого программным обеспечением для вызова.
Это сложно, когда мы добавляем пользователей, у которых нет полных системных разрешений. Если основной маркетинговый пользователь добавляет / удаляет участника кампании (через автоматизированный поток), класс Apex не будет отображаться как инициированный в списке заданий Apex, и синхронизация внешнего списка не происходит. Это заставляет меня поверить, что этим пользователям не разрешается звонить в рассматриваемый класс.
Что я сделал:
По сути, я просмотрел наборы разрешений и попытался добавить как можно больше разрешений, связанных с Apex, включая «Автор Apex» и т. Д. Я просмотрел всю онлайн-документацию, которую могу найти, для каких разрешений будет необходимо, но мне не удалось найти набор разрешений, который не дает базовым пользователям почти полные права администратора, что по ряду причин мы не хотим делать.
Мой вопрос:
Как сделать так, чтобы этот класс Apex выполнялся независимо от разрешений пользователя, добавляющего / удаляющего участника кампании? Нужно ли писать класс триггера Global Without Sharing для добавления / удаления участников кампании каждый раз, когда выполняются определенные критерии записи? Будет ли это столкнуться с той же проблемой?
Спасибо!