この章では、管理者ロールに基づいて、BPMイメージング・ソリューションのコンポーネントとオプションの構成方法について説明します。ロールおよび管理者が各ロールで実行できるソリューション変更のタイプの詳細は、第1.2.2項を参照してください。
この章の内容は、次のとおりです。
第1.2.4項では、ソリューション・ワークスペースのソリューション・アプリケーションの部分(図5-1)が、選択したタスクを完了させる高度な構成が可能なヒューマン・タスク・エリアを提供する方法を説明しました。この項では、ソリューション・アプリケーションの基礎となるビジネス・ルールの編集の概念について説明します。また、BPMのAXFとともにインストールされたHelloBPMソリューションでは、ソリューション・アプリケーション構成の確認および実行に使用できる構成例を提供します。
| 注意: この項では、ルールセット、デシジョン表およびディクショナリなどのビジネス・ルール編集の一般的な知識があることを前提としています。ビジネス・ルールの情報は、『Oracle Fusion Middleware Oracle Business Process Management Business Process Composerユーザーズ・ガイド』で詳しく説明されています。 | 
この項の内容は次のとおりです。
BPMのAXFでは、表示するすべてのソリューション・アプリケーション・ページが1つの動的ページ・テンプレートで構築されます。このテンプレートには、図5-1で示すように、メニュー(アクション・コントロール)およびタブ(動的タブ)コンポーネントが含まれます。移動先のページがすべて同じページの場合でも、ビジネス・ルールではページのレンダリング方法を定義します。たとえば、コンテキストに応じて、別のタブが一部のユーザーに表示され、そのタブのコンテキストも異なることがあります。
アクション・コントロールは、AXF機能をコールするアクションを定義するビジネス・ルール駆動型コンポーネントです。アクションがコールする機能は機能ブロックにより指定されます(第5.1.3項を参照してください)。たとえば、HelloBPMソリューション・アクション・コントロールには、リンクとして表示される「承認」および「却下」アクションが含まれます。この構成は、一般的に使用されているアクションに使用できます。アクション・コントロールを構成して、グループ化されたアクションをドロップダウン・メニューに表示できます。たとえば、「アカウント・マネージャ」アクションおよび「保存して閉じる」アクションは、「例外」および「閉じる」ドロップダウン・メニューで構成されています。
アクション・ルール・ディクショナリを使用して、アクション・コントロールに表示されるアクションのレイアウトおよび動作を構成し、FunctionalBlockディクショナリを使用して、アクションによって起動する機能を構成します。たとえば、ビジネス・ルールを使用して次のことを行います。
アクションおよびセクションを定義します(たとえば、複数の「閉じる」アクション・リンクで、「閉じる」ドロップダウン・メニューに表示できます)。
セクションに割り当てられていないアクションは、リンクとして「アクション」メニューに左揃えで表示されるため、一般的に使用されるアクションに簡単にアクセスできます。セクションでは、メニュー・アイテムとしてリストされたアクションをドロップダウン・メニューで表示します。
新規アクションをコントロールに追加します。アクションを追加した後に、アクションに対して起動する機能ブロックまたは機能ブロックシーケンスを定義します。たとえば、「承認」アクションをクリックすると、「アイデンティティ・ブラウザ」コントロール・ページに移動するようになります。
ルール結果に基づいて、アクションまたはセクションを除外または無効にします。たとえば、必須のデータ・フィールドが空白または0に設定されていると、「承認」アクションが無効または非表示になることがあります。
アクション・コントロールの右側には、次に示す「ステータスの更新」アイコンが表示されます。

このアイコン(選択済の場合表示されます)は変化して、内部の基礎となるデータが更新されたことを示します。たとえば、ビジネス・アプリケーションで値が更新されると、このアイコンは変化しますが、ユーザーが動的タブでデータ値を変更した場合は変化しません。変更後は、アイコンをクリックしてデータ更新を確認します。これにより、アイコンを選択解除されている状態にリセットします。

