Я работаю разработчиком / администратором Salesforce в организации среднего размера. Время от времени мои начальники просят меня создать что-нибудь «странное» в Salesforce. Они придумывают идеи, и моя работа - воплощать их в жизнь. Этот тип динамики действительно интересен для изучения нового, но не всегда приводит к передовым методам.
Как запустить построитель процессов нажатием кнопки на объекте?
В моем примере будет рассмотрено, как создать настраиваемую кнопку в учетной записи, которая увеличит числовое поле, что приведет к срабатыванию построителя процессов.
Требования: новое числовое поле, настраиваемая кнопка, построитель процессов. Некоторое понимание JavaScript и SOQL.
Создайте новое числовое поле. (Я назвал свой триггер Process Builder) Назовите его и не забудьте дать описание, чтобы администраторы / разработчики позже не запутались.
Создайте новую настраиваемую кнопку. Обозначьте это и опишите.
Внимание! Тип отображения должен быть Кнопка страницы сведений. Поведение должно быть Выполнение JavaScript.
Поместите этот код в свою кнопку. При необходимости измените имена переменных.
//I am assuming this code allows for the JS SOQL calls //Check the resources section for SF documentation {!REQUIRESCRIPT("/soap/ajax/29.0/connection.js")} {!REQUIRESCRIPT("/soap/ajax/29.0/apex.js")} //Select the current account records and put it into the record //variable var records = sforce.connection.query("SELECT Id, Process_Builder_Trigger__c FROM Account Where id = '{!Account.Id}'"); //The records object come with other garbage so we need to only pull //out the account we are working with //Pull the account object out of the records variable and set it to //accountRec var accountRec = records.getArray('records')[0]; //Increase accountRec Process_Builder_Trigger__c //JS sees the number field as a string so this will make sure that //is a number - Number(accountRec.Process_Builder_Trigger__c) accountRec.Process_Builder_Trigger__c = Number(accountRec.Process_Builder_Trigger__c) + 1; //Update accountRec object sforce.connection.update([accountRec]); //Reload the page window.location.reload();
Добавьте кнопку в макет объекта.
Наконец, создайте построитель процесса, который запускается при изменении числового поля. Теперь построитель процессов может делать все, что вы хотите!
На самом деле это всего 5 строк кода. Понимание того, что нажатие кнопки увеличит количество числового поля, вместо того, чтобы выполнять встроенное редактирование или переходить на страницу редактирования, является ключевым. В разделе ресурсов я включу суть текущей версии, которая у меня есть, с проверкой пользователя и диалоговым окном подтверждения, чтобы запросить пользователя.
Но почему?
Одна из основных причин, по которой я выбрал метод поля кнопки и числа, а не флажок, заключается в том, что вы можете повторно использовать числовое поле, и оно в основном автоматически подсчитывает количество нажатий кнопки.
А потому было интересно.
Проблемы
Одна из серьезных проблем, которые я обнаружил при использовании этого метода для запуска построителя процессов, заключается в том, что он медленный. Существует задержка между нажатием кнопки и обновлением страницы. Для моей организации это не проблема, но для других она может быть проблемой. Поскольку существует задержка между обновлением страницы и нажатием кнопки. Некоторые довольные щелчком пользователи могут запускать построитель процессов много раз. Вот почему я добавил код подтверждения JS - см. Суть.
Заявление об ограничении ответственности / ресурсы
Я не являюсь «экспертом» в области администрирования или разработки Salesforce. В настоящее время (24.08.2016) у меня 1 год опыта работы с Salesforce. Работаю над своим сертифицированным разработчиком платформы Salesforce I. Конечно, есть и другие способы решения этой проблемы, но это тот, который я выбрал, чтобы узнать что-то новое и в основном посмотреть, возможно ли это.
Документация Force.com Workbook на JS и пользовательскую кнопку.
Спасибо, что зашли так далеко.