注意
このカスタマイズで利用している kintone JS SDK は現在推奨されていません。
今後は
kintone JavaScript Client (@kintone/rest-api-client) を利用するように書き換えてください。
はじめに
今回は以前紹介させていただいた「
bulkRequest で複数アプリの一括処理(在庫管理や予約申請など)」を kintone アプリに実装します。
理解しやすいように在庫アプリと出庫アプリの 2 つを利用します。
「出庫アプリから XX 個出庫すると在庫アプリの在庫が XX 個減る」というカスタマイズを行います。
また、
kintone JS SDK
を使うことで REST API 部分のコードを簡素化しています。
非常に便利ですのでこれからコードを書く人はぜひ使ってくださいね。
デモ環境
デモ環境
で実際に動作を確認できます。
ログイン情報は
cybozu developer network デモ環境 で確認してください。
完成イメージ
まずは、完成イメージからいきましょう!
在庫アプリはこのような状態です。
出庫アプリに出庫数を登録します。
すると、出庫アプリには出庫数が登録されます。
また、在庫アプリからは在庫数が減りました!
在庫が足りない場合は、このようなエラーを表示します。
①「在庫数の確認時」と②「在庫数の変更時」のリビジョンが異なる場合(①と②の間に在庫のデータが更新された場合)はこのようなエラーを表示します。
これで安全に在庫管理ができますね。
kintone の設定
「在庫」アプリの作成
フィールド名 | フィールドタイプ | フィールドコード | 備考 |
---|---|---|---|
商品コード | 文字列(1 行) | itemCode | 必須項目にする 値の重複を禁止する |
商品名 | 文字列(1 行) | itemName | 必須項目にする |
在庫数 | 数値 | stockNum | 必須項目にする |
「出庫」アプリの作成
フィールド名 | フィールドタイプ | フィールドコード | 備考 |
---|---|---|---|
出庫先 | 文字列(1 行) | destination | |
商品コード | ルックアップ | itemCode | 必須項目にする 関連付けるアプリ:在庫アプリ コピー元のフィールド:商品コード ほかのフィールドのコピー:「商品名」に「在庫アプリの商品名」 |
商品名 | 文字列(1 行) | itemName | |
出庫数 | 数値 | pickNum | 必須項目にする |
「出庫」アプリのJS/CSS設定
「アプリの設定 > JavaScript / CSS でカスタマイズ」の「PC 用の JavaScript ファイル」に以下の URL/ファイルを設定します。
- kintone-js-sdk.min.js
GitHub にアクセスして、zip ファイルをダウンロードします。
v0.4.2 より前のバージョンを利用してください。
ダウンロードした Zip ファイルを解凍して、dist 以下の kintone-js-sdk.min.js を利用してください。 - 以下のサンプルコードをエディタにコピーして、ファイル名を「sample.js」、文字コードを「UTF-8N」で保存、アップロードします。
ファイル名は任意ですが、ファイルの拡張子は「js」にしてください
|
|
ポイントは以下の 3 つです!
- bulkRequest(kintoneBulkRequest)を使って、2 つのアプリ(在庫、出庫)を同時に操作します。
- bulkRequest による在庫アプリの更新時にはリビジョンを指定します。
- bulkRequest が成功した場合は「return false」として、レコードの登録自体はキャンセルします。(67 行目)
終わりに
リビジョンの使い方わかりましたでしょうか。
サンプルコードはレコードの登録、出庫にしか対応していません。
ぜひレコードの編集や入庫にも対応させてみてください。
変更履歴
- 2019/06/10
- 利用ライブラリを kintone Utility Library for JavaScript から kintone JS SDK に変更
この Tips は、2019 年 5 月版 kintone で動作を確認しています。