Oracle Applications開発者ガイド リリース12 E06048-01 | 目次 | 前へ | 次へ |
添付機能を使用して、イメージ、ワード・プロセッサ文書、スプレッドシートまたはテキストなどの非構造化データをアプリケーション・データにリンクできます。たとえば、イメージを品目にリンクさせたり、工程を指示する動画を工程にリンクできます。
添付情報はアプリケーション全体で使用できます。たとえば、部品番号への添付を使用可能にして部品のイメージを添付する場合、部品番号を参照するすべてのフォームについて添付を使用可能にできます。ユーザーは部品番号が現れるすべての箇所で部品イメージを見ることができます。
セキュリティを与えて、ユーザーが特定のフォームから見ることができる添付を制限できます。これはフォーム機能に文書カテゴリを割り当てることによって行います。その後、それぞれの添付を特定のカテゴリに割り当てます。
フォームが、Oracle ApplicationsのTEMPLATEフォームから始めるOracle Applicationsの標準を使用して作成したものであれば、フォームのコードを変更することなく添付機能をアプリケーション・フォームおよび機能に追加できます。
添付機能のコンテキストにおいて特別な意味を持つ用語を定義しておくと役立ちます。
文書は、他のオブジェクトや処理をサポートするための情報を提供するあらゆるオブジェクトを指します。例としてイメージ、ワード・プロセッサ文書、スプレッドシート、テキストがあります。
エンティティは、品目、受注、受注明細などのようなOracle Applicationsデータ内のオブジェクトを指します。添付をエンティティにリンクするには、まず、エンティティに対して添付機能を使用可能にする必要があります。
添付のコンテキストにおいては、エンティティは基本エンティティまたは関連エンティティのいずれかとみなされます。基本エンティティはブロックの主エンティティです。関連エンティティは、通常、外部キー関連でブロックに関連付けられているエンティティを指します。
たとえば、Order_Linesブロックの内容を表示する「受注明細」ウィンドウがあると仮定します。受注明細エンティティはOrder_Linesブロックの基本エンティティとみなされます。このブロックに「製品」と呼ばれるフィールドが含まれている場合、製品エンティティはOrder_Linesブロックの関連エンティティとみなされます。また、Productsブロックの内容を表示する「製品」ウィンドウがある場合には、製品エンティティはProductsブロックの基本エンティティとみなされます。
重要: この章を通して使用している発注、発注明細、製品の例は、添付の概念を説明するための一般例です。Oracle Purchasingで使用される発注のための添付など、Oracle Applicationsで使用される実際の添付設定と混同しないでください。実際の設定は、ここでの例とは非常に異なる場合があります。
エンティティに関連付けられている文書は添付と呼ばれます。
添付機能をフォームまたはフォーム機能に設定するまでは、アプリケーションのフォームまたはフォーム機能で添付は使用できません。つまり、添付機能を「添付機能」ウィンドウで定義する必要があります。
文書カテゴリは、ユーザーが個々の添付や文書に付加するラベルのことです。文書カテゴリによって、特定のフォームまたはフォーム機能ごとに表示または追加する文書を制限するセキュリティを設定できます。
添付機能の設定時に、特定のフォームまたはフォーム機能に対して文書カテゴリを割り当てます。さらに、文書を定義する際に、文書にカテゴリを割り当てます。「添付」フォームでは、コールしているフォームまたはフォーム機能が関連付けられているカテゴリに割り当てられている文書についてのみ、問合せが可能です。フォーム全体で文書を簡単に閲覧できるようにするには、「その他」カテゴリをシードします。
関連トピック
ユーザーが添付機能が使用可能なフォームのブロックを使用する場合、ツールバー内の添付アイコンが使用可能になっています(ペーパー・クリップは空の状態)。アイコンをクリックすると、「添付」ウィンドウが開きます。この「添付」ウィンドウで、新しい添付文書を作成するか、または既存の文書をブロックの基本エンティティに添付できます。
文書がすでにエンティティに添付されている場合、添付の設定方法によってはツールバーのアイコンに添付があることを示すことができます(ペーパー・クリップに文書が表示)。アイコンをクリックすると、「添付」ウィンドウが開き、自動的に添付を問い合せます。該当するフォーム機能では、そのフォーム機能で利用可能なカテゴリが割り当てられている添付のみが参照できます。
添付機能の設定によっては、「添付」ウィンドウが自動的にブロックの基本エンティティの添付を問い合せる場合もあります。関連エンティティに添付されている添付を参照する場合は、「関連文書を含む」チェック・ボックスを選択します。それにより、「添付」ウィンドウは基本エンティティに対する添付のみでなく、関連エンティティの添付も問い合せます。
ただし、「関連文書を含む」チェック・ボックスを選択しなくても、ブロックの基本エンティティおよび関連エンティティ両方に対するすべての添付を最初から参照できるように、添付機能を設定することもできます。いずれの場合においても、ユーザーは関連エンティティに対して添付を変も追加もできません。
ユーザーがフォームのレコードに文書を添付すると、Oracle Applicationsは文書についての情報と文書本体(または文書のURL)を保存します。また、それとは別に、Oracle Applicationsは文書とレコードをリンクさせる添付情報も保存します。リンク情報を別に保存することによって、ユーザーは1つの文書を複数のレコードに添付できます。
エンティティと文書のリンク情報は、Oracle Application Object Library内の表FND_ATTACHED_DOCUMENTSに保存されます。この情報には文書IDとエンティティ名が含まれており、これらはエンティティのインスタンス(エンティティ・レコード)を一意に識別するレコード情報と結合されています。たとえば、「製品」フォームで製品にイメージを添付した場合、保存されるリンク情報はイメージ文書ID、製品エンティティ名、product_IDなどのような製品を一意に識別する主キー情報です。その後、製品を表示する別のフォームへ移動すると、そのフォームの添付機能では、主キー・フィールドをproduct_IDフィールドとして(order_IDフィールドなどではなく)製品エンティティに定義します。このように、対応する添付機能が正しく定義されていると、アプリケーション内で製品エンティティが出現するあらゆる場所で添付イメージを使用できます。
フォームと文書間の関連は次のように構築されます。すなわち、フォームはブロックに接続され、ブロックはエンティティに接続されます。添付リンクはエンティティ名とともに保存され、エンティティのインスタンス(エンティティ・レコード)を一意に識別するレコードの情報と結合されるため、フォーム・ブロックと文書間のリンクは実行時にエンティティを通して導出されます。
各文書にはカテゴリが関連付けられています。また、各添付機能には1つ以上のカテゴリが関連付けられており、実行時にはその時点の添付機能(フォーム)に関連付けられたカテゴリを持つ文書のみが表示または添付されます。
関連トピック
フォームまたはフォーム機能における添付機能を使用可能にするには、「添付機能」ウィンドウで情報を定義する必要があります。
添付はフォームまたはフォーム機能レベルで登録できるため、ユーザーは添付データを適切なレベルで定義できます。あるフォームのすべてのフォーム機能が同じ添付特性を持つようにする場合、添付データをフォーム・レベルで定義でき、これによって各フォーム機能に1つ1つデータを入力していく手間を省けます。一方、あるフォーム機能について個別の添付動作が必要な場合は、フォーム機能レベルでデータを定義します。
たとえば、「部品表」フォームに、設計技術者が使用する機能と生産技術者が使用する機能の2つの機能があるとします。設計技術者に対して生産技術者よりも広い範囲の文書カテゴリへのアクセスを許可する場合、2つのフォーム機能のそれぞれに対して別の添付を設定する必要があります。両方のフォーム機能で同じ添付動作をさせる場合は、フォーム・レベルで添付データを定義します。
添付ロジックは、まず最初に、フォーム機能に定義されている添付データがあるかどうかを確認します。添付データがある場合は、フォーム機能はその定義を使用して添付システムを実行します。フォーム機能に対する添付データがない場合は、フォーム・レベルで定義された添付データがあるかどうかを確認します。フォーム・レベルの添付データがある場合は、それを使用して添付システムを実行します。添付データがある場合、フォームは3つのレコード・グループに情報を保存し、添付アイコンの表示方法、添付フォーム起動時に使用可能な機能を管理します。添付データが宣言されていない場合は、添付アイコンは無効になり、ユーザーがツールバーのアイコンをクリックしても何も起こりません。
フォームまたはフォーム機能の登録時には、フォーム、ブロック、エンティティ、カテゴリのレベルの情報が必要です。
関連トピック
Oracle Application Object Libraryは、エンティティの添付情報をレポートする際に必要な添付文書情報のデータベース・ビューを提供します。添付のレポートにセキュリティを設定するために、コンカレント・プログラムを添付機能として登録し、1つ以上の文書カテゴリをコンカレント・プログラムと関連付けることをお薦めします。コンカレント・プログラムを添付機能として登録する際に、ブロックまたはエンティティ情報を提供する必要はありませんが、添付機能として登録する前に、「コンカレント・プログラム」ウィンドウでコンカレント・プログラムを定義する必要があります。
定義のためのフォームを使用して添付機能を設定する際には、前もって十分に検討する必要があります。定義のフォームを使用する順序は、添付機能を計画する順序と同じではありません。
警告: 添付機能は十分に検討して設定する必要があります。エンティティに添付を設定した後は、カテゴリやエンティティの追加を除き、添付機能の設定は変更しないでください。変更により既存の添付が無効になる場合があります。
この計画タスクは、添付機能を正しく定義するのに役立つ、高いレベルにおける構造の枠組みを紹介することを目的としています。添付を設定するフォーム内で定義する必要のある各フィールドの値について細かく記述しているような、完全な説明を意図したものではありません。
品目、発注、発注明細など、アプリケーションのどのエンティティで添付が必要かを決定します。
各エンティティについて、エンティティを保持するメインの表を決定します。表には複数のエンティティを含めることができることに注意してください。
表において、エンティティの主キーとなる列を決定します。フォームに添付機能を設定する際に、エンティティの主キー列に対応するフォーム・フィールドを指定する必要があります。
たとえば、受注明細エンティティに対する主キー列としてORDER_IDおよびORDER_LINE_NUMBER、製品エンティティに対する主キー列としてPRODUCT_IDが考えられます。それによって、「受注明細」ウィンドウのユーザーは受注明細の添付を問い合せるときに、受注明細が参照する受注明細および製品に対する正しい添付を参照します。
エンティティの添付を表示するフォームまたはフォーム機能を決定します。
添付が必要な各フォームに対して、添付を使用可能にする対象は特定のフォーム機能か、フォーム内のすべての機能かを決定します。関連項目: フォームまたはフォーム機能における添付
フォーム全体または機能について、使用する添付カテゴリを特定します。
各フォーム(機能)について、ブロックとエンティティの対応を決定します。これによって、添付を持つエンティティおよび添付を持つエンティティのブロックを決定します。
たとえば、受注機能では、Orderブロックの受注(エンティティ)と受注明細(エンティティ)に添付を適用する可能性があります。あるいは、Order_Linesブロックの発注明細エンティティと製品エンティティに添付を使用することも考えられます。各エンティティに対して、画像やノートなどを添付できます。
ブロック/エンティティの各組合せについて、エンティティが基本エンティティか関連エンティティかを決定します。基本エンティティは、ブロックごとに1つのみです。
前述の例で見ると、Order_Linesブロックでは受注明細エンティティが基本エンティティ、製品エンティティが関連エンティティです。ユーザーは受注明細エンティティに新しい添付を表示または追加できますが、製品エンティティには、Order_Linesブロック上で添付の表示のみが可能です(「製品」フォームに添付が設定されている場合には、「製品」フォームで添付機能を使用して製品の添付を追加できます)。
該当するフォーム・ブロックでは、複数のエンティティの添付を問合せたり参照できます。ただし、ユーザーが挿入したり、更新したりできるのは、ブロックの基本エンティティの添付のみです。基本エンティティは各ブロックに1つのみです。
たとえば、明細ブロックでは、ブロックの基本エンティティは受注明細エンティティで、製品エンティティではありません。この場合、ユーザーは受注明細エンティティに添付を作成または更新できますが、製品エンティティには添付を表示することのみが可能です。
アプリケーション内のあらゆるフォームに対して添付機能を設定できます。フォームには、文書、イメージ、ノート、文書URL、ファイルおよびその他の情報を添付できます。
フォームへの添付機能を設定するには、次の手順を実行します。
アプリケーションへの添付機能を計画します。関連項目: アプリケーションへの添付機能追加の計画
「文書エンティティ」ウィンドウを使用して文書エンティティを定義します。
「文書カテゴリ」ウィンドウを使用して文書カテゴリを定義します。
「添付機能」ウィンドウを使用して添付機能を定義します。
添付機能を定義する前に、まず「添付機能」ウィンドウとその関連ウィンドウを確認して、フィールドや要件を理解しておくことをお薦めします。
関連トピック
このウィンドウを使用して添付エンティティを登録します。1つの表に複数のエンティティを含めることができます。エンティティは、それに対する添付が複数箇所で表示される場合でも、登録する必要があるのは1度だけです。
このフォームを使用する前に、まず添付機能について徹底的に検討しておく必要があります。関連項目: アプリケーションへの添付機能追加の計画
エンティティを含むメインの表の名前を入力します。たとえば、製品エンティティがDEM_PRODUCTS表にあり、他の複数の表で外部キー列として現れる場合は、DEM_PRODUCTSと入力します。
エンティティを内部で一意に識別する名前を入力します。通常は、DEM_PRODUCTSのように、表の名前と同じものを使用します。表に複数のエンティティがある場合、DEM_PRODUCTS_COMPUTERのように、区別のための情報を表の名前に付加します。使用できるのは大文字とアンダースコアです。空白やアンダースコア以外の特殊文字は使用しないでください。
「添付」フォームで、あるエンティティに対する添付の一覧を表示する際に、使用されるエンティティ名です。エンド・ユーザーが、エンティティに添付されている文書を表示したり、文書を添付したりする際に、内容がわかるようなエンティティ名を入力します。
ユーザー・エンティティ・プロンプトです。プロンプトは必要ですが、添付機能では現在使用されていません。添付に基づくレポートを作成する場合に、この列を使用してレポートで使用されるプロンプトを格納できます。
エンティティ(またはエンティティ表)を所有するアプリケーションです。
Oracle Applicationsの表およびフォームに基づくカスタム添付機能を定義している場合は、Oracle Applicationsの製品名のかわりにカスタム・アプリケーション名を使用してカスタム・エンティティを定義する必要があることに注意してください。このことは、アップグレードの際にカスタム・エンティティを維持するのに役立ちます。
関連トピック
文書カテゴリは、特定のフォームまたはフォーム機能から表示または追加できる文書を制限するためのセキュリティとして機能します。文書を定義する際に文書にカテゴリを割り当てます。「添付」フォームから問い合せることができるのは、そのフォームまたはフォーム機能に関連付けられているカテゴリが割り当てられている文書のみです。
Oracle Applicationsでは、添付機能に割り当てることができる「その他」カテゴリを提供しています。「その他」カテゴリを使用する場合は、フォームに対して新たなカテゴリを定義する必要はありません。
このフォームを使用する前に、まず添付機能について徹底的に計画する必要があります。関連項目: アプリケーションへの添付機能追加の計画
カテゴリにはユーザーが理解しやすい名前を入力します。ユーザーはこの名前を「添付」ウィンドウで参照します。
デフォルトのデータ型は、カテゴリを使用して文書を作成した場合に使用される初期値です。デフォルトのデータ型はユーザーが上書きできます。
使用可能なデータ型には次のようなものがあります。
テキスト - テキスト文書はVARCHAR2(2000)列のデータベースに格納されます。
Webページ - Webページ文書はhttp://www.oracle.com(ブラウザによってはwww.oracle.com)の書式でURLとして添付されます。Webページ文書を選択して表示すると、「添付」ウィンドウの下方に、Webブラウザを起動してブラウザにURLを渡すための「文書のオープン」ボタンが表示されます。
ファイル - ファイル文書はMicrosoft WordやMicrosoft Excelのファイル、.JPGファイルなどの画像ファイル、およびその他の種類のファイルといった外部ファイルを指します。ファイル・タイプの文書は、添付時にデータベースにロードされます。ファイル文書を選択すると、「添付」ウィンドウの下方に、Webブラウザを起動してブラウザにファイルを渡すための「文書のオープン」ボタンが表示されます。Webブラウザで、ファイル名の拡張子に基づいてファイルの表示が適宜処理されます。
文書参照 - 文書管理システムで管理されている文書を参照する場合に、この文書参照を使用します。
カテゴリの有効日です。
このボタンによって、「カテゴリ割当」ウィンドウを起動します。「カテゴリ割当」ウィンドウでは、カテゴリが使用可能なフォームまたはフォーム機能を表示したり、入力できます。
関連トピック
「カテゴリ割当」ウィンドウでは、カテゴリを使用している添付機能を表示したり、1つ以上の既存添付機能をカテゴリへ割り当てます。添付機能として使用可能になっていないフォーム機能をカテゴリに割り当てることはできません。
フォームまたはフォーム機能を選択します。
カテゴリを使用できるようにするフォームまたはフォーム機能の名前を入力します(フォームまたはフォーム機能は、あらかじめ添付が使用可能なように設定されている必要があります)。
カテゴリをフォームまたはファーム機能に対し使用可能とする場合は、「使用可能」チェック・ボックスを選択します。フォームまたはフォーム機能に対する「使用可能」チェック・ボックスを選択しない場合、このカテゴリを使用するフォームまたはファーム機能への既存の添付は、「添付」ウィンドウで表示されなくなります。
関連トピック
「添付機能」ウィンドウを使用してフォームまたはフォーム機能に添付機能を設定します。このフォームを使用する前に、次のことを行う必要があります。
添付機能を慎重に計画します。関連項目: アプリケーションへの添付機能追加の計画
「文書エンティティ」ウィンドウを使用して文書エンティティを定義します。
「文書カテゴリ」ウィンドウを使用して文書カテゴリを定義します。
添付機能を定義する前に、まず「添付機能」ウィンドウとその関連ウィンドウを確認して、フィールドや要件を理解しておくことをお薦めします。
フォーム、フォーム機能またはレポートを選択します。機能タイプによって「名称」フィールドの値リストが決まります。
値リストを使用して添付機能を設定するフォーム、フォーム機能またはレポートを選択します。フォーム機能では、この名前はDEM_DEMXXEORなどのような機能の内部名になります。
選択された機能名に基づいて、フォーム、フォーム機能またはレポートのユーザーに対する表示名がデフォルトで使用されます。
オプションで、「添付」ウィンドウのタイトル用のセッション・コンテキストを取得するために使用する、フォーム内のフィールド名またはパラメータ名を入力します。通常、セッション・コンテキスト・フィールドには、製造アプリケーションでは組織名、会計アプリケーションでは会計帳簿名が使用されます。
表示されるプロンプトではなく、Oracle Formsの内部フィールド名を入力する必要があります。block.field構文を使用し、ブロック名を必ず含める必要があります。
フォーム、フォーム機能またはレポートに対して添付機能を使用可能にする場合は、「使用可能」チェック・ボックスを選択します。
このボタンによって「カテゴリ」ウィンドウを起動します。「カテゴリ」ウィンドウでは、フォーム(フォーム機能)で使用できる文書カテゴリを表示したり、入力できます。添付機能には少なくとも1つのカテゴリを割り当てる必要があります。
このボタンによって「ブロック宣言」ウィンドウを起動します。このウィンドウでは添付機能に対するブロック宣言を入力できます。
関連トピック
「カテゴリ」ウィンドウを使用して、添付機能に対する文書カテゴリを表示したり、添付機能に文書カテゴリを割り当てます。機能に割り当てるカテゴリは、添付が使用可能になっているフォーム内のすべてのブロックで有効になります(すなわち、2つのブロックが同一フォーム内にあり、どちらも添付が使用可能になっている場合、1つのブロックに対してはカテゴリを有効に、もう1つのブロックに対してはカテゴリを無効にすることはできません)。
機能に割り当てるカテゴリを入力します。添付機能には少なくとも1つのカテゴリを割り当てる必要があります。Oracle Applicationsでは、添付機能に割り当てることができる「その他」カテゴリを用意しています。
機能に対してカテゴリを使用可能にする場合は、「使用可能」チェック・ボックスを選択します。
関連トピック
ブロック情報は「添付」ツールバー・アイコンを使用可能にするかどうかの決定に必要となります。さらに、ブロックに関連付けられている種々の属性によって、「添付」フォームがブロックから起動されたときの表示や動作が変わります。
このフォームをレポートの添付カテゴリを設定するのに使用している場合は、「ブロック」ウィンドウまたは「エンティティ」ウィンドウを使用する必要はありません。
Form Builderで入力されているOracle Formsのブロック名です。添付機能を使用可能にするブロックのみを入力します。
「変更の許可」または「問合せのみ」のいずれかを選択します。「変更の許可」では、ブロックの「添付」フォーム起動時に、添付を挿入、更新または削除できます。「問合せのみ」では、起動した「添付」フォームには添付が表示されますが、添付を変更、削除または作成することはできません。このフィールドで「問合せのみ」を選択した場合は、その設定はブロック内にあるすべてのエンティティに対するすべての添付に適用されます。「変更の許可」を選択した場合には、「エンティティ」ウィンドウを使用して個々のエンティティに選択的に権限を設定できます。
フォームやデータの保護方法に応じて、「組織」、「会計帳簿」、「ビジネス単位」または「なし」を選択します。会計アプリケーションは、通常、会計帳簿で保護します。また、製造アプリケーションは組織、人事管理アプリケーションはビジネス単位IDで保護するのが普通です。
文書を定義する際にセキュリティ・メカニズムも定義します。たとえば、ある文書を、組織が保護し、組織ABCが所有する、というように指定できます。添付システムは、「添付」フォームがABC組織のコンテキストで実行されているフォームによって起動された場合に、この文書のみを表示するようになります。
セキュリティ・コンテキスト(組織、会計帳簿、ビジネス単位)間での文書の共有を容易にするには、文書のセキュリティ・タイプを「なし」と定義するか、または文書を「共有」と定義します。このいずれかの属性を文書に定義することで、「添付」フォームを起動するフォームのセキュリティ・コンテキストに関係なく、「添付」フォームに文書を表示できます。
添付を組織で保護する場合、組織IDを保持しているフォームのコンテキスト・フィールド名を入力します。block.field構文を使用します(たとえば、ITEMS.ORGANIZATION_IDなど)。ブロック名を含める必要があります。
添付を会計帳簿で保護する場合、会計帳簿IDを保持しているフォームのコンテキスト・フィールド名を入力します。block.field構文を使用します(たとえばJOURNAL_ENTITIES.SET_OF_BOOKS_IDなど)。ブロック名を含める必要があります。
添付をビジネス単位で保護する場合、ビジネス単位IDを保持しているフォームのコンテキスト・フィールド名を入力します。block.field構文を使用します(たとえば、EMPLOYEE.ORGANIZATION_IDなど)。ブロック名を含める必要があります。
「添付」ウィンドウを開いたとき、フォームから取得した最大3つまでの値を「添付」ウィンドウのタイトルとして表示するように、添付機能を設定できます。これらの値によって、ユーザーは文書を添付しているレコードを識別できます。添付機能でこれらの値を導出できるフィールド名を最大3つまで指定できます。たとえば、ある受注への添付について、「添付」ウィンドウのタイトルに受注番号と顧客名を表示する場合は、受注番号を保持しているフィールド名と顧客名を保持しているフィールド名を指定します。
「添付」フォームのタイトルに使用するコンテキスト情報を保持しているフィールド名を入力します。block.field構文を使用します(たとえばORDERS.ORDER_IDなど)。ブロック名を含める必要があります。
このボタンによって「エンティティ宣言」ウィンドウを起動します。このウィンドウでは添付機能に対するエンティティ宣言を入力できます。
関連トピック
「エンティティ宣言」ウィンドウを使用して、ブロックのエンティティをリストし、各エンティティの情報を入力します。「ブロック宣言」ウィンドウでリストした各ブロックについても、再度「エンティティ宣言」ウィンドウを完成させる必要があります。複数のブロックで使用しているエンティティがある場合は、各ブロックについてそれぞれ別個に「エンティティ宣言」ウィンドウを完成させ、その都度、エンティティ情報をすべて入力する必要があります。
このウィンドウでエンティティを使用する前に、「文書エンティティ」ウィンドウで、必要なすべてのエンティティを定義しておく必要があります。
添付が許可されているエンティティのリストからエンティティ名を入力します。
「添付」ウィンドウでの添付の表示には、2つのモードがあります。これらのモードは「関連文書を含む」チェック・ボックスで切り換えます。2つのモードの違いは、ウィンドウの表示時に問合せ対象となる添付が異なるという点のみです。「関連文書を含む」チェック・ボックスを選択しない場合、ウィンドウは現行レコードに直接リンクされた添付のみを表示します。「関連文書を含む」チェック・ボックスを選択した場合は、ウィンドウは現行レコードに疎関連の添付も表示されます。
変数 | 説明 |
---|---|
メイン・ウィンドウ | 「関連文書を含む」チェック・ボックスが選択されているかどうかに関係なく、「添付」ウィンドウでただちに表示するエンティティに対して、メイン・ウィンドウを指定します。一般に、メイン・ウィンドウは、ブロックの基本エンティティ(または、新規添付の挿入を許可するブロックの1つのエンティティ)に対して指定します。 「添付」ツールバーのアイコン・インディケータをオンにする処理に含まれるエンティティはすべて、常に「メイン・ウィンドウ」表示方法を使用する必要があります。添付が存在することを示すアイコンはユーザーには表示しないようにします。また、ツールバーのアイコンを押せないようにし、「添付」フォームで問合せ結果が何も表示されないようにします。 |
関連ウィンドウ | 表示方法が「関連ウィンドウ」であるエンティティの添付は、「関連文書を含む」チェック・ボックスが選択されている場合のみ、表示方法が「メイン・ウィンドウ」であるエンティティの添付とともに表示されます。 外部キーで基本エンティティに関連付けられたエンティティの添付は、通常、「関連ウィンドウ」表示方法を使用します。たとえば、Order_Linesブロックの中の受注または製品のいずれかに対する添付は、メインの添付ウィンドウではなく関連の添付ウィンドウで表示する必要があります。 ツールバーのアイコン・ボタンの設定に含まれない添付は、通常、「関連ウィンドウ」表示方法を使用します。 |
ツールバーのアイコン・ボタン設定に含める必要のある各エンティティには「インディケータに含む」チェック・ボックスを選択して、レコードに添付が存在するかどうかを示すようにします。
表示方法が「メイン・ウィンドウ」であるエンティティでは、「インディケータに含む」チェック・ボックスが選択されている必要があります。ツールバーのアイコンに添付が存在しないことが示されているにもかかわらず、「添付」ウィンドウでの問合せで添付が検出されてもユーザーが戸惑うことがなくなります。
添付機能の実装方法に応じて、「インディケータに含む」を選択すると各エンティティに対してストアド・プロシージャが、WHEN-NEW-RECORD-INSTANCEイベント・ポイントで実行されます。これは、問合せされたレコードのグループをユーザーがスクロールするに際に、各レコードに対しストアド・プロシージャが実行されるということです。疎関連エンティティをインディケータに含めないようにする必要があります。このように添付を分離することによって、ツールバーに適切な添付アイコン(ペーパー・クリップに文書の表示があるものとないもの)を表示する目的で添付を確認する必要のあるエンティティが限定され、パフォーマンスが向上します。
フォームまたはビューに変更を加えた場合は、添付が存在しているかどうかの判断を行うために、「インディケータ表示」チェック・ボックスを選択します(これにより、添付機能の特別実装を使用していることになります)。添付機能の標準実装では、このチェック・ボックスは選択しません。「インディケータに含む」と「インディケータ表示」は、相互排他関係にあります。
開発者はファンクションをビュー定義に含めて添付の存在を解決することも、フォーム・コード自体に他の解決策を実装することも可能でした。
添付を実装してパフォーマンス上の影響を少なくするオプションについては、添付インディケータのパフォーマンス上の問題に関する項を参照してください。
権限を定義することによって、ブロックの特定のエンティティへの添付に対する問合せ、挿入、更新、削除を許可または保護できます。また、権限の条件文を定義できます。たとえば、Oracle General Ledgerの仕訳入力フォームで仕訳が転記されている場合に、添付への問合せは随時許可し、挿入、更新または削除は許可しないように設定できます。
権限の定義には次の値を使用します。
常に
非使用
条件がTRUEの場合
条件がFALSEの場合
これらの設定は、「ブロック宣言」ウィンドウの「方法」フィールドの設定に依存することに注意してください。方法に「変更の許可」が設定されている場合は、このリージョン内にある特定のエンティティに対して権限をさらに制限できます。方法に「問合せのみ」が設定されている場合は、リージョンを使用して問合せのみの権限を拡大することはできません(たとえば、特定のエンティティに対して挿入を許可するなど)。
文書参照またはファイル・タイプ文書として添付された文書については、添付への更新が許可されているかどうかに関係なく、ユーザーは添付システムに対して外部から文書を更新または削除できます。たとえば、文書参照の添付について、ユーザーは文書参照が対象とする文書管理システム内の文書そのものを変更できます。同様に、ExcelのスプレッドシートはExcel内で変更でき、変更されたシートが添付システムに再ロードされます。
エンティティへの添付の問合せが可能かどうかを決定します。
エンティティへの添付の挿入が可能かどうかを決定します。挿入を許可できる添付エンティティはブロックごとに1つのみで(基本エンティティ)、主キー・フィールドには値が存在している必要があります(これらのフィールドになんらかの値がある場合、添付機能はFND_ATTACHED_DOCUMENTS表にレコードを作成します)。
エンティティへの添付の更新を可能とするかどうかを決定します。
エンティティへの添付の削除を可能とするかどうかを決定します。通常は、エンティティを定義するフォームからの削除のみを許可するようにします。
権限の基準を条件に置く場合は、条件の評価に使用する値を含むコール側のフォームのフィールド名を入力します。block.field構文を使用します。ブロック名を含める必要があります。
権限の基準を条件に置く場合は、条件の評価に使用する演算子を選択します。
権限の基準を条件に置く場合は、条件フィールドと比較する値を入力します。ほとんどの演算子では、値1フィールドにのみ値を入力します。
BETWEEN演算子を使用する場合にのみ、2番目の値も入力します。
主キー・フィールドについて、ここで説明します。
エンティティの主キーを導出できるコール側フォームのフィールド名を入力します。block.field構文を使用します。ブロック名を含める必要があります(たとえばORDER_LINES.PRODUCT_IDなど)。
各エンティティ(および、そのエンティティを使用する各ブロック)に対して、少なくとも1つの主キーを指定する必要があります。添付の問合せ、挿入、更新、削除はすべて、ユーザーがツールバーの添付アイコンをクリックする時点までのコール側フォームの主キーの値に依拠します。ボタンをクリックしたときに、使用可能な主キーの値がない場合、「添付」フォームに組み込まれたSQL文は、ユーザーが要求する添付を持たないか、ユーザーの要求より広範囲にわたる可能性があります。
これらのフィールドは、エンティティ表のエンティティを一意に識別する主キー列に対応しています。たとえば、受注明細エンティティでは、主キー列はORDER_IDおよびORDER_LINE_NUMBERで、これに相当するフォームのフィールドはORDER_LINES.ORDER_IDおよびORDER_LINES.ORDER_LINE_NUMBERです。製品エンティティでは、主キー列はPRODUCT_IDで、これに相当する受注明細フォームのフィールドはORDER_LINES.PRODUCT_IDとなります。
FND_ATTACHED_DOCUMENTSにデータを格納する順序で主キーを入力します。たとえば、キー1フィールドのデータはPK1_VALUE列に格納されます。PK1_VALUE列からPK5_VALUE列は、VARCHAR2(100)列として定義され、これにより、すべての列を含むかたちで索引を定義することが可能になります。
ツールバーのボタンを押した際にエンティティへの添付を表示するには、必要な識別データをフォーム・フィールドで使用可能とする必要があります。詳細は、SQL文の属性についての説明を参照してください。
SQL文フィールドを使用して、標準の添付エンティティ属性では取得できない、詳細な問合せ基準(制限)を作成します。
たとえば、Ordersブロックがあり、その受注のすべての受注明細への添付を関連する添付として含める場合は、このフィールドにSQL断片を指定せずに実行できます。この動作は、単に受注明細エンティティをOrdersブロックで使用し、受注明細エンティティの主キー(Key 1 = LINES.ORDER_ID)の最初の部分を指定することで実現できます。これを行うには、受注明細への添付が、列FND_ATTACHED_DOCUMENTS.PK1_VALUEに格納されるORDER_IDで作成されている必要があります。これは、受注明細への添付を作成できるブロックでは、ORDER_IDフィールドを最初の主キー・フィールドとして定義する必要があるということを意味します。
ただし、「使用可能」とされている受注明細への添付のみを参照する場合は、AND EXISTS(SELECT 1 FROM order_lines WHERE order_id =FND_ATTACHED_DOCS_FORM_VL.pk1_value AND enabled_flag = 'Y')といったSQL文を使用して、「添付」フォームに返されるレコードを制限できます。
有効なSQL断片を入力します。この断片は「添付」フォームのWHERE句に追加されるため、「:block.field」表記を使用してフィールドは参照できません。また、SQL文は2000文字を超えないようにする必要があります。
SQL文の使用方法を理解するには、「添付」フォームでの問合せの基本構造を理解する必要があります。「添付」フォームのWHERE句の例を次に示します。
SELECT <columns> FROM fnd_attached_docs_form_vl
WHERE function_type = :parameter.function_type
AND function_name = :parameter.function_name
AND ( (entity_name = '<entity 1>'
AND pk1_value = '<key 1 value>'
...
AND pk5_value = '<key 5 value>'
AND <your SQL Statement for entity 1>)
OR (entity_name = '<entity 2>'
AND pk1_value = '<key 1 value>'
...
AND pk5_value = '<key 5 value>'
AND <your SQL Statement for entity 2>)
)
警告: SQL文の使用には、添付の確認を実行する動的SQLの使用が必須です。これはFND_ATTACHMENT_UTIL_PKG.get_atchmt_exists_sqlファンクションで使用可能ですが、このファンクションはビューの定義では利用できません。そのため、SQL文の使用は、関連添付ウィンドウで表示されるエンティティへの添付に制限し、添付インディケータの設定には含めないようにする必要があります。
関連トピック