|
|
||
| Tips | /Home /Tips 一覧 | |
実行リストの行数が長くなってしまう場合、以下の構造化ルールを使用することにより 処理をブロック化し
呼び出す事が可能になります。
仕様書とその実装 サンプル
StructureTryCatch と StructureIfElse は、Ver1.1.1のパッチ提供 もしくは Ver1.1.2 にて
提供しています。
構造化対応 DynamicDocument は 2004/09/07現在未だ提供しておりません。
随時提供予定です。
このドキュメントでは、これらのビジネスルールにて、実行元の実行リストにどのような 戻り値を返すかどうかを詳しく説明します。
| ルール内次アイテム処理続行有無 | 元実行リストへの戻り値 | |
|---|---|---|
| ExecuteAfterEvent | OKが返って来たとき続行 | 常にOKを返す |
| StructureTryCatch | エラーフラグに値が入っていない かつ OK,SKIP,SKIP_ALL の時続行 | SKIP,SKIP_ALLの場合OKを返す。 FrameClose(Quit),SystemExit(Quit)の場合はSKIP_ALLを返す。 それ以外はその戻り値 |
| StructureIfElse | ----- | SKIP,SKIP_ALLの場合OKを返す。 FrameClose(Quit),SystemExit(Quit)の場合はSKIP_ALLを返す。 それ以外はその戻り値 |
| 入力引数 | 出力引数 |
|---|---|
| Afterに処理が入ったアイテム | |
| Afterに処理が入ったアイテム | |
| ・・・・ |
int ret = 出力引数1 のAfter実行
if(ret == OK){
ret = 出力引数2 のAfter実行
if(ret == OK){
ret = 出力引数3 のAfter実行
・・・(省略)・・・
}
}
return OK
| 入力引数 | 出力引数 |
|---|---|
| Afterに処理が入ったアイテム | エラーフラグアイテム |
| Afterに処理が入ったアイテム | エラー処理がAfterに入ったアイテム |
| ・・・・ | ・・・ |
try{
int ret = 入力引数1 のAfter実行
if(エラーフラグの値に何か入っていた場合){
throw エラー処理+(エラーフラグの値)
}
if(ret != OK(※1)){
return ret (※1)
}
ret = 入力引数2 のAfter実行
if(エラーフラグの値に何か入っていた場合){
throw エラー処理+(エラーフラグの値)
}
if(ret != OK(※1)){
return ret (※1)
}
・・・(省略)・・・
return ret (※1)
}
catch (エラーフラグ=1){
return 出力引数2 のAfter処理 (※1)
}
catch (エラーフラグ=2){
return 出力引数3 のAfter処理 (※1)
}
(※1) 元実行リストへの戻り値 は、以下の仕様で変換されて返ります。| 入力引数 | 出力引数 |
|---|---|
| Afterに条件判断処理が入ったアイテム | Afterに処理が入ったアイテム |
| Afterに条件判断処理が入ったアイテム | Afterに処理が入ったアイテム |
| ・・・・ | ・・・ |
| Afterに処理が入ったアイテム |
if(入力引数1 のAfter実行 (※1) == OK){
return 出力引数1 のAfter実行 (※2)
}
else if(入力引数2 のAfter実行 (※1) == OK){
return 出力引数2 のAfter実行 (※2)
}
・・・(省略)・・・
else{
return 出力引数最後 のAfter実行 (※2)
}
(※1) 条件句にて true or false の判断は以下として行います。