A S A K U S A F R A M E W O R K はじめの一歩・改
前提
• Jinrikishaダウンロードページを参考に、Jinrikisha、Shahu、DmdlEditorX、ToadEditorをインストールしてください
http://asakusafw.s3.amazonaws.com/documents/jinrikisha/ja/html/index.html
• Mac OS X 10.9.2、Java 1.6.0_65
• Asakusa Framework 0.6.1
http://www.asakusafw.com/download/gradle-plugin/template-catalog-develop.txt
上記URL入力後「選択」ボタンを押下
空のプロジェクトが作成されました。これまで通り、mavenでプロジェクトを生成すると必ずexampleのソースが入りますが、Shafuを使ってGradleでプロジェクト生成すれば、空のプロジェクトが作れるようになります。
次にデータモデルを定義します。このヒシダマ印のアイコンをクリックしてください。
最初に商品マスタのモデルを定義します
プロパティを追加していくので、addボタンを押下してください
previewボタンを押下すると、生成されるDMDL定義を事前に確認することができます
finishボタンでDMDL定義が生成されます
続いて売上明細のモデル定義を作ります
このように3つのプロパティを登録します
JOIN結果用のモデル定義を作ります。
copyボタン押下でJOIN元のプロパティをそのまま取り込むことができます
nextでこのダイアログに進むと、結合キーを選択します。まずはitem_masterからitem_idを選択してください。
item_idを選択して、editボタンを押下してください
売上明細側のitem_idを選択してください
DMDLファイルに結合モデル定義が追加されました
モデル定義の最後に、出力用の売上明細モデルを作ります
結合用モデルのプロパティをそのままcopyします
そこに、flgプロパティを追加します
DMDLファイルに出力用モデルの定義が追加されました
続いて、各モデル定義に、属性を追加していきます。このアイコンをクリックしてください。
全てのデータモデルを選択してください(実際にはjoined_salesは選択不要ですが)
付与するアノテーションを選択します
このボタンを押下すると、各属性のデフォルト値を設定できます。このボタンを押下し、出力される属性をそのまま利用します。
各モデルに属性情報が追加されました
DMDL定義から、実際のモデル用Javaソースを生成します
ソース生成されました。残念ながらパッケージは自分で定義できないようです。
各Modelのimporter/exporterを作成します
まずはitem_masterのImporterを作成します。
まずはitem_masterのImporterが作成されました
続いて売上明細用のImporterを作成します
最後に出力明細用のExporterを作成します
Importer/Exporterが生成されました
続いてJobFlowを作って行きます
インポーターを選択して…
このあたりをクリックしてください
このアイコンをダブルクリックしてください
既存クラスから選択できます
既存データモデルから選択できます
同様に売上明細用のImporterをJobFlowに登録します
ジョブフローのアイコンをダブルクリックするとこのダイアログが表示されます
inを選択して、editを押下して、item_masterからの入力口を定義してください
addを押して、sales_details用の入力口を定義してください
outを選択してeditを押下して、出力明細用の出力口を定義してください
二つの入力口と、ひとつの出力口が定義されました
GUIに戻るとこのようになっています
コネクションを描画するために、ここをクリックしてください
ふたつのインプットについてコネクションを定義します
続いてエクスポーターを登録するので、ここをクリックしてください
ジョブフローアイコンの右側に配置してこのアイコンをダブルクリックしてください
表示されたダイアログにクラスとモデルを登録します
マスター結合演算子をジョブフローアイコン内に配置してください
ふたつのインポーターからの接続を定義してください。この時に、masterとtransactionを意識して接続してください。
停止演算子を配置して、missedと接続してください
MasterJoinアイコンをダブルクリックしてオペレータクラスを定義してください
extend演算子を配置してください
joinedの結果から拡張演算子の入り口に接続してください
update演算子を配置してください
update演算子をダブルクリックしてこのダイアログでオペレータクラスを定義してください
update演算子の前後を接続してください
joinedの出口をダブルクリックして、出力の型を定義してください
MasterJoinのアイコンを右クリックして、このオペレータのソースを生成してください
Updateのアイコンを右クリックして、このオペレータのソースを生成してください
Update処理内容を実装してください
JobFlowクラスをソース生成します
JobFlowクラスがソース生成されました
続いてBatchプログラムを作成します
右側の「ジョブフロー」をこちらにドラッグアンドドロップしてアイコンを配置してください
ジョブフローのアイコンをダブルクリックして、これまで作ってきたジョブフローを設定してください
Batchクラスのソースを生成します
Batchクラスのソースが生成されました
テスト用のテンプレートファイルが生成されました
必要なファイルをこちらにコピーします
item_master用のテストデータ
sales_details用のテストデータ
output_sales用のテストデータ
output用のテストデータをどのように判定するかの定義
Junitとしてテストを実行します
• cp asakusa-develop/workspace/DemoSample/build/DemoSample-batchapps.jar $ASAKUSA_HOME/batchapps/ 生成されたビルドファイルをコピー
• cd $ASAKUSA_HOME/batchapps/
• ll ~/target/testing/directio/sample/in/ 入力ファイルを確認
• $ASAKUSA_HOME/yaess/bin/yaess-batch.sh DemoBatch バッチを実行