kintone のルックアップを利用していると必ずと言っていいくらい出るのか、「マスタ側にデータがない場合どうするか?」という問題ではないでしょうか?
ルックアップのコピー元であるマスタのデータをどのようにメンテナンスするかは、権限問題も含めてそれぞれの組織により色々なルールがあると思います。今回はお手軽さを優先して、簡単にルックアップのコピー元アプリにデータを追加できるカスタマイズをしてみたいと思います。
カスタマインの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
利用想定シーン
見積書アプリで見積書を作成する際、商品をルックアップで入力する、というようなシーンを想定しています。
見積書を作成する際に製品がマスタ側にない場合、カスタマイズを含めない手順であれば、マスタ側のアプリを開いてレコードを追加するという流れになりますが、このカスタマイズでは見積書アプリから直接、商品マスタにレコードを登録できるようにします。
kintoneアプリの準備
今回利用するアプリは、アプリストアにある「商品見積書パック」を利用します。kintone アプリストアから追加して下さい。
この「商品見積書パック」では「見積書」アプリと「商品リスト」アプリが追加されます。
アプリが追加されたら、「見積書」アプリに対し、商品追加に利用するフォームを追加します。
このアプリの、「アプリを設定(右側の歯車のマークのボタン)」をクリックし、出てきたフォーム画面の見積明細テーブルの下辺りにグループを追加し、商品追加枠を以下のように作成しておきます。
それぞれのフィールドは次のように設定して下さい。
※フィールド名とフィールドコードは同じものを指定
※なお、実際の商品リストアプリでは、もう1つ「サービス種別」という必須項目があるのですが、ここではシンプルに説明するため「サービス種別」は "kintone" 固定でレコードを作ることにします。もちろん、必要であればドロップダウンなどでサービス種別を入力するようにしていただいても構いません。
カスタマイズ
さて、アプリの準備ができたので、ここからはカスタマイズを進めていきます。
カスタマイズする対象は「見積書」アプリに対して行いますが、カスタマイズを始めるにあたって「見積書」、「商品リスト」の両アプリをカスタマインに追加してから、「見積書」アプリを選択してカスタマイズの作成を始めましょう。
ボタンをスペースに配置する
まず、ボタンをスペースに配置しましょう。
やること「ボタンをスペースに配置する」、条件「追加画面・編集画面を表示した時」を用います。
「やること」のパラメーターについては次の通りです。
「場所」は先程追加したスペースを選択します
「ラベル」には「商品追加」などと入れて下さい
「条件」のパラメーター「一覧画面の鉛筆を押した時」はデフォルトの値である「一覧画面の鉛筆を押した時は含めない」を選択しておきます。
確認ダイアログを表示する
続いて、ボタンを押した時に内容を確認するダイアログを表示します。
やること「確認ダイアログを表示する」、条件「ボタンを押した時」を用います。
「やること」のパラメーター「メッセージ」は次のように、入力内容を確認できるように設定します。
入力エリアの下部にある「フィールド選択ボタン」を使い、フィールドコードに間違いがないよう入力しましょう。
「条件」のパラメーター「ボタン」には先ほど設定したボタンのアクションを設定しておきます。
商品リストアプリにレコード追加
続いて、確認ダイアログで「OK」がクリックされたら、「商品リスト」アプリにレコードを追加するようにします。
やること「レコードを追加する」、条件「確認・入力ダイアログで「OK」を押した時」を用います。
「やること」のパラメーターは次のように設定します。
「追加先アプリ」には「商品リスト」アプリを選択します
「マッピング」には、初めに追加した商品追加グループの各フィールドを指定します。次のようになります
なお、セット先のフィールド「サービス種別」に対応するセットする値の「=”kintone”」については手入力で「kintone」と入力、セット先のフィールド「型番」、「商品名」、「価格」については左の「挿入 ∨」から「フィールド」を選択すると、次のようなダイアログが表示され、選択して入力する事ができます(スクロールすると中ほどにあります)。
レコード追加のユーザーへのフィードバック
ここまでのアクションで、レコード追加としては動作するのですが、ここまでのアクションだけだと見かけ上ユーザーの見えないところで動作する形となり、画面としてのユーザーへのフィードバックが何も発生しません。
なので、レコード追加が成功したらダイアログを表示するように、もう一つアクションを追加しておきましょう。
やること「情報ダイアログを表示する」、条件「他のアクションの実行が完了した時」を用います。
一旦、動作確認しましょう
ここまでで一旦、動作を確認してみましょう。
画面上部の黄色のアイコン「kintoneアプリへ登録」をクリックしてkintoneに登録したあと、見積アプリを開いて商品を追加してみて下さい。
いかがでしょうか?商品リストアプリ側に、レコードが追加されましたか?
もし思ったように動かなかった場合はログを確認してみて下さい。ログの確認については次の記事に詳しいので、併せてご覧ください。
コンソールログの見方(kintone アプリのカスタマイズ)
テストとしてこのような商品を追加してみます
確認ダイアログで内容を確認し...…
「OK」を押すとレコード追加が実行されます。
すると、商品リストアプリ側でレコードが入ったことを確認できます。
もう少し改良してみましょう
ここまでで最低限の動作は確認できましたので、これからもう少し改良してみましょう。
実際に動かしてみると、色々気になる点が出てくるかと思います。
商品名などが空でも追加できてしまう
ユニークな型番を自分で決めるのは難しい
商品追加が終わったあと、別の商品を追加する際に先程の値が残ってるのは気になる
今回はこの、気になる点のうち最後の「先程の値が残ってるのは気になる」について改良してみましょう。
※なお、「空でも追加できてしまう」に対応するのは、商品リストアプリ側でそれぞれのフィールドを必須入力にするのが簡単です
これは、次のようなアクションを追加する事で実現できます。
やること「フィールド値をクリアする」、条件「他のアクションの実行が完了した時」を用います。
「やること」のパラメーター「フィールド」は複数選択できます。商品追加に利用したフィールドをすべて選択してください。
以上でカスタマイズは完成です。
「kintoneアプリへ登録」して、動作を確認してみて下さい。レコード登録後に入力に用いたフィールドの値がクリアされるようになっている筈です。
まとめ
ルックアップのコピー元アプリにレコードを追加するカスタマイズは以上になります。このカスタマイズは、ルックアップを使っている場合には非常に出番の多いカスタマイズだと思われますので、是非お試し下さい。
「気になる点」として未解決である、「型番」をどうするかという問題については、kintoneを使っている組織により色々な方法、例えば型番を管理するアプリが別途あり、そこから取得する、など様々な対応方法が考えられます。
もし、単にユニークになればよいということであれば、やること「自動採番を行う」を利用する、という手もあります。これを利用したカスタマイズについては、次の記事が参考になりますので、併せてご覧ください。
ご不明な点がございましたら、チャットでお問い合わせください。














