Developer

プロセスビルダーからApexを呼び出す【セールスフォース】

Developer
この記事は約3分で読めます。

こんにちは、アンダーソンです。
今回はプロセスビルダーからApexを呼び出す方法について書いていきます。

スポンサーリンク

Apex側の設定

まずApex側の設定としては
@InvocableMethodをメソッドに対して付与します。
@InvocableMethodの後に(label=’String’,description=’String’)
でプロセスビルダー側に表示させる表示名などを設定することもできます。

@InvocableMethod(Label='テスト')
public static void testCallFromProcess(){
    system.debug('呼び出されました。');
}

これでOKです。
さらにデータの連携をすることも可能です。
その場合はメソッドの引数に設定をします。

@InvocableMethod(Label='テスト')
public static void testCallFromProcess(List<Id> Ids){
    system.debug(Ids);
}

これでOKです。
ではプロセスビルダー側の設定をしていきます。

プロセスビルダー側の設定

通常通りオブジェクトの設定と、条件分岐を決めてアクションまで進みます。
アクション種別をApexにすると先ほど作成したメソッドのラベル名が出ていますので
選択します。
その際に引数があれば下記のように出てきますので設定します。

今回はケースがクローズされた時に動くプロセスにして、実際にやってみた結果です。

おまけ

基本は引数に設定できるのは1つだけなのですが、クラスの設定で渡す値を増やすことができます。

public class testCall{
    @InvocableVariable
    public Id ids;
    @InvocableVariable
    public String message;
    @InvocableVariable
    public Date StartDate;
}

InvocableVariableアノテーションを使って内部クラスを作成します。
必要に応じて(required=true)を設定します。
呼び出される側も少し変えました。

@InvocableMethod(Label='テスト')
public static void testCallFromProcess(List<testCall> calls){
    system.debug(calls[0].ids);
    system.debug(calls[0].message);
    system.debug(calls[0].StartDate);
}

これだと狙った値を渡すことも可能です。

その他の開発に関する記事はこちらです。

Developerも含めた試験問題にチャレンジしてみましょう。

コメント