

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
invocablemethodとは?
invocablemethod(インボーカブルメソッド)とは、Salesforce の Apex(アペックス)で使われる特別なアノテーションのことです。Flowや Process Builder などの自動化ツールから、Apex の静的メソッドを呼び出せるようにするための仕組みになります。つまり、コードを書いた後でも、ノーコードの自動化ツールと連携させて、複雑な処理をワークフローに組み込むことができるのです。
この仕組みを使うと、データの整形、計算、外部サービスとの連携といった処理を、Flow の「アクション」として利用できます。初心者の方には、最初は「Flow から Apex の機能を呼ぶ」といった感覚で捉えるとイメージしやすいでしょう。
invocablemethod の基本的な意味
InvocableMethod は「呼び出し可能なメソッド」という意味です。対象となるメソッドは 静的メソッド(static) で、引数には List<InputClass> の形をとります。Flow からはこのリストを一括で渡して、Apex 側でまとめて処理します。メソッドの戻り値は Flow 側で使えるようにする場合としない場合があります。
使い方の基本操作
以下のステップで、invocablemethod を実装します。
- Apex クラスを作成します。クラス名は任意ですが、役割が分かる名前にします。
- 静的メソッドに @InvocableMethod を付けることで Flow から呼び出せるようにします。
- 引数は List<InputClass> の形にします。InputClass は Flow から渡されるデータを格納するための補助クラスです。
- 戻り値を Flow で使う場合は、List<OutputClass> のように戻り値の型を準備します。戻り値を使わない場合もあります。
- Flow で呼び出すには、Apex アクションとして作成したメソッドをドラッグ&ドロップで配置します。
実装時の注意点として、入力クラスと出力クラスには @InvocableVariable アノテーションを付けるフィールドを用意します。これにより Flow 側の変数と対応づけができます。
コードの基本イメージ
実務で使われる基本イメージは以下のようになります。コードの細部は実際の要件に合わせて修正しますが、構造は共通です。
入力クラス:<span>public class InputClass { @InvocableVariable(label='名前') public String name; @InvocableVariable(label='年齢') public Integer age; }
InvocableMethod:@InvocableMethod(label='年齢を確認して返す') public static List<OutputClass> checkAge(List<InputClass> inputs) { List<OutputClass> results = new List<OutputClass>(); for (InputClass inpt : inputs) { OutputClass out = new OutputClass(); out.message = (inpt.age >= 18) ? '成人です' : '未成年です'; results.add(out); } return results; }
出力クラス:public class OutputClass { @InvocableVariable(label='結果') public String message; }
実務での使い方と注意点
invocablemethod は Flow との連携を前提に設計されており、複雑なビジネスロジックを Apex へ委任することで、Flow のシンプルさを保ちながら高い柔軟性を実現します。以下の点に注意してください。
- 入力と出力のデータ構造は Flow 側としっかり対応づけること。
- 大量データを一度に処理する場合は、ガバナ制限に注意して分割処理を検討すること。
- 公開範囲とアクセス制御を適切に設定し、不要なデータ露出を避けること。
表で見る invocablemethod のポイント
| 項目 | 説明 |
|---|---|
| 対象 | Apex の静的メソッドに対して Flow から呼び出せるようにする |
| 入力 | List<InputClass> の形。InputClass は @InvocableVariable を持つフィールドを含む |
| 出力 | 必要に応じて List<OutputClass> を返す。Flow 側で利用することが可能 |
| 用途 | Flow から複雑なビジネスロジックを実行したい場合の橋渡し |
よくある質問
- Q. InvocableMethod の戻り値は必須ですか?
- A. 必須ではなく、Flow 側で出力を使わないケースもあります。戻り値を使うと Flow の結果として利用できます。
- Q. 1 回の呼び出しで処理できるデータ量には制限がありますか?
- A. はい。Salesforce のガバナ制限に基づくため、リストのサイズを小分けにして複数回呼ぶ実装が推奨されます。
invocablemethodの同意語
- InvocableMethod
- SalesforceのApexで使われるアノテーション名。このアノテーションがついたメソッドはFlowなどの自動化ツールから呼び出せる。
- Invocableメソッド
- InvocableMethodアノテーションが付いたメソッドの総称。Flowから実行可能なエンドポイントとなる。
- 呼び出し可能メソッド
- 他のアプリケーションや自動化ツール(Flow、Process Builder など)から呼び出せる仕様のメソッド。
- Flow対応メソッド
- Lightning Flowから利用できるように設計されたメソッド。Flowのアクションとして組み込まれる。
- Flow連携メソッド
- Flowと連携して動くメソッド。Flowの入力・出力に対応することが多い。
- Flow経由実行メソッド
- Flowを経由して実行される特殊なメソッド。Flowが実行の起点となる。
- 外部連携メソッド
- Flow以外の自動化ツールや外部システムからも呼び出せることを想定したメソッド。
- 自動化用実行可能メソッド
- 自動化(FlowやProcess Builderなど)から実行されることを前提に設計されたメソッド。
- Apex Invocableアノテーション付きメソッド
- Apexクラス内で@InvocableMethodを付けたメソッドのこと。Flowで取り扱えるようになる。
invocablemethodの対義語・反対語
- 非呼び出し可能なメソッド
- 呼び出し(実行)できない状態にあるメソッド。外部のフローやイベントなどから呼び出せないように制限されている場合を指します。
- 呼び出し不可のメソッド
- 外部からの呼び出しが許可されていない、または呼び出しても実行されない状態のメソッド。
- 呼び出し不能なメソッド
- 技術的または権限上、呼び出すことができないメソッド。実行の機会がないことを意味します。
- 非実行可能なメソッド
- 文字通り、実行(呼び出し)することができない性質のメソッド。
invocablemethodの共起語
- @InvocableMethod
- Flowなどの自動化ツールからApexメソッドを呼び出すためのアノテーション。
- @InvocableVariable
- InvocableMethodの入力データを定義するアノテーション。Flowの入力パラメータに対応する。
- Apex
- Salesforceのサーバーサイド言語。InvocableMethodを使ってFlowと連携する処理を実装する。
- Flow
- Salesforceの自動化ツール(Flow Builder / Lightning Flow)。InvocableMethodを介してApexの処理を実行可能。
- Lightning Flow
- Flowの現代的名称。ApexのInvocableMethodと連携して自動化ロジックを組む。
- Apexクラス
- InvocableMethodを含むApexのクラス。メソッドは通常public staticで宣言される。
- public static
- InvocableMethodを持つメソッドの修飾子。Flowからの呼び出しを許可する条件の一つ。
- List
- Flowから渡される入力データのリスト型。@InvocableVariableで定義されたフィールドを含むクラスを入れるのが一般的。
- List
- Flowへ返す出力データのリスト型。Flowで受け取れる形に整形して返す。
- InputType
- InvocableVariableを持つ入力用のクラス。Flowの各入力パラメータに対応する。
- OutputType
- InvocableMethodの戻り値として返す出力用のクラス。Flowの結果として利用されることが多い。
- Process Automation
- Salesforceの自動化機能全体。Flowと連携してInvocableMethodを活用する。
- Process Builder
- 古い自動化ツール。現在はFlow推奨だが、InvocableMethodを組み合わせて使われることがある。
- SOQL
- データ検索クエリ言語。InvocableMethod内でデータ取得や検証を行う場面が多い。
- DML
- データ操作命令。InvocableMethod内でSObjectの作成・更新・削除を実行する場面がある。
- GovernorLimits
- Apex実行時の制限。InvocableMethodを含む処理もガバナ制限の影響を受ける。
- TestCoverage
- Apexクラスをデプロイする際に必要なテストカバレッジ。InvocableMethodを検証するテストも重要。
invocablemethodの関連用語
- InvocableMethod
- FlowやProcess Builderから呼び出せるApexの静的メソッドを示す @InvocableMethod アノテーションです。
- InvocableVariable
- Wrapperクラス内のフィールドをFlowの入力/出力として公開するためのアノテーションです。Flow からデータを受け渡す際に使います。
- InputWrapper
- InvocableMethodに渡す入力データを格納する入力用のユーザー定義クラスです。フィールドには @InvocableVariable を付けます。
- OutputWrapper
- InvocableMethodの実行結果をFlowへ返す出力データを格納する出力用のクラスです。フィールドには @InvocableVariable を付けます。
- Apex
- Salesforce上で動作するプログラミング言語。Invocable MethodはこのApexで定義します。
- Flow
- Salesforceのノーコード/ローコード自動化ツールで、InvocableMethodを使ってApexロジックを実行できます。
- ProcessBuilder
- 旧来の自動化ツールで、Apexの Invocable Method を呼び出すための連携手段として使われることがあります。
- Static
- InvocableMethodとして定義されるメソッドは静的(static)である必要があります。
- PublicOrGlobal
- InvocableMethodは public か global のアクセス修飾子で宣言します。管理パッケージの場合は global が推奨されます。
- ReturnType
- 一般的には List
を返す形を取り、Flowに出力を渡します。必要に応じて空のリストを返すこともできます。 - InputParameterList
- メソッドは List
型の引数を受け取り、複数の入力を一括で処理します。 - OutputParameterList
- 戻り値は List
の形で複数の出力を Flow に渡します。 - Bulkification
- 複数の入力を同時に処理する設計にして、SOQL/DMLをループ内で実行しないようにします(ガバナ制限対策)。
- DataTypesSupported
- Input/Output のフィールドには Flow が扱える基本データ型(例: String, Integer, Boolean, Decimal, Date, DateTime, Id など)を使います。複雑な型は避けます。
- Label
- @InvocableMethod の label 属性で Flow に表示される名前を設定できます。
- InputOutputMapping
- Flow から渡すデータは @InvocableVariable が付いたフィールドを介してマッピングされます。
- ErrorHandling
- InvocableMethod 内で例外が発生した場合 Flow にエラーとして伝わるため、適切に try/catch しエラーハンドリングを行います。
- GovernorLimits
- Apex のガバナ制限と同様に、InvocableMethod の実行もリソース制限の対象となります。
- TestingAndDeployment
- テストクラスを作成して動作を検証し、デプロイ時には適切なカバレッジを確保します。



















