バーコード読み取りの仕組み

「RayKit」アプリを使ってスマートフォンのカメラでバーコードを読み取り、Salesforceと連携する仕組みを説明します。

上の図はクリック(タップ)すると拡大できます。

読み取り機能の利用シーン

既存のSalesforce組織とスマートフォンのカメラを使って、バーコードを使った業務の効率化やユーザ体験の向上を低コストで実現可能です。たとえば、次のようなシーンで活用できます。

  • カンファレンスや展示会の主催者が、来場者に対して事前にQRコードで受講票を発行します。来場時に受付担当者が受講票をスマートフォンのカメラでスキャンすると、出席状況をリアルタイムにSalesforceに反映できます。
  • 検品担当者が入荷した資材や在庫に貼り付けられたバーコードをスマートフォンのカメラで読み取り、その場でSalesforceに結果を反映できます。倉庫とデスクを行き来せずにその場で検品を完了できます。

なお、スマートフォンに限らずタブレット(iPad)でも使用できます。

読み取り機能の操作の流れ

Salesforceで読み取りの画面を開発した後、そのSalesforce画面をスマートフォンの専用アプリから起動します。専用アプリは、Salesforceアプリ(旧称Salesforce1アプリ)ではなく、「RayKit(レイキット)」というアプリを使います。

RayKitアプリを使うのは、スマートフォンのカメラとの密接な連携を実現するためです。アプリからSalesforceにログインした後の画面操作はほぼ同じになります。

  1. 開発者がSalesforceの画面に「読み取り」ボタンを設置する。
  2. ユーザがスマートフォンアプリをインストールする。
  3. ユーザがスマートフォンアプリからSalesforceにログインする。
  4. ユーザがスマートフォンアプリからSalesforceの画面を表示する。
  5. ユーザが読み取り操作を実行する。
  6. Salesforceに読み取り結果が格納される。

手順をチャートにしたものが次の図です。

sequenceDiagram participant ユーザ participant RayKitアプリ participant Salesforce ユーザ->>RayKitアプリ: スマートフォンでアプリを起動 Salesforce->>ユーザ: Salesforceログイン画面を表示 ユーザ->>RayKitアプリ: Salesforceにログイン Salesforce->>ユーザ: Salesforce1のホーム画面を表示 ユーザ->>RayKitアプリ: Salesforce1上のページを開く ユーザ->>RayKitアプリ: 読み取りボタンをタップ RayKitアプリ->>ユーザ: カメラ画面を表示 ユーザ->>RayKitアプリ: カメラでバーコードを読み取り RayKitアプリ->>Salesforce: 読み取ったデータをSalesforceに渡す Salesforce-->RayKitアプリ: 読み取ったデータを判定 Salesforce->>ユーザ: 判定の結果ページを表示

読み取り機能の開発の流れ

「RayKitアプリ」と「Salesforceアプリ(旧称Salesforce1アプリ)」とスマートフォンのWebブラウザからアクセスする「Salesforce1 Platform」の違いに注意してください。

いずれの場合でも、モバイルに最適化されたSalesforceの画面を表示できます。しかし、スマートフォンのカメラを通してバーコードをスキャンし、結果をやりとりできるのは「RayKitアプリ」を使った場合だけです。

graph TD; A[スマートフォンのホーム画面] B[RayKitアプリ] C[Salesforceアプリ] D[ブラウザからSalesforceを開く] E[Salesforce1のログイン画面] F[Salesforce1のメニュー] G[Visualforceページ] H[カメラを使ったバーコードの読み取りはRayKitアプリのみ] A --> B A --> C A --> D B --> E C --> E D --> E E --> F F --> G G --> H
  1. 読み取りたいバーコードの種類が、RayBarcodeによってサポートされていることを確認する。読み取り可能なバーコードの種類は、このページの「読み取り可能なバーコードの種類」を参照する。
  2. 使用可能なスマートフォンが、RayBarcodeのサポート対象のOSやバージョンであることを確認する。
  3. Salesforceのライセンスと、RayBarcodeのライセンスを持っていることを確認する。トライアル版でも可。
  4. VisualforceページとApexクラスを使って読み取り操作の画面を開発する。
  5. VisualforceページをSalesforce1にアプリとして表示する。
  6. スマートフォンに「RayKit」アプリをインストールする。
  7. 「RayKit」アプリからSalesforceにログインする。
  8. SalesforceからVisualforceページを表示する。

なお、Visualforceページの代わりにLightningアプリで開発することもできます。

以下は、混同しがちなため注意が必要なポイントです。以下の表のチェックマーク(✔)は対応していることを示します。

アプリごとのカメラの違い:

アプリの種類 手順1.カメラから
バーコードの読み取り
手順2.Salesforceに
読み取りデータを送信
スマートフォン内蔵の
「カメラ」アプリ
機種依存
salesforce.com, inc.が提供する
「Salesforce」アプリ
グレープシティが提供する
「RayKit」アプリ

アプリごとのSalesforceの違い:

アプリの種類 手順1.
Salesforce
へのログイン
手順2.
Salesforce1
画面の利用
手順3.
Salesforce上の
バーコード読み取り
アプリの利用
スマートフォン内蔵の
「カメラ」アプリ
スマートフォン内蔵の
ブラウザアプリ
salesforce.com, inc.が提供する
「Salesforce」アプリ
グレープシティが提供する
「RayKit」アプリ

アプリ開発の違い:

上の図はクリック(タップ)すると拡大できます。

  • スマートフォン上で動くアプリ:「RayKit」アプリが提供されているので、Salesforce開発者はスマートフォンにインストールするアプリを作る必要はありません。
  • Salesforce上で動くアプリ:VisualforceやLightningを使って、Salesforce開発者がバーコード読み取り機能を持った任意のアプリを開発できます。

