찬란하게

Salesforce Invocable Actions 본문

SaaS/Salesforce Certi

Salesforce Invocable Actions

체리핫 2024. 11. 30. 11:25

Invocable Actions는 Salesforce에서 Apex 코드와 같은 비즈니스 로직을 외부 시스템이나 다른 프로세스에서 호출할 수 있도록 설계된 액션입니다. 주로 비즈니스 로직을 재사용 가능하게 만들고, 선언적 방식(예: Flow, Process Builder 등)으로도 활용할 수 있도록 돕습니다.

Invocable Actions의 개념:

Invocable Actions은 Apex 클래스 또는 Apex 메서드를 외부에서 호출할 수 있도록 하는 특수한 기능입니다. 이 기능은 Flow Process Builder에서 사용할 수 있도록 Apex 코드를 공개하고, 다른 자동화 프로세스에서 이 코드를 실행할 수 있게 해줍니다.

주로 사용되는 용도:

  1. Flow 및 Process Builder에서 재사용
    Invocable Actions을 사용하면 Flow Process Builder에서 Apex 메서드를 직접 호출할 수 있습니다. 예를 들어, 복잡한 계산을 Apex에서 처리하고 그 결과를 Flow로 반환받아 사용할 수 있습니다.
  2. 외부 시스템과의 연계
    REST API SOAP API와 연계하여 외부 시스템에서 Salesforce로 데이터를 보내거나, Salesforce에서 외부 시스템으로 데이터를 보내는 데 사용될 수 있습니다.
  3. 비즈니스 로직을 재사용 가능하게 구성
    여러 프로세스에서 동일한 비즈니스 로직을 재사용할 수 있도록 Apex 코드 내에서 Invocable Method를 정의하여 재사용 가능하게 만들 수 있습니다.

Invocable Actions의 특징:

  • Apex 메서드에 @InvocableMethod 애너테이션을 사용
    Apex 메서드 위에 @InvocableMethod 애너테이션을 사용하여 해당 메서드를 Invocable Action으로 지정할 수 있습니다.
  • 단일 매개변수 또는 리스트로 여러 레코드 처리
    이 메서드는 단일 매개변수 또는 여러 레코드를 처리할 수 있습니다. 예를 들어, 여러 개의 레코드를 한 번에 처리하는 로직을 작성할 수 있습니다.
  • 선언적 도구에서 사용 가능
    Flow나 Process Builder에서 이 Invocable Action을 호출하여 비즈니스 로직을 자동화할 수 있습니다. 이 경우, 코드 작성 없이 직관적인 UI에서 작업을 설정할 수 있습니다.

예시: Apex에서 Invocable Action 만들기

public class AccountHandler {
    @InvocableMethod(label='Update Account Status')
    public static void updateAccountStatus(List<Account> accounts) {
        for (Account acc : accounts) {
            acc.Status__c = 'Updated'; // 비즈니스 로직 예시
        }
        update accounts;
    }
}

위 코드는 updateAccountStatus라는 Invocable Action을 정의하고, Flow 또는 Process Builder에서 여러 개의 Account 레코드를 업데이트하는 작업을 할 수 있도록 합니다.

Invocable Action을 Flow에서 사용하기

  • Flow 내에서 **'Apex Action'**을 추가한 후, AccountHandler.updateAccountStatus와 같은 Invocable Action을 선택할 수 있습니다.
  • Flow는 이 Action을 호출하여 여러 Account 레코드의 Status__c 필드를 "Updated"로 설정하는 등의 작업을 수행할 수 있습니다.