XML
ASTERIA

XMLストリームの定義をインポートするのに必要なサンプルファイルを準備する

はじめに

コンポーネントの出力ストリームでXMLを定義するときに、複雑なXML構造だと手入力するのが大変なことがあります。
手元にサンプルのXMLファイルがあれば、ストリームペインの右クリックメニューから[インポート]
XMLインポート01.png

すれば簡単ですが、このサンプルファイルが手元にない場合、フロー実行でとりあえずサンプルファイルを入手する方法を考えてみました。

環境

  • OS:Windows Server 2012 R2
  • ASTERIA WARP:1703
  • Java:1.8.0_121

フローイメージ

mcapiを実行するフローでserver/info/showのレスポンスXMLを解析したかったのですが、後続のMapperのマッピングで取り出すにはXMLストリームを定義する必要がありました。
XMLインポート02.png

※mcapiのレスポンスはjson,xmlで受け取れますが、今回はxmlで受け取ってます。

mcapiのリファレンスは
https://help.asteria.com/documentation/warp/ja/current/flow/mcapi/server.html#info/show
を参考にしています

サンプルのXMLファイルを作る

1. XMLストリームの定義なしでEndResponseにつなげる

XMLインポート03.png

Mapperでマッピングする必要がなければそのままEndResponseにつなげてもOKのようです。

2. 実行画面の実行結果タブにある出力ストリームを[ローカルに保存]でファイルパスを指定する

XMLインポート04.png

実行画面の実行結果タブにある出力ストリームを[ローカルに保存]でファイルパスを指定します。

3. 実行して実行結果をファイルに出力する

XMLインポート05.png

その状態でフローを実行し、サンプルのXMLファイルを入手します。

4. サンプルファイルをインポートして出力ストリームの定義を設定

XMLインポート06.png

サンプルファイルをインポートして出力ストリームの定義を設定します。

5. Mapperコンポーネントでマッピングする

XMLインポート07.png

あとは、後ろにMapperを置いてXMLの要素を取得できるようになりました。

終わりに

XMLストリームはフィールド定義しなくてもFilePutやEndResponseにつないで出力することはできるようなので、他のコンポーネントでもXML構造が複雑だったり、手入力するのが面倒なときには一度、定義なしでファイル出力してみると開発しやすくなると思います。