バーコード読み取りの仕組み
バーコードを読み取ってSalesforceと連携する仕組みを説明します。バーコードの読み取りにはRayBarcode Readerモバイルアプリケーションという専用のiOS/Androidのアプリを使用します。RayBarcode Readerモバイルアプリケーションで読み取った結果は、開発した画面(VisualforceやLightning Auraコンポーネント、Lightning Webコンポーネントなど)と連携することができます。
読み取り操作の流れ
読み取り操作の基本的な流れは以下となります。
- Salesforceモバイルアプリケーションから開発した画面(VisualforceやLightning Auraコンポーネント、Lightning Webコンポーネントなど)を起動する。
- ユーザーが画面上の読み取りボタンをタップする。
- RayBarcode Readerモバイルアプリケーションが起動される。
- バーコードを読み取る。
- バーコードの読み取りが終わったら、自動でSalesforceモバイルアプリケーションへ戻る。
この読み取り操作の流れを、一回読み取り機能と連続読み取り機能のそれぞれの操作に分けて
さらに詳しく説明します。
一回読み取り機能の操作の場合
次のシーケンスは、一回読み取り機能の操作の流れを表したものになります。
ユーザーがスマートフォンを使ってバーコードを読み取るまでの操作は、開発方法の違いに関わらず基本的に同じです。
sequenceDiagram
participant ユーザー
participant Salesforceアプリ
participant RayBarcode Readerアプリ
participant Salesforce
ユーザー->>Salesforceアプリ: スマートフォンでアプリを起動
Salesforceアプリ->>ユーザー: Salesforceログイン画面を表示
ユーザー->>Salesforceアプリ: Salesforceにログイン
Salesforceアプリ->>ユーザー: Salesforceのホーム画面を表示
ユーザー->>Salesforceアプリ: バーコードの読み取り開始画面を選択
Salesforceアプリ->>ユーザー: バーコードの読み取り開始画面を表示
ユーザー->>Salesforceアプリ: 画面上の読み取りボタンをタップ
Salesforceアプリ->>RayBarcode Readerアプリ: RayBarcode Readerアプリを起動
RayBarcode Readerアプリ->>ユーザー: Salesforceログイン画面を表示 ※1
ユーザー->>RayBarcode Readerアプリ: RayBarcode Readerにログイン
RayBarcode Readerアプリ->>ユーザー: カメラ画面を表示
ユーザー->>RayBarcode Readerアプリ: バーコードを読み取る
RayBarcode Readerアプリ->>Salesforce: 読み取ったデータをSalesforceに渡す
RayBarcode Readerアプリ->>Salesforceアプリ: Salesforceアプリに戻る
Salesforce->>Salesforceアプリ: 読み取り完了後にonScanComleteの処理
※1 RayBarcode Readerモバイルアプリケーションにユーザーがログインしていなかった場合のみ、Salesforceログイン画面が表示されます。
連続読み取り機能の操作の場合
次のシーケンスは、連続読み取り機能の操作の流れを表したものになります。
連続読み取りでは、WebServiceを使って読み取りを制御しているため、上記の「一回読み取り機能の操作の流れ」とは少し異なります。
ユーザーがスマートフォンを使ってバーコードを読み取るまでの操作は同じですが、その後の読み取ったデータをcontinuousScanCallbackで判定するという相違点があります。
sequenceDiagram
participant ユーザー
participant Salesforceアプリ
participant RayBarcode Readerアプリ
participant Salesforce
ユーザー->>Salesforceアプリ: スマートフォンでアプリを起動
Salesforceアプリ->>ユーザー: Salesforceログイン画面を表示
ユーザー->>Salesforceアプリ: Salesforceにログイン
Salesforceアプリ->>ユーザー: Salesforceのホーム画面を表示
ユーザー->>Salesforceアプリ: Salesforce上のバーコードの読み取り開始画面のアプリを選択
Salesforceアプリ->>ユーザー: バーコードの読み取り開始画面を表示
ユーザー->>Salesforceアプリ: 画面上の読み取りボタンをタップ
Salesforceアプリ->>RayBarcode Readerアプリ: RayBarcode Readerアプリを起動
RayBarcode Readerアプリ->>ユーザー: Salesforceログイン画面を表示 ※1
ユーザー->>RayBarcode Readerアプリ: RayBarcode Readerにログイン
RayBarcode Readerアプリ->>ユーザー: カメラ画面を表示
ユーザー->>RayBarcode Readerアプリ: バーコードを読み取る
RayBarcode Readerアプリ->>Salesforce: 読み取ったデータをSalesforceに渡す
Salesforce->>RayBarcode Readerアプリ: 読み取ったデータをcontinuousScanCallbackで判定
RayBarcode Readerアプリ->>ユーザー: 判定結果を読み取り中のカメラ画面に表示
ユーザー->>RayBarcode Readerアプリ: 再度の読み取り(繰り返し)
RayBarcode Readerアプリ->>Salesforce: 読み取ったデータをSalesforceに渡す(繰り返し)
Salesforce->>RayBarcode Readerアプリ: 読み取ったデータをcontinuousScanCallbackで判定(繰り返し)
RayBarcode Readerアプリ->>Salesforceアプリ: Salesforceアプリに戻る
Salesforce->>Salesforceアプリ: 最後の読み取り完了後にonScanComleteの処理
※1 RayBarcode Readerアプリにユーザーがログインしていなかった場合のみ、Salesforceログイン画面が表示されます。
読み取り可能なバーコードの種類
スマートフォンのバックカメラを使う場合、次のバーコードおよび二次元コードの読み取りに対応しています。フロントカメラ(インカメラ)の場合はQRコード(QRCode)読み取りのみ対応します。
- Code39
- Code93
- Code128
- DataMatrix
- NW7(別名:CodabarまたはCodeabarまたはCode2of7)
- ITF
- JAN8(別名:EAN8)
- JAN13(別名:EAN13)
- QRCode
- GS1DataBar OmniDirectional(別名:RSS-14)
- GS1DataBarExpanded(別名:RSS-Expanded)
次のバーコードの読み取りに試験的に対応しています。
日本語の読み取り
RayBarcode Readerモバイルアプリケーションで読み取るQRコードに漢字、全角ひらがな、全角カタカナ、全角の英数字などを含む場合、QRコードの値がShift-JIS(シフトJIS)またはUTF-8でエンコードされている必要があります。
バーコードの読み取りにあたっての仕様と制限
RayBarcodeのバーコードの読み取り機能の仕様と制限です。
- オフラインでは使用できません。Salesforceに接続して読み取ったデータを保存するために、スマートフォンまたはタブレットはインターネットに接続している必要があります。
- RayBarcode ReaderモバイルアプリケーションのiOS版とAndroid版には機能の違いはありません。
- RayBarcode Readerモバイルアプリケーションはポートレート(縦長)のみ対応です。ランドスケープ(横長)には対応していません。
- 複数のバーコードをカメラ画面に収まるように並べて撮影し、1回の操作で取り込むことはできません。1つのバーコードにつき、1回ずつ読み取りの操作が必要です。ただし、連続読み取り機能を使うと毎回「読み取り」ボタンをタップせずに読み取れます。
- バーコードを撮影して写真として保存することはできません。
- バーコードの読み取り成功時と失敗時の音は、カスタマイズできません。
- 読み取り音の音量を変更することができます。ただし、使用端末の機種やOSバージョンによって次の設定方法と違う場合があります。
- iOSの場合、「設定 > サウンド > 着信音と通知音」で変更します。「ボタンで変更」をオンにすることで、ボリュームボタンで調節するのも可能です。
- Androidの場合、「設定 > 音 > 着信音の音量」で変更します。
- 読み取り可能な距離はスマートフォンのカメラ性能に依存します。
- RayBarcode Readerモバイルアプリケーションの「設定」と「アカウント管理」の表示は、スマートフォンの言語設定が反映されます。Salesforceの言語設定は反映されません。
- RayBarcode Readerモバイルアプリケーション自体はSalesforceのAPI要求数を消費します。さらに連続読み取りを制御するためにWebServiceを実装すると、WebServiceの呼び出し回数だけAPI要求数が消費されます。参照:WebServiceを使った連続読み取り機能の開発
- 暗所での読み取りのため、LED(フラッシュライト)を自動点灯する機能はありません。LEDの動作は、ユーザーが読み取りのカメラ画面でFlashアイコンをタップして手動で切り替えます。
- フロントカメラでの読み取りには制限があり、QRコードのみに対応します。QRコード以外の読み取りはバックカメラを使用してください。
- RayBarcode Readerモバイルアプリケーションは、読み取った結果を一時的にSalesforceのScanResultオブジェクトに格納しますが、Salesforceアプリ側へ読み取った結果を正常に送信すると、そのデータは消去されます。Salesforce画面がリロードされてしまうなど結果を正常に送信できなかった場合、ScanResultオブジェクトからデータは消去されません。この場合、次回別のスキャンがトリガーされると、期限切れの読み取り結果は1時間後にすべて消去されます。
- バーコードを1回スキャンすると、RayBarcode Readerモバイルアプリケーションは読み取ったデータを判定するためSalesforce側にデータを送信します。Salesforceのサーバーやネットワークのエラー発生が原因でデータの送信に失敗した場合は、エラーダイアログが表示されます。
- Android端末で、読み取りを行う前に自動回転機能をオフに設定してください。自動回転機能をオンにすると、Salesforceモバイルアプリケーションの仕様上読み取り後の挙動が不正になる場合があります。その結果として、画面表示やオブジェクトの更新が不正になる場合があります。
- RayBarcode Readerモバイルアプリケーションを起動した後、通信環境が一時切断され再接続した場合、読み取り後の挙動が不正になる場合があります。その結果として、画面表示やオブジェクトの更新が不正になる場合があります。この現象の原因は、インターネットへ再接続によりSalesforceモバイルアプリケーションが強制敵にページをリフレッシュさせて、読み取りが完了した後の処理などが正常に行われないからです。
もし、インターネットへの再接続を行った場合は、Salesforceアプリケーションへ戻って再読み取りしてください。
- iOS端末でLightning AuraコンポーネントとLightning Webコンポーネントを使用し読み取り操作を行う場合、Salesforceの仕様上、Salesforceモバイルアプリがバックグラウンドになってから一定の時間が立つと、Salesforce画面がリフレッシュされ、スキャンに成功しても読み取った結果が表示できなくなります。Experience Cloudの場合は5秒前後、それ以外のSalesforce環境の場合は10~15秒が目安です。
連続読取りなど長時間の読み取り作業を行う場合は、Visualforceを使った読み取りアプリの開発、または、Android端末を利用するようにしてください。
- 手動でRayBarcode ReaderモバイルアプリケーションからSalesforceモバイルアプリケーションに切り替えてRayBarcode Readerモバイルアプリケーションが待機状態になっている場合や、インターネット接続不良などが原因でSalesforceモバイルアプリケーション側へ読み取った結果を送信するのに時間が掛かる場合に、Salesforceモバイルアプリケーションに黄色の点滅が表示されます。
この点滅表示は、RayBarcode Readerモバイルアプリケーションがバックグラウンドで実行中であることをユーザーにお知らせするためのもので、読み取り動作には影響ありません。また、RayBarcode Readerモバイルアプリケーションが終了されたりデータが準備出来たら画面から自動に点滅表示が消えます。
- 連続読み取りの途中使用するカメラを切り替えする場合は、iOS端末を利用するようにしてください。Android端末だと、カメラ切り替え前に読み取ったスキャン結果がクリアされてしまいます。
Copyright © 2024 MESCIUS inc. All rights reserved.