public void testNomalOrderTx() 続き
テストの部分
87:datas = orderBao_.getUnderWork(); 88:assertEquals(datas.size(),1);
Activity が 出荷作業中 のデータを検索する
検索結果のカウントが1であることをチェックする
(顧客がまだかなぁって調べたってかんじかね?)
90:datas = shippingItemBao_.getItemWaiting(); 91:System.out.println(datas); 92:assertEquals(datas.size(),1);
getItemWaiting で商品準備中のデータを取得する
検索結果のカウントが1であることをチェックする
*1
93:shippingItemDto = (ShippingItemDto)datas.get(0);
商品準備中の商品情報を1つ取り出す。今度は商品3のほうか?
95:datas = shippingItemBao_.getEndShipping(); 96:System.out.println(datas); 97:assertEquals(datas.size(),1);
getEndShipping で商品準備完了のデータを取得する
まだ検索結果のカウントが1であることをチェックする
ShippingItemBao
public static String getEndShipping_ACTIVITY = "商品準備完了"; public List getEndShipping();
99:datas = shippingBao_.getNowWaiting(); 100:System.out.println(datas); 101:assertEquals(datas.size(),1);
getNowWaiting で商品待ちのデータを取得する
まだ検索結果のカウントが1であることをチェックする
103:datas = shippingBao_.getEndShipping(); 104:System.out.println(datas); 105:assertEquals(datas.size(),0);
getEndShipping で出荷済みのデータを取得する
まだ検索結果のカウントが0であることをチェックする
ShippingBao
public static String getEndShipping_ACTIVITY = "出荷済み"; public List getEndShipping();
109:shippingItemBao_.endShipping(shippingItemDto);
endShipping で、出荷詳細プロセスが再開…
出荷詳細プロセス
商品準備中 Activity(order_Wor5_Act2)で停止してたはずなのでここから続く
#action がないので 商品準備中 → 商品準備完了 Transition(order_Wor5_Tra2)に従って、
商品準備完了 Activity(order_Wor5_Act3)にステータスが変わる(変移する)
順当にフローが進むと、、、
出荷プロセスの出荷準備中 Activity(order_Wor2_Act8)までステータスが変わる(変移する)ところまで記述を省略する
出荷準備中 Activity(order_Wor2_Act8)の条件分岐
- 出荷準備中 → 出荷準備完了
- #countDatas == #data.items.size() && #action == null
- 出荷準備中 → 商品未揃い
- #countDatas < #data.items.size() && #action == null
- 出荷準備中 → 出荷キャンセル
- #action == "cancel"
で、テストでは「商品準備完了が2、キャンセルされていない、注文商品数は2」となって
出荷準備中 → 出荷準備完了 Transition(order_Wor2_Tra31)が成立する
出荷準備完了 Activity(order_Wor2_Act3)にステータスが変わる(変移する)
その次に
出荷準備完了 Activity(order_Wor2_Act3)の Finish mode は Automatic なので、処理を続行する。
出荷準備完了 → 出荷済み Transition(order_Wor2_Tra3)に従って、
出荷済み Activity(order_Wor2_Act3)にステータスが変わる(変移する)
その次に
出荷済み Activity(order_Wor2_Act3)の Finish mode は Manual なので、Toolを実行した後処理を停止する。
Tools を見ると[ id:order_App2 , Type:Applocation ]となってる。さらにダブルクリックすると Tool のプロパティが表示される。
- id
- AfterOgnlInvoker
- Type
- Application
- Extended attributes
- Name
- ognl
- Value
- #data.orderTitleID OrderBao.endShipping(#data.orderTitleID) BillBao.enterBill(#data)
で、出荷プロセスが停止後に
#data.orderTitleID OrderBao.endShipping(#data.orderTitleID) BillBao.enterBill(#data)
が実行される(んだろうなぁ、たぶん…
で、#data は何を指してるんだろう?
「Context情報も終了直前のものが使われること」
ってマニュアルには書いてあるけど、、、
とりあえず、#data.orderTitleID を引数に
OrderBao
public static String endShipping_ACTIVITYVALIDATE = "出荷作業中"; public void endShipping(long orderID);
が実行され、注文プロセスが再開される。
#data を引数に
BillBao
public void enterBill(ShippingSetDto dto);
が実行され、請求プロセスが開始される。
ってことは、#data は ShippingSetDto ??
注文プロセス
えーと、出荷作業中 Activity(order_Wor1_Act2)で停止してたはずなのでここから続く
出荷作業中 Activity(order_Wor1_Act2)の条件分岐
- 出荷準備中 → 出荷終了
- #action==null
- 出荷準備中 → 注文キャンセル
- #action=="cancel"
で、テストでは「キャンセルされていない」となって
出荷準備中 → 出荷終了 Transition(order_Wor1_Tra2)が成立する
出荷終了 Activity(order_Wor1_Act3)にステータスが変わる(変移する)
その次に
出荷終了 Activity(order_Wor1_Act3)の条件分岐
- 出荷準備中 → 終了
- #action==null
- 出荷準備中 → 注文キャンセルエラー
- (None)*2
で、テストでは「キャンセルされていない」となって
出荷準備中 → 終了 Transition(order_Wor1_Tra3)が成立する
終了 Activity(order_Wor1_Act4)にステータスが変わる(変移する)
終了 Activity(order_Wor1_Act4)の Finish mode は Manual なので、処理を停止する。
で、注文プロセスは終了
テストの部分
113:pathDao_.getAllBuriPath(); 114:stateDao_.getAllBuriState();
BuriPathDao
public List getAllBuriPath();
BuriStateDao
public List getAllBuriState();
115:datas = shippingItemBao_.getItemWaiting(); 116:assertEquals(datas.size(),0);
getItemWaiting で商品準備中のデータを取得する
すでに検索結果のカウントが0であることをチェックする
118:datas = shippingItemBao_.getEndShipping(); 119:assertEquals(datas.size(),2);
getEndShipping で商品準備完了のデータを取得する
すでに検索結果のカウントが2であることをチェックする
121:datas = shippingBao_.getNowWaiting(); 122:assertEquals(datas.size(),0);
getNowWaiting で商品待ちのデータを取得する
すでに検索結果のカウントが0であることをチェックする
124:datas = shippingBao_.getEndShipping(); 125:assertEquals(datas.size(),1);
getEndShipping で出荷済みのデータを取得する
すでに検索結果のカウントが1であることをチェックする
127:datas = orderBao_.getUnderWork(); 128:assertEquals(datas.size(),0);
getUnderWork で出荷作業中のデータを取得する
すでに検索結果のカウントが0であることをチェックする
130:datas = orderBao_.getEndShipping(); 131:assertEquals(datas.size(),1);
getEndShipping で出荷終了のデータを取得する
すでに検索結果のカウントが1であることをチェックする
請求プロセス
BillBao インターフェースの PROCESS アノテーション
public static String PROCESS = "注文管理.請求";
BillBao
public void enterBill(ShippingSetDto dto);
で、請求プロセスのフローが開始。
請求依頼 Activity(order_Wor3_Act1)の Finish mode は Automatic なので、
請求依頼 → 請求作業 Transition(order_Wor3_Tra1)にしたがって、
請求作業 Activity(order_Wor3_Act2)にステータスが変わる(変移する)
請求作業 Activity(order_Wor3_Act2)の Finish mode は Manual なので、処理を停止する。
テストの部分
133:datas = billBao_.getBillWaiting(); 134:assertEquals(datas.size(),1); 135:BillDto billDto = (BillDto)datas.get(0);
getBillWaiting で請求作業のデータを取得する
検索結果のカウントが1であることをチェックする
BillBao
public static String getBillWaiting_ACTIVITY = "請求作業"; public List getBillWaiting();
137:datas = billBao_.getReBill(); 138:assertEquals(datas.size(),0);
getReBill で再請求準備のデータを取得する
検索結果のカウントが0であることをチェックする
BillBao
public static String getReBill_ACTIVITY = "再請求準備"; public List getReBill();
140:datas = billBao_.getEndBill(); 141:assertEquals(datas.size(),0);
getEndBill で請求終了のデータを取得する
検索結果のカウントが0であることをチェックする
BillBao
public static String getEndBill_ACTIVITY = "請求終了"; public List getEndBill();
144:billBao_.bill(billDto);
で、請求プロセスを再開…
BillBao
public void bill(BillDto dto);
請求プロセス
請求作業 Activity(order_Wor3_Act2)で停止してたはずなのでここから続く
請求作業 → 再請求準備 Transition(order_Wor3_Tra9)に従って、
再請求準備 Activity(order_Wor3_Act5)にステータスが変わる(変移する)
再請求準備 Activity(order_Wor3_Act5)の Finish mode は Manual なので、Toolを実行した後処理を停止する。
Tools を見ると[ id:order_App1 , Type:Applocation ]となってる。さらにダブルクリックすると Tool のプロパティが表示される。
- id
- OgnlInvoker
- Type
- Application
- Extended attributes
- Name
- ognl
- Value
- #ReClaim = @jp.starlogic.util.datetime.UtilCalendar@getInstance() //#ReClaim.addDayOfMonth(7) // 本来なら7日後とかにするんだけど、テストなので・・・ #ReClaim.addSecond(10)
#ReClaim = @jp.starlogic.util.datetime.UtilCalendar@getInstance() //#ReClaim.addDayOfMonth(7) // 本来なら7日後とかにするんだけど、テストなので・・・ #ReClaim.addSecond(10)
AfterOgnlInvoker じゃないからすぐに実行される(のかな
請求プロセスは停止。
テストの部分
146:datas = billBao_.getBillWaiting(); 147:assertEquals(datas.size(),0);
getBillWaiting で請求作業のデータを取得する
すでに検索結果のカウントが0であることをチェックする
149:datas = billBao_.getReBill(); 150:assertEquals(datas.size(),1); 151:billDto = (BillDto)datas.get(0);
getReBill で再請求準備のデータを取得する
検索結果のカウントが1であることをチェックする
153:datas = billBao_.getEndBill(); 154:assertEquals(datas.size(),0);
getEndBill で請求終了のデータを取得する
まだ検索結果のカウントが0であることをチェックする
157:billBao_.checkPayment(billDto);
で、請求プロセスを再開…
BillBao
public void checkPayment(BillDto dto);
請求プロセス
再請求準備 Activity(order_Wor3_Act5)で停止してたはずなのでここから続く
再請求準備 Activity(order_Wor3_Act5)の条件分岐
- 再請求準備 → 入金確認
- #autoAction==null
- 再請求準備 → 再請求
- #autoAction==true
再請求準備 Activity(order_Wor3_Act5)の Tool
#ReClaim = @jp.starlogic.util.datetime.UtilCalendar@getInstance() //#ReClaim.addDayOfMonth(7) // 本来なら7日後とかにするんだけど、テストなので・・・ #ReClaim.addSecond(10)たぶん、一定期間を待ち、入金アクションが無い場合は「#autoAction==true」に設定される
で、テストでは「入金アクションが無い」となって
再請求準備 → 再請求 Transition(order_Wor3_Tra10)が成立する
再請求 Activity(order_Wor3_Act6)にステータスが変わる(変移する)
再請求 Activity(order_Wor3_Act6)の Finish mode は Automatic なので、
再請求 → 請求終了 Transition(order_Wor3_Tra11)にしたがって、
請求終了 Activity(order_Wor3_Act4)にステータスが変わる(変移する)
請求終了 Activity(order_Wor3_Act4)の Finish mode は Manual なので、処理を停止する。
で、請求プロセスは終了
テストの部分
159:datas = orderBao_.getEndShipping(); 160:assertEquals(datas.size(),0);
getEndShipping で出荷終了のデータを取得する
すでに検索結果のカウントが0であることをチェックする
162:datas = orderBao_.getOrderEnd(); 163:assertEquals(datas.size(),1);
getOrderEnd で終了のデータを取得する
すでに検索結果のカウントが1であることをチェックする
165:datas = billBao_.getBillWaiting(); 166:assertEquals(datas.size(),0);
getBillWaiting で請求作業のデータを取得する
すでに検索結果のカウントが0であることをチェックする
168:datas = billBao_.getEndBill(); 169:assertEquals(datas.size(),1);
getEndBill で請求終了のデータを取得する
すでに検索結果のカウントが1であることをチェックする
testNomalOrderTx() 終了〜