Я пытаюсь отправить пользовательский объект на утверждение из удаленного действия. До этого момента мы использовали метод контроллера Apex pageReference, который работал должным образом.
Запрос на утверждение был построен следующим образом:
public static string submitQuote(id quoteId){
Approval.ProcessSubmitRequest req1 = new Approval.ProcessSubmitRequest();
req1.setComments('Submitting for Approval');
req1.setObjectId(quoteId);
req1.setNextApproverIds(new ID[]{UserInfo.getUserId()});
Approval.ProcessResult pr = Approval.process(req1);
return 'Success';
}
Если мы вызовем submitQuote из стандартного метода, он будет работать во всех выявленных нами случаях. Когда мы вызываем метод с помощью удаленного действия И работающий пользователь не является владельцем возможности или создателем предложения (это первоначальные отправители в рабочем процессе утверждения), они получают эту ошибку:
NO_APPLICABLE_PROCESS, No applicable approval process found.
Владелец возможности и/или создатель предложения могут отправить с помощью удаленного действия без ошибки.
Есть ли причина, по которой рабочий процесс не будет применяться при вызове remoteAction, но будет принят, если нет? Есть ли способ заставить оба вызова выполняться в одном и том же контексте, чтобы они работали и не работали одинаково?
Изменить: исправлено с учетом комментариев Джерарда.