受注から売上、請求、入金のような一連の流れがある業務で、取引先や商品など共通の情報を扱うものの、利用者の違いや情報の見やすさを考慮して、別アプリを作成し利用する事はよくありますよね。

その際に、何度も同じ事を入力する手間を省くため、kintoneのアプリアクションをお使いの方は多いのではないでしょうか?

アプリアクションを使えば、受注アプリで入力した情報を売上アプリにコピーしてレコードを作成する、といった事が可能になります。


アプリアクションの例:


2019年8月のkintoneのアップデートで、標準機能のアプリアクションでテーブルの内容はコピーできるようになっていますが、Customineでも、テーブルごとコピーしてレコードを作成することが出来ます。


標準機能との違いは以下の点です。

  • 実行すると、レコードを作成して保存するところまで自動で行う
  • ボタンを押す以外のタイミングでも実行させることができる
  • 単純に値をコピーするだけでなく、値を結合や計算など自由に変換してセットすることができる


Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。


アプリのフォーム

今回は、「購買部用商品発注」アプリと「商品検収」アプリを用意します。


こんな場面を想定しています:

  • 販売する商品の購入は各部署が行わず、購買部が一括で購入している

  • 各部署は購入したい商品を購買部に申請し、購買部が発注後、届いた商品を各部署で検収する

  • 購買部用商品発注アプリは購買部に所属するユーザーのみが利用可能で、商品検収アプリは購買部に発注を依頼した各部署のユーザーが使用する

  • 仕入額は検収時は不要なので、商品検収アプリに金額はコピーしないように設定している


購買部用商品発注アプリ:

購買部に所属するユーザが使用する想定のアプリです。

テーブルに発注する商品の明細を登録します。仕入額となる金額の情報も指定しています。

なお、テーブルのフィールドコードは「明細」と指定しています。


商品検収アプリ:

購買部に商品の発注を依頼したユーザが使用する想定のアプリです。

購買部用商品発注アプリからコピーされた商品の明細がテーブルにコピーされます。

金額の情報はなく、代わりに商品の受領が完了したか否かを管理する「受領」列を追加しています。

なお、テーブルのフィールドコードは「明細」と指定しています。


※各アプリのフィールド名とフィールドコードはすべて同じに設定しています。


やりたいこと

「購買部用商品発注」アプリの詳細画面に「発注完了・検収データ作成」ボタンを追加し、ボタンをクリックすると「商品検収」アプリにテーブルの内容も含めたレコードを追加する。


Customineの設定

Customineに「購買部用商品発注」アプリのカスタマイズを追加します。

なお、ボタンの配置、テーブルコピー、レコードの追加をすべてCustomineで行いますので、kintoneアプリ側でのアプリアクションの作成は不要です。


詳細画面上部に「発注完了・検収データ作成」ボタンを配置する


やること

アプリアクションのように、詳細画面でボタンを押すと別アプリ(商品検収アプリ)にレコード追加されるようにしたいので「ボタンをメニュー位置に配置する」を選択します。

場所は「レコード詳細メニューの上側」を選択してください。

これ以外の場所は一覧画面用なので、指定するとアプリの実行時にエラーになります。

ラベルには「発注完了・検収データ作成」と指定しました。


条件

詳細画面を開いた時にボタンを表示したいので「詳細画面を表示した時」を指定します。


レコードを追加して良いか確認するダイアログを表示する


やること

利用者に確認してからレコードを追加したいので「確認ダイアログを表示する」を指定します。

メッセージ入力には「検収データの作成を行ってよろしいですか?」と指定しました。

OKボタンとキャンセルボタンの名前は、そのまま変更していません。


条件

詳細画面上部に表示したボタンを押したときに処理を行いたいので「ボタンを押した時」を指定します。

ボタンは、ボタンを追加したアクションのアクションNo「1」を指定します。


購買部用商品発注アプリのテーブルをレコードとして取得する


やること

購買部用商品発注アプリで、詳細画面を開いているレコードのテーブルを取得します。

その際、テーブルのデータを扱いやすくするためにレコードとして取得したいので「テーブル行をレコードとして取得する」を指定します。

テーブルは、他のアプリに持っていきたいテーブルのフィールドコード「明細」、空の行を取得するかどうかは「空の行は取得しない」に設定しました。


条件

ダイアログで「OK」が押された時だけ続きの処理を行いたいので「確認・入力ダイアログで「OK」を押した時」を指定します。

確認・入力ダイアログアクションは、ダイアログを表示したアクションのアクションNo「4」を指定しました。


商品検収アプリにレコードを追加しつつテーブルもコピーする


やること

購買部用商品発注アプリの情報を、テーブルも含めて商品検収アプリの新しいレコードにコピーしたいので「テーブルデータをセットしたレコードを追加する」を指定します。

各項目は下記のように設定しました。

  • 追加先アプリ:商品検収

  • レコードに対するマッピング:購買部用商品発注アプリの発注コードを商品検収の発注コードにセット

  • 商品検収アプリの対象となるテーブルのフィールドコード:明細

  • テーブルの元になるレコード:購買部用商品発注アプリのテーブルをレコードに変更したアクションのアクションNo「2」

  • テーブルに対するマッピング:NO、発注先、品名、数量を指定

  • 画面遷移:作成したレコードの編集画面を別タブで開く(アプリアクションと動きを揃えています)


条件

購買部用商品発注アプリの明細テーブルをレコードに変換するアクションが完了してから処理を行いたいので「他のアクションの実行が完了した時」を指定します。

アクションNoは「2」を指定しました。



これですべてのカスタマイズは完了です。

「kintoneアプリへ登録」し、動作を確認してみましょう!


購買部用商品発注アプリの詳細画面で「発注完了・検収データ作成」ボタンを押すと、ダイアログが表示されます。


ダイアログの「OK」を押すと、商品検収アプリが別タブで開きます。

テーブルの内容も無事コピーされています。


まとめ

別アプリにテーブルの内容もコピーするカスタマイズ、いかがでしたでしょうか。

今回は例としてわかりやすいのでアプリアクションに近い機能を作る例をお見せしましたが、実行のタイミングやセットの仕方を変えれば、いろいろな応用の仕方があるかと思います。

アプリアクションとは違った強みがあるので、アプリアクションのようなことをしたいけれど、標準機能では要件を満たさない、という場合にはこちらの機能を応用することを検討してみてください!