2017.12.26

連携サーバ内にテキストファイルを保存する

こんにちは。
2017年ももうすぐ終わりますね。
あまり知られていないのですが、来年の2018年は21エモンの舞台の年です。
という話をすると、誰も21エモンを知らないことに驚きます。キテレツ大百科くらいの知名度があると思っていたのですが・・・。
全4巻の漫画で基本1話完結ものなのですが、途中でスケールの大きい長編が始まるというちょっとおもしろい構成の漫画なので、おすすめです。

さて、Studioでスクリプトの開発をしていると、一時的に連携サーバ内にテキストデータを保存したい場合があると思います。
今回は、連携サーバ内のディレクトリにテキストデータを保存する方法を紹介します。

やりがちなこと

ファイルを作成したいので、ファイルシステムアダプタを使えばいいのではないかと思い、ファイルシステム書き込みアイコンをクリックしたくなるところです。
しかし、ファイルシステムアダプタで受け取ることが可能な入力データは、Base64形式でエンコードされたデータ、または、バイナリデータなので、入力がテキストデータある場合、バイナリデータに変換してあげる必要があります。
変換しなかった場合、以下のような悲惨なテキストが出力されます。

テキストデータを保存したい大半のケースで、入力はバイナリではなくテキストデータなので、バイナリデータへの変換が必要なファイルシステムアダプタを使うのはやめましょう。

HTMLアダプタを使うべし

HTMLアダプタを使うと、簡単なテンプレートを作成するだけで、テキストデータの入力をそのままファイルに出力することができます。
例として、RESTアダプタを使って取得したWEBサイトのHTMLデータを、連携サーバ内に出力してみましょう。
※ HTMLアダプタだからといって出力元が今回の例のようにHTML形式である必要はありません。テキストファイルであれば出力できます。

RESTアダプタを使って、WEBサイトのHTMLデータを取得する

テラスカイのWEBページのHTMLを取得します。
Studio右下のメニューから、ネットワークRESTGET実行アイコンをデザイナ画面へドロップし、各値を設定します。
重要なことは1点 ー レスポンス設定タブのデータ形式をその他のデータ形式に変更することです。
まずはGET実行でエラーが発生しないことを確認するところまで、やってみましょう。

取得したHTMLデータを変数に代入する

最終的にHTMLアダプタにデータを出力するためには、一度、データを変数に格納する必要があります。そのために、一時データ格納用のスクリプト変数を作成し、変数Mapperを使って取得したデータを変数に格納します。
まずは、プロジェクトエクスプローラにてスクリプト変数を作成しましょう。 次に基本処理変数代入アイコンをデザイナ画面へドロップし、取得したHTMLデータを変数にマッピングします。

変数に格納したデータをHTMLアダプタで出力する

変数に格納したHTMLデータをファイルに書き込むために、HTMLアダプタを使います。
ファイルHTMLHTMLファイル生成アイコンをデザイナ画面へドロップし、各値を設定します。
Velocityテンプレートの項目には、HTMLデータを格納した変数を入力します。

実行してみる

完成です!
早速、実行してみます。

/data配下にoutput.htmlが作成されています。
開くと、テラスカイWEBページのHTMLであることが確認できますね。

1 件
     
  • banner
  • banner

関連する記事