本日からstudy-buriのソースを一気に読み込んでいます.Teedaなのでわかりやすそう.
Baoインターフェイスを調べる.ふむふむ.
BuriConverterアノテーション.引数に指定されたオブジェクトをDTOに変換するOGNL式か.
最初の疑問
一つ目
注文管理の出荷作業中で,Toolの中のorder_App2のExtended attributeのところで,
#data
shippingBao
shippingBao.shipping(#data)
な定義がなされているのですが,どういう仕様でこういう書き方になるのでしょうか?
そもそもこの機能について理解ができていないのですが,出荷作業中になるとshippingBao.shipping(#data)が実行されて,出荷のワークローに分岐するイメージでしょうか?
二つ目
OrderBaoの
@BuriActivity("出荷作業中,出荷終了")
@BuriAction("cancel")
@BuriResult("#cancelStatus")
public String cancel(long orderID);
というのは,
出荷作業中もしくは出荷終了の状態に対して cancelというアクションを実行するということですよね?
出荷作業中の状態で #action = "cancel" となると,注文キャンセルに遷移するのはわかるのですが,出荷終了の状態では #action = "cancel" となるフローがないのでどこに遷移するのでしょうか?
OrderBao.endBillを実行した場合,BuriActionアノテーションを指定しないので,#action = nullのフロー,つまり終了に遷移するのでしょうか?
それでは,何故に注文キャンセルエラーに遷移できるのでしょうか?ここの矢印は双方向になっているも気になります.
三つ目
ワークフローの状態は,BuriDB内に永続化されていると思うのですが,ある日 機能変更や機能追加が発生した場合に,BuriDBの内容については何かケア(データの洗い替えなど)が必要でしょうか?