テーブルを含めてレコードをコピーしたいとき
コピー元のアプリからコピー先の別のアプリにレコードの内容をコピーしてレコード追加をしたい場合、「レコードを書き出す」を使うと簡単です。
また、コピー元のアプリにテーブルがあり、コピー先のアプリにもテーブルがある場合は「テーブルデータをセットしたレコードを追加する 」を使うとテーブルも含めてレコード追加ができます。
もし、複数レコードをまとめてコピーして追加したい場合は「テーブル付きでレコードを書き出す」を使いましょう。(ただし、コピー元アプリのテーブルと、コピー先アプリのテーブルの構造が同じでないといけません)
これに対し、1レコードに複数テーブルがあり、この複数テーブルをコピーしたい場合には複数の「やること」を組み合わせれば、実現する事ができます。
今回は、コピー元アプリにもコピー先アプリにも2つのテーブルがあり、2つのテーブルを含めてコピーしつつレコード追加する方法について説明します。
2つのテーブルを含めてコピーしつつレコード追加する
今回のカスタマイズは、コピー元のレコードを詳細画面に表示して、そこでボタンを押すと、表示されたレコードの内容をコピーしてレコード追加する想定です。
一覧画面から複数レコードに対して一括で処理を行いたい場合は、これとは別の方法が必要になりますが、ここでは割愛します。
アプリの構成
テーブルが2つあるのがポイントです。
レコードデータ例
このレコードをテーブルも併せてコピーして追加します。
カスタマイズ例
それぞれのアクションごとに解説していきます。
1.まず、実行するためのボタンを設置します。詳細画面で動かしたいので「詳細画面を表示した時」とします。
2.「ボタンを押した時」に「テーブル行をレコードとして取得する」として、1つ目のテーブル行をレコードとして取得しておきます。今回のアプリでいうと「タイムカード明細」になります。
3.「テーブルデータをセットしたレコードを追加する」で1つ目のテーブルを含めてレコード追加をします。このアクションが実行された時点で、レコードが追加されていますのでレコード番号もわかるようになります。
4.次に、2つ目のテーブルをコピーします。
「テーブル行をレコードとして取得する」で2つ目のテーブル行をレコードとして取得します。今回のアプリでいうと「休暇」になります。
5.最後に「レコードを指定アプリのテーブルに書き出す」で取得した2つ目のテーブル行を書き出します。「キーとなるフィールド」はレコード番号としています。3番のアクションで追加したレコードに対して書き出している点がポイントです。キーの値は「= $3」と3番のアクションの結果を使うことで、追加したレコードのレコード番号を取得できます。
ここまで出来たら、実際に動かして動作を確かめてみてください。
想定する動きになったでしょうか?
まとめ
今回は2つのテーブルを含めてレコード追加する方法をご説明しましたが、この方法を使うと、3つ以上のテーブルにも対応可能です。ただ、たくさんのテーブルをコピーする場合や、大量のレコードを対象に処理する場合だと画面のカスタマイズでは難しい場面も出てくると思いますので、そういった場合にはJob Runnerの定期実行タスクもご検討ください。
お試しいただいてご不明な点がございましたら、チャットでお気軽にお問合せください。