Loading
Расширение Salesforce с помощью кликов, а не кода
Содержание
Выбрать фильтры

          Результаты отсутствуют
          Результаты отсутствуют
          Ниже приведены некоторые советы по поиску.

          Проверьте орфографию ключевых слов.
          Воспользуйтесь более общим поисковым запросом.
          Выберите несколько фильтров для расширения области поиска.

          Выполните поиск по всей справке Salesforce.
          Использование Apex для создания асинхронной выноски во внешнюю службу

          Использование Apex для создания асинхронной выноски во внешнюю службу

          При регистрации схемы, содержащей обратный вызов, внешние службы создают вызываемую операцию Apex с автоматически созданным классом Apex. Salesforce создает URL-адрес обратного вызова для асинхронной выноски (исходная выноска), доступной только для чтения. Создайте клиента Apex, способного обработать обратный вызов, используя созданные интерфейсы Apex. Клиент ожидает асинхронного ответа от внешней системы в течение длительного времени (до 24 часов).

          Важно!
          Важно! Создание связанных приложений ограничено выпуском Spring ‘26. Вы можете продолжать использовать существующие связанные приложения во время и после выпуска Spring ‘26. Однако, рекомендуем использовать внешние клиентские приложения. Чтобы продолжить создание связанных приложений, обратитесь в службу поддержки Salesforce.

          Дополнительную информацию см. в разделе «Новые связанные приложения больше не могут быть созданы в выпуске Spring ‘26».

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

          Для сравнения, синхронная выноска обычно выглядит следующим образом:

          ExternalService.AcmeMortgages acme = new ...();
          
          ExternalService.AcmeMortgages.GetApplication_Request request = new ...();
          request.applicationNumber = 'X202290';
          
          ExternalService.AcmeMorgages.GetApplication_Response response = 
              acme.GetApplication(request);
          
          ExternalService.AcmeMortgages_MortgageApplication application = response.Code200;

          Чтобы вызвать асинхронный вызов, необходимо написать собственный код Apex для выполнения вызова. Потом необходимо внедрить собственный объект обратного вызова и передать его в метод асинхронного вызова в коде Apex.

          Обработчик обратного вызова должен быть без гражданства. Salesforce не сохраняет сведения о состоянии при обратном вызове ответа.

          Не вкладывайте класс обратного вызова. Класс обратного вызова должен внедрить интерфейс обратного вызова напрямую. Например:

          • Правильно: MyCallback класса расширяет ES.ServiceName.OperationName_Callback {...}
          • Не рекомендуется: SomeIntermediateClass класса продлевает ES.ServiceName.OperationName_Callback {...}, а потом MyCallback продлевает SomeIntermediateClass {...}
          1. Введите строку «Классы Apex» в поле «Быстрый поиск» в меню «Настройка» и выберите пункт «Классы Apex».
          2. Найдите класс Apex, содержащий нужный интерфейс обратного вызова.
          3. Создайте обратный вызов. Напишите объект обратного вызова Apex, реализующий созданный внешними службами интерфейс обратного вызова посредством ссылки на соответствующий класс Apex.
          4. После получения определения обратного вызова передайте этот обратный вызов в метод асинхронного вызова в коде Apex.
          Пример
          Пример
          // The callback gets called with the mortgage application update
          // and handles each outcome, for example application is approved, rejected, ...
          global class MyMortgageApplicationCallback extends ExternalService.AcmeMortgage.SubmitApplication_Callback {
              // Application approved
              global override void applicationOutcomeApproved(
                      List<ExternalService.AcmeMortgages.SubmitApplication_applicationOutcomeApproved_Callback> callbacks) {
                  ExternalService.AcmeMortgages.SubmitApplication_applicationOutcomeApproved_Callback callback = callbacks.get(0);
                  if (callback.callbackStatus == CallbackStatus.COMPLETED) {
                      Double loanAmount = callback.response.body.approvedAmount;
                      // Create a Contact based on the response ...
                  }            
              }
              
              // Application rejected
              global override void applicationOutcomeRejected(...) {...}
              
              ...
          }
          
          public class MyMortgageApplicationProcess {
              public void submitApplication(...) {
                  // Submit mortgage application process
                  ExternalService.AcmeMortgages acme = new ...();
          
                  ExternalService.AcmeMortgages.SubmitApplication_Request request = new ...();
                  ExternalService.AcmeMortgages_Contact applicant = new ...();
                  applicant.Name = 'Joe Miller';
                  applicant.Address = '555 Miller St, CA, Milltown';
                  request.applicant = applicant;
          
                  // Time out if no response after 1 day
                  DateTime timeout = DateTime.now().addDays(1);
          
                  ExternalService.AcmeMorgages.SubmitApplication_Response response = 
                  acme.SubmitApplication(request, new MyMortgageApplicationCallback(), timeout);
              
                  // Get back application number immediately
                  String appNr = response.Code201.applicationNumber;
          
                  // Get invocationId from a successful initial response to check status of the background operation
                  String invocationId = response.invocationId;
                  ...
              }
          }
           
          Загрузка
          Salesforce Help | Article