動的タブ・コントロールは、ソリューション・アプリケーションおよびそのページ・コンポーネント・コンテンツ内で表示されるタブを定義するビジネス・ルール駆動型コンポーネントです。図5-1で示すHelloBPMソリューションのデフォルトの動的タブには、「イメージ・データ」、「製品」のマスター・ディテール、「ライセンス条項」のマスター・ディテールおよび「コメント」が含まれます。
タブのコンテンツおよび動作を構成するには、DynamicTabディクショナリを使用します。第5.1.2項を参照してください。
ページ・コンポーネントは、動的タブでイメージ、データ・フィールド、and/or表などのコンテンツを表示します。動的タブ・コントロールは、ページ・コンポーネントをホストします(詳細は、A.1.1項を参照してください)。ページ・コンポーネントは、タスクの詳細領域で表示される主な機能を実装します。
ページ・コンポーネントは、他のページ・コンポーネントで構成できるため、コンポジット・ページ・コンポーネントです。たとえば、動的タブがデータ・ページ・コンポーネントをホスする場合、ユーザー・ロールではデータのみを表示します。ただし、タブがイメージまたはTableDataのページ・コンポーネントもホストする場合は、イメージまたはデータ表をそれぞれ表示します。
「イメージ・データ」およびマスター・ディテールのページ・コンポーネントは、他のページ・コンポーネントから作成されたページ・コンポーネントの例です。「イメージ・データ」ページ・コンポーネントには、「データ」および「イメージ」ページ・コンポーネントが含まれます。また、「マスター・ディテール」ページ・コンポーネントには、「データ」および「表データ」ページ・コンポーネントが含まれます。
ビジネス・ルールは、ソリューション・アプリケーションの構成手段を提供し、ビジネス・アプリケーション・ユーザーのカスタム・ニーズを満たします。BPMのAXFソリューション管理において、ビジネス・ルールとは、AXFソリューションの動作を変更するために変更される標準SOAビジネス・ルールです。ソリューション管理領域を使用すると、ビジネス・ルールのロード、編集および保存、変更の結果テストを実行できます。また必要に応じて、ビジネス・ルールをそれぞれの製品状態に戻すこともできます。
ルールは、個別のAXF MDSリポジトリに格納されます。このリポジトリでは同じスキーマが使用されますが、SOAリポジトリとは異なります。初期製品ルールはソリューション・アプリケーションの一部としてデプロイされています。
ディクショナリは、ソリューション・アプリケーション機能に対してグループ化されたビジネス・ルールのコンテナです。たとえば、アクション・ディクショナリは、アクションおよびセクション(ドロップダウン・メニュー)をソリューション・アプリケーションのアクション・コントロール部分に定義します。BPMのAXFインフラストラクチャで提供されるディクショナリは、表5-1にリストされています。ソリューションのディクショナリは、パッケージにグループ化されています(第5.1.6項を参照してください)。たとえば、HelloBPMソリューションのすべてのディクショナリは、oracle.axf.solution.hellobpmパッケージに含まれています。
ほとんどの場合、ルール・ディクショナリはそれぞれ独立していますが、A.1.9項で強調表示されているようにエンティティ・リレーションシップがある場合もあります。すべてのルールはBPMプロセスではなく、ソリューション・アプリケーションに関連付けられています。
表5-1 BPMのAXFインフラストラクチャで提供されるディクショナリ
| ディクショナリ | 説明 | 
|---|---|
| アクション | このディクショナリは、タスク・アクションが表示されるアクション・コントロール領域のレイアウトおよび動作を定義します。 オプションで、アクションを条件に応じて表示または無効にするように定義できます。たとえば、特定のデータ値(金額など)が指定された金額を超える場合、「承認」ボタンで特定のユーザー・ロールを無効として表示できるように、ビジネス・ルールを編集できます。 詳細は、A.1.3項を参照してください。 | 
| データ | このディクショナリは、「データ」ページ・コンポーネント内に表示されるデータ(メタデータ)およびアイテムを定義します。データ値は編集可能または読取り専用などの様々な形で定義できます。 詳細は、A.1.4項を参照してください。 | 
| DynamicTab | このディクショナリは、ソリューション・アプリケーションで表示されるタブのレイアウトおよび動作を定義します。たとえば、このディクショナリを使用して、「コメント」タブを表示したり、タスクのルーティング前にコメントの入力を要求したりすることができます。 詳細は、A.1.5項を参照してください。 | 
| FunctionalBlock | このディクショナリは、ソリューション・アプリケーション機能およびアクションの機能シーケンス(アクション・リンクを選択した際に起こるアクションなど)を定義します。たとえば、機能ブロックを使用して、ヒューマン・タスクに結果を設定したり、事前定義済コントロール・ページ(「アイデンティティ・ブラウザ」コントロール・ページなど)に移動したりできます。 詳細は、A.1.6項を参照してください。 | 
| LookupAndValidator | このディクショナリは、データおよびTableDataコントロールに対して参照(選択一覧からのデータ値の選択)を定義します。参照は、静的(固定リスト)または動的(データベースからのSQL問合せ)のいずれかであり、動的参照フィールドは依存しています(リンク)。参照に加えて、このディクショナリでは、検証構成のバリデータも定義します。 詳細は、A.1.7項を参照してください。 | 
| TableData | このディクショナリは、データの表形式での表示方法を定義します。複数の列定義を含む単一表を定義できます。表は、ルール構成に基づいて実行時に動的にレンダリングされます。 詳細は、A.1.8項を参照してください。 | 
ディクショナリのビジネス・ルールを編集する場合、そのカスタム・ルールを編集しますが、必要に応じて、ディクショナリのルールを製品ルールに戻すことができます。ディクショナリの編集の詳細は、第5.2.5項を参照してください。
コンテキストは、1つ以上のディクショナリの特化されたバージョンです。通常、コンテキストはあるタスクに機能を追加するために使用されます。たとえば、営業見積入力タスクが選択されている場合、HelloBPMソリューションには、データ・フィールドおよび表を表示するSalesQuoteEntryコンテキストが含まれます。詳細は、第5.2.6項を参照してください。
ビジネス・ルール・ディクショナリでは、関連するルールが、ディクショナリの特定の側面を定義するルールセットにグループ化されています。たとえば、図5-2に示すようにDynamicTabディクショナリを開くと、ペインの右側に、横のペイン(ルールセット)で選択したルールセットに対して定義されている各ルールがリストされます。
各ルールセットは可能なかぎり移入します。そうすると、前の設定を適用したり、プレースホルダ値を変更したりすることで新機能を追加できます。
バケットセットは、指定したファクト・タイプの値のリストまたは値の範囲などの制約を定義します。たとえば、DynamicTabディクショナリのバケットセット、PageComponentは、ユーザーが構成できるページ・コンポーネント(「イメージ」、「イメージ・データ」、「データ」、「表データ」、マスター・ディテール、「コメント」および「アイデンティティ・ブラウザ」)を定義します。
BPMのAXFにおいて、機能ブロックとは、ソリューション・アプリケーションで実行できることに対するRAW機能ビルディング・ブロックを表します。たとえば、機能ブロックを使用して、タスクの承認などのヒューマン・タスクに結果を設定したり、コントロール・ページなどの他のページに移動したりできます。
名前付き機能ブロックは、パラメータなどの機能ブロックのインスタンスを定義します。たとえば、機能ブロックではコントロール・ページに移動できますが、名前付き機能ブロックでは移動先のコントロール・ページおよび使用するパラメータを指定します。
名前付き機能ブロック・シーケンスとは、名前付き機能ブロックのシーケンスを表します。たとえば、シーケンスでは、「アイデンティティ・ブラウザ」コントロール・ページに移動し、「承認」するヒューマン・タスクの結果を設定します。
名前付き機能およびそのシーケンスをFunctionalBlockルール・ディクショナリに定義します。通常、すべての機能ブロックはベース・コンテキストで定義され、他のコンテキストの他のルールで参照されます。
表5-3にリストされたアクション・タイプに対して機能ブロックを使用できます。これらの使用例については、第5.3.6.1項を参照してください。
表5-3 機能ブロックで実行されるアクション
| アクション | 説明 | 
|---|---|
| 結果の設定 | 指定されたヒューマン・タスクの結果を設定します(承認または却下など)。 | 
| 動的ページに移動 | 指定された動的ページに移動します。 | 
| コントロール・ページに移動 | 指定されたコントロール・ページに移動します(「アイデンティティ・ブラウザ」、「コメント」または「データ」コントロール・ページなど)。 | 
| 保存 | 明示的な保存を実行します。 | 
| 元に戻す | オリジナル・ペイロードをロードします。これにより、最後に開いてからタスクに行われた変更に対する取消機能が提供されます。 注意: タスクに追加されたコメントは、「元に戻す」機能ブロックを使用してもロールバックされません。 | 
| タスクを閉じる | タスク・リストから別のタスクを選択すると、タスクは自動的に閉じられますが、この機能ブロックにより明示的に閉じられます。 | 
| SystemActionSuspend | 指定されたアクションを一時停止するBPMアクションです。詳細は、Oracle BPMドキュメントを参照してください。 | 
| SystemActionWithdraw | 指定されたアクションを取り消すBPMアクションです。詳細は、Oracle BPMドキュメントを参照してください。 | 
| SystemActionSkipCurrentAssignment | 割当てをスキップするBPMアクションです。詳細は、Oracle BPMドキュメントを参照してください。 | 
| SystemActionEscalate | 指定されたアクションをエスカレートするBPMアクションです。詳細は、Oracle BPMドキュメントを参照してください。 | 
コントロール・ページは、事前定義済の動的タブ・ページであり、ソリューションで使用する1つ以上のタブとその関連付けられたページ・コンポーネントが含まれます。これにより、一般的に使用される機能を簡単に実装することが可能です。たとえば、「アイデンティティ・ブラウザ」コントロール・ページでは、承認目的などでユーザーまたはグループを選択できるインタフェースが表示されます。
BPMのAXFインフラストラクチャでは、次のコントロール・ページが提供されます。
各コントロール・ページには、ビジネス・ルール構成に基づいた構成可能なコンテンツの既定の構造があります。
データ・コントロール・ページでデータ・フィールドを指定することにより、図5-3で示すように表示または編集ができるようになります。コントロール・ページで表示される各データ・フィールドはデータ・ディクショナリで定義されたデータ・フィールドにバインドされます。データ・コントロール・ページのパラメータは、表A-7にリストされています。
データ・フィールドの指定に加えて、このコントロール・ページを使用し、データ・フィールドの表の構成、および既定の参照やSQLベースの参照を構成できます(第5.1.8項を参照してください)。セクションのデータ・アイテムをグループ化することもできます。
図5-4で示す「アイデンティティ・ブラウザ」コントロール・ページでは、ユーザー、グループまたはアプリケーション・ロールの検索およびタスク・ペイロードの更新ができます。通常、プロセス後半のタスク割当てで使用されます。「アイデンティティ・ブラウザ」コントロール・ページのパラメータは、表A-8にリストされています。HelloBPMの例では、営業見積入力ユーザーが「承認」アクション・リンクを選択すると、承認ロールの選択を要求する「アイデンティティ・ブラウザ」タブが表示されます。
「アイデンティティ・ブラウザ」コントロール・ページは次のとおりです。
通常、名前付き機能ブロックのシーケンスの一部として使用され、割当て情報を収集してタスクを完了します。
タスクを割り当て、プロセス・フロー内の将来のタスクに対して更新できます。
ソリューション・アプリケーション構成の一部として、ヒューマン・タスク・フローにプロンプトおよび検証を含めることができます。
プロンプトについて
プロンプトは、機能ブロックの一部として指定されたメッセージを表示します。プロンプトを検証の前または後に表示させることで、ユーザーはアクションの取消し/続行または変更を元に戻してアクションの続行を行うことができます。
FunctionalBlockディクショナリのNamedFunctionalBlockPromptプロパティでプロンプトを構成します。たとえば、次の設定を指定します。
プロンプトを生成する機能ブロック
プロンプトを表示する時点(検証の前または後)
ユーザーに表示するプロンプト・メッセージ
プロンプト・タイプ(OKまたは取消など)
たとえば、「却下」機能ブロック(「却下」リンクをクリックした場合)で生成されるプロンプトを定義できます。検証後に、プロンプトを生成し、プロンプト・メッセージ(「このリクエストを却下しますか。」)とともに「OK」/「取消」ボタンを表示します。プロンプト構成の例は、表5-24を参照してください。
検証について
次のような様々な形で検証を構成できます。
検証を即時または機能ブロックを使用して実行できます。
即時検証は、ユーザーがデータ・フィールドを完了してフィールドから移動すると実行されます。
機能ブロック検証は、ページのアクション(「OK」または「取消」ボタンなど)をクリックすると実行されます。
検証は、LookupAndValidatorディクショナリで定義されたバリデータによって実行されます。
基本的な検証では、「承認」をクリックすると、データのNULL値を確認できます。NULL値が見つかると、最初に実行する必要があることを注意喚起するメッセージが表示されます。
複合検索では、指定されたバリデータをデータ・フィールドで実行できます。たとえば、DateTimeRangeValidatorは、データ・フィールドのエントリが指定された範囲内に収まっていることを検証します。バリデータ一覧は、表A-35を参照してください。
機能ブロック検証では、エラーが発生すると特定の結果(続行、中止またはプロンプト)が生成されます。
機能ブロックが実行されると結果が生成されるため、機能ブロックによって結果を調整できます。
検証タイプに応じて、次のディクショナリを使用して検証を構成します。
LookupAndValidatorディクショナリ: バリデータ・プロパティおよびValidatorParameterプロパティで、バリデータ・クラスおよびそのパラメータなどの設定を構成します。
データ・ディクショナリ: データ・アイテムに検証を指定する場合、(DataValidatorプロパティで)検証を実行するフィールドを指定し、即時検証または機能ブロックを使用した検証のどちらを実行するかを指定します。
TableDataディクショナリ: 表列で検証を指定する場合、(ColumnValidatorプロパティで)検証を実行する列を指定し、即時検証または機能ブロックを使用した検証のどちらを実行するかを指定します。
ビジネス・ルール・パッケージでは、ソリューション・アプリケーションのディクショナリ・セットにコンテナを用意しています。これには、ソリューション・アプリケーションのすべてのビジネス・ルール(その製品ルール、編集されたルールおよびソリューションのすべてのコンテキストで定義されたすべてのディクショナリなど)が含まれます。(コンテキストは、第5.1.7項で説明しています。)たとえば、HelloBPMソリューションは、oracle.axf.solution.hellobpmというパッケージに含まれていて、すべてのコンテキストで定義されたすべてのディクショナリを含みます。
コンテキストは、パッケージの1つ以上のディクショナリの特化されたバージョンであり、ベース・コンテキストとは異なります。つまり、コンテキストは実行するビジネス・ルールを指定します。コンテキストにより、ヒューマン・タスク定義またはペイロード・コンテンツに基づいて、ソリューション・アプリケーションの動作を変更できます。
HelloBPMソリューションの例では、コンテキストはヒューマン・タスクに基づき、表示されるユーザー・インタフェースは選択されたタスクによって異なります。ユーザーがタスク・リストから営業見積入力タスクを選択すると、営業見積承認タスクを選択した後では表示されない追加のタブとアクションが表示されます。
HelloBPMソリューションでは複数のコンテキストを使用して、3つのユーザー・タスク(営業見積入力ユーザー、アカウント・マネージャおよび承認者)に異なる機能を提供します。ベース・コンテキストは、ベース(アクションおよびデータ・フィールドと表を含むタブ)に機能の基本セット(機能ブロック、参照およびバリデータ)および追加機能のコンテキスト・レイヤーを定義します(第5.3.4項を参照してください)。
例5-1に示すように、コンテキストはピリオドで区切った階層文字列を特殊化の降順で構成します。ランタイム・コンテキストに基づいて、BPMのAXFインフラストラクチャは、コンテキストのいずれかでルールを検出するか、またはベース・コンテキストに到達するまで、文字列をトラバースします。
HelloBPMの例として、例5-2にリストされているコンテキストを定義できます。ランタイム・コンテキストがSalesQuoteEntry.Specialistの場合、SalesQuoteEntry.Specialistのコンテキスト・ルールが実行されます。ランタイム・コンテキストがSalesQuoteEntryの場合、SalesQuoteEntryコンテキスト内のルールが実行されます。
コンテキストの作成、更新および削除を行います。第5.2.6項を参照してください。
コンテキストの作成および実装には、コンテキストに含める1つ以上のパッケージのディクショナリを指定して、コンテキストのディクショナリを変更することが必要です。
コンテキストを作成する場合、この項の例で示すように、コンテキスト名にピリオド・デリミタを使用してこれらの階層を指定します。
コンテキストを完全に削除すると、コンテキストが使用されている場合でもその変更されたルールが削除されます。
ほとんどのBPMイメージング・ソリューションには、ユーザーによって表示または編集できるビジネス・データ・アイテムが含まれます。ビジネス・ルールを使用すると、ソリューション・アプリケーションでのデータ・アイテムの表示方法および動作方法をカスタマイズできます。いずれの場合も、データ・ソースはヒューマン・タスク・ペイロードです。
「マスター・ディテール」ページ・コンポーネントは、ソリューション・アプリケーションの動的タブでデータ・アイテムを表示します。次のデータ・コントロールを組み込んで構成できます(図5-6に示し、HelloBPMソリューション(第5.3項)で使用されています)。
データ・フィールド(表示または編集用の個々のデータ・アイテムです)。第5.1.8.1項を参照してください。
表(列として表示されるデータ・アイテムです)。第5.1.8.2項を参照してください。
参照(静的または動的な選択リストを提供します。動的参照はデータベース値を返すこともできます)。第5.1.8.3項を参照してください。
表5-4は、ユーザーに表示できるデータ・フィールドのタイプをリストしています。図5-6に例を示しています。
表5-4 データおよびデータ・フィールドのタイプ
| タイプ | 外観 | 説明 | 
|---|---|---|
| 入力テキスト |  | これらのフィールドにはテキストおよび数値を使用します。「番地」、「市区町村」、「都道府県」および「郵便番号」フィールドが入力テキスト・フィールドです。 | 
| 出力テキスト |  | これらのフィールド(「商談ID」など)は読取り専用です。 | 
| 入力日 |  | これらのフィールド(「有効期限終了」など)には、「日付の選択」アイコンが表示されます。クリックして表示されるカレンダから日付を選択します。 | 
| 入力数値 |  | これらのフィールド(「数量」など)には、数値スピンボックスが表示されます。上の三角形をクリックすると数値が1ずつ増加し、下の三角形をクリックすると数値が1ずつ減少します。 | 
| 静的ドロップダウン |  | これらのドロップダウン・フィールド(「ステータス」フィールドなど)の三角形をクリックし、表示される選択リストから選択します。 静的ドロップダウンは静的参照で使用されます。 | 
| 動的検索 |  | これらのフィールド(「アカウント名」フィールドなど)の「検索」アイコンをクリックし、表示される検索結果から選択します。必要に応じて、追加の検索基準を指定し、検索結果を絞ることができます。 動的検索はSQLベースの参照で使用されます。 | 
セクションのデータ・フィールドをグループ化できます。図5-6に、「アカウント」および「住所」セクションでグループ化されたデータ・フィールドを示しています。
データ・フィールドの指定には、フィールドで表示されるコンテキストのデータ・ディクショナリに新規データ・アイテムを追加し、次のようなプロパティを指定する必要があります。
表示順序およびセクション(存在する場合)
値の読取りおよび書込み先を指定するバインディング名
特殊属性(色など)
その他の特殊オプション(参照など)
データ・コンポーネントの構成オプションについては、データ・ディクショナリを参照してください。
表は、単一アイテムとしてではなく、列フォーマットで表示されるデータ・フィールドです。たとえば、図5-6に示す「製品」表には、列と行で配置された複数のデータ・アイテムが含まれます。これには、表の行の挿入、削除、コピーおよび貼付けを行う標準オプションがあり、複数の明細品目の複製や多少の変更が必要な場合に役立ちます。
表には、表5-4に示したデータ・アイテム・タイプを含めることができます。表5-5に記載されている表コントロールを含めることができます。
表5-5 使用可能な表コントロール
| コントロール | 説明 | 
|---|---|
| 表示 | このメニューから表ビュー・オプションを選択します。 
 | 
