https://blogs.oracle.com/bpmbestpractice/entry/bpm_adf_task_forms_checking
Focus
このエントリでは、ADFコンティストからBPMスイムレーンのロールやユーザに着目します。ADFTaskDetailフォームがあり、機能面でリッチでダイナミックにしようとしているところです。一般的な要件として、ワークスペースにログインしたユーザに基づいて、動的に異なる領域を表示する、というものがあります。おそらく、ユーザが属するスイムレーンのロールを知りたいのです。
トリックを知らなければ、思っている以上にこの要件を実現すること難しかったりします。
The Challenge
ここでのトリッキーな箇所はADF Task Detailsフォームが実際のところメインのワークスペースとは別のJava EEアプリケーションである、ということです。そのため、JavaやExpression Languageを使ってログインユーザを取得しようとすると、anonymousしかわからず、期待しているBPMロールは全く取得できません。どうしましょう?
The Magic
まず、BC4J SecurityライブラリをViewプロジェクトに追加します。
![](https://blogs.oracle.com/bpmbestpractice/resource/ADFRoles/BC4JLib.jpeg)
その後、JDeveloperを再起動します。
ADF Task DetailsアプリケーションのViewプロジェクトのweb.xmlで、JpsFilterセクションを探し、そこに以下のセクションを追加します。
これでアプリケーションをBPMワークスペースにリンクします。application.nameOracleBPMProcessRolesApp
![](https://blogs.oracle.com/bpmbestpractice/resource/ADFRoles/web.xml.jpeg)
![](https://blogs.oracle.com/bpmbestpractice/resource/ADFRoles/rendered.jpeg)
ここまでできたら、ADF Task Formプロジェクトを再デプロイしましょう。
(上の画像の場合)ワークスペースにログインしているユーザがBPMプロジェクトSimpleTaskのUnsecureというスイムレーンのメンバーである場合に限り、Task Detailsフォームにテキストを表示します。
0 件のコメント:
コメントを投稿