Функциональность одобрения / отклонения пользовательских кнопок объекта - PullRequest
2 голосов
/ 03 октября 2011

Я пытаюсь реализовать функцию наличия кнопок подтверждения и отклонения на пользовательской кнопке в объекте.

У меня 2 вопроса

  1. Можем ли мы вызвать метод apex с пользовательской кнопки?
  2. Как мы можем имитировать функциональность утверждения / отклонения в классе apex?

спасибо

Ответы [ 2 ]

4 голосов
/ 04 октября 2011

Опция 1: Код апекса (http://blog.jeffdouglas.com/2010/01/04/automating-salesforce-approval-processes-with-apex-triggers/)

Ниже код вершины может использоваться для отправки записи на утверждение

// create the new approval request to submit
Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
req.setComments('Submitted for approval. Please approve.');
req.setObjectId(Trigger.new[i].Id);
// submit the approval request for processing
Approval.ProcessResult result = Approval.process(req);
// display if the reqeust was successful
System.debug('Submitted for approval successfully: '+result.isSuccess());

Опция 2: при нажатии JS (http://jamesrsullivan.com/salesforcecom-start-and-approval-process-from)

Перейдите к: «Настройка»> «Настроить»> «Возможности»> «Кнопки и ссылки». Нажмите кнопку «Создать» и используйте следующие данные: Метка: Утвердить имя: Утвердить Тип отображения: Подробная страница Кнопка Поведение: Выполнить JavaScript OnClick JavaScript:

if ((Modal.confirm && Modal.confirm ('После того как вы отправите эту запись на утверждение, вы не сможете ее редактировать или отозвать из процесса утверждения в зависимости от настроек. Продолжить? ')) || (! Modal.confirm && window.confirm (' После того, как вы отправите эту запись на утверждение, вы не сможете ее редактировать или отозвать из процесса утверждения в зависимости от настроек. Продолжить? '))) navigateToUrl ('/ p / process / Submit? id = {! Opportunity.Id} & retURL =% 2F {! Opportunity.Id}');

Замените Opportunity именем вашего API объекта.

4 голосов
/ 04 октября 2011

1) Вам нужно создать страницу VF, которая выполняет ту работу, которая вам нужна, и перенаправляет обратно туда, куда вы хотите, чтобы ваш пользователь был. Описано здесь: http://sfdc.arrowpointe.com/2009/01/08/invoke-apex-from-a-custom-button-using-a-visualforce-page/

2) Взгляните на 2-ю половину (часть req2) этого примера: http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#CSHID=apex_process_example.htm|StartTopic=Content%2Fapex_process_example.htm|SkinName=webhelp. Тогда вместо получения значения newWorkItemIds.get(0) из result вы, вероятно, захотите запросить его из таблицы ProcessInstanceWorkitem

Надеюсь, это поможет вам двигаться дальше

...