Process Builderはどうも好きになれないので、わざわざProcess Builderで使うためにApexクラスでInvocableMethodを使おうとは思っていませんでした(ああ、今もあんまり思ってないかも)
しかし、何であるんだろうって考えると不思議で調べてみました。
トリガーは優れており、Salesforceのレコードに発生するほとんどすべてのことに反応することができます。
ただし、トリガーについてそれほど優れていないことがいくつかあります。主な2つは次のとおりです。
1.トリガーが実行される順序を制御することはできません。
2.トリガーを無効にするには、変更セットを作成し、テストを更新して展開する必要があります。
これらの両方は、トリガーを使用する代わりに、Process Builderと@InvocableMethodアノテーションの機能を活用して、呼び出し可能なアクションを作成することで克服できます。
確かに、実行順序が担保されないので、複雑なロジックだと悩みます。確かに消すときも面倒だ。
このために、あるんだ.... ちょっと納得。
じゃあ、全部 Process Builderと@InvocableMethodでいいかというとそうでもないみたい。
Process Builderを使用して達成できないビジネスユースケースがいくつかあります。例えば
1.アウトバウンドメッセージをサポートしていません
2.複数のレコードの作成をサポートしていません
3.レコードを削除できません
一長一短があるなぁ。でもやっぱりApexトリガーに軍配を上げるな。