LoginSignup
0
1

More than 5 years have passed since last update.

ASTERIA WARPでParameterListの配列を作ってみる

Last updated at Posted at 2018-03-26

はじめに

ASTERIA WARP ではストリーム型;ParameterListで文字列の配列を定義することができるようです。

〜ヘルプ フローサービス マニュアル-フローの構成要素-ParameterListより〜

データ型にString[]を指定したフィールドを持つParameterListストリームは、HttpStartコンポーネントで複数の値を取得する場合などに利用されます。 String[]を指定したフィールドがある場合、最も長い配列フィールドの長さにあわせてレコード展開されます。

HTTPStartコンポーネントでcheckboxの値を取得する場合などに使うようですが、他のストリームからParameterListで定義された文字列の配列を作成する方法を考えてみました。

環境

  • OS:Windows Server 2012 R2
  • ASTERIA WARP:1712
  • Java:1.8.0_151

HTTPStartコンポーネントでの利用例

HTTPStartコンポーネントのヘルプにあるサンプルフォーム(HTML)をそのまま使って確認してみます。

フローの概要

サンプルフォームを表示するフローとサブミットされたデータを受け取るフローの2つを用意します。

1.サンプルフォームを表示するフロー

velocityコンポーネントにサンプルフォームのhtmlをそのまま記述しているだけのフローです。
※URL実行設定しておきます。

parameterlist01.png

2.サブミットされたデータを受け取るフロー

HTTPStartでParameterListでサブミットされたデータを取得するだけのフローです。
※URL実行設定しておきます。

parameterlist02.png

フローの動作結果

ブラウザから実行してみます。

parameterlist03.png

サンプルフォームの送信先チェックボックスにチェックをつけて[送信]してみます。

parameterlist04.png

文字列の配列は

<Field name="addr" type="String[]">
<Value>id01</Value>
<Value>id02</Value>
<Value>id03</Value>
</Field>

といった感じでParameterListで配列として持ちなおしているようです。

その他のストリームからの作り方

1.CSVデータからの作成例

用意するデータ

ParameterListのヘルプにある展開された状態を参考に以下のようなCSVデータを用意します。

aaa,bbb,ccc,fff
aaa,bbb,ddd,ggg
aaa,bbb,eee,hhh
aaa,bbb,,iii
aaa,bbb,,jjj

ParameterListのフィールド定義

このデータをヘルプにあるように以下のようなフィールド定義のParameterListでマッピングします。

フィールド名 データ型
field1 String 
field2 String
field3 String[]
field4 String[]

フローの概要

parameterlist05.png

フローの動作結果

parameterlist06.png

field3、field4でParameterListの配列としてセットされているのがわかります。

2.XMLデータからの作成例

用意するデータ

以下のようなXMLデータを用意します。

<?xml version="1.0" encoding="utf-8"?>
<root>
    <item>
        <field1>aaa</field1>
        <field2>bbb</field2>
        <field3>ccc</field3>
        <field4>fff</field4>
    </item>
    <item>
        <field1>aaa</field1>
        <field2>bbb</field2>
        <field3>ddd</field3>
        <field4>ggg</field4>
    </item>
    <item>
        <field1>aaa</field1>
        <field2>bbb</field2>
        <field3>eee</field3>
        <field4>hhh</field4>
    </item>
    <item>
        <field1>aaa</field1>
        <field2>bbb</field2>
        <field3/>
        <field4>iii</field4>
    </item>
    <item>
        <field1>aaa</field1>
        <field2>bbb</field2>
        <field3/>
        <field4>jjj</field4>
    </item>
</root>

ParameterListのフィールド定義

CSVと同様に以下のようなフィールド定義のParameterListでマッピングします。

フィールド名 データ型
field1 String 
field2 String
field3 String[]
field4 String[]

フローの概要

parameterlist06.png

フローの動作結果

parameterlist07.png

こっちもfield3、field4でParameterListの配列としてセットされているのがわかります。

終わりに

フローの中でParameterListで文字列の配列を作成する機会はあまりないと思いますが、参考まで。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1