v1.1.0 からスキャンリスト機能の仕様が変更になりました (2021/4/16更新)
必要な環境
- データベース
- Webサーバーソフト
- Wi-Fi又はインターネット環境
- バーコードまたはQRコード
- Webアプリ
- iOS/iPadOS端末
- Swan DB(このアプリ)
データベース
MySQLやPostgreSQLなど。
有償サポートです。
Webサーバーソフト
Apacheなど。
有償サポートです。
Wi-Fi又はインターネット環境
iOS/iPadOS端末からWi-Fiでアクセスできる環境ならSIMカードや携帯キャリアとの契約は不要です。インターネットを介さず社内LAN限定での接続も可能です。
有償サポートです。
バーコードまたはQRコード
一般的なバーコードとQRコードの両方の読み取りに対応しています。
QRコードはバーコードに比べて格納できる情報量が多く、英数字だけでなく日本語のデータも格納できます。またQRコードは一部が汚れたり破損してても「誤り訂正機能」があるため読み取り時に格納データを復元することが可能です。
バーコードは規格が多いので、Swan DBが対応してるか必ず確認してから採用してください。
有償サポートです。
iOS/iPadOS端末
iOS/iPadOS 13.0以上のバージョンのiPhoneやiPadが必要です。
iOS/iPadOSを最新にアップデートする場合は事前に動作確認してから業務でご使用ください。特にSwan DBの動作に支障がなければiOS/iPadOSのアップデートは行う必要はありません。
iOS/iPadOS、Swan DB共に自動アップデートはオフが推奨です。
バーコードやQRコードをスキャンするためには端末に背面カメラが必要です。フロントカメラには非対応です。一部のiPadやiPodでは暗い場所を照らすライト機能やバイブレーション機能が使えません。
また、iPadのマルチタスク機能でSwan DBと他のアプリを二画面でお使いの場合はカメラ機能が利用できません。現在のところこれは仕様です。
どの機種を選ぶかですが、携帯性を優先するならiPhone、表示したい情報量が多いならiPad、間をとってiPad miniやiPhone Pro Maxなどと用途に応じて選択してください。
Android端末には対応していません。
有償サポートです。
Webアプリについて
お使いのデータベースに接続できるWebアプリをPHPやPythonなどで作成します。このマニュアルではPHPで説明します。Swan DBサンプルのWebアプリもPHPで作成されています。
情報の取得はGET通信、データベースの更新はPOST通信が推奨です。POST画面ではリロードができません。
ブラウザ上での戻る進む機能もWebアプリ上に設置してSwan DB上ではオフが推奨です。
Swan DBはバージョンアップにより仕様が変更になる場合があります。変更によってはWebアプリの修正が必要になります。仕様変更はApp
Storeのバージョンアップ情報にてお知らせいたしますので、自動アップデートはせずにバージョンアップ情報を確認の上、手動でアップデートを行ってください。また、業務で使用する前には必ず動作確認を行ってください。
有償サポートです。
Webアプリでスキャンリスト機能を使う場合
スキャンリスト機能を使えば、例えば発注バーコードの読み取り後にデータベースから入庫リストをダウンロードし、個別スキャンを連続して行った後に一括で送信することが可能です(バッチ処理)。
この機能を使うには仕様に沿ったWebアプリの作成が必要になります。
以下、仕様の説明になります。
Swan DB内ブラウザがJavaScriptの"swan_subscan"コールバックを受け取るとスキャンリスト画面が起動します。コールバックの引数はJSON形式の連想配列になります。
PHPの例)
<?php
$dic_json = json_encode($php_array);
?>
<script>
window.webkit.messageHandlers.swan_subscan.postMessage(<?php echo $dic_json; ?>);
</script>
コールバックに渡すJSONの仕様)
{
"swan_master_id" : "21-03-2980",
"swan_subscan" : "barcode",
"swan_title" : "注文番号 21-03-2980",
"swan_url" : "https://www.polylize.com/Swan DB/sampledb/2-3_post.php",
"swan_count_title" : "入庫数",
"swan_sub_text_title" : "棚番",
"swan_list" : [
{
"id" : "A1234567",
"name" : "品名A",
"sub_text" : "1F-A212",
"count" : 30
},
{
"id" : "A1234568",
"name" : "品名B",
"sub_text" : "2F-B311",
"count" : 12
}
]
}
v 1.1.0 からスキャンリスト機能の仕様が変更になりました (2021/4/16更新)
"swan_count_title"と"swan_sub_text_title"の2つのキーが追加されました。
"count"の値に0が可能になりました。
キー名を変更をしたりキーが不足しますと正しく動作しません。この通りに作成してください。
QRコードスキャンの場合は"swan_subscan"の値を"barcode"から"qr"に変更してください。違いはカメラ画面の高さだけです。iPadの場合はどちらでも同じです。
"swan_master_id"は一つ前の画面で読み取ったコード情報です。リストを識別する注文番号や発注番号などになると思います。数値でもSwan DBでは文字列として扱います。
"swan_title"は画面上部に表示されるテキストです。作業者が認識しやすい情報にするとミスを防げます。
"swan_url"はPOSTするURLを指定してください。必ずPOST送信です。
"swan_count_title"のキーがある場合のみ"swan_list"の"count"が有効になります。"swan_count_title"の値がユーザーインターフェイスに表示されます。この例では入庫数で使用しています。
同様に、"swan_sub_text_title"のキーがある場合のみ"swan_list"の"sub_text"が有効になります。"swan_sub_text_title"の値がユーザーインターフェイスに表示されます。この例では棚番で使用しています。
"id"は更新変更したい対象を絞り込むためのユニーク(一意)な文字列です。数値でもSwan DBでは文字列として扱います。
"count"は操作する数です。文字列でも可能ですが有効な数字を入れてください。小数も可ですが指数表記は不可です。プラス・マイナス記号や3桁区切りのカンマも使えません。
"sub_text"は操作する文字列です。棚番などでお使いください。
"swan_count_title"と"swan_sub_text_title"は業務内容に応じて有効無効を決めてください。
swan DBの画面
読み取り終了後にSwan DBから指定のURLに送信されるデータもJSON形式の配列です。
Swan DBから送信するJSONの仕様)
{
"swan_master_id" : "21-03-2980",
"swan_list" : [
{
"id" : "A1234567",
"name" : "品名A",
"new_sub_text" : "1F-A212"
"new_count" : 0
},
{
"id" : "A1234568",
"name" : "品名B"
}
]
}
v 1.1.0 からスキャンリスト機能の仕様が変更になりました (2021/4/16更新)
"new_sub_text"のキーが追加されました。
"new_count"の値に0が可能になりました。
"new_count"と"new_sub_text"のキーの有無、値の有効性はSwan DBではチェックされませんので、Webアプリでのバリデーションが必要になります。
数の変更の有無に関わず数は"new_count"に格納されています。
文字列の変更の有無に関わずsub_textは"new_sub_text"に格納されています。
WebアプリでJSONを受け取りデータベースの更新が成功しましたら、またJSONの連想配列をページに表示してください。
PHPの例)
<?php
echo json_encode ($dic_success);
?>
更新成功JSONの仕様)
{
"swan_success" : " 2 件の更新が成功しました!"
}
JSONに"swan_success"キーがあればSwan DBは成功したと判断しその値をアラートに表示してスキャンリスト画面を閉じます。
更新が失敗した場合などはエラー内容を表示してください。JSON形式の配列やHTMLタグではなく平文で結構です。
PHPの例)
<?php
echo 'エラー:数が不正です';
?>
そのエラー内容がSwan DBに表示され作業者は送信が失敗したことに気付きます。
その他、有償サポートです。