EXEコンポーネント

kwakui2006-05-02

外部プログラムを実行します。

名前データ型/候補値マッピング説明
FilePathstring入力&出力


実行する外部プログラムのパスを指定します。

スペースを含むパスを指定する場合は「"」で括ってください。

フルパスではなくプログラム名のみで指定する場合は実行するプログラムにパスが通っている必要があります。

Argumentstring入力&出力


外部プログラムの引数を指定します。

スペースを含む引数を指定する場合は「"」で括ってください。

便宜的に「FilePath」と「Argument」は別プロパティとなっていますが、「FilePath」プロパティに「cmd.exe /c test.bat」のように引数まで続けて指定することもできます。

つまり「FilePath」プロパティと「Argument」プロパティは2つ合わせて1つのコマンドラインとなります。

「Argument」プロパティ部分だけをMapperで差し込むなどの操作が可能です。

Directorystring入力&出力


外部プログラムの実行ディレクトリを指定します。

指定のない場合はプロジェクトオーナーのホームディレクトリになります。

Timeoutinteger入力&出力


外部プログラムの実行終了を待つ待機時間を秒単位で指定します。

ここでの指定秒ウェイトしても外部プログラムが終了しない場合、外部プログラムを強制終了し、フローはExceptionとなります。

0を指定した場合はタイムアウトしません。

STDINboolean入力&出力

コンポーネントの入力ストリームが外部プログラムの標準入力に渡すかどうか指定します。

True−標準入力に渡されます。

False−標準入力に渡されません。

StreamPassThroughboolean入力&出力

コンポーネントの入力ストリームをそのまま出力ストリームにするかどうかを指定します。

True−入力ストリームがそのまま出力ストリームになります。

False−外部プログラムの標準出力からの出力が出力ストリームとなります。

OutputEncodingstring
外部プログラムの標準出力のエンコーディングを指定します。
ReturnCodeint   出力
実行した外部プログラムのリターンコードが設定されます。

コメント
フローから別のプログラムを呼び出すときに使用します。


ASTERIAでなんでも実装しようとするとフローが複雑になりすぎたり、思ったようなパフォーマンスが得られないというような状況に陥ることがあります。その時は外部により高速ななシステムがあればそれを利用することが出来ます。


といいつつ、正直このコンポーネントを実際に使った経験がほとんどないので、あまり偉そうなことが言えないのですが、例えばあるシステムのリプレースにASTERIAを使いたいという場合、どうしてもこの部分は残しておきたいという要望があったとします。そういった時にそのプログラムをこのEXEコンポーネントで呼び出すようにしてあげれば、うまく継承が出来るかもしれません。


あとは特に処理スピードが要求されるような場面で、その部分だけCやC++で作成してそれをEXEコンポーネントでコールする・・・とか考えられます。


ASTERIA 実践ガイド ?マウスで楽々プログラミング

ASTERIA 実践ガイド ?マウスで楽々プログラミング