ページの先頭行へ戻る
Interstage Data Effector V9.3.x 導入・運用ガイド
FUJITSU Software

7.5.2 外部コマンドを使用する例

圧縮されている従業員データから、勤務地が東京の従業員を抽出し、結果を圧縮して保存します。

図7.6 統合コマンドの処理概要(外部コマンドの使用)

7.5.2.1 設計

入力データから目的のデータを取得するために必要な処理とファイルについて説明します。

順番

使用する機能

処理内容

入力

出力

1

外部コマンド
bzip2

圧縮ファイルを解凍する

従業員データ
(bzip2形式)

従業員データ
(CSV)

2

抽出機能

勤務地が東京の従業員情報を抽出する

1の結果

勤務地が東京の従業員データ
(CSV)

3

外部コマンド
bzip2

ファイルを圧縮する。

2の結果

勤務地が東京の従業員データ
(bzip2形式)

7.5.2.2 統合定義ファイル作成

設計した内容を、統合定義ファイルに定義していきます。

共通定義部

データの文字コード、ログファイル名を定義します。

外部コマンド定義部

使用する外部コマンド(bzip2)を外部コマンド定義部に定義します。

圧縮・解凍を行う実行プラグラムとして、“/usr/bin/bzip2”を使用し、統合定義ファイル内で識別するために“bzip2”という名前をつけます。

このプログラムは、正常時に終了ステータス0を返すため、TerminationStatusタグのtype属性に“normal”を指定します。異常時に標準エラー出力にエラー文字列を出力するため、Messageタグのtransmit属性に“true”、protocol属性に“string”を指定します。

処理条件定義部

各処理の定義を処理条件定義部に定義します。

ここでは、3つの処理を実行するので、それぞれを定義します。

シナリオ定義部

実行順序を、シナリオ定義部に定義します。

処理は順番に指定します。Type属性を省略した場合は、“serial”が指定されたものとみなします。

統合定義ファイルの例

統合定義ファイルの指定例を以下に示します。

SolarisLinuxLinux/Solarisの場合(deconfig2.xml)

<?xml version="1.0" encoding="utf-8"?>
<DataEffector>
<!-- 共通定義部 -->
<CommonCfg>
 <Data CharacterCode="UTF-8" />
 <LogFile>/home/shun/Sample2/log/all.log</LogFile>
</CommonCfg>
<!-- 外部コマンド定義部 -->
<CommandDefinitions>
 <CommandDefinition CommandId="bzip2" ExecutableFile="/usr/bin/bzip2">
 <TerminationStatus Type="normal" />
 <Message Transmit="true" Protocol="string" />
 </CommandDefinition>
</CommandDefinitions>
<!-- 圧縮ファイルの解凍 -->
<!-- 処理条件定義部:外部コマンド -->
<ExternalCommand CommandId="bzip2" Name="decompress">
 <Arguments>
  <Argument>-d</Argument>
  <Argument>-k</Argument>
  <Argument>data/Employee.csv.bz2</Argument>
 </Arguments>
</ExternalCommand>
<!--処理条件定義部:Select -->
<Select Name="select">
<BaseDirectory>/home/shun/Sample2</BaseDirectory>
<DataFile>
<File>data/Employee.csv</File>
</DataFile>
<SkipChar>\s, \t,\S</SkipChar>
<SeparateChar>\s,\t</SeparateChar>
<ANKmix Flag="true" />
<KNJmix Flag="true" />
<OutCondition SearchNumber="1">
<Query>$AREA = '東京'</Query>
<OutFile>data/select_kekka.csv</OutFile>
</OutCondition>
</Select>
<!-- CSVファイルの圧縮 -->
<!-- 処理条件定義部:外部コマンド -->
<ExternalCommand CommandId="bzip2" Name="compress">
 <Arguments>
  <Argument>-z</Argument>
  <Argument>data/select_kekka.csv</Argument>
 </Arguments>
</ExternalCommand>
<!-- シナリオ定義部 -->
<Scenario Name="Scenario2">
 <Step>decompress</Step>
 <Step>select</Step>
 <Step>compress</Step>
</Scenario>
</DataEffector>

7.5.2.3 統合コマンドの実行

統合コマンドにシナリオ名:Scenario2を指定して実行します。

WindowsWindowsの場合

> deex -p Scenario2 -f D:\Shunsaku\cfg\deconfig2.xml

SolarisLinuxLinux/Solarisの場合

# deex -p Scenario2 -f /home/shun/cfg/deconfig2.xml