マスター タイトルの書式設定
2017/7/20
ASTERIA WARP開発前に
知っておくべき10の鉄則
(関西支部編)
インフォテリア株式会社
東京R&Dセンター センター長
田村健
マスター タイトルの書式設定まずはじめにお聞きします
• ASTERIA WARPをまだ触ったことがない人
• ASTERIA WARPの体験セミナーを受けたことがある人
• ASTERIA WARPで何か作ったことがある人
• AUGに初めて参加する人
• すでにSlideShare上のこの資料を読んだ人
マスター タイトルの書式設定
ASTERIA WARPで開発を始める前に
知っておくべきことってなんだろう?
マスター タイトルの書式設定
ASTERIA WARPで開発するってこういうこと
マスター タイトルの書式設定
つまずいたときに、あ〜、これ、こういうことか
と思い出すためのあれこれ
マスター タイトルの書式設定
本日の目標
10の鉄則を頭の片隅に残して帰って下さい
マスター タイトルの書式設定 7
準備編
ASTERIA WARPを知ろう
マスター タイトルの書式設定
マスター タイトルの書式設定
ASTERIA WARPはJavaでできている
マスター タイトルの書式設定1. ASTERIA WARPはJavaでできている
• 1610以降はインストールにJavaが必要
• Java VM上で動作しているので基本的にはJavaの世界
• メモリ管理やスレッド管理はJava-way
• データベースへのアクセスはJDBC
• 問題が起きたらスタックトレースが重要
• Java WebStartやJavaアプレットは使われていない
• Java EEやTomcat、Spring、Strutsなどのフレームワークは使わ
れていない
• lib/extフォルダを見てみよう
マスター タイトルの書式設定
マスター タイトルの書式設定
コンポーネントと関数を知ろう
マスター タイトルの書式設定2. コンポーネントと関数を知ろう
• ASTERIA WARPでできることはコンポーネントと関数でできる
こと
• どんなコンポーネントや関数があってどんなことができるのか
を知っているのとそうでないのではその後の開発が大きく変わ
る
• コンポーネントは常に増えていく
• Experimental Buildやオプションアダプター
マスター タイトルの書式設定ざっと何があるか知っておくために
• 「ASTERIA WARP 基礎と実践」の「第2章 ASTERIAを使ってで
きること」を読みましょう
• パレットを眺めましょう
• 気になるアイコンは右クリックでヘルプを見てみる
マスター タイトルの書式設定ざっと何があるか知っておくために
• コンポーネントリファレンス、関数リファレンスの一覧を表示し
て眺めてみましょう
• コンポーネント一覧
https://help.asteria.com/documentation/warp/ja/current/flow/designer/componentIndex.html
• マッパー関数一覧
https://help.asteria.com/documentation/warp/ja/current/flow/designer/functionIndex.html
マスター タイトルの書式設定
マスター タイトルの書式設定
コンポーネントの極意はヘルプにあり
マスター タイトルの書式設定3. コンポーネントの極意はヘルプにあり
• コンポーネントでできることはヘルプを見れば分かる!
• できないこと制限事項として書いてあることも
• ヘルプを表示するには
• アイコンを選択して「F1」キー
• 右クリックで「ヘルプ」メニュー^
• ADNでオンラインで検索
マスター タイトルの書式設定プロパティを知るものだけがコンポーネントを制す
• プロパティを知るにはヘルプを一度見ておく
• 隠れているプロパティがあることも
マスター タイトルの書式設定
マスター タイトルの書式設定
流れるデータ=ストリーム
マスター タイトルの書式設定4. 流れるデータ=ストリーム
• データはストリームで処理をする
• データ連携の基本となるのはRecordストリーム
• CSVやFixedLengthはRecordに入出力フォーマットがついた派生型
• JSONはTextとXMLを行ったり来たり
• ループの使い方が速度とメモリに影響を与える
マスター タイトルの書式設定ストリームは変換できる
入力\出力 Binary Text HTML CSV FixedLength XML Record ParameterList MIME
Binary ○ ○ ○ ○ ○ ○ × × ○
Text ○ ○ ○ ○ ○ ○ × × ○
HTML ○ ○ ○ × × ○ × × ○
CSV ○ ○ × ○ ○ × ○ × ○
FixedLength ○ ○ × ○ ○ × ○ × ○
XML ○ ○ ○ × × ○ × × ○
Record ○ ○ × ○ ○ ○ ○ × ○
ParameterList ○ ○ × ○ ○ ○ ○ × ○
MIME ○ ○ × × × × × × ○
https://help.asteria.com/documentation/warp/ja/current/flow/designer/flowservice/topic_stream.html#topic_stream_converter
マスター タイトルの書式設定
マスター タイトルの書式設定
フローを流れをコントロールすれば
性能もコントロールできる
マスター タイトルの書式設定ループは性能の鍵
• ループなし • ループあり
メモリは使うが速い メモリ少ないが若干遅いことも
マスター タイトルの書式設定パラレル?
• パラレルフローは並列実行ではない
• 分岐ごとに逐次実行
• ストリームを分岐時に保持するので、メモリを圧迫することも
マスター タイトルの書式設定パラレルサブフロー
• パラレルサブフローは並列実行
• ループの内部処理をサブフローにすると別スレッドで
同時に実行してくれる
• CPUのコアをフル活用
• ネットワークやディスクでボトルネックになることも
• Mapperなど、CPUを使う計算処理に向いている
• 並列実行なのでメモリにも注意
マスター タイトルの書式設定
実践編
フローを書いて動かしてみる
マスター タイトルの書式設定
マスター タイトルの書式設定
とにかく作って動かしてみる
マスター タイトルの書式設定
Scrap & Build
マスター タイトルの書式設定デバッグ実行(ステップ実行)
マスター タイトルの書式設定デバッグ実行(ステップ実行)
マスター タイトルの書式設定デバッグモードで実行
• エラーが起きるときにスタックトレースを表示することができる
• 実行ログ(FlowService.log)にはさらに細かい情報が出力される
• RDBコンポーネント実行時のSQLなど
通常モード デバッグモード
マスター タイトルの書式設定プロファイルモードで実行
• コンポーネント単位の実行時間を調査
マスター タイトルの書式設定外部から実行された場合のデバッグ実行
1. デザイナーでデバッグ実行時に「外部からフローを実行する」
をチェックしてデバッグ実行
2. デザイナーが待機状態になる
3. 実行(URLにアクセス、外部ツールから実行するなど)
マスター タイトルの書式設定
マスター タイトルの書式設定
開発ルールを決めておく
マスター タイトルの書式設定7. 開発ルールを決めておく
• ASTERIA WARPは自由にすぐに作ることができるのが特徴
→ 放っておくと取り返しがつかないことに
• わかりやすい開発ルール
• 命名規則
• バージョン管理機能の使用とユーザー管理
• コネクションの利用
• 変数の使用
• 外部変数、フロー変数の使い分け
• コメントの付け方
• コンポーネントの繋ぎ方
• 縦とか横とか
マスター タイトルの書式設定
マスター タイトルの書式設定
ベストプラクティス、アンチパターンを
知る、貯める、共有する
マスター タイトルの書式設定ベストプラクティス
• BranchではなくSwitchを活用しよう
• 文字列の合成、パスの作成にはEmbed関数を使おう
• Concatenateの区切り文字は便利
• RDBGetでループするときは取り出す件数を指定しよう
• URLトリガーのフローはHTTPStartで始めよう
• 何か変更するときはとりあえずフローを複製
• FlowDiffを活用しよう
マスター タイトルの書式設定アンチパターン
• 変数などの名前には「_」「-」以外の記号は使わない
• パスの区切り文字には「」を使わない。「/」を使う
• 文字コードにはUTF-8以外を使わない
• EndResponse は使わない。End を使う
• パラレルフローの不要な合流は行わない
• 不要な「ストリームをまとめる」は行わない
• 1つのプロジェクトに20以上のフローは作成しない
• スクロールしなければみることができないフローは作らない
マスター タイトルの書式設定ASTERIAビギナーあるある その1
• フローの実行ボタンを押したけど実行されない
• メッセージペインにコンパイルエラーが出てる場合が!
• クリックするとジャンプするので、コンポーネントを特定する
• エラーを見てわからなければ一旦削除して、そこからもう一度始めて見る
Click!
マスター タイトルの書式設定ASTERIAビギナーあるある その2
• フローがロックされて編集できない
• 誰かがデザイナーでプロジェクトを開いたままサーバーをシャットダウ
ン、もしくはサーバーが落ちてしまった
• 一時ファイルである.$$$を削除する
• デザイナーのファイルペインに出てこないときは、環境設定で非表示に
する拡張子から外してみる
消す!
マスター タイトルの書式設定
応用編
効率よく開発するために
マスター タイトルの書式設定
マスター タイトルの書式設定
ASTERIA WARPを使って
開発を効率化する
マスター タイトルの書式設定モジュール化
• サブフロー
• フローで書いた処理を再利用する
• 呼び出し方もいくつかあり
• SubFlow、ParallelSubFlow、FlowInvoker
• 関数ライブラリ
• マッパー関数を組み合わせたものを再利用する
• 外部変数
• 定数や変数を複数フローで共有する
• ストリーム定義
• ストリームのプロパティやフィールド定義を再利用する
マスター タイトルの書式設定拡張機能
• カスタムコンポーネント、カスタム関数
• よく使う処理をコンポーネントやカスタム関数にする
• JavaInterpreter
• コンポーネントや関数の処理をJavaで記述できる
• 若干遅いので注意
• Flow Thin Client
• 外部のJavaプログラムからフローを呼び出すためのライブラリ
• Web API
• FSMCの機能やフローの実行と同等のものをWeb APIとして呼び出し
マスター タイトルの書式設定
マスター タイトルの書式設定
先輩に差をつける便利機能5選!
マスター タイトルの書式設定テーブル定義書
• コネクション接続先のテーブル定義の情報をExcelに書き出す
マスター タイトルの書式設定プロパティ式エディタ
• プロパティの値を雛形を使ってマクロ化
• 簡単な編集であればマッパーよりも見やすくわかりやすい
マスター タイトルの書式設定入力ストリーム定義を出力にコピーする
• 入力と出力のフィールドが似ている場合にマッパーの右クリッ
クから「入力ストリーム定義を出力にコピーする」を選択する
とフィールド定義をコピーできる
マスター タイトルの書式設定ドラッグ&ドロップ
• コンポーネントとコンポーネントの間のリンク上にMapperなどのコンポ
ーネントをドロップするとリンクを繋ぎ直すことなく間にコンポーネン
トを挟むことができる
• コネクションを使用するコンポーネントにコネクションをドロップする
とコネクションを設定できる
• コネクションをワークスペースにドロップすると対応するコンポーネン
トを配置できる
• ファイルをプロパティにもつコンポーネントにファイルをドロップする
とファイルパスを設定できる
• ファイルをドロップするとファイル種別に対応したコンポーネントを配
置できる
マスター タイトルの書式設定イメージをファイルに保存
• ワークスペースで右クリックから「イメージをファイルに保
存」するとフローのイメージを画像ファイルにすることができ
る
• 社内で情報を共有したり、仕様書、ブログ、メールなどに添付する際
に便利
マスター タイトルの書式設定
One more thing...
マスター タイトルの書式設定困る前に&困った時の情報収集手段
• ADN
https://support.asteria.com
https://forum.asteria.jp (ADN Forum)
• 各種SNS情報
• Facebook
https://www.facebook.com/asteriajp/
• Twitter
https://twitter.com/asteriajp
• AUG
https://aug.asteria.jp/
https://aug.asteria.jp/join/(FBグループへの参加やメルマガの登録など)
• Qiita Organization
https://qiita.com/organizations/infoteria/activities
マスター タイトルの書式設定
次は先輩の体験談を
じっくり聞いてみましょう

ASTERIA WARP開発前に知っておくべき10の鉄則(AUG関西支部編)