はじめに
コンポーネントの出力ストリームでXMLを定義するときに、複雑なXML構造だと手入力するのが大変なことがあります。
手元にサンプルのXMLファイルがあれば、ストリームペインの右クリックメニューから[インポート]
すれば簡単ですが、このサンプルファイルが手元にない場合、フロー実行でとりあえずサンプルファイルを入手する方法を考えてみました。
環境
- OS:Windows Server 2012 R2
- ASTERIA WARP:1703
- Java:1.8.0_121
フローイメージ
mcapiを実行するフローでserver/info/show
のレスポンスXMLを解析したかったのですが、後続のMapperのマッピングで取り出すにはXMLストリームを定義する必要がありました。
※mcapiのレスポンスはjson,xmlで受け取れますが、今回はxmlで受け取ってます。
mcapiのリファレンスは
https://help.asteria.com/documentation/warp/ja/current/flow/mcapi/server.html#info/show
を参考にしています
サンプルのXMLファイルを作る
1. XMLストリームの定義なしでEndResponseにつなげる
Mapperでマッピングする必要がなければそのままEndResponseにつなげてもOKのようです。
2. 実行画面の実行結果タブにある出力ストリームを[ローカルに保存]でファイルパスを指定する
実行画面の実行結果タブにある出力ストリームを[ローカルに保存]でファイルパスを指定します。
3. 実行して実行結果をファイルに出力する
その状態でフローを実行し、サンプルのXMLファイルを入手します。
4. サンプルファイルをインポートして出力ストリームの定義を設定
サンプルファイルをインポートして出力ストリームの定義を設定します。
5. Mapperコンポーネントでマッピングする
あとは、後ろにMapperを置いてXMLの要素を取得できるようになりました。
終わりに
XMLストリームはフィールド定義しなくてもFilePutやEndResponseにつないで出力することはできるようなので、他のコンポーネントでもXML構造が複雑だったり、手入力するのが面倒なときには一度、定義なしでファイル出力してみると開発しやすくなると思います。