アクションは、ビジネスオブジェクトのサービス(操作または動作)を実装するために使用される、ビジネスオブジェクトの個々のノードに割り当てられたエンティティです。
例
RELEASEアクションを使用して、CUSTOMER_INVOICEビジネス・オブジェクトの請求書インスタンスの状況を変更することができます。このアクションの実行の結果として、請求書のステータスをRELEASEDに設定できます。アクションの他の例
- リリース注文
- コピーシート
- PUBLISH SALES_QUOTE
アクションのトリガー
アクションを実行するには、対応するトリガーが必要です。アクションは、次のいずれかによってアクティブに呼び出されます
- たとえば、ユーザーインターフェイスによるサービスコンシューマー
- 別のビジネスオブジェクト
- 内部的には、たとえば、別のアクションまたは決定によって。
アクションのカテゴリ
一般に、BOPFは、アクションに対して次のカテゴリを提供します。
-
BO固有のアクション
BO固有のアクションは、特定のサービスの実装を必要とするノードに対して明示的に作成する必要があります。
このようなアクションは、サービスコンシューマーまたは別のビジネスオブジェクトによって呼び出されます。
-
フレームワークアクション
フレームワークアクションは、実装が不要なコアサービスを各BOノードに提供します。これらは、ビジネスオブジェクトのノードが作成されるときにBOPFによって自動的に生成され、フレームワーク自体によって内部的に使用されます。ノードごとに、作成、更新、削除、ロック、ロック解除、検証、および保存のためのフレームワークアクションが生成されます。これらのアクションは、設計時のノードツリーには表示されませんが、一部のアクションには、アクション検証によって防止されるアクションが提供されていることに注意してください。
アクションカーディナリティ
1つ以上のノードインスタンスでアクションを実行することも、ノードのインスタンスなしでアクションを実行することもできます。この目的のために、カーディナリティをアクションに割り当てることができます。アクションカーディナリティは、1回のアクション呼び出し中にアクションが操作できるノードインスタンスの数を定義します。アクションには、次のカーディナリティタイプを選択できます。
-
複数のノードインスタンス
アクションは、1つ以上のノードインスタンスで動作します。
-
シングルノードインスタンス
アクションは、1つの単一ノードインスタンスでのみ動作します。
-
ノードインスタンスなし
アクションはどのノードインスタンスでも動作せず、静的アクションを定義します。
アクションの実装
アクションは、対応するアクションインタフェース/ BOBF/IF_FRW_ACTIONを実装するグローバルABAPクラスに実装されます。
アクションを呼び出すとき、コンシューマーは次の仕様を提供する必要があります。
- アクションが動作するノードインスタンスのキー。(この仕様は、アクションが1つ以上のインスタンスで動作する場合にのみ適用されます。)アクションは、アクションのカーディナリティで構成されているインスタンスの正確な数でのみ実行できます。
- アクションに必要な入力パラメーター。
一般に、アクションには、実行時にコンシューマーが実装クラスに渡すいくつかのインポートパラメーターを含めることができます。すべてのパラメータは、いわゆるパラメータ構造に含まれています。
これについての詳細:
アクション構成
さらに、エクスポートタイプを使用して各アクションを構成できます。エクスポートタイプパラメータを使用して、アクションの実行中にアクションが呼び出し元に返すことができるデータの種類を指定できます。
利用可能な3つのオプションがあります。
- なし-このデフォルトオプションは、アクションがコンシューマーにデータを返さないことを示します
- タイプ-このオプションを使用すると、アクションは、[パラメータ構造のエクスポート]フィールドに保持されている行タイプと、[パラメータテーブルタイプのエクスポート]フィールドに保持されている対応するテーブルタイプによって定義されたデータテーブルを返すことができます。
- ノード-このオプションを使用すると、アクションは、[パラメーターノードのエクスポート]フィールドと[パラメーターBOのエクスポート]フィールドで定義された外部ノードのインスタンスを返すことができます。