商品マスタとそれを参照する別アプリ、例えば見積書アプリなどを連携して活用する場合、 kintoneではルックアップを利用するかと思います。
ただ、kintone基本機能のルックアップが少し使いづらいのは、テーブル内にルックアップを配置する場合、テーブル1行ずつのルックアップに値を入力し、さらにルックアップの「取得」を行わないといけないところです。
そこで今回は、この使いづらさを解消するために、追加・編集画面でテーブルに商品リストアプリの複数レコードを一括で追加し、追加された各テーブル行のルックアップも一括で取得するカスタマイズを作成してみたいと思います。
Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
利用想定シーン
このページでは、商品リストアプリのレコード一覧から選択したレコードを見積書アプリの追加・編集画面で明細テーブルに追加し、各テーブル行のルックアップを一括で取得する、というカスタマイズを作成してみたいと思います。
アプリ構成
カスタマイズするアプリは、アプリストアにある「商品見積書パック」を使用し、「商品リストアプリ」と「見積書アプリ」を利用します。お手元に既に「商品マスタアプリとそれを参照しているアプリ」のような組み合わせのアプリがあれば、そちらでお試しいただいても構いません。
なお、ボタンを配置するためのスペースフィールドが必要なので、「見積書アプリ」に別途追加しておきます。
※入手したアプリに既に設定されているフィールドとは別に今回のカスタマイズのために追加するフィールドのみ記載しています
Customineの設定
それでは、この見積書アプリに対してカスタマイズをしていきます。
このカスタマイズは、次のアクションを作成することで実現できます。
見積書アプリの追加・編集画面で、ボタンを配置する
そのボタンが押されたら、商品リストアプリのレコードを取得する
取得したレコードをポップアップの一覧に表示する
選択したレコードを、表示しているレコードのテーブルに書き出す
テーブルの空行を削除する
各テーブル行のルックアップを取得する
それでは設定してみましょう。
ボタンの配置
まずはボタンを配置します。
やること「ボタンをスペースに配置する」、条件「追加画面・編集画面を表示した時」を使用します。
もしスペースではなく、メニュー位置にボタンを配置したい場合は、「ボタンをメニュー位置に配置する」を設定してみてください。
レコードの取得
続いて、配置したボタンを押してレコードを取得します。
やること「全レコードを取得する」、条件「ボタンを押した時」を使用します。
もし、取得するレコード数が膨大な場合、後続のアクションで表示するポップアップの一覧にもそのレコードが表示されます。そうすると、必要なレコードを選択しづらくなる可能性があるので、「条件を組み立ててレコードを取得する」や「キーを指定してレコードを取得する」など条件を指定してレコードを取得することをご検討ください。
レコード一覧をポップアップで表示
次に、取得したレコード一覧をポップアップで表示します。
やること「レコードの一覧をポップアップで表示する」、条件「他のアクションの実行が完了した時」を使用します。
「レコードの一覧をポップアップで表示する」の「選択方法」には「複数選択(チェックボックス)」を選択します。これにより複数レコードを処理することができます。
また、「未選択を許可するかどうか」で「未選択の場合OKを押せなくする」を選択します。この設定により、後続の処理に進めるためにはレコードの選択が必須になります。
選択されたレコードのテーブルへの書き出し
最後に、ポップアップで選択したレコードを、テーブルに書き出します。
やること「レコードをテーブルに書き出す」、条件「確認・入力ダイアログで「OK」を押した時」を使用します。
「レコードをテーブルに書き出す」の「既存の行」で「既存のテーブル行を残して追記する」を選択します。常にクリアして新規に追加する動作にしたい場合は「既存のテーブル行はクリアする」を選択してください。
一旦ここまでカスタマイズを作成できたら、「kintoneアプリへ登録」をクリックして、動作を確認してみてください。
動作確認
ここまで作成したカスタマイズを実行させてみます。
まずは追加・編集画面でスペースに配置したボタンを押してレコードを取得します。
取得したレコードをポップアップに表示して、商品(レコード)を選択します。
OKをクリックすると、選択された商品(レコード)の情報がテーブルにセットされます。
ここまでのカスタマイズだと、追加画面の場合は1行目が空の行として表示されてしまいます。また、「レコードをテーブルに書き出す」を行うとルックアップに値がセットされますが、ルックアップの「取得」は行われないので、保存ボタンを押すと次のようなエラーが出てしまいます。
これでは使い勝手が良くないので、もう少しだけカスタマイズを追加しましょう。
テーブルの空行の削除
追加のカスタマイズとして、まずテーブルから空の行を削除します。
やること「テーブルから空の行を削除する」を使用します。これにより空行を削除します。
なお、「テーブルから空の行を削除する」において空の行をどのように捉えるのかというと、「全ての列(フィールド)がすべて空、未選択の状態」を言います。
詳しくはドキュメントをご確認ください。
ルックアップの取得
次にルックアップを取得します。
やること「ルックアップを取得しなおす」を使用します。これにより「レコードをテーブルに書き出す」でセットされた値を使ったルックアップの取得を行いますので、保存ボタンを押してもエラーが表示されずに、レコードを保存できます。
なお、テーブル全行のルックアップを取得するのではなく、特定のテーブル行に対してルックアップの取得を行うこともできます。
その場合は、条件「フィールド値が特定の値ならば」などを使用します。
例えば、編集画面で既存のテーブル行とは別に、新たに追加したテーブル行のルックアップのみ取得しなおすのであれば、その行の数量は空なはずなので、条件「フィールド値が特定の値ならば」に「数量」が「空」と「等しい(ならば)」という内容の設定を行います。
これにより、どのテーブル行のルックアップに対して「ルックアップの取得しなおす」を行うのかを特定できますので、お試しください。
カスタマイズの設定は以上です。
再度「kintoneアプリへ登録」をクリックして動きを確認してみてください。
まとめ
追加・編集画面でテーブルにマスターアプリから取得したレコードを複数選択して追加するカスタマイズは以上になります。このカスタマイズにより商品マスターを使って簡単に見積書などのレコードが作成できるようになります。
せっかく作ったkintoneアプリですから、不便なところに手を入れて、より便利なアプリとして利用者の皆様に活用していただけるようになれば幸いです。
ご不明な点がございましたら、チャットでお問い合わせください。
Customineドキュメントやサポートページも、ぜひご活用ください!