ASTERIA Warpにおけるストリームとは、フローに沿って流れるデータです。フローを流れる間に、様々なコンポーネントによって処理を受けます。
以下の図では、filegetコンポーネントでストリームが作成され、フローの終了まで流れます。
今回はcsvファイルを読み込むため、filegetコンポーネントとマッパーコンポーネントの右下にある文字はcsvに設定します。
読み込むcsvファイル、drinkの内容は以下の通りで、4フィールド目の合計金額を計算することが今回のフローの目的です。
"品名","数量","金額","合計金額"
"お茶","1","100","0"
"コーヒー","2","120","0"
"梅酒","4","350","0"
filegetコンポーネントでファイルを読み込む際に、読み込むファイル名だけでなく、文字コードや何行目から読み込むか、ストリームのフィールド名とデータ型などを画面右の赤枠部分に表示されるfilegetコンポーネントのプロパティとストリームタブで設定します。
ファイルのエンコーディングと出力エンコーディングで読み込むファイルの文字コードに合わせないと文字化けが起こります。
また、今回は1行目のタイトル行("品名","数量","金額","合計金額"の行)を表示しない設定にするので、読込み開始行は2に設定します。
フィールド数は4つあるので、フィールド数・フィールド名・データ型を読み込むデータに合わせます。
これまでの手順でfilegetコンポーネントからファイルが読み込まれてストリームが作成されます。
このストリームの値を、他のコンポーネント(今回はマッパーコンポーネント)で処理することで、合計金額を計算します。
マッパーコンポーネントの上で右クリックして、「入力ストリーム定義を出力にコピーする」をクリックすると自動で出力ストリームを入力ストリームに合わせられます。
マッパーでの計算は、左側から右側にフローが流れます。その間でマッパー関数を使って計算や定数を入れたりします。
今回は合計金額を求めたいので、multiplyを使って数量と金額で計算します。
※ストリームの各フィールの名前はfield1~4になっていますが、品名・数量・金額・合計金額のようにわかりやすい名前にしておいた方が、後から見直したときや他人に見てもらったときに理解しやすいです。
あとは、実行ボタンを押すと4フィールド目に合計金額が生産されます。