uCosminexus 電子フォームワークフロー 解説

[目次][用語][索引][前へ][次へ]

3.5.8 DB出力制御

項目変数のデータをデータベースに出力する場合,新規のレコードを追加するか,既存のレコードを更新するかを制御するための定義が必要です。

<この項の構成>
(1) 単項目の出力
(2) リスト項目の出力

(1) 単項目の出力

単項目の出力では,[SQL用検索条件指定]タブの[SQL用検索条件項目]テキストボックスの定義内容,および実行時の検索結果によって制御します。

表3-11 DB出力制御(単項目の出力の場合)

SQL用検索条件項目 検索結果 出力方式
検索条件なし レコード追加
検索条件あり レコードなし レコード追加
レコードあり レコード更新
(凡例)
−:該当しません。
注※
複数のレコードがヒットした場合,ヒットしたすべてのレコードを更新します。

(2) リスト項目の出力

リスト項目の出力では,[SQL用検索条件指定]タブの[SQL用検索条件項目]テキストボックスの定義内容,および実行時の検索結果によって制御します。また,[カラム項目定義]タブで制御予約語を定義して制御できます。

表3-12 DB出力制御(リスト項目の出力の場合)

SQL用検索条件項目 検索結果 出力方式
検索条件なし レコード追加
検索条件あり レコードなし レコード追加
レコードあり 制御予約語での制御
(凡例)
−:該当しません。
注※
[カラム項目定義]タブで制御予約語を定義して制御します。

(a) 制御予約語での制御

[カラム項目定義]タブで制御予約語を定義して制御するには,行番号制御方式とカラムデータ制御方式があります。各制御方式で使用できる判定方式を次に示します。

表3-13 制御予約語による制御方式と判定方式

制御方式 判定方式
行番号制御方式 先頭更新方式
空き番号追加方式
カラムデータ制御方式 データ値判定方式
●行番号制御方式の場合
行番号制御方式では,既存レコードの行番号カラムの内容によって,追加/更新を制御します。
行番号方式の判定方式には,制御予約語_Countを定義する「先頭更新方式」,および制御予約語_NewIndexを定義する「空き番号追加方式」があります。
行番号制御方式を使用する場合,出力先のテーブルには,行番号を格納する数値型の行番号カラムを用意する必要があります。[SQL検索条件指定]タブの[SQL用条件オプション]テキストボックスに,"ORDER BY 行番号カラム名 ASC"を定義し,行番号でソートします。
[SQL検索条件指定]タブの[SQL用検索条件項目]テキストボックスでは,対象とする既存レコードすべてがヒットする条件を定義する必要があります。
先頭更新方式
先頭項目方式では,リスト項目の枝番号(_1から始まる番号)に対応して,0からの行番号を割り当てます。検索結果から得た既存レコードの行番号カラム内容と,割り当てた行番号を比較します。
一致する既存レコードがある場合は,項目変数の値で既存のレコードを更新します。一致する既存レコードがない場合は,項目変数の値で新規のレコードを追加します。
先頭項目方式を使用する場合,[カラム項目定義]タブで,「カラム名」に行番号を格納するカラム名を,「項目変数」に制御予約語_Countを定義します。
リスト項目の出力行数より多くの既存レコードがある場合,多い分のレコードは変更しません。更新するレコードと同じ行番号のレコードがある場合,そのレコードも更新します。

図3-18 先頭更新方式の設定例

[図データ]
空き番号追加方式
空き番号追加方式では,必ずレコードを追加します。検索結果から得た既存レコードには,0から連続する行番号が格納されていると仮定し,抜けている行番号に新規レコードを追加します。
空き番号追加方式を使用する場合,[カラム項目定義]タブで,「カラム名」に行番号を格納するカラム名を,「項目変数名」に制御予約語_NewIndexを定義します。

図3-19 空き番号追加方式の設定例

[図データ]
●カラムデータ制御方式の場合
カラムデータ制御方式では,判定用カラムの内容によって,追加/変更を制御します。
カラムデータ制御方式を使用する場合,出力先テーブルの任意のカラムを判定用カラムとして指定します。判定用の項目変数の値と,既存レコードの判定用カラムの値を比較します。
一致する既存レコードがある場合は,項目変数の値で既存レコードを更新します。一致する既存レコードがない場合は,項目変数の値で新規レコードを追加します。更新レコードの判定用カラムの値と同一のレコードが存在する場合,そのレコードも更新します。
カラムデータ制御方式を使用する場合,[カラム項目定義]タブで,「カラム名」に判定用カラム名を,「項目変数名」に制御予約語_UpdateKeyを定義します。さらに,「カラム名」に判定用カラム名を,「項目変数名」に判定用の項目変数名を定義します。

表3-14 カラムデータ制御方式の[カラム項目定義]タブの設定内容

カラム名 項目変数名
判定用カラム名 _UpdateKey
判定用カラム名 判定用の項目変数
[SQL検索条件指定]タブの[SQL用検索条件項目]テキストボックスでは,対象とする既存レコードのすべてがヒットする条件を定義してください。
カラムデータ制御方式では,レコードの順番は関係ありません。[SQL検索条件指定]タブの[SQL用条件オプション]テキストボックスで,ソート指定を定義する必要はありません。

図3-20 データ値判定方式の設定例

[図データ]