![]() ![]() ![]() ![]() |
注意 : | ファイル コントロールは、WebLogic Integration の使用許諾を受けた場合にのみ、BEA Workshop for WebLogic Platform で使用できます。 |
ファイル コントロールを使用すると、ファイル システム内でファイルの読み込みや書き込み、または追加を簡単に行えます。この節のトピックでは、ファイル コントロールの使用方法について説明します。コントロール インスタンスをビジネス プロセスに追加する方法については、「ビジネス プロセスでコントロールを使用する」を参照してください。
ファイル コントロールを使用すると、ファイル システム内でファイルの読み込みや書き込み、または追加を簡単に行えます。ファイルの型は、XmlObject、RawData (バイナリ)、String のいずれかです。ファイル コントロールを作成するときに、指定したディレクトリに格納されているファイルに一致するファイル タイプを選択します。
また、ファイル コントロールは、コピー、名前の変更、削除などのファイル操作をサポートしています。特定のディレクトリに格納されているファイルのリストを取得することもできます。
ファイル コントロールはファイルに対する操作を実行します。各ファイル コントロールは特定の操作を実行するようにカスタマイズします。
ここでは、新しいファイル コントロールの作成方法について説明し、Java ファイル内のファイル コントロールの宣言の例を示します。
コントロール インスタンスをビジネス プロセスに追加する方法については、「ビジネス プロセスでコントロールを使用する」を参照してください。
新しいファイル コントロールを作成してビジネス プロセスに追加できます。新しいファイル コントロールを定義するには
注意 : | [データ パレット] ビューが BEA Workshop for WebLogic Platform に表示されない場合は、メニュー バー![]() ![]() ![]() |
[Insert control: ファイル] ダイアログ ボックスが表示されます。
ディレクトリ名は、ドライブとパスを指定した、ディレクトリの絶対パス名です。たとえば、有効なディレクトリ名は以下のとおりです。
C:\directory (Windows)
/directory (Unix)
\\servername\sharename\directory (Win32 UNC)
ピリオド (.
) を入力して現在の作業ディレクトリを指定することもできます。[ディレクトリ名] フィールドにフォワード スラッシュ (/
) を入力すると、次のように解釈されます。
*
) などのワイルドカード文字を指定した場合、ファイル マスクとして使用されます。ワイルドカード文字は、ディレクトリ内のファイルのリストを取得するために指定します。その他の操作ではワイルドカード文字を使用できません。
[ファイル名フィルタ] フィールドはコントロールの挿入時には省略可能ですが、省略した場合は、ファイル操作の実行前にこのプロパティが動的に設定される必要があります。
write(String
data
)
、write(XmlObject
data
)
、または write(RawData
data
)
など) が生成されます。たとえば、ディレクトリに XML ドキュメントが格納されている場合は、コントロールで生成される read/write メソッドが XmlObject 変数を受け付けるように、型を XmlObject に設定する必要があります。RawData および String 型の場合も同様です。readLine()
メソッドが作成されます。
レコード サイズまたは区切り文字列を指定して、行を定義できます。
警告 : | 処理されるファイルに指定した区切り文字列が存在しない場合、アプリケーションの動作は予期されないものになります。 |
レコード サイズまたは区切り文字列が指定されていない場合、ファイルは一度に 1 行ずつ処理されます。ライン フィード ('\n')、キャリッジ リターン ('\r')、またはキャリッジ リターンとそのすぐ後に続くライン フィードのいずれかがあると、1 行の終わりと見なされます。このファイル処理方法は、どのサイズのファイルでも使用できます。
注意 : | 行を定義する際に、レコード サイズと区切り文字列の両方を指定することはできません。 |
ファイル コントロールで使用できるメソッドについては、FileControl インタフェースを参照してください。
新しいファイル コントロールを作成すると、その宣言が Java ファイルに表示されます。[ディレクトリには、処理が必要な大きなファイルが格納される] オプションを選択した場合の宣言のサンプルは以下のコードのようになります。
package requestquote;
import com.bea.control.FileControl;
import org.apache.beehive.controls.api.bean.ControlExtension;
import com.bea.wli.control.dynamicProperties.FileControlPropertiesDocument;
/*
* カスタム ファイル コントロール。
*/
@ControlExtension
@FileControl.FileInfo(directoryName = "C:/bea/")
public interface FileCntrl extends com.bea.control.FileControl {
@FileControl.IOOperation(ioType = FileIOType.READLINE, delimiterString = "")
String readline();
static final long serialVersionUID = 1L;
public FileCntrl create();
}
@jc:file
および @jc:file-operation
アノテーションに示される実際の属性は、コントロールの挿入時に使用したダイアログ ボックスで入力した値によって異なります。
@FileControl
アノテーションは、ファイル コントロールの動作を制御します。@FileControl
アノテーションのすべての属性は省略可能で、それぞれにデフォルト値があります。
詳細については、FileControl アノテーションを参照してください。
上のサンプルの TaxControlFile
というファイル コントロールは、FileControl
の拡張として宣言されています。@FileControl.Operation
アノテーションでは、ファイル操作が readline (tax_file.txt
をレコード単位で読み込む) であり、レコード サイズが指定されています。
ファイル コントロールは、ファイルの読み込み、ファイルの書き込み、ファイルへのデータの追加など、ファイルに対する操作を実行します。ファイル コントロールを使用して、ファイルのコピー、名前の変更、削除も行えます。
通常は操作するファイルごとに個別のファイル コントロールをコンフィグレーションします。ファイル コントロールの設定はいくつかの方法で指定できます。1 つは、デザイン ビューでファイル コントロールのプロパティを設定する方法です。もう 1 つは、FileControl
インタフェースの setProperties メソッドを呼び出す方法です。ファイル コントロールのコンフィグレーション プロパティは動的に変更できます。現在のプロパティ設定を取得するには、getProperties()
メソッドを使用します。
ControlContext インタフェースを使用して、実行時にコントロールのプロパティにアクセスしたり、コントロール イベントを処理したりすることができます。コントロールを使用する開発者によって設定されたプロパティ値は、JWS、JSP、または Process.java ファイルでコントロールの宣言のアノテーションとして、または コントロール ファイルでインタフェース宣言、コールバック宣言、またはメソッド宣言のアノテーションとして格納されます。
次の節では、ファイル コントロールのコンフィグレーション方法について説明します。
[プロパティー] ペインでコントロールのプロパティを設定することによって、デザイン ビューでファイル コントロールの動作を指定できます。これらのプロパティは、コード内でファイル コントロールを識別する @FileControl
および @FileControl.Operation
アノテーションの属性に対応しています。以下の属性は、ファイル コントロールのクラスレベルおよびメソッドレベルのコンフィグレーション属性を指定します。
@FileControl
アノテーションの属性を使用したファイル コントロールのデフォルト動作の指定については、FileControl アノテーションを参照してください。
ファイル コントロールを宣言してコンフィグレーションすると、そのメソッドをアプリケーションから呼び出してファイル操作を実行したり、コンフィグレーションを変更したりできます。名メソッドの詳細については、FileControl インタフェースを参照してください。
ファイル操作の実行やファイル コントロールの再コンフィグレーションには、FileControl インタフェースの以下のメソッドを使用します。
ファイル コントロールでは、ファイルが格納されるのを待機するコールバックは提供されません。ビジネス プロセスでファイルが格納されるのを待機する必要がある場合は、ファイル イベント ジェネレータ機能を使用します。ビジネス プロセスでは、特定のディレクトリでのファイル処理が必要になる場合、メッセージ ブローカ サブスクライブ コントロールを使用してチャネルをサブスクライブできます。次に、ファイル イベント ジェネレータをコンフィグレーションして、目的のディレクトリにファイルが格納されたときに、ファイルの内容を保持する関連付けられたチャネルにメッセージをパブリッシュするようにします。
ファイル コントロールは、read()
メソッドで例外が発生するとエラー ハンドラを呼び出します。(例外はファイルの内容が無効な場合に発生します)。エラー ハンドラは error ディレクトリにファイルを移動します。ただし、error ディレクトリがコンフィグレーションされていない場合、エラー ハンドラは「ファイルまたはディレクトリが存在しません」という例外を送出します。例外に関する有益な情報を参照できるように、エラー ハンドラによって送出される例外はログに記録され、WebLogic Server Console にも表示されます。また、元の例外は再送出されます。
この節では、ビジネス プロセスのコンテキストで使用されるファイル コントロールのサンプルを示します。このサンプルでは、ファイル コントロール インスタンスは、ユーザの要求にトリガされて、指定された場所にファイルを書き込みます。このサンプルでは、クライアント要求ノードを含む新しいビジネス プロセスを作成済みであることを前提としています。
ビジネス プロセスは「File Request」というクライアント要求ードで開始されます。クライアント要求ノードは、クライアントがプロセスに要求を送信するプロセス内のポイントを表します。この場合、クライアントはプロセスの fileRequest()
メソッドを呼び出して、新しい顧客の情報を格納したファイルをファイル システムに書き込みます。
要求されたファイルをファイル システムに書き込むように、ビジネス プロセスを設計するには、次の手順を実行します。
このシナリオでは、ファイル コントロールの 1 つのインスタンスをビジネス プロセスに追加します。
ディレクトリ名 - ファイル コントロールがファイルを書き込む場所を入力します。ファイル システム内の任意の場所を指定できます。このサンプルでは、ディレクトリ名は C:/temp/customers
です。
[file-mask] - ファイルの名前を入力します。たとえば、CustFile.xml
と入力します。
[file-type] - ドロップダウン リストから XmlObject を選択します。
ファイル コントロールのインスタンスが myFile という名前でプロジェクト内に作成され、[コントロール] フォルダの下に表示されます。
FileControlPropertiesDocument write(com.bea.xml.XmlObject someData)
FileControlPropertiesDocument write(com.bea.xml.XmlObject someData)
write
() メソッドが予期するデータ型 XmlObject someData
が設定されています。InputDocument CustFile
) が表示されます。[割り当てる変数を選択します] フィールドで、矢印をクリックしてプロジェクト内の変数のリストを表示します。次に、requestCustFile(InputDocument) を選択します。
これで、ファイル コントロール ノードの設計は完了しました。
実行時に、XmlObject 型の変数をクライアント要求メソッドに渡します。ファイル システムの指定された場所に顧客ドキュメントが書き込まれます。
![]() ![]() ![]() |