はじめに
この記事ではDBを操作するためのアプリケーション接続設定で作成したアプリケーション接続を利用して、DBのテーブルのデータを更新(UPDATE)する実装を確認します。
なお、この記事は次の記事の内容を理解していることを前提としています。
- はじめてCAIを使う際に
- プロセスの作成と実行(匿名認証と基本認証)
- 割り当てステップと、各種変数フィールドの利用
- プロセスオブジェクトによるユーザー定義変数の利用
- DBを操作するためのアプリケーション接続設定
テーブルのデータを更新する実装
テーブルのデータを更新するには、更新対象のデータを 割り当てステップ にて クエリ として取得して、その後再度 割り当てステップ にて取得したデータを変更します。初見では 割り当てステップ で何かしているな・・・くらいにしか見えないと思います。具体的な実装を確認しながら理解を深めていただければと思います。
DBのテーブルのデータを更新(UPDATE)するには次のようにCAIプロセスを作成します。
-
CAIプロセスを次の設定で作成します。
- 名前を recipe-psa-jdbcUpdate とする
- 匿名アクセス を許可する
- Secure Agent にデプロイする
-
割り当てステップ を追加して次のように一時フィールド tmpRow に クエリ として COL1='1' を指定して条件を満たすデータを取得します。

-
2つ目の 割り当てステップ を追加して次のように指定します。

1行目の割り当てでは、出力フィールド before に更新処理をする前の値を設定しています。
2行目の割り当てでは、1つ目の 割り当てステップ で取得した値の COL2 列に recipe-1 という値を指定しています。この2行目の処理にてデータの更新(Update)が行われます(初見では何を目的とした実装なのか読み取れなさそうですよね・・・)。 -
保存してパブリッシュします。
curlコマンドによりCAIプロセスを3回実行すると、以下のように2回目と3回目の実行時には recipe-1 という値が返ってくる動作を確認できます。1度目の実行時に COL1='1' 行のデータが買い替えられているための動作です。
// curl コマンド
curl -k https://localhost:7443/process-engine/public/rt/recipe-psa-jdbcUpdate
// 実行結果(1回目)
{"before":"val-1"}
// 実行結果(2回目)
{"before":"'recipe-1'"}
// 実行結果(3回目)
{"before":"'recipe-1'"}