読み取り可能なバーコードの種類

スマートフォンのバックカメラを使う場合、次のバーコードおよび二次元コードの読み取りに対応しています。フロントカメラ(インカメラ)の場合はQRコード(QRCode)読み取りのみ対応します。

  • Code39
  • Code93
  • Code128
  • DataMatrix
  • NW7(別名:CodabarまたはCodeabarまたはCode2of7)
  • ITF
  • JAN8(別名:EAN8)
  • JAN13(別名:EAN13)
  • QRCode
  • GS1DataBar OmniDirectional(別名:RSS-14)
  • GS1DataBarExpanded(別名:RSS-Expanded)

次のバーコードの読み取りに試験的に対応しています。

  • Aztec
  • PDF417

技術の選択

プログラミング不要でバーコードの読み取りデータを処理したい場合は、プロセスビルダーで読み取りアプリを作ることができます。

開発者の場合はVisualforceページによる開発またはLightningアプリによる開発を選択できます。どちらを選んでも、バーコードの読み取りはほぼ同じ機能を使用できます。開発時の要件に応じて、最適なほうを選択してください。たとえば、Lightningアプリの場合、「私のドメイン」を有効化する必要がある点に注意してください。

バーコードの読み取り画面は、1つのボタンとして提供されます。ユーザがボタンをクリックするとカメラ画面が表示され、バーコードを読み取り可能な状態になります。バーコードの読み取りに成功すると、元の画面に戻り、読み取られた値が返ります。開発者は読み取りが成功した値の処理に専念できます。

カメラアプリのQRコード自動認識機能との違い

スマートフォンによっては、カメラアプリでQRコードを自動認識して読み取り、URLからWebサイトを表示したり、QRコードからデータを取り込んだりする機能が内蔵されています。たとえばiOS 11ではカメラアプリでQRコードを読み取ることができます。RayBarcodeはカメラアプリのQRコード読み取り機能ではなく、「RayKit」アプリの独自のバーコード読み取り機能を使用します。このため、読み取り時の画面、操作や機能は異なります。

一般にスマートフォンのカメラアプリはQRコード以外の読み取りに対応しませんが、RayKitアプリはQRコード以外のさまざまなバーコードの読み取りにも対応しています。

RayKitアプリは、アプリとして追加でインストールして使用するため、スマートフォンの機種ごとのカメラアプリの機能の違いを気にする必要がありません。iPhoneとAndroidのように異なるスマートフォンであっても同じ操作で利用できます。カメラアプリでは読み取ったバーコードのデータがSalesforce上のデータに適合するかどうかを確認する仕組みがありませんが、RayKitアプリでは可能です。

日本語の読み取り

RayKitアプリで読み取るQRコードに漢字、全角ひらがな、全角カタカナ、全角の英数字などを含む場合、QRコードの値がShift-JIS(シフトJIS)またはUTF-8でエンコードされている必要があります。

仕様と制限

RayBarcodeのバーコードの読み取り機能の仕様と制限です。

  • オフラインでは使用できません。Salesforceに接続して読み取ったデータを保存するために、スマートフォンまたはタブレットはインターネットに接続している必要があります。
  • 「RayKit」アプリのiOS版とAndroid版には機能の違いはありません。
  • 「RayKit」アプリはポートレート(縦長)のみ対応です。ランドスケープ(横長)には対応していません。
  • 「RayKit」アプリはSalesforce1の画面を表示できますが、「Salesforceアプリ」の機能をすべてサポートするわけではありません。具体的には、オフラインでの動作や通知、ファイルの表示はサポートされません。
  • 複数のバーコードをカメラ画面に収まるように並べて撮影し、1回の操作で取り込むことはできません。1つのバーコードにつき、1回ずつ読み取りの操作が必要です。ただし、連続読み取り機能を使うと毎回「読み取り」ボタンをタップせずに読み取れます。
  • バーコードを撮影して写真として保存することはできません。証跡として写真が必要な場合はスマートフォン内蔵のカメラアプリを別途使用して写真に保存したり、スマートフォンのスクリーンショット撮影機能で画面を写真に保存してください。
  • バーコードを1回ずつ読み取るか、連続して読み取るかどうかは開発者が事前に設定します。開発者が2種類のボタンを用意してそれぞれの操作をユーザに提供することも可能です。
  • バーコードの読み取り成功時と失敗時のフィードバック(ビープ音)のカスタマイズはできません。
  • ビープ音の音量はiOSの場合、iOSの「設定 > サウンド > 着信音と通知音」の影響を受けます。iOSのこの設定は、iPhoneのボリュームボタンを操作しても調節されません。
  • 読み取り可能な距離はスマートフォンのカメラ性能に依存します。
  • 読み取りのカメラ画面をカスタマイズすることはできません。組み込みで赤い水平線が表示されますが、線の色や太さを変えることはできません。
  • RayKitアプリの「設定」と「アカウント管理」の表示は、スマートフォンの言語設定が反映されます。Salesforceの言語設定は反映されません。
  • RayKitアプリ自体はSalesforceのAPI要求数を消費しませんが、連続読み取りを制御するためにWebServiceを実装すると、WebServiceの呼び出し回数だけAPI要求数が消費されます。参考:連続読み取り機能の開発
  • 暗所での読み取りのため、LED(フラッシュライト)を自動点灯する機能はありません。LEDの動作は、ユーザが読み取りのカメラ画面で「Flash」をタップして手動で切り替えます。
  • フロントカメラでの読み取りには制限があり、QRコードのみに対応します。QRコード以外の読み取りはバックカメラを使用してください。
Copyright © 2018 GrapeCity inc. All rights reserved.