複数のレコードを別アプリにまとめて転記したい場合は、取得したレコードに対して「レコードを書き出す」をするだけでいいので簡単ですが、「テーブル込みで転記」となるとそうもいかず、これまでは複雑なカスタマイズが必要でした。
一方で、先日「テーブル付きでレコードを書き出す」という「やること」が追加されました。これを使うと、「テーブル込みで別アプリに転記(レコード追加)」がシンプルなカスタマイズでできるようになりました! 加えて、この「やること」を使うと複数レコードをまとめて「テーブル込みで転記」することもできちゃいます。
※今回利用した「やること」が追加される前の方法についてはこちらをご覧ください。
[旧]複数のレコードをテーブルごと別アプリに転記する
サンプルアプリのフォーム
転記元アプリ
フィールド
テーブル内のフィールド
転記先アプリ
今回は、前述の「転記元アプリ」と全く同じ構成のアプリを使用していますので割愛します。
カスタマイズ
今回は、一覧画面の条件で取得した全レコードに対して、テーブル込みで別アプリに転記するカスタマイズとしました。
アクション1番で「ボタンをメニュー位置に配置する」でボタンを配置し、アクション2番の「一覧の条件でレコードを全件取得する」でボタンを押した時に対象レコードを取得します。
アクション3番の「テーブル付きでレコードを書き出す」の部分については、以下で詳しく解説します。
パラメーター:レコード
書き出し元になるレコードを指定します。今回はアクション2番で取得したレコードを対象としているので、「2」と指定します。
パラメーター:書き出し先アプリ
書き出し先アプリを指定します。今回は別アプリに書き出したいので、カスタマイズを行っているアプリとは別のアプリを指定しました。
パラメーター:マッピング
テーブル外のフィールドのマッピングを指定します。今回はそれぞれのフィールド値をそのまま転記するため「フィールドA = フィールドA」、「フィールドB = フィールドB」と指定しました。
パラメーター:書き出し先テーブル
書き出し先アプリのどのテーブルに書き出すかを選択します。今回は「テーブル」になります。
パラメーター:書き出し対象テーブル行の条件になるフィールド(1)
パラメーター:条件(1)
パラメーター:比較値(1)
ここに指定をすると、条件に当てはまる行だけが「テーブルに対するマッピング」の対象になります。今回は、すべての行についてそのまま転記をしたかったので、空欄としています。((1)~(3)まですべて空欄です)
パラメーター:テーブルに対するマッピング
今回は、すべて同じフィールド値をそのまま転記したいので、「日付C = 日付C」、「フィールドD = フィールドD」と指定しました。
※もう少し踏み込んだ例としては、たとえば「フィールドD」が「うどん」の場合だけ「うどんです」という文言に変えたい場合だと、次のような設定になります。
パラメーター:更新または追加
今回は別アプリへ転記しますので、「新規にレコードを追加」しか選択できません。なお、同じアプリに転記する場合は「既存レコードを更新」も選択可能です。
これで、一覧画面のボタンを押した時に、一覧の条件ですべてのレコードを取得し、そのレコードに対してテーブル込みで転記(レコード追加)ができました。
ぜひお手元でお試しください!
リストを使って1件ずつ書き出す
上に記載したように、やること「テーブル付きでレコードを書き出す」ですと、細かい条件指定ができなかったり、別アプリへはレコード追加しかできず、レコード更新ができません。
ですが、「リストから要素を取り出す」を使って1件ずつ書き出しを行うことで、柔軟な条件指定を行った書き出しを実現することができます。
今回はレコード追加を例にご説明します。
カスタマイズ例
「テーブル付きでレコードを書き出す」を使った方法でやっていることと基本的には同じなのですが、「リストから要素を取り出す」を使った方法の場合では、もう少し細かい条件をつけた処理を作ることが可能です。
今回は、フィールド値によって処理を分岐するカスタマイズにしてみました。「フィールドB」が「鈴木」のときだけレコード追加し、それ以外は「なにもしない」としています。処理の分岐についてはアクショングラフで見てみるとわかりやすいです。
※「リストから要素を取り出す」の使い方については「リストから要素を取り出す」の活用方法をご覧ください。
このカスタマイズのポイントは2つあります。
1つ目のポイントは、アクション10番で「取得したレコードを絞り込む」を使うことです。「リストから要素を取り出す」から取り出しただけではレコードとして扱えないため、さらに「レコード番号」を条件として1つのレコードを絞り込んでいます。
2つ目のポイントは、アクション11番で「他のレコード内のテーブルをレコードとして取得する」を使っているところです。一覧画面では「テーブル行をレコードとして取得する 」が使えないため、こちらを利用しています。ここで取得したテーブル行の値を使ってアクション12番でテーブルに対するマッピングを行っています。
終わりに
複数のレコードをテーブル込みで別アプリに転記する方法について、2つのカスタマイズ例をご紹介しました。用途に合わせて使い分けてみてくださいね!
ご不明点等ございましたら、チャットにてご質問ください。
Customineドキュメントやサポートページもぜひご活用ください。