ビジネスアプリケーションには、データとデータの操作に対する承認の概念が必要です。したがって、表示および更新アクティビティは、許可されたユーザーにのみ許可されます。
BOPFでは、許可チェックは、ノード・レベルで許可を管理するために使用されるビジネス・オブジェクト・ノードのエンティティーとして導入されます。この承認と役割の概念を使用すると、ユーザーがノードインスタンスで特定のアクティビティを実行できるかどうか、または特定のノードデータを操作できるかどうかを確認できます。
例
顧客の請求書アプリケーションで、Buyer_region AMERICAS許可されたユーザーのみが表示できる必要があります。さらに、許可されたユーザーのみが請求書のステータスを次のように変更できる必要があります。有料を実行することによってINVOICE_PAIDアクション。
BOPFの一般的な承認の概念
BOPFは、ビジネスオブジェクト上に構築されたアプリケーションに一般的な承認の概念を提供し、各表示および更新アクティビティを承認チェックで保護できるようにします。
したがって、アプリケーションは…
- 権限オブジェクトを作成します
- 権限オブジェクトを適切なビジネスオブジェクトノードに割り当てます
- 承認フィールドを適切なノードデータ属性にマップします
一般的な概念は何の略ですか?
BOPFの一般的な承認の概念は、承認オブジェクトのよく知られた概念と権限-チェックABAPステートメント。ただし、BOPFで使用される権限オブジェクトは、特定の項目パターンを提供する必要があります。
それぞれのノードに割り当てられている権限オブジェクトは、以下の要件を満たしている必要があります。
- 権限オブジェクトの最初のフィールドは、ACTVT。
- 2番目のフィールドはBO_SERVICE。
- チェックする項目を、権限オブジェクトに対してさらに定義することができます。追加のフィールドはすべて、それぞれのBOノードの属性にマップする必要があります。
代替キー
基本的に、すべてのBOPFコアサービスリクエスト(RETRIEVE、RETRIEVE_BY_ASSOCIATION、CONVERT_ALTERN_KEY、MODIFY、DO_ACTION、QUERY、…)承認チェックに関連しているため、一般的な承認の実装を通じて承認をチェックできます。
一般的な承認の概念は、静的承認チェックとインスタンスベースの承認チェックを区別します。
- 静的チェック:ユーザーが特定のアクティビティを実行する権限を持っているかどうかをチェックします(例:画面)。静的チェックの結果は、特定のデータ値から独立しています。
- インスタンスベースのチェック:ノードデータを評価し、承認関連の属性に特定の値がある場合に、ユーザーがデータを表示または変更する権限を持っているかどうかをチェックします。このチェックの結果は、ノードデータによって異なります。
したがって、最初の請求書の例はBuyer_region AMERICAS許可された人だけが表示できる必要がありますが、2番目の例(請求書はステータスに変更できます)はインスタンスベースのチェックによって処理されます有料許可された人のみ)は静的チェックによって処理されます。
静的チェックは最初のフィールドを利用しますACTVTと2番目のフィールドBO_SERVICE権限オブジェクトの。インスタンスベースのチェックでは、すべての認証フィールド、特に次のようなアプリケーション固有のフィールドを利用します。B_REGION。
サブノードへの伝播
権限オブジェクトとフィールドがBO階層ツリー内の特定のノードに割り当てられている場合でも、実行時に静的およびインスタンスベースのチェックが構成ツリーに沿って伝播されます。上位レベルのノードの承認は、それらの構成に暗黙的に適用されます。たとえば、根ノードはに伝播されますアイテムノード。したがって、ユーザーは表示できませんアイテム彼または彼女が表示権限を持っていない場合のインスタンス根ノード。
ランタイム
汎用許可ランタイムの実装は、BOPFサービスマネージャーと許可ハンドラー、および許可チェックライブラリクラスで構成されます。後者は、アプリケーション固有のチェッククラスで置き換えることができます。