はじめに
この記事ではDBを操作するためのアプリケーション接続設定で作成したアプリケーション接続を利用して、DBのテーブルにデータを登録(INSERT)する実装を確認します。
なお、この記事は次の記事の内容を理解していることを前提としています。
データをテーブルに登録する実装
DBのテーブルにデータを登録(INSERT)するには次のようにCAIプロセスを作成します。
-
CAIプロセスを次の設定で作成します。
- 名前を recipe-psa-jdbcInsert とする
- 匿名アクセス を許可する
- Secure Agent にデプロイする
-
作成ステップ を追加して作成タブを表示して、接続 に DBを操作するためのアプリケーション接続設定で作成した recipe-appConn-JDBC を指定します。 オブジェクト には主キーを持つテーブル RECIPETEST001PK に指定します。

-
作成ステップ の 入力フィールド に切り替えて、COL1/COL2にそれぞれ recipe, val_recipe という文字を コンテンツ として指定します。

-
保存してパブリッシュします。
実装したCAIプロセスは出力フィールドを持ちません。そのため、CAIプロセスを1度実行するだけでは空のレスポンスが得られますが、CAIプロセスを2回実行すると以下のように主キー制約違反としてORA-1発生する動作を確認できます。
// curl コマンド
curl -k https://localhost:7443/process-engine/public/rt/recipe-psa-jdbcInsert
// 実行結果(1回目)
{}
// 実行結果(2回目)
{
"error": {
"code": 500,
"detail": {
"reason": "ORA-00001: unique constraint (SCHEMA.PK_RECIPETEST001PK) violated\n Query: Insert Into \"SCHEMA\".\"RECIPETEST001PK\" (\"COL1\",\"COL2\") Values (?,?) ",
"code": "CreateDataException"
},
"message": "ORA-00001: unique constraint (SCHEMA.PK_RECIPETEST001PK) violated\n Query: Insert Into \"SCHEMA\".\"RECIPETEST001PK\" (\"COL1\",\"COL2\") Values (?,?) "
}
}
エラーハンドリングの実装
データをテーブルに登録する実装では、データ登録処理時に一意制約エラーが発生する動作を確認しました。既定の処理ではエラー発生時にはCAIプロセスは異常終了して HTTP 500 を返す動作です。エラー発生時に処理を分岐して動作を制御するには次のように 作成ステップ にて__フォルトの取得__ を有効化します。のオプションを有効化すると、エラー発生後に faultInfo というフィールドにエラー情報が記録されます。
