gusuku Customine カスタマインの歩き方 レコード更新編
3. レコード追加、レコード更新に関する「やること」一挙解説

3-5. テーブルの行数分、処理を繰り返して更新ないし追加できる「レコードを更新または更新する(キーの値をフィールドで指定)」

前の記事:3-4. テーブルの行数分、処理を繰り返して更新できる「レコードを更新する(キーの値をフィールドで指定)」

次の記事:3-6. 元になるレコードを指定して「レコードを書き出す」


カスタマイズ対象のレコードと紐づくレコードを更新するという点においては、やること「レコードを更新する(キーの値を直接指定)」と同じですが、紐づくレコードが更新先アプリに存在しない際にはレコード追加できるのが、やること「レコードを更新または追加する(キーの値をフィールドで指定)」です。


これは、やること「レコードを更新または追加する(キーの値を直接指定)」と似ていますが、利用できるシーンに一部違いがあります。


具体的には、次の例のようにテーブル内の値をキー項目として設定した場合に、テーブル行の件数分だけ処理を繰り返すことができます。


ただし、やること「レコードを更新または追加する(キーの値を直接指定)」ではキーとして「フィールド」「他のアクションの結果」「関数」などが指定可能なのに対し、やること「レコードを更新または追加する(キーの値をフィールドで指定)」ではキーに指定できるのは「フィールド」のみとなる点に注意が必要です。


この記事では、やること「レコードを更新または追加する(キーの値を直接指定)」を用い、案件管理アプリのレコードを更新した時に、発注台帳アプリの発注台帳キーをもとにレコード追加ないし、数量が更新されるカスタマイズを作ります。実行例は次のようになります。


アプリ

カスタマイズ例を確かめるためには、2つのアプリを作成します。

※今回動かすのに必要最低限となるフィールドのみ記載しています


案件管理

※フィールド名とフィールドコードは同じものを指定

フィールド名

フィールドタイプ

備考

案件ID

文字列(1行)


発注

テーブル

※以下の「発注日」~「発注台帳キー」はテーブル内フィールドとして設定

発注日

日付


部品コード

文字列(1行)


数量

数値


発注台帳キー

文字列(1行)

自動計算する
計算式:案件ID & "-" & 部品コード


発注台帳

※フィールド名とフィールドコードは同じものを指定

フィールド名

フィールドタイプ

備考

発注台帳キー

文字列(1行)

値の重複を禁止する

案件ID

文字列(1行)


発注日

日付


部品コード

文字列(1行)


数量

数値



カスタマイズ

カスタマイズは「案件管理」アプリに対して行います。

また、アクションは次のように設定してください。


レコードを保存した直後にレコードを更新または追加する

やること「レコードを更新または追加する(キーの値をフィールドで指定)」、条件「レコードを保存した直後(削除後は除く)」「現在の画面が追加画面または編集画面ならば」を用います。


「やること」のパラメータのキーとなる更新先のフィールド、キーの値となるこのアプリのフィールドはどちらも「発注台帳キー」を設定します。


また、マッピングは次の要領で設定します。


解説

やること「レコードを更新する(キーの値をフィールドで指定)」と似ていますが、違うところは、更新の対象となるレコードがなかった場合の動きです。


レコード更新をする際には「キー」が必要になります。レコード更新でパラメーターに指定した「キー」を持つ更新先アプリのレコードを探して、レコードが見つかった場合にレコード更新を行います。


ここまでは、やること「レコードを更新する(キーの値をフィールドで指定)」と同じですが、やること「レコードを更新または追加する(キーの値をフィールドで指定)」の場合は、指定した「キー」を持つレコードが見つからなかったときに「レコード追加」する動きとなる点が大きな違いです。


今回の例では、すでに登録されていたテーブル行に対しては変更内容をレコード更新、新しく追加されたテーブル行に対してはレコード追加しています。

また、レコードがすでに登録されているかどうかは「キー」で判断します。


おわりに

この記事では、やること「レコードを更新または追加する(キーの値をフィールドで指定)」を使い、テーブル行の全行を元にして、他のアプリのレコードにキーで対応するものがあればレコード更新、なければレコード追加するカスタマイズをご紹介しました。


ドキュメントサポートページもぜひご活用ください。

また、ご不明点等ございましたら、チャットにてご質問ください!


gusuku Customine カスタマインの歩き方 レコード更新編
3. レコード追加、レコード更新に関する「やること」一挙解説

3-5. テーブルの行数分、処理を繰り返して更新ないし追加できる「レコードを更新または更新する(キーの値をフィールドで指定)」

前の記事:3-4. テーブルの行数分、処理を繰り返して更新できる「レコードを更新する(キーの値をフィールドで指定)」

次の記事:3-6. 元になるレコードを指定して「レコードを書き出す」