警告
Moment.jsはメンテナンスモードになり、
日付処理できる代替ライブラリへの移行
が推奨されています。
代替ライブラリのひとつ
Luxon
については、
kintoneカスタマイズでの導入方法の紹介記事
があります。
はじめに
ユニテック・ジャパン株式会社のワイヤレスバーコードスキャナMS910とkintoneのモバイルアプリでトラッキングを実現するTipsを紹介します。
概要
本Tipsでは「バーコードマスター」と「バーコード送信アプリ」の2つのアプリを用意します。
MS910の詳細は
製品概要
を確認ください。
連携イメージ
- 「倉庫A」から「倉庫B」に商品を輸送します。
- kintoneの「バーコード送信アプリ」をモバイルで表示し、現在所在地を「倉庫B」に変更して輸送された商品のバーコードを読み取ります(文字列複数行フィールドに改行区切りで登録)
- レコードを保存すると「バーコードマスター」に登録されている商品の現在所在地が更新されます。
下準備
- MS910の購入および設定
- バーコード送信アプリの作成
- バーコードマスターの作成
MS910の購入および設定
製品概要
のクイック接続ガイドを参照しながら、お手持ちのモバイル端末とBluetooth接続をします。接続確認にはメモなどの文字入力可能なアプリを実行してください。
ターミネータ(バーコード読み取り時の最後に付加されるコマンドのこと)には「Enter」を設定してください。
バーコード送信アプリ
フォーム設定例
フィールドタイプ | フィールド名(例) | フィールドコード | 備考 |
---|---|---|---|
日付 | 日付 | date | |
チェックボックス | 送信済み | sentcheck | |
ユーザー選択 | 送信者 | sentuser | |
ドロップダウン | 送信する現在所在地 | location | オプション
|
文字列(複数行) | 送信するバーコード一覧 | barcode | 改行区切りでバーコードを入力するフィールドになります。 |
ラベル | - | - | 送信したデータ |
テーブル | Table | ||
日時 | 送信日時 | sentdate | テーブル内フィールド |
文字列(1行) | 送信したバーコード | sentbarcode | テーブル内フィールド |
文字列(1行) | 送信した所在地 | sentlocation | テーブル内フィールド |
JavaScriptカスタマイズ
「PC用のJavaScriptファイル」と「モバイル用のJavaScriptファイル」にそれぞれ同じファイルをアップします。
詳細設定から「JavaScript / CSSによるカスタマイズ」を開き、
Cybozu CDN
から次のライブラリとサンプル用のファイルを順番に指定します。
PC用のJavaScriptファイルおよびモバイル用のJavaScriptファイル
- jQuery
https://js.cybozu.com/jquery/2.2.4/jquery.min.js(version 2.2.4を利用) - Spin.js
https://js.cybozu.com/spinjs/2.3.2/spin.min.js(version 2.3.2を利用) - Moment.js
https://js.cybozu.com/momentjs/2.14.1/moment-with-locales.min.js(version 2.14.1を利用) - location.js
ソースコードは JavaScriptソースコード を参照
バーコードマスター
フォーム設定例
フィールドタイプ | フィールド名(例) | フィールドコード | 備考 |
---|---|---|---|
ドロップダウン | 現在所在地 | location | オプション
|
文字列(1行) | バーコード | barcode | |
文字列(1行) | 商品名 | itemname | |
添付ファイル | 商品画像 | itemimage | |
ラベル | - | - | 所在地の変更履歴 |
テーブル | Table | ||
日時 | 変更日時 | date | テーブル内フィールド |
ユーザー選択 | 変更者 | user | テーブル内フィールド ログインユーザーを指定 |
文字列(1行) | 変更後の所在地 | new_location | テーブル内フィールド |
JavaScriptカスタマイズ
バーコードマスターでは不要です。
完成イメージ(モバイル画面)
-
バーコードマスター レコード詳細画面の更新前
マスターの商品が大阪倉庫になっていることを確認します。 -
バーコード送信アプリ レコード追加画面①
「送信する現在所在地」フィールドを変更し、「送信するバーコード一覧」フィールドにフォーカスを当てた状態でMS910でバーコードをスキャンすると、スキャンしたバーコードが改行区切りで入力されます。
対象のバーコードをすべて入力した後、保存ボタンをタップします。 -
バーコード送信アプリ レコード追加画面②
バーコードマスターのレコードの更新が完了すると、アラートが表示されます。 -
バーコードマスター レコード詳細画面
現在所在地が変更され、サブテーブルの変更履歴が更新されていることを確認できます。
JavaScriptソースコード
|
|
ソースコードの説明
スピナーの表示
処理中にSpin.showSpinner()
とSpin.hideSpinner()
を使い分けることでスピナーの表示/非表示を制御します。
|
|
バーコードマスターからレコードの取得
「送信したバーコード一覧」フィールドの値を改行区切りで分け、「バーコードマスター」の「バーコード」フィールドと一致したすべてのレコードを取得します(参考:
複数のレコードを取得する
)。
appId
にはマスターのアプリ番号を記載してください。
|
|
取得したレコード情報の書き換え
取得したレコードの情報に現在所在地のデータと変更履歴用のサブテーブルのデータを追加します。
unshift()
を利用することでサブテーブルの一番上に最新の変更内容を表示できます。
|
|
バーコードマスターのレコード更新
変更したレコードの情報を基にバーコードマスターのレコードを更新します(参考:
複数のレコードを更新する
)。
成功時にはアラートで対象アプリの番号とレコード番号を表示します。
|
|
バーコード送信アプリのレコード更新用配列の作成
バーコード送信アプリ内に送信したバーコードを履歴としてサブテーブルに残します。
誤送信の場合や送信したかどうかを確認したいときに利用します。
|
|
イベント別関数の呼び出し
モバイルとPCの両方に保存実行前イベントでこれまでの関数を呼び出します。
一部処理に待ち合わせが必要なため、kintone.Promise
オブジェクトを使用しました。
その他には次の処理を加えています。
- 文字列複数行で入力されたバーコードをquery用に変換する処理
- バーコード送信アプリ内の「送信済み」フィールドにチェックを入れる処理と非活性にする処理
|
|
注意事項
- 本Tipsはkintoneのモバイルアプリ「kintone 1.0.7」、iOS 10.0.2で動作確認を行いました。
- MS910に関する制限や、対応端末に関しては 製品概要 を参照ください。
おわりに
いかがだったでしょうか?
今回のTipsではkintoneの標準のモバイルアプリとバーコードリーダーを活用し、トラッキングの実現を紹介しました。
kintoneの標準の機能を組み合わせることで安価に在庫管理や棚卸業務を実現できそうです。