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

3-9. 別アプリの情報を元に更新ないし追加できる「レコードをもとに別のレコードを更新または追加する」

前の記事:3-8. 別アプリの情報を元に更新できる「レコードをもとに別のレコードを更新する」

次の記事:なし(この記事が最終です)


複数のレコードをもとにレコードを更新する点に関しては、やること「レコードをもとに別のレコードを更新する」と同じですが、紐づくレコードが更新先アプリに存在しない際にレコード追加ができるのが、やること「レコードをもとに別のレコードを更新または追加する」です。


この記事では、「活動履歴」アプリのボタンを押すと、一覧でチェックボックスにチェックしているレコードの案件IDに紐づく「案件管理」アプリの案件状況を、ダイアログで選択した案件状況に一括更新し、もし「案件管理」アプリに紐づくレコードが無ければレコード追加するカスタマイズを作ります。実行例は次のようになります。


アプリ

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

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


活動履歴

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

フィールド名

フィールドタイプ

備考

案件ID

文字列(1行)

必須項目にする

値の重複を禁止する

顧客ID

文字列(1行)


顧客名

文字列(1行)


活動担当

ユーザー選択


活動日

日付


確度

ドロップダウン

項目と順番は「A」「B」「C」を設定


案件管理

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

フィールド名

フィールドタイプ

備考

案件ID

文字列(1行)

必須項目にする

値の重複を禁止する

顧客ID

文字列(1行)


顧客名

文字列(1行)


活動担当

ユーザー選択


活動日

日付


確度

ドロップダウン

項目と順番は「A」「B」「C」を設定

案件状況

ドロップダウン

項目と順番は「受注」「失注」「継続」「クローズ」を設定


カスタマイズ

カスタマイズは「活動履歴」アプリに対して行います。

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


一覧にチェックボックス列を追加する

やること「一覧にチェックボックス列を追加する」、条件「一覧画面を表示した時」を用います。


ボタンをメニュー位置に配置する

やること「ボタンをメニュー位置に配置する」、条件「他のアクションの実行が完了した時」を用います。


ボタンを押した時に案件状況の選択ダイアログを表示

やること「選択肢から選択するダイアログを表示する」、条件「ボタンを押した時」を用います。


また、パラメータの選択肢は


受注

失注

継続

クローズ


を設定します。


OKが押されたらチェックしたレコードを取得

やること「一覧で選択されたレコードを取得する」、条件「確認・入力ダイアログで「OK」を押した時」を用います。


取得したレコードを元に別のレコードを更新または追加


やること「レコードをもとに別のレコードを更新または追加する」、条件「他のアクションの実行が完了した時」を用います。


「やること」のパラメータの、キーとなる更新先のフィールドと、キーの値となる元になるレコードのフィールドはそれぞれ「案件ID」を設定します。

元になるレコードはやること「一覧で選択されたレコードを取得する」を実行したアクション(今回の例でいうと22番アクション)を指定します。


また、マッピングは次の要領で指定してください。


解説

やること「レコードをもとに別のレコードを更新する」と似ていますが、違うところは、更新の対象となるレコードがなかった場合の動きです。


この例では、前の記事()と同様に「活動履歴」アプリの一覧画面で選択したレコードを元に、「案件管理」アプリを更新しました。さらに、パラメーター「キーの値となる元になるレコードのフィールド」である「案件ID」に一致する「案件ID」を持つレコードが「案件管理」アプリに存在しない場合には、レコード追加が行われます。


やること「レコードをもとに別のレコードを更新する」と同じく、元になるレコードを指定するために、やること「レコードをもとに別のレコードを更新または追加する」のアクションの前にレコードを取得する「やること」(例えば、やること「一覧の条件でレコードを全件取得する」など)を使ったアクションを実行しておく必要があります。


やること「レコードをもとに別のレコードを更新または追加する」は、やること「レコードをもとに別のレコードを更新する」と同様に、他の更新・追加系のやることに比べると処理時間が長くなりやすく、使用するAPIリクエスト数も多くなります。


注意点

更新元レコードのキーの値《パラメーター:キーの値となる元になるレコードのフィールド》が空のレコードが存在する場合には注意が必要です。

キーの値が空のレコードが複数存在する場合すべてキーが同一であるとみなされ、同じレコードを繰り返し更新し、最後に更新された値のみが有効となります。


具体的には以下のような動きとなります。


上記のような動作を防ぐ観点から、原則としてキーとなるフィールドは必須項目にし、値の重複を禁止する設定としておくことが望ましいです。


おわりに

この記事では、やること「レコードをもとに別のレコードを更新または追加する」を使った、レコードを元にして別アプリを更新し、別アプリに該当するレコードがなければ追加するカスタマイズをご紹介しました。


やること「レコードをもとに別のレコードを更新または追加する」を使えば、予め取得しておいたレコードを元に別のアプリのレコードを更新ないし追加することができます。


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

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


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

3-9. 別アプリの情報を元に更新ないし追加できる「レコードをもとに別のレコードを更新または追加する」

前の記事:3-8. 別アプリの情報を元に更新できる「レコードをもとに別のレコードを更新する」

次の記事:なし(この記事が最終です)