| 挿入 | 表の下部に新規行を追加できます。 | 
| 削除 | 選択した行を表から削除できます。 | 
| コピー | 選択した行から1つ以上の列を、貼付け用にコピーできます。コピーする各列を選択するか、「すべて」を選択します。 | 
| 貼付け | 前にコピーした行から選択した行と列を置換できます。 | 
|  | タスクの詳細ペインを大きくするために表を拡大できます。「連結解除」アイコンを再度選択し、表の表示を元のビューに戻すことができます。 | 
表の指定には、表が表示されるコンテキストのTableDataディクショナリに新規表を追加し、次のようなプロパティを指定する必要があります。
表の行と列のロード先を定義するバインディング
行で作業するために「コピー」、「貼付け」、「削除」および「挿入」ボタンの有効化または無効化
列ストレッチなどの設定オプション
列の設定(値の読取り先や書込み先を指定するバインディング名など)、表示順序、列幅および参照オプション
| 注意: TableDataディクショナリには1つの表定義を指定できます。 | 
参照は参照リストにリンクされたデータ・アイテム(個々のフィールドまたは表列)です。たとえば、図5-6では、「ステータス」および「アカウント名」をデータ・フィールド参照として、「製品名」を表参照として示しています。参照は、データ・フィールドおよび表で同じように機能します。
参照には次のタイプがあります。
静的(固定リストにリンクされ、ドロップダウン選択リストで表示されます)。たとえば、「ステータス」フィールドは、「開く」、「承認保留中」または「クローズ済」の値を選択する固定参照です。これらの参照値は、LookupAndValidatorディクショナリのStaticLookupルールセットで定義されます。
動的(SQLデータベースにリンクされ、問い合せる際にクリックする検索アイコンとともに表示されます)。たとえば、「アカウント名」および「製品名」フィールドは、動的参照です。動的参照を構成し、動的参照からアイテムを選択した際に他のデータ・フィールドを自動移入することもできます。たとえば、HelloBPMソリューションのAccountName参照はAccountName参照から住所フィールドを移入します。
参照の指定には、1つ以上のコンテキストで使用するLookupAndValidatorディクショナリに新規参照を追加することが必要です。主な手順は次のとおりです。
静的参照の場合、値および値の順序を指定します。
動的参照の場合、Enterprise Managerで参照のデータベース構成を作成し、指定されたデータベース接続を再実行するためにSQL問合せを指定します。また、参照で選択した際に、選択された値が格納されるバインディングの場所を指定する必要があります。
データまたはTableDataディクショナリでは、データまたは表フィールドに対して新規参照を参照します。
カスタム・ビジネス・ルールを編集する場合、変更を一時的に無効にするか、完全に破棄するかを決定できます。たとえば、「ルールの管理」タブで検証するビジネス・ルールを取得できない場合、変更を破棄できます。
この項の内容は次のとおりです。
BPMイメージング・ソリューションのインストールが完了した後で、実装のために次のいずれかの手順を完了します。
HelloBPMイメージング・ソリューションを使用します。これは、インストール時に自動的に構成されます。第5.3項を参照してください。このソリューションを使用してBPMイメージング機能を検証し、構成変更の検索および実行で使用するためにカスタマイズします。
または
ソリューション・アクセラレータを適用します。アクセラレータを入手するには、システム・インテグレータまたはOracle Consultingに連絡してください。
ソリューション管理の「ルールの管理」リンクを使用してビジネス・ルールへのアクセスおよび編集を行うには、Oracle WebLogic Serverでaxfadminグループに割り当てる必要があります。
ソリューション・アプリケーションの管理機能にアクセスするには、次の手順を実行します。
次の形式を使用して、ソリューション管理ページを開きます。
http://hostname:port/axf/faces/pages/axfadmin.jspx
ユーザーID (Oracle WebLogic Server)およびパスワードを入力し、「サインイン」をクリックします。
図5-7に示すように、ソリューション管理ウィンドウが表示されます。
左側のペインの「管理リンク」をクリックします。
「コマンド・ドライバ」ページでは、ビジネス・アプリケーションまたは電子メール・リンクからAXFを起動しなくても機能の検索またはビジネス・ルールおよびコンテキストを対象とした更新のテストを行うために、エンド・ユーザーとしてAXFアプリケーションを実行できます。
| 注意: FirefoxでBPMイメージング・ソリューションを使用している場合には、ポップアップ・ブロッカがオンになっていることを確認してください。ポップアップ・ブロッカがオフの状態のFirefoxで実行すると、ソリューションが正しくロードしない場合があります。 | 
コマンド・ドライバを使用するには、次の手順を実行します。
ソリューション管理ページ(第5.2.2項を参照)で、「管理リンク」の「コマンド・ドライバ」リンクをクリックします。
「コマンド・ドライバ」オプションが表示されます。
「入力パラメータ」で、solutionNamespaceフィールドにSalesQuoteEntryを、commandNamespaceフィールドにStartSalesQuoteEntryを入力します。
HelloBPMソリューションでは、デフォルトのコンテキストはヒューマン・タスクに基づいています。選択するヒューマン・タスクにより、表示されるユーザー・インタフェース(表およびタブ)が決まります。
「リクエストの実行」ボタンをクリックします。
conversationIdおよび他の対応するフィールドでの入力によって指定されたとおり、対話が開始されます。

「レスポンス・コマンド」で、「レスポンスの実行」ボタンをクリックします。
新規ブラウザ・ウィンドウが開き、「ソリューション・ワークスペース」ページが表示されます。
HelloBPMソリューションでは、単一管理者ユーザーに対してBPMビューが構成され、すべてのタスクが単一デフォルト・ビューに割り当てられます。タスクを挿入するには、第5.2.4項を参照してください。

リストからタスクを選択し、右下のペインのソリューション・アプリケーションにその詳細を表示します。
「ビュー」および「タスク・リスト」ペインを非表示にする、または「ビュー」ペインを固定/固定解除することで、ソリューション・アプリケーション・ビューを全画面表示できます。『Oracle Fusion Middleware Oracle WebCenterアプリケーション・アダプタの使用』を参照してください。

タスクの再選択後にビジネス・ルールを変更して、その結果を表示するために、ソリューション・アプリケーション・ユーザー・ビューとソリューション管理(第5.2.2項)を簡単に切り替えることができます。
コマンド・エグゼキュータにより、「コマンド・ドライバ」ページに入力された同じ情報を表すURLリンクを定義できます。たとえば、コマンド・エグゼキュータURLはユーザーへの電子メール・リンクで使用されます。
コマンド・エグゼキュータの例として、次のURLを使用し、HelloBPMソリューションのソリューション・ワークスペースを表示します。
http://hostname:port/axf/faces/command/CommandExecutor.jspx?sol=SalesQuoteEntry&cmd=StartSalesQuoteEntry
サインインをすると、指定したソリューション・ワークスペースが表示されます。
BPMのAXFインフラストラクチャとともに自動的にインストールされるHelloBPMソリューションには、ソリューションへのタスクの挿入に使用できるコンテンツ入力ファイルが付属しています。イメージングの入力エージェントを使用してタスクを挿入すると、ソリューション・アプリケーションの変更をテストできます。必要に応じて、入力ファイルを変更し、第5.3項に記載されているHelloBPMワークフローに一致させることができます。初期構成の詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentのインストールと構成』のHelloBPMを使用したBPM用のAXFのインストールおよび構成の検証に関する説明を参照してください。
コンテンツ・ファイルは、HelloBPM.xml、イメージング・アプリケーション定義とともに次のディレクトリにあります。
$ECM_ORACLE_HOME/axf_bpm/ipm
サンプル入力ファイルには次のものが含まれます。
TestSalesQuote.pdf(サンプル・イメージを含む)
TestSalesQuote.txt(入力ファイルを含む)
TestSalesQuote.xml(ドキュメントのサポートするコンテンツを含む)
この項では、タスクの挿入方法を説明します。アダプタのインストール時に構成されたデフォルトのディレクトリが使用されていて、前述の入力ディレクトリのファイルを検索するために入力エージェントが構成されていることを前提としています。詳細は、Oracle Fusion Middleware Oracle WebCenter Content: Imagingの管理の入力エージェントの有効化に関する説明を参照してください。
入力エージェントに対して指定された時間間隔(デフォルトでは15分)内で、入力エージェントは入力ファイルを検出し、テキスト入力ファイルに含まれるデータ値、PDFに含まれるイメージおよびXMLファイルに含まれるサポートするコンテンツを使用してドキュメントを作成します。
HelloBPMソリューションを使用する場所のワークフロー構成に基づいて、タスクは、BPMタスク・リストに表示されるドキュメント用に作成されます。
タスク・リストでは、新規に挿入されたタスクをクリックし、その詳細をソリューション・アプリケーションで表示します。
必要に応じて、入力ファイルを再度挿入する前に、入力ファイルのデータ値を変更します。たとえば、アカウント情報が欠落しているタスクを挿入し、そのヒューマン・タスク・フローを使用します。
この項では、ソリューション・アプリケーション管理の基礎を説明します。ソリューションのビジネス・ルールを編集することにより、各コンテキストのソリューション・アプリケーションのユーザー・インタフェースをカスタマイズします。ほとんどの場合、このプロセスには、コンテキストのディクショナリを開いて、ルールの選択やルールセットへのルールの追加を行い、プロパティを指定することが必要です。ビジネス・ルールの管理のバックグラウンド情報は、第5.1.2項を参照してください。
ソリューション管理ページ(第5.2.2項を参照)で、「ビジネス・ルールの管理」の「ルールの管理」リンクをクリックします。
「ルールの管理」オプションが表示されます。
「パッケージ」フィールドで、ソリューション・パッケージを選択します。必要に応じて、「リフレッシュ」をクリックし、パッケージのリストを再ロードします。
たとえば、oracle.axf.solution.hellobpmを選択し、HelloBPMソリューションのビジネス・ルールを表示します。
「コンテキスト」フィールドで、「ベース」を選択し、ベース・ディクショナリのルールまたはこのコンテキストのルールを編集するために以前に作成されたコンテキストを編集します。
図5-8に示すように、選択したパッケージに対して定義されたディクショナリが表に表示されます。
「カスタム・ルール」は「ルール・タイプ」フィールドで選択します。
読取り専用の製品ルールとは異なり、カスタム・ルールは編集できます。変更したカスタム・ルールをその製品のデフォルトに戻すこともできます。第5.2.7項を参照してください。
編集するディクショナリに対応する「編集」リンクをクリックします。
図5-9に、DynamicTabディクショナリの「編集」リンクをクリックすると表示される「ルールの管理」ウィンドウを表示します。
表5-6では、「ルールの管理」ウィンドウでルールを追加、編集または削除するツールを説明します。
表5-6「ルールの管理」ウィンドウのツール
| 要素 | 説明 | 
|---|---|
| ビジネス・ルール | この中央ヘッダーには、現在編集中のパッケージ、コンテキストおよびディクショナリがリストされます。たとえば、図5-9に示すビジネス・ルールには次のものが表示されています。 
 | 
| ルールセット | ディクショナリに対して編集できるルールセットがリストされています。選択されたルールセットのルールが編集用に右側に表示されます。使用されていないルールセットには、新規アイテムを簡単に追加できるようにルールセットのプレースホルダが含まれます。 | 
|  | ビジネス・ルールの変更を保存しないでルールを閉じるには、このボタンをクリックします。 | 
|  | ルールを検証するには、このボタンをクリックします。「ビジネス・ルール検証ログ」セクションに結果が表示されます。 | 
|  | ビジネス・ルールに行った変更を検証して保存するには、このボタンをクリックします。検証エラーが見つかった場合は、警告が表示されます。 | 
|  | このディクショナリのビジネス・ルールに行った変更をすべて破棄して、ディクショナリをその製品ルール設定に戻すには、このボタンをクリックします。 注意: このアクションを元に戻すことはできません。 | 
|  | 「アクションの追加」アイコンをクリックし、新規ルールを選択したルールセットに追加します。 | 
|  | 「プロパティの編集」アイコンをクリックし、選択したルールのプロパティを編集します。 | 
|  | 「削除」アイコンをクリックし、選択したルールをルールセットから削除します。 | 
| ビジネス・ルール検証ログ | 「検証」ボタンをクリックすると、ディクショナリの検証結果が表示されます。 | 
ルールを編集するには、「ルールセット」でそのルールセットを選択します。リストされた「THEN」のアイテムから、ルールの「プロパティの編集」アイコンをクリックします。

図5-10に示すように、ルールのプロパティを編集します。適用可能な場合は、「値」(拡大鏡)アイコンをクリックすると、プロパティに適用可能な値が表示されます。たとえば、タブ・ルールのpageComponentプロパティの「値」アイコンをクリックすると、ページ・コンポーネント値に適用可能な値が表示されます。プロパティを指定する際には、A.1項のディクショナリ・プロパティのリファレンス、第5.3.6項および第5.3.5項のHelloBPMソリューションに対して選択された設定例を参照してください。
| 注意: プロパティ・タイプを表示する場合は、引用符を含める必要があります。「定数」フィールドをチェックし、自動的に引用符を追加します。 プロパティを入力する際、大文字と小文字に注意してください。たとえば、"salesRepName"と"SalesRepName"は別々のエントリとして扱われます。 | 
ルールを追加するには、「ルールセット」でルールセットを選択します。「THEN」のアイテムを表示するセクションでは、「アクションの追加」アイコン(次に示す)の逆向きの三角形をクリックし、新規アサートを選択してルールのリスト下部で新規アイテムを追加します。

新規アサートの横にあるフィールドから、追加するアイテムを選択します。通常、前のアイテムに割り当てられたタイプと同じタイプを選択します(たとえば、新規タブをタブ・ルールセットに追加します)。

次に表示されている「プロパティの編集」アイコンをクリックし、ルールのプロパティを編集します(図5-10および手順6を参照してください)。必要な場合のみ、各プロパティの「定数」ボックスをチェックして、引用符を追加します。

ルールに対して行った変更または追加を検証し、ディクショナリを保存して閉じます。
「保存」ボタンをクリックすると、最初に検証を行い、エラーが発生した場合は保存の前に警告します。ウィンドウ下部の検証ログでは、検出されたエラーまたは警告が表示されます。
「閉じる」ボタンをクリックします。保存しないでディクショナリを閉じると、変更は保存されません。
「コマンド・ドライバ」ページ(第5.2.3項)を使用して、結果を表示します。
別のブラウザ・ウィンドウでソリューション・アプリケーション・ユーザー・ビューを開いておくと、結果の編集と表示を素早く切り替えることができます。ディクショナリの変更結果を表示するには、タスクを閉じてから再度開く必要があります。
コンテキストを管理するには、次の項を参照してください。コンテキストに関するバックグラウンド情報は、第5.1.7項を参照してください。

コンテキストを作成し、ベース・ルールの特殊化を可能にします。
ソリューション管理ページ(第5.2.2項を参照)で、「ビジネス・ルールの管理」の「コンテキストの管理」リンクをクリックします。
「アクション」の選択肢から、「作成」を選択します。
「パッケージ」フィールドで、コンテキストを追加するパッケージを選択します。
「コンテキスト」フィールドに、新規コンテキスト名を入力します。
必要に応じて、コンテキスト名にピリオド・デリミタを使用し、コンテキスト階層を作成します(第5.1.7項を参照してください)。
コンテキストに含めるディクショナリを「選択済」フィールドに移動します。
「変更の適用」ボタンをクリックします。
ビジネス・ユーザーのロールに応じて、新規コンテンツのディクショナリを編集します(第5.2.5項を参照してください)。
コンテキストを更新して、ユーザー・ロールに選択済ディクショナリを含めるか、またはユーザー・ロールから選択済ディクショナリを除外します。
コンテキストを削除すると、ソリューションで使用されていても、選択済のディクショナリとそのビジネス・ルールは削除されます。
ソリューション管理ページ(第5.2.2項を参照)で、「ビジネス・ルールの管理」の「コンテキストの管理」リンクをクリックします。
「アクション」の選択肢から、「削除」を選択します。
「パッケージ」フィールドで、削除するコンテキストを含むパッケージを選択します。
「コンテキスト」フィールドで、削除するコンテキストを選択します。
「変更の適用」ボタンをクリックします。削除する場合、削除を確定します。
ディクショナリのカスタム・ビジネス・ルールを製品設定に完全にリセットすると、行ったビジネス・ルールの変更がすべて削除され、カスタム・ルールが製品ルールに戻されます。これは、ソリューションの実行時にエラー受け取った場合またカスタマイズが検証されない場合に役立ちます。製品ルールにリセットすると、選択済のディクショナリに行ったすべての変更が削除されます。ソリューションの各ディクショナリをそれぞれリセットする必要があります。
または、RunAsProduct MBean設定を使用して、すべてのビジネス・ルールの変更を一時的に削除することもできます(第5.6.2項を参照してください)。
ベース・コンテキストなどのすべてのコンテキストに対してディクショナリ・ルールをリセットできます。コンテキストに対してリセットを行う場合、影響を与えるのはそのコンテキストのディクショナリのみです。
ディクショナリのカスタム・ルールを製品ルールにリセットするには、次の手順を実行します。
「ルールの管理」タブで、パッケージおよびコンテキストを選択します。
ルール・ディクショナリの「編集」リンクをクリックします。ディクショナリが開きます。
「製品にリセット」ボタンをクリックします。ビジネス・ルールの変更を完全に削除するかどうかを確認するプロンプトが表示されます。
「OK」をクリックします。製品ディクショナリ・ルールはカスタム・ルールに正常に置換されましたというメッセージが表示されます。
ソリューション・アプリケーションでタスクをクリックしても、前のビジネス・ルールの変更は表示されません。
この項の内容は次のとおりです。
HelloBPMソリューションは、BPMのAXFソリューションの例であり、BPMのAXFインフラストラクチャを使用して自動的にインストールおよび構成されます。コンポーネントを提供し、次のことを実行します。
ユーザーとしてBPMのAXF機能を確認し、理解します。
第5.2.2項の説明に従ってHelloBPMソリューションを起動し、第5.2.3項の説明に従ってユーザーとして実行します。
HelloBPMの例を確認し、ユースケースを使用することで、ビジネス・ルールの変更を理解します。
ビジネス・ルール機能の管理(図5-7を参照)を使用して管理者としてソリューション・アプリケーションの構成を開始し、ユーザーとしてソリューション機能をテストします(図5-11を参照)。
ユースケースでは、HelloBPMソリューションのディクショナリおよびコンテキストの変更例に加えて、ユーザーとして変更をテストおよび表示する例を提供します。
HelloBPMソリューションでは、架空の営業見積システムを説明しています。ソリューションには、3つのユーザー・コンテキストおよびロールに対応する次のBPMヒューマン・タスクが含まれます。
営業見積入力
営業見積アカウント・マネージャ
営業見積承認
図5-11に、メイン・ユーザー(営業見積入力ユーザー)に表示されるソリューション・アプリケーション(タスク詳細)を示しています。
HelloBPMソリューションの基本ワークフロー機能は次のとおりです。
営業見積入力タスクをシステムに流し込みます。営業見積入力タスクとしてタスク・リスト・ビューに表示されます。
営業見積入力ユーザー(入力ユーザー)は、タスクを選択し、図5-11に示す製品やライセンスの表などのフィールドを確認し、入力します。この入力ユーザーは次のアクション・リンクにアクセスできます。
承認: 営業見積入力ユーザーがこのリンクをクリックすると、「アイデンティティ・ブラウザ」コントロール・ページが表示されるので、入力ユーザーは承認者を選択します。「アイデンティティ・ブラウザ」コントロール・ページの「OK」アクションをクリックすると、タスクは完了し、SalesQuoteApproverヒューマン・タスクにルーティングされます。
却下: 入力ユーザーがこのリンクをクリックすると、却下するかどうかを確認するプロンプトが表示されます。
アカウント・マネージャ (例外セクション): このリンクは、「アカウント名」フィールドに入力がない場合のみユーザーを入力するためにアクティブになります。入力ユーザーがこのリンクをクリックすると、「アカウント・マネージャの理由の選択」画面が表示されるので、理由(新規アカウント、無効な住所または期限切れアカウントなど)を選択します。
営業見積アカウント・マネージャ(アカウント・マネージャ)は、ソリューション・ワークスペースを入力し、営業見積アカウント・マネージャ・タスクを選択します。アカウント管理の更新を完了し、タスクを保存して閉じます。
A 営業見積承認者(承認者)は、ソリューション・ワークスペースを入力し、営業見積承認タスクを選択します。タスクを承認または却下します。承認された場合、タスクは自動的に完了としてマークされ、タスク・リストから削除されます。
このワークフローを図5-12に示します。
HelloBPMソリューションに含まれる3つのヒューマン・タスクは、それぞれ個別のデータおよびアクションにアクセスする必要があるため、複数のコンテキストは、選択されたタスクのタイプに応じて、個別のユーザー・インタフェースおよびカスタマイズされたユーザー・インタフェースを表示するように構成されています。たとえば、SalesQuoteEntryタスクを選択した場合、タスクが完了すると追加のタブおよびアクションが表示されます。
ソリューションのコンテキストには、次のものが含まれます。
営業見積承認タスクを選択すると、「製品」または「ライセンス条項」タブは表示されませんが、「承認」および「却下」コマンドおよび承認/却下の決定を文書化する「コメント」タブにアクセスできます。承認者コンテキストには、このタイプのタスクにアクション、タブおよびデータ・フィールドを定義するためにアクション、DynamicTabおよびデータ・ディクショナリのみが含まれます。
営業見積アカウント・マネージャ・タスクを選択すると、営業アカウントの設定または変更に制限された機能が表示されます。このタスクでは、組織の連絡先情報の変更、および詳細なデータ入力または承認に対するタスクのルーティングを行うことができます。承認タスクと同様に、アカウント・マネージャ・コンテキストには、このタイプのタスクで表示されるアクション、タブおよびデータ・フィールドを定義するためのアクション、DynamicTabおよびデータ・ディクショナリのみが含まれます。
営業見積入力タスクを選択すると、最も特化されたタスクが、追加の「製品」および「ライセンス条項」タブおよび「アカウント・マネージャ」アクション・リンクのある「例外」セクションとともに表示されます。このコンテキストには、追加のタブ、アクションおよびデータ・フィールドを表示するアクション、DynamicTabおよびデータ・ディクショナリが含まれます。
SalesQuoteEntry_ProductItemおよびSalesQuoteEntry_LicenseTermコンテキストには、「製品」および「ライセンス条項」表をそれぞれ表示するためにTableDataディクショナリのみが含まれます。
SalesQuoteEntry_AccountManagerReasonコンテキストには、「アカウント・マネージャ」アクション・リンクを選択すると理由参照データ・フィールドが表示されるように、データ・ディクショナリが含まれます。
アクション・ディクショナリはSalesQuoteEntryコンテキストに含まれているため、ベース・コンテキストの定義ではなく、SalesQuoteEntryコンテキストの定義が使用されます。次のアクションを定義します。
「承認」リンク(アクションを実行するためにSendSalesQuoteEntryToSalesQuoteApprovalという機能ブロックを使用します)。
「アカウント・マネージャ」コマンド(「例外」というアクション・ドロップダウン・メニューに含まれます)。「アカウント名」フィールドが空白である場合を除いて、「アカウント・マネージャ」コマンドは無効化されます。
「閉じる」というアクション・ドロップダウン・メニュー(「保存して閉じる」および「元に戻して閉じる」コマンドが含まれます)。
表5-7 アクション・プロパティ
| actionId | displayName | displayOrder | enableMode | namedFunctionalBlockId | sectionId | 
|---|---|---|---|---|---|
| "Approve" | "Approve" | 1 | ENABLE | "SendSalesQuoteEntryToSalesQuoteApproval" | |
| "Reject" | "Reject" | 2 | ENABLE | "Reject" | |
| "AccountManager" | "Account Manager" | 1 | ENABLE | "SendSalesQuoteEntryToSalesQuoteAccountManager" | "Exceptions" | 
| "CloseTask" | "Save and Close" | 1 | ENABLE | "CloseTask" | "Close" | 
| "RevertCloseTask" | "Revert Changes and Close" | 2 | ENABLE | "RevertCloseTask" | "Close" | 
表5-8 セクション・プロパティ
| disclosed | displayName | displayOrder | enableMode | sectionId | 
|---|---|---|---|---|
| true | "Exceptions" | 1 | ENABLE | "Exceptions" | 
| true | "Close" | 2 | ENABLE | "Close" | 
データ・ディクショナリはSalesQuoteEntryコンテキストに含まれているため、次のデータ・フィールドおよびセクションを提供できます。(表5-9では、componentClassフィールドに値がないため表示されていません。)
表5-9 データ・プロパティ
| displayName | bindingName | displayOrder | lookupId | dataId | enableMode | sectionId | validator | 
|---|---|---|---|---|---|---|---|
| "OPPORTUNITY_ID" | "OpportunityID" | 1 | "OpportunityID" | DISABLE | "Account" | ||
| "STATUS" | "QuoteRequestStatus" | 2 | "QuoteRequestStatus" | "QuoteRequestStatus" | ENABLE | "Account" | |
| "ACCOUNT_NAME" | "Account Name" | 3 | "AccountName" | "AccountName" | ENABLE | "Account" | "AccountName" | 
| "VALID_UNTIL" | "Valid Until" | 4 | "ValidUntil" | ENABLE | "Account" | ||
| "STREET" | "Street" | 1 | "Street" | ENABLE | "Address" | ||
| "CITY" | "City" | 2 | "City" | ENABLE | "Address" | ||
| "STATE" | "State" | 3 | "State" | ENABLE | "Address" | 
表5-10 セクション・プロパティ
| disclosed | displayName | displayOrder | enableMode | sectionId | 
|---|---|---|---|---|
| true | "ACCOUNT" | 1 | ENABLE | "Account" | 
| true | "ADDRESS" | 2 | ENABLE | "Address" | 
表5-11 DataComponentAttributeプロパティ
| attributeName | attributeValue | dataId | 
|---|---|---|
| "contentStyle" | "color:blue" | "OpportunityID" | 
| ComponentAttribute.converterdatetime.dateStyle | "MMM/dd/yyyy" | "ValidUntil" | 
DynamicTabディクショナリは、SalesQuoteEntryコンテキストに含まれているため、追加タブを提供できます。次のタブおよびパラメータを定義します。
「製品」および「ライセンス条項」タブを追加します。
タイトルおよび位置の設定に加えて、パラメータ・ルールセットは、データおよび表コンテキストを新規タブに設定します。たとえば、「製品アイテム」タブを設定し、実際のデータ・フィールドのSalesQuoteEntryコンテキストではなく、表設定にはSalesQuoteEntry_ProductItemコンテキストを使用します。
表5-12 タブ・プロパティ
| pageComponent | displayOrder | tabId | displayName | 
|---|---|---|---|
| PageComponent.Image Data | 1 | "Image" | "Image" | 
| PageComponent.Master Detail | 2 | "ProductItem" | "Products" | 
| PageComponent.Master Detail | 3 | "LicenseTerm" | "License Terms" | 
| PageComponent.Comment | 4 | "Comments" | "Comments" | 
表5-13 TabParameterプロパティ
| tabId | parameterKey | parameterValue | 
|---|---|---|
| "Image" | "HideData" | "false" | 
| "Image" | "SplitterPosition" | "250" | 
| "ProductItem" | "TableDataContext" | "SalesQuoteEntry_ProductItem" | 
| "ProductItem" | "DataContext" | "SalesQuoteEntry" | 
| "ProductItem" | "PageComponentTitle" | "Products" | 
| "LicenseTerm" | "TableDataContext" | "SalesQuoteEntry_LicenseTerm" | 
| "LicenseTerm" | "DataContext" | "SalesQuoteEntry" | 
| "LicenseTerm" | "PageComponentTitle" | "License Terms" | 
データ・ディクショナリは、SalesQuoteEntry_AccountManagerReasonコンテキストに含まれているため、入力ユーザーがアカウント・マネージャの理由を選択するデータ参照フィールドを提供します。(表5-14では、componentClassおよびバリデータ・フィールドに値がないため表示されていません。)
表5-14 データ・プロパティ
| displayName | bindingName | displayOrder | lookupId | dataId | sectionId | enableMode | 
|---|---|---|---|---|---|---|
| "Account Manager Reason" | "NewCustomer" | 1 | "AccountManagerReason" | "AccountManagerReason" | "AccountManagerReason" | ENABLE | 
表5-15 セクション・プロパティ
| disclosed | displayName | displayOrder | enableMode | sectionId | 
|---|---|---|---|---|
| true | "Select Account Manager Reason" | 1 | ENABLE | "AccountManagerReason" | 
TableDataディクショナリは、他のコンテキストではなくSalesQuoteEntry_ProductItemコンテキストに含まれているため、営業見積入力ユーザーに製品表が表示されます。
表5-16 表プロパティ
| bindingName | enableCopyPaste | enableDelete | enableInsert | tableId | tableStretchMode | 
|---|---|---|---|---|---|
| "ProductItem" | ENABLE | HIDE | ENABLE | "ProductItem" | TableStretchMode.Blank | 
(表5-17では、バリデータ・フィールドに値がないため表示されていません。)
表5-17 列プロパティ
| bindingName | columnId | componentClass | displayName | displayOrder | enableMode | columnWidth | lookupId | 
|---|---|---|---|---|---|---|---|
| "ProductID" | "ProductID" | "Product ID" | 1 | DISABLE | |||
| "ProductName" | "ProductName" | "Product Name" | 2 | ENABLE | 300 | "ProductName" | |
| "ListPrice" | "ListPrice" | "PRICE" | 3 | ENABLE | |||
| "Quantity" | "Quantity" | ComponentClass.RichInputNumberSpinbox | "Quantity" | 4 | ENABLE | ||
| "RestrictedItem" | "RestrictedItem" | ComponentClass.RichSelectBooleanCheckbox | "Restricted Item" | 5 | ENABLE | 
表5-18 ColumnComponentAttributeプロパティ
| attributeName | columnId | attributeValue | 
|---|---|---|
| ColumnComponentAttribute.pattern | "ListPrice" | "#{bindings.ListPrice.format}" | 
TableDataディクショナリは、他のコンテキストではなくSalesQuoteEntry_LicenseTermコンテキストに含まれているため、営業見積入力ユーザーにライセンス条項表が表示されます。
表5-19 表プロパティ
| bindingName | enableCopyPaste | enableDelete | enableInsert | tableId | tableStretch | 
|---|---|---|---|---|---|
| "LicenseTerm" | ENABLE | ENABLE | ENABLE | "LicenseTerm" | TableStretchMode.Last | 
表5-20 列プロパティ
| bindingName | columnId | componentClass | displayName | displayOrder | enableMode | columnWidth | lookupId | 
|---|---|---|---|---|---|---|---|
| "Category" | "Category" | "Category" | 1 | ENABLE | 300 | "LicenseTermCategory" | |
| "Type" | "Type" | "Type" | 2 | ENABLE | 300 | "LicenseTermType" | |
| "Description" | "Description" | "Description" | 3 | ENABLE | 
HelloBPMソリューションのベース・コンテキストは、他のコンテキスト・レイヤーの追加機能の基本となる機能のベース・レイヤーを提供し、その機能ブロックと参照を参照します。
次のルールセットは、ソリューションで使用する機能ブロック、シーケンスおよびパラメータを定義します。
NamedFunctionalBlockRulesetは、結果、タスク詳細動的ページ、およびアイデンティティ・ブラウザ、データおよびコメントのコントロール・ページに移動する機能を設定します。
表5-21 NamedFunctionalBlockプロパティ
| functionalBlock | namedFunctionalBlockId | 
|---|---|
| FunctionalBlock.Set Outcome | "Approve" | 
| FunctionalBlock.Set Outcome | "Reject" | 
| FunctionalBlock.Set Outcome | "AccountManager" | 
| FunctionalBlock.Close Task | "RevertCloseTask" | 
| FunctionalBlock.Navigate Control Page | "SelectSalesQuoteApprover" | 
| FunctionalBlock.Navigate Control Page | "SelectAccountManagerReason" | 
| FunctionalBlock.Navigate Dynamic Page | TaskDetail" | 
| FunctionalBlock.Navigate Control Page | "IdentityBrowserControlPage" | 
| FunctionalBlock.Navigate Control Page | "DataControlPage" | 
| FunctionalBlock.Navigate Control Page | "CommentControlPage" | 
| FunctionalBlock.Save | "Save" | 
| FunctionalBlock.Close Task | "CloseTask" | 
| FunctionalBlock.Revert | "Revert" | 
表5-22 NamedFunctionalBlockSequenceプロパティ
| namedFunctionalBlockId | functionalBlockSequenceId | 順序 | 
|---|---|---|
| "SelectSalesQuoteApprover" | "SendSalesOrderEntryToSalesOrderApproval" | 1 | 
| "Approve" | "SendSalesOrderEntryToSalesOrderApproval" | 2 | 
| "SelectAccountManagerReason" | "SendSalesQuoteEntryToSalesQuoteAccountManager" | 1 | 
| "AccountManager" | "SendSalesQuoteEntryToSalesQuoteAccountManager" | 2 | 
表5-23 NamedFunctionalBlockParameterプロパティ
| namedFunctionalBlockId | parameterKey | parameterValue | 
|---|---|---|
| "Approve" | "Outcome" | "APPROVE" | 
| "Reject" | "Outcome" | "REJECT" | 
| "AccountManager" | "Outcome" | "ACCOUNT_MANAGER" | 
| "SelectSalesQuoteApprover" | "ControlPageName" | "IdentityBrowserControlPage" | 
| "SelectSalesQuoteApprover" | "ControlPageTitle" | "Select Approver" | 
| "SelectSalesQuoteApprover" | "UserBindingName" | "UserBindingName" | 
| "SelectSalesQuoteApprover" | "GroupBindingName" | "GroupBindingName" | 
| "SelectSalesQuoteApprover" | "CommentRequired" | "true" | 
| "SelectAccountManagerReason" | "ControlPageName" | "DataControlPage" | 
| "SelectAccountManagerReason" | "DataContext" | "SalesQuoteEntry_AccountManagerReason" | 
| "TaskDetail" | "pageTitle" | SolutionApplicationProperty.TaskTitle | 
| "DataControlPage" | "ControlPageName" | "DataControlPage" | 
| "DataControlPage" | "ControlPageTitle" | |
| "IdentityBrowserControlPage" | "ControlPageName" | "IdentityBrowserControlPage" | 
| "IdentityBrowserControlPage" | "ControlPageTitle" | |
| "IdentityBrowserControlPage" | "UserBindingName" | "UserBindingName" | 
| "IdentityBrowserControlPage" | "GroupBindingName" | "GroupBindingName" | 
| "CommentControlPage" | "ControlPageName" | "CommentControlPage" | 
| "CommentControlPage" | "ControlPageTitle" | 
表5-24 NamedFunctionalBlockPromptプロパティ
| namedFunctionalBlockId | 順序 | promptMessage | promptMode | promptType | 
|---|---|---|---|---|
| "Reject" | 1 | "Are you sure you would like to reject this request?" | PromptModeType.AFTER_VALIDATION | PromptType.OK_CANCEL_FUNCTIONAL_BLOCK | 
| "RevertCloseTask" | 1 | "Are you sure you would like to revert any changes before closing?" | PromptModeType.BEFORE_VALIDATION | PromptType.ROLLBACK_SAVED_CHANGES | 
表5-25 NamedFunctionalBlockValidatorプロパティ
| namedFunctionalBlockId | validatorMode | validatorCategoryId | 
|---|---|---|
| "Reject" | ValidatorMode.CONTINUE | "Account" | 
| "RevertCloseTask" | ValidatorMode.CONTINUE | "Account" | 
| "CloseTask" | ValidatorMode.CONTINUE | "Account" | 
次のルールセットは、ソリューションの他の部分で使用される参照、プロンプトおよび検証を定義します。
表5-26 StaticLookupプロパティ
| displayName | lookupId | 値 | displayOrder | 
|---|---|---|---|
| "Open" | "QuoteRequestStatus" | "OPEN" | 1 | 
| "Pending Approval" | "QuoteRequestStatus" | "PENDING_APPROVAL" | 2 | 
| "Closed" | "QuoteRequestStatus" | "CLOSED" | 3 | 
| "Price Hold Options" | "LicenseTermCategory" | "PriceHoldOptions" | 1 | 
| "Non-Standard Pricing And Currency Options" | "LicenseTermCategory" | "NonStandardPricingAndCurrencyOptions" | 2 | 
| "License Management Services Options" | "LicenseTermCategory" | "LicenseManagementServicesOptions" | 3 | 
| "Non-Standard Licensing Options" | "LicenseTermCategory" | "NonStandardLicensingOptions" | 4 | 
| "Future Program Price Holds" | "LicenseTermType" | "FutureProgramPriceHolds" | 1 | 
| "Future Discount Provisions" | "LicenseTermType" | "FutureDiscountProvisions" | 2 | 
| "Price Hold On Entire Price List" | "LicenseTermType" | "PriceHoldOnEntirePriceList" | 3 | 
| "Modifications To Contractual Pricing" | "LicenseTermType" | "Modifications ToContractualPricing" | 4 | 
| "Currency" | "LicenseTermType" | "Currency" | 5 | 
| "Preferred Customer Provisions" | "LicenseTermType" | "PreferredCustomerProvisions" | 6 | 
| "Waiving Or Lowering Purchase Minimums" | "LicenseTermType" | "WaivingOrLoweringPurchaseMinimums" | 7 | 
| "Audit Waivers" | "LicenseTermType" | "AuditWaivers" | 8 | 
| "Cancel And Replace" | "LicenseTermType" | "CancelAndReplace" | 9 | 
| "Direct Order From Competitors" | "LicenseTermType" | "DirectOrderFromCompetitors" | 10 | 
| "Reciprocal Transaction" | "LicenseTermType" | "ReciprocalTransaction" | 11 | 
| "Hosting" | "LicenseTermType" | "Hosting" | 12 | 
| "Hosting Rights" | "LicenseTermType" | "HostingRights" | 13 | 
| "NDA" | "LicenseTermType" | "NDA" | 14 | 
| "New Account" | "AccountManagerReason" | "NEW_ACCOUNT" | 1 | 
| "Invalid Address" | "AccountManagerReason" | "INVALID_ADDRESS" | 2 | 
| "Expired Account" | "AccountManagerReason" | "EXPIRED_ACCOUNT" | 3 | 
表5-27 DynamicLookupプロパティ
| sqlColumn | dataSource | lookupId | lookupType | sqlQuery | 
|---|---|---|---|---|
| "NAME" | "/jdbc/IPMDS" | "AccountName" | LookupType.DYNAMIC_SEARCH | "select ACCOUNT_NAME as Name, ADDRESS_STREET as Street, ADDRESS_CITY as City, ADDRESS_STATE as State, ADDRESS_ZIP as Zip, ADDRESS_COUNTRY as Country from AXF_HELLOBPM_ACCOUNTS" | 
| "PRODUCT" | "jdbc/IPMDS" | "ProductName" | LookupType.DYNAMIC_SEARCH | "select PRODUCT_ID as ID, PRODUCT_NAME as Product, LIST_PRICE as Price from AXF_HELLOBPM_PRODUCTS" | 
表5-28 DynamicLookupRelatedBindingプロパティ
| bindingName | lookupId | sqlColumn | 
|---|---|---|
| "Street" | "AccountName" | "STREET" | 
| "City" | "AccountName" | "CITY" | 
| "State" | "AccountName" | "STATE" | 
| "Zip" | "AccountName" | "ZIP" | 
| "Country" | "AccountName" | "COUNTRY" | 
| "ListPrice" | "ProductName" | "PRICE" | 
| "ProductID" | "ProductName" | "ID" | 
表5-29 バリデータ・プロパティ
| validatorClass | validatorId | 
|---|---|
| ValidatorClass."RegExpValidator" | "AccountName" | 
| ValidatorClass."RegExpValidator" | "State" | 
表5-30 ValidatorParameterプロパティ
| parameterKey | parameterValue | validatorId | 
|---|---|---|
| "Pattern" | "\\S" | "AccountName" | 
| "MessageDetailNoMatch" | "You must enter an Account Name before requesting approval" | "AccountName" | 
| "Pattern" | "AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY" | "State" | 
| "MessageDetailNoMatch" | "You must enter a valid state abbreviation" | "State" | 
この項に示すユースケース例は、基本シナリオの実装方法を例によって理解しやすくすることを目的としています。
| 注意: HelloBPMソリューションは、AXFのインストール時にインストールされます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentのインストールと構成』のHelloBPMを使用したBPM用のAXFのインストールおよび構成の検証に関する項を参照してください。 | 
アクションおよび機能ブロックのユースケース
データおよび表のユースケース
参照およびバリデータのユースケース
この演習では、営業見積承認タスクを完了し、そのタスクを営業見積入力タスク・キューに戻すために、アクション・メニューに「戻る」というリンクを追加する手順を説明します。アクションを追加し、そのアクションに対して機能ブロック設定を構成します。
「ルールの管理」で、「パッケージ」フィールドのHelloBPMパッケージ(oracle.axf.solution.hellobpm)を選択します。
SalesQuoteApprovalコンテキストを選択し、アクション・ディクショナリを編集します。
アクション・ルールセットでは、新規アサート・アクションを追加し、次のプロパティを割り当てることでアクションを追加します。
| プロパティ | 値 | 
|---|---|
| actionId | "Return" | 
| displayName | "Return" | 
| displayOrder | 4 | 
| enableMode | EnableMode.ENABLE | 
| namedFunctionalBlockId | "Return" | 
| sectionId | 
ディクショナリを検証し、保存して閉じます。
次の手順では、新規アクションの機能ブロックを構成します(具体的には、タスクを完了するBPMのコールを作成します)。
「ルールの管理」で、ベース・コンテキストを選択し、そのFunctionalBlockディクショナリを編集します。
「ルールセット」で、NamedFunctionalBlockを選択します。新規アサートNamedFunctionalBlockを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| functionalBlock | FunctionalBlock.Set Outcome | 
| namedFunctionalBlockId | "Return" | 
「ルールセット」で、NamedFunctionalBlockParameterを選択します。新規アサートNamedFunctionalBlockParameterを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| namedFunctionalBlockId | "Return" | 
| parameterKey | "Outcome" | 
| parameterValue | "RETURN" | 
ディクショナリを検証し、保存して閉じます。
ここまでの構成をテストします。
「コマンド・ドライバ」ページから、ソリューションをSalesQuoteEntry/StartSalesQuoteEntryとして実行します。
タスク・リストで、営業見積承認タスクを選択します。(タスクが営業見積承認タスクとして表示されるように、営業見積入力タスクを承認する必要があります。)
アクション・メニューから、追加した新規の「戻る」リンクをクリックします。タスクがタスク・リストから削除されます。これは、そのタスクが営業見積入力に戻されたことを示します。
このユースケースでは、営業見積リクエストを戻す理由の選択方法を構成する手順を説明します。「戻る」リンクをクリックすると、選択する理由コードが表示されるデータ・コントロール・ページ(データが表示される事前定義済ページ)に移動します。
HelloBPMパッケージから、ベース・コンテキストを選択し、そのFunctionalBlockディクショナリを編集します。
最初に、コントロール・ページへのナビゲーションを指定します。
NamedFunctionalBlockルールセットで、新規アサートNamedFunctionalBlockを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| functionalBlock | FunctionalBlock.Navigate Control Page | 
| namedFunctionalBlockId | "ReturnReason" | 
次に、移動先のコントロール・ページを指定します。
「ルールセット」で、NamedFunctionalBlockParameterを選択します。新規アサートNamedFunctionalBlockParameterを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| namedFunctionalBlockId | "ReturnReason" | 
| parameterKey | "ControlPageName" | 
| parameterValue | "DataControlPage" | 
「理由を返す」ページに移動してから、コールのシーケンスを定義します。
「ルールセット」で、NamedFunctionalBlockSequenceを選択します。新規アサートNamedFunctionalBlockSequenceを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| namedFunctionalBlockId | "ReturnReason" | 
| namedFunctionalBlockSequenceID | "ReturnToSalesQuoteEntry" | 
| 順序 | 1 | 
次のコールで、戻るを定義してタスクを完了します。
別の新規アサートNamedFunctionalBlockSequenceを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| namedFunctionalBlockId | "Return" | 
| namedFunctionalBlockSequenceID | "ReturnToSalesQuoteEntry" | 
| 順序 | 2 | 
ディクショナリを検証し、保存して閉じます。
最後の手順では、定義した新規のシーケンスをコールするアクションを更新します。
SalesQuoteApprovalコンテキストを選択し、アクション・ディクショナリを編集します。
namedFunctionalBlockを"Return"から"ReturnToSalesQuoteEntry"に変更することにより、第5.4.1項の手順3で作成したアクションを更新します。
| プロパティ | 値 | 
|---|---|
| actionId | "Return" | 
| displayName | "Return" | 
| displayOrder | 4 | 
| enableMode | EnableMode.ENABLE | 
| namedFunctionalBlockId | "ReturnToSalesQuoteEntry" | 
| sectionId | 
ディクショナリを検証し、保存して閉じます。
構成をテストします。
ソリューション・アプリケーションに戻り、タスク・リストから営業見積承認タスクを選択します。
アクション・メニューから、「戻る」リンクをクリックします。構成したナビゲーションに応じて新規の「理由を返す」データ・ページが表示されます。
「理由を返す」データ・ページでは、他のページで表示されたデータと同じデータが表示されます。第5.4.3項の手順を実行し、そのデータ表示を変更します。
「取消」リンクをクリックします。
このユースケースでは、適切なデータ(理由コードを返す)を表示するように、「理由を返す」データ・ページに対するコンテキストを追加する手順を説明します。最初にコンテキストを作成し、その選択肢とともに表示するデータ・フィールドを構成してから、最後に新規コンテキストを使用するデータ・ページを構成します。
左端のメニューから、「コンテキストの管理」を選択します。
「パッケージ」フィールドで、HelloBPMソリューション(oracle.axf.solution.hellobpm)を選択します。
「コンテキスト」フィールドに、SalesQuoteApproval_ReturnReasonの名前を入力します。
データ・ディクショナリを「選択済」フィールドに移動し、「変更の適用」をクリックします。
ここで、「理由を返す」データ・ページに表示するデータの属性を定義します。「理由を返す」というデータ・フィールド、およびフィールドから理由コードを選択するように指示するセクションを追加します。
「ルールの管理」を選択します。「コンテキスト」フィールドの横にある「リフレッシュ」アイコンをクリックし、作成した新規コンテキストSalesQuoteApproval_ReturnReasonを選択します。そのデータ・ディクショナリを編集します。
データ・ルールセットで、プレースホルダ・ルールを編集し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| displayName | "Return Reason" | 
| bindingName | "NewCustomer" | 
| displayOrder | 1 | 
| lookupId | "ReturnReason" | 
| dataId | "ReturnReason" | 
| sectionId | "ReturnReason" | 
| enableMode | EnableMode.ENABLE | 
| componentClass | 
セクション・ルールセットを選択し、プレースホルダ・ルールを編集し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| disclosed | true | 
| displayName | "Select the return reason:" | 
| displayOrder | 1 | 
| enableMode | EnableMode.ENABLE | 
| sectionId | "ReturnReason" | 
ディクショナリを検証し、保存して閉じます。
次の手順では、静的参照として定義する「理由を返す」フィールドに理由コードを構成します。
ベース・コンテキストを選択し、そのLookupAndValidatorディクショナリを編集します。
StaticLookupルールセットで、新規アサートStaticLookupルールを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| displayName | "Invalid License Terms" | 
| displayOrder | 1 | 
| lookupId | "ReturnReason" | 
| 値 | "INVALID_LICENSE_TERMS" | 
別のStaticLookupルールを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| displayName | "Invalid Product Discount" | 
| displayOrder | 2 | 
| lookupId | "ReturnReason" | 
| 値 | "INVALID_PRODUCT_DISCOUNT" | 
ディクショナリを検証し、保存して閉じます。
ベース・コンテキストのFunctionalBlockディクショナリを開きます。
最後の手順では、新規コンテキストSalesQuoteApproval_ReturnReasonasを理由を返すデータ・ページで使用するコンテキストとしてを定義します。
「ルールセット」で、NamedFunctionalBlockParameterを選択します。新規アサートNamedFunctionalBlockParameterを追加し、次のプロパティを割り当てます。
| プロパティ | 値 | 
|---|---|
| namedFunctionalBlockId | "ReturnReason" | 
| parameterKey | "DataContext" | 
| parameterValue | "SalesQuoteApproval_ReturnReason" | 
ディクショナリを検証し、保存して閉じます。
最終構成をテストします。
ソリューション・アプリケーションに戻り、タスク・リストから営業見積承認タスクを選択します。
アクション・メニューから、「戻る」リンクをクリックします。
表示されるデータ・コントロール・ページで、理由を返すフィールドから理由を選択し、「OK」をクリックします。タスクは戻され、削除されます。
このユースケースでは、営業担当者名というデータ・アイテム(読取り専用入力テキスト・フィールド)を営業情報というセクション内で表示するデータ・ディクショナリに追加する手順を説明します。別のデータ・フィールド・タイプ(出力(編集可能)テキスト・フィールド、データ入力フィールドまたは数値入力フィールドなど)を作成する手順は、この項の最後のバリエーションで示すようにほぼ同じです。
最初にテキスト・フィールドを追加します。「ルールの管理」で、oracle.axf.solution.hellobpmパッケージのSalesQuoteApprovalコンテキストを選択します。
データ・ディクショナリを編集します。
「ルールセット」で、データを選択します。
新規アサート・データを追加し、次の値を入力します。
| プロパティ | 値 | 
|---|---|
| bindingName | "SalesRepName" | 
| componentClass | ComponentClass.RichInputText | 
| displayName | "Sales Rep Name" | 
| displayOrder | |
| lookupId | |
| dataId | "salesRepName" | 
| enableMode | EnableMode.ENABLE | 
| sectionId | "sales" | 
ここで、テキスト・フィールドにセクションを追加します。「ルールセット」で、セクションを選択します。
新規アサート・セクションを追加し、次の値を入力します。
| プロパティ | 値 | 
|---|---|
| disclosed | true | 
| displayName | "Sales Info" | 
| displayOrder | 3 | 
| enableMode | EnableMode.ENABLE | 
| sectionId | "sales" | 
ディクショナリを検証して保存します。
ここで、テキスト・フィールドを表示します。「コマンド・ドライバ」ページから、SalesQuoteEntry/StartSalesQuoteEntryを実行し、営業見積承認タスクを選択します。
結果: 「イメージ」タブで、営業情報という新規データ・セクションを表示します。これには、新規入力テキスト営業担当者名フィールドが含まれます。
バリエーション
データ・アイテムのcomponentClassプロパティがそのタイプを定義します。前述の手順4で、ComponentClass.RichInputTextを指定することにより、入力テキスト・フィールドを定義します。
データ入力フィールドを定義するには、componentClassプロパティにComponentClass.RichInputDateを指定します。
数値入力フィールドを定義するには、componentClassプロパティにComponentClass.RichInputNumberSpinBoxを指定します。
データ・アイテムまたはセクションのenableModeプロパティは、その有効化モードを定義します。前述の手順4および6で、EnableMode.ENABLEを指定することにより、フィールドおよびセクションをそれぞれ有効にします。
フィールドまたはセクションを無効状態で表示するには、enableModeプロパティにEnableMode.DISABLEを指定します。
フィールドまたはセクションを非表示にするには、enableModeプロパティにEnableMode.HIDEを指定します。
このユースケースでは、第5.4.4項で追加した営業担当者名データ・フィールドに背景色を設定します。
oracle.axf.solution.hellobpmパッケージのSalesQuoteApprovalコンテキストを開きます。
データ・ディクショナリを編集します。
「ルールセット」で、DataComponentAttributeを選択します。
新規アサートDataComponentAttributeを追加し、次の値を入力します。
| プロパティ | 値 | 
|---|---|
| attributeName | "contentStyle" | 
| attributeValue | "background-color:lightblue" | 
| dataId | "salesRepName" | 
ディクショナリを検証し、保存して閉じます。
「コマンド・ドライバ」ページから、SalesQuoteEntry/StartSalesQuoteEntryを実行します。
営業見積承認タスクを選択します。
結果: 「イメージ」タブで、営業担当者名フィールドがライト・ブルーの背景で表示されます。
バリエーション
前述のユースケース属性値で、ライト・ブルーのフィールド背景に"background-color:lightblue"が指定されました。フィールドの入力色を指定するには、たとえば、次のいずれかの属性値を指定します。
"color:red"
"color:blue"
このユースケースでは、セクション内のデータ・セクションおよびデータ・アイテムの順序を戻す方法を示します。
「ルールの管理」で、oracle.axf.solution.hellobpmパッケージのSalesQuoteApprovalコンテキストを開きます。
データ・ディクショナリを編集します。
「ルールセット」で、データを選択します。
各データ・アイテムのdisplayOrderプロパティをアカウントのsectionIdで変更すると、データ・アイテムの表示順序が逆になります。
「ルールセット」で、セクションを選択します。
各セクションのdisplayOrderプロパティを変更すると、セクションの表示順序が逆になります。
ディクショナリを検証し、保存して閉じます。
「コマンド・ドライバ」ページから、SalesQuoteEntry/StartSalesQuoteEntryを実行します。
営業見積承認タスクを選択します。
結果: 「イメージ」タブで、セクションおよびアカウント・セクションのデータ・フィールドが逆の順序で表示されます。
このユースケースでは、折りたたまれた初期表示にセクションを設定します。
「ルールの管理」で、oracle.axf.solution.hellobpmパッケージのSalesQuoteApprovalコンテキストを開きます。
データ・ディクショナリを開きます。
「ルールセット」で、セクションを選択し、disclosedプロパティをfalseに変更することにより営業情報セクションを編集します。
ディクショナリを検証して保存します。
「コマンド・ドライバ」ページから、SalesQuoteEntry/StartSalesQuoteEntryを実行します。
営業見積承認タスクを選択します。
結果: 営業情報セクションを閉じた状態で表示します。
| 注意: セクションを手動で折りたたまない場合、パーソナライズのためにロードする次のページも折りたたまれていない状態になります。 | 
このユースケースでは、表の行を編集できる有効化された「挿入」、「削除」、「コピー」および「貼付け」ボタンの表示を抑止します。
「ルールの管理」で、oracle.axf.solution.hellobpmパッケージのSalesQuoteEntry_LicenseTermコンテキストを開きます。
このユースケースでは、ライセンス条項表を使用しますが、記載されているようにすべての表を編集できます。
TableDataディクショナリを編集します。
「ルールセット」で、表を選択します。
既存の表アイテムを編集します。そのプロパティは次のとおりです。
| プロパティ | 値 | 
|---|---|
| bindingName | "LicenseTerm" | 
| enableCopyPaste | EnableMode.HIDE | 
| enableDelete | EnableMode.DISABLE | 
| enableInsert | EnableMode.HIDE | 
| tableId | "LicenseTerm" | 
| tableStretch | TableStretchMode.Last | 
ディクショナリを検証して保存します。
ソリューション・アプリケーションで、営業見積入力タスクを選択し、「ライセンス条項」タブを選択します。
結果: 「ライセンス条項」タブの表では、無効化された「削除」ボタンが表示され、「コピー」、「貼付け」および「挿入」ボタンは非表示になっています。
このユースケースでは、静的参照の構成およびユーザーとしての静的参照の使用を説明します。
「ルールの管理」で、oracle.axf.solution.hellobpmパッケージのベース・コンテキストを開きます。
LookupAndValidatorディクショナリを編集します。
「ルールセット」で、StaticLookupを選択します。
3つのエントリには、QuoteRequestStatusのlookupIdが含まれます。
「コマンド・ドライバ」ページから、SalesQuoteEntry/StartSalesQuoteEntryを実行します。
営業見積入力タスクを選択します。
結果: 「ステータス」フィールドでは、3つの値がドロップダウンで表示されます。
「承認保留中」を選択します。
「閉じる」メニューから、「保存して閉じる」アクションを選択します。
同じタスクを再度選択します。
結果: 「ステータス」フィールドでは、3つの値がドロップダウンで表示され、「承認保留中」が選択されています。
動的参照の構成には、Oracle WebLogic Serverで構成されたデータソース(/jdbc/IPMDSなど)を指定する必要があります。IPMDSは、インストール時およびホストAXFに必要なIPM_serverドメインの作成時に自動的に構成されます。動的参照がLookupAndValidatorディクショナリでどのように構成されているか、コンテキストのデータまたはTableDataディクショナリでどのように参照されているかを表示するには、次の手順を実行します。
「ルールの管理」で、oracle.axf.solution.hellobpmパッケージのベース・コンテキストを開きます。
LookupAndValidatorディクショナリを編集します。
「ルールセット」で、DynamicLookupを選択します。
DynamicLookupの各エントリでは、データソースとして/jdbc/IPMDSを使用します。lookupIdのエントリを確認し、AccountNameに設定します。サンプル・アカウント表を問い合せます。これにより、アカウント名のリストを返します。
LookupAndValidatorディクショナリを閉じ、SalesQuoteEntryコンテキストを選択して、データ・ディクショナリを開きます。データ・ルールセットで、アカウント名のデータ・アイテムを検索し、そのプロパティを表示します。"AccountName"は、LookupIdプロパティに対して指定されています。
「コマンド・ドライバ」ページから、SalesQuoteEntry/StartSalesQuoteEntryを実行します。
営業見積入力タスクを選択します。
結果: 「アカウント名」フィールドは、横にある「検索」アイコン(拡大鏡)とともに表示されます。
「アカウント名」フィールドの横にある「検索」アイコンを選択します。リストからアカウントを選択し、「OK」を選択します。
結果: 「アカウント名」フィールドに選択したアカウント名が移入されます。
「保存して閉じる」タスク・アクションを選択します。
同じタスクを再度選択します。
結果: 「アカウント名」フィールドには、選択したアカウント名が移入されたままであることに注意してください。
ソリューション・ワークスペースでは、標準BPMビューおよびタスク・リスト機能を使用して、AXFソリューションで制御されたヒューマン・ワークフロー・タスクを表示します。BPM Worklistアプリケーションを使用して、BPMビューを作成し、他のユーザーまたはグループと共有します。『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。
列ヘッダーをクリックしてタスクをソートしたり、「検索」フィールドを使用して特定のタスクを検索したりなど、タスク・リストのアクションを実行できます。詳細は、『Oracle Fusion Middleware Oracle WebCenterアプリケーション・アダプタの使用』を参照してください。
システム管理者は、Oracle Fusion Middleware Control (またはEnterprise Manager)を使用して、BPMのAXF機能の特定の側面を管理します。これらのタスクを実行するには、Enterprise Managerにアクセスできるシステム管理者である必要があります。
この項の内容は次のとおりです。
Enterprise Managerで、BPMのAXFロギング機能を設定することもできます。第4.1.1項を参照してください。
BPMのAXFは、アプリケーションおよびライブラリとしてWeblogic Serverにデプロイされます。ソリューション・ワークスペースおよびソリューション・アプリケーションは、IPM管理対象サーバーにデプロイされます。
表5-31では、BPMのAXFによりデプロイされたライブラリおよびアプリケーションについて説明します。デプロイの詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentのインストールと構成』を参照してください。
表5-31 BPMのAXFによりデプロイされたアプリケーションおよびライブラリ
| アイテム名 | タイプ | WLS管理対象サーバー | 説明 | 
|---|---|---|---|
| axf-solutionWorkspace.ear | アプリケーション | IPM | ソリューション・ワークスペース・アプリケーションが含まれます(ソリューション・アプリケーションを起動するために選択できるタスク・リストを表示します)。 | 
| axf-infrastructure.ear | アプリケーション | IPM | インフラストラクチャ・コードが含まれます(ソリューション・メディエータ、コマンド・メディエータ、コマンド、ビジネス・ルール・フレームワーク、ソリューション・ワークスペースADF共有ライブラリ、ソリューション・アプリケーションADF共有ライブラリ、Webサービスおよび他の共通インフラストラクチャ・コードなど)。 | 
| axf-common-lib.war | ライブラリ | IPM | 他のすべてのアプリケーションおよびライブラリ全体で使用する共通コードが含まれます。一般的な共通コードに加えて、このWARには、システムMBean構成用コード、ソリューション・メディエータ・インタフェース、コマンド・メディエータ・インタフェース、コマンド・インタフェース、ロギングおよび対話管理が含まれます。 | 
トラブルシューティング・ソリューション・アプリケーションの構成時に、ビジネス・ルールの変更の抑止が役立ちます。次に記載するMBeanにより、適用された変更済カスタム・ルールではなく製品ビジネス・ルールで、指定されたソリューション・アプリケーションを実行し、必要に応じて再度変更済ルールを適用できます。
| MBean設定 | 説明 | 
|---|---|
| RunAsProduct | trueに設定すると、このMBeanは、RunAsProductSolutionApplicationValue MBeanで指定されたアプリケーションのワークスペース・カスタマイズすべてを無効にし、指定されたAXFアプリケーションを初期のデプロイ状態で実行します。 この設定を、カスタマイズを無効にする(true)または変更済ビジネス・ルールおよびカスタマイズを元に戻す(false)のいずれかに変更します。 | 
| RunAsProductSolutionApplicationValue | RunAsProduct MBean設定に応じて、AXFソリューション・アプリケーションを無効または有効に指定します。この値は、コンソール・デプロイメントで検索されるソリューション・デプロイメント名です。HelloBPMソリューションでは、これはaxf-solutionApplication-HelloBPMです。 別のソリューション・アプリケーションでのカスタマイズを無効にするにはこの設定を変更します。 | 
RunAsProduct MBeanを変更する手順は次のとおりです。
Enterprise ManagerシステムMBeanブラウザで、BPMのAXF MBeanを開きます。
Enterprise Managerで、「WebLogicドメイン」を展開します。
ベース・ドメインを右クリックし、「システムMBeanブラウザ」を選択します。
「アプリケーション定義のMBean」で、oracle.ecm.axf、IPMサーバーエントリの順に展開し、config MBeanを表示します。
必要に応じて、RunAsProductおよびRunAsProductSolutionApplicationValueを変更します。
『Oracle Fusion Middleware管理者ガイド』のテスト環境から本番環境への移行に関する項で示すように、BPMイメージング・ソリューションをテスト環境から本番環境へ移行した後に、次の手順を実行します。これらの手順では、本番環境の外部JNDIを更新し、本番環境との通信がテスト環境にリンクされていないことを確認します。
Weblogic Server管理コンソールの左側で、ドメイン構造、「サービス」、「外部JNDIプロバイダ」の順に選択します。
テストから本番へのプロセスの一部としてコピーされたForeignJNDIProvider-SOAという名前の「外部JNDIプロバイダ」をクリックします。
「プロバイダURL」フィールドを更新し、本番のOracle SOA Suiteを指定します。
「ユーザー」および「パスワード」フィールドを更新し、本番環境に適用します。
「保存」をクリックします。