通常だと、ルックアップをした時に登録がなかった場合は、ルックアップのコピー元アプリを開いてレコードを追加した後に、再度ルックアップのコピー先アプリに戻ってルックアップを取得しないといけません。


そこで、コピー先アプリから、コピー元アプリにレコードを追加するボタンを追加してみます。



今回のテンプレートで出来ること

  • ルックアップのコピー元アプリにレコードを追加できます


アプリの準備

ルックアップのコピー元アプリを「顧客マスタアプリ」、ルックアップのコピー先アプリを「訪問記録アプリ」として作成します。


今回は、ルックアップのコピー元である「顧客マスタアプリ」に以下のフィールドを作成しました。


フィールド名

フィールドコード

フィールドタイプ、他

顧客コード

顧客コード_コード

文字列、重複禁止

顧客名

顧客名_コード

文字列

種別

種別_コード

ラジオボタン

電話番号

電話番号_コード

リンク

住所

住所_コード

文字列



スペース
(要素ID:add)





ルックアップのコピー先である「訪問記録アプリ」には、値をコピーするフィールドに加えて 訪問記録 というフィールドも作成しておきます。



ルックアップフィールドは次のように設定します。

Customineの設定

全体の流れはこのようになります。




追加・編集画面


追加画面・編集画面を表示した時」に「ボタンをスペースに配置する」を使ってスペース(add)にボタンを配置し、同時に「フィールドを有効化する」でルックアップでコピーされるフィールドを有効化して入力できるようにします。




ボタンを押した際の処理


ボタンを押した時」に「読み込み中画面を表示する」で、読み込み中画面を表示します。その後に同一キーのレコードが存在するかを確認するために「キーを指定してレコードを取得する」を使ってレコードを取得します。



同一キーのレコードがあった場合の処理


他のアクションの実行が完了した時」で7番のアクションを指定すると、レコード取得後に実行することになります。「レコード件数が1件以上ならば」を使い、1件以上レコードがあった場合は「エラーダイアログを表示する」を使ってエラーダイアログを表示して終了にします。


レコード追加処理


レコード取得後に「レコード件数が0件ならば」で取得したレコードがない場合は、「レコードを追加する」を使ってレコードを追加します。追加後は「読み込み中画面を終了する」を使って、読み込み中画面を終了するのを忘れないようにしてください。




なお、「レコードを追加する」のマッピングはこんな感じになります。






まとめ

ボタンを押すことで他アプリへレコードを追加出来るのと、その際に重複チェックをするという処理が出来ました。


処理を簡素化するためにエラーチェックは最小限となっていますので、用途に合わせて変更をしてください。