プロセスビルダーでバーコード読み取り機能を実現!

本記事は、バーコード読み取りをプロセスビルダー、つまりコードを伴う開発の必要がなく、バーコードの読み取り機能を実現する方法について記載しています。バーコードの読み取り機能でできることの詳細は前回記事をご覧ください。前回記事でご紹介したイベントの出欠確認のユースケースを例に、同じ動作をプロセスビルダーを使って実現したいと思います。

ユースケースのシナリオ(イベントの出欠確認)

ユースケースのシナリオは以下になります。

(1)参加証にあるQRコードを読み取る。参加証にはキャンペーンメンバーのIDをQRコード化したものを張り付けてあります。

受講票
受講票

(2)QRコードから読み取ったキャンペーンメンバーのIDを使ってキャンペーンメンバーのレコードを取得する。
(3)取得したキャンペーンメンバーレコードの「状況(Status)」を「出席」に更新する。

f:id:ray_grapecity:20200323140447p:plain

設定方法

プロセスビルダーを使った読み取り機能の設定方法は以下になります。

1.事前準備

ご自身のセールスフォース環境にRayBarcodeをインストールします。

raykit.grapecity.com

また、読み取り操作を行うスマートフォン端末にRayBarcode専用モバイルアプリをインストールしてください。

RayBarcode Reader

RayBarcode Reader

  • GrapeCity inc.
  • ビジネス
  • 無料

apps.apple.com

play.google.com

なお、プロセスビルダーを使った読み取り機能ではLightningコンポーネントを使用するため、ご自身のセールスフォース環境の「私のドメイン」を有効化する必要があります。

2.読み取り画面をモバイルナビゲーションに追加

RayBarcodeをセールスフォース環境にインストールすると「GCBarcode Scanner」というLightningコンポーネントタブが作成されます。このタブが読み取り画面になります。

「GCBarcode Scanner」というLightningコンポーネントタブが作成されます
「GCBarcode Scanner」というLightningコンポーネントタブが作成されます

3.バーコードを読み取った後のプロセスルールの作成

RayBarcodeをセールスフォース環境にインストールすると「BarcodeScanProcessRule」というカスタムメタデータ型が作成されます。このカスタムメタデータにバーコードを読み取った後のプロセスルールを規定します。例えば、「読み取った値からどのオブジェクトのどの項目とマッピングを行い、更新対象のレコードを取得するか」、や「更新処理で使用する項目はどれか」といったことを規定します。

「BarcodeScanProcessRule」というカスタムメタデータ型が作成されます
「BarcodeScanProcessRule」というカスタムメタデータ型が作成されます

今回のユースケースでは、キャンペーンメンバーのIDをキーにマッピングを行い更新対象のレコードを取得します。更新処理は「状況」項目を「出席」に変更するだけなので更新処理で使用する他の項目はありません。[レコードの管理]をクリックし、さらに[新規]ボタンをクリックするとカスタムメタデータを新規作成する画面になります。以下のように設定します。

表示ラベル キャンペーンメンバー
BarcodeScanProcessRule名 CampaignMember
BarcodeValueMapping CampaignMember .Id

表示ラベルとBarcodeScanProcessRule名は任意の値でかまいません。BarcodeValueMappingはオブジェクトも含んだAPI名を指定する必要があり、キャンペーンメンバーIDの場合は上記のようになります。

BarcodeScanProcessRuleの詳細
BarcodeScanProcessRuleの詳細

BarcodeScanProcessRuleの詳細についてはこちらのオンラインヘルプをご参照ください。

docs.raykit.grapecity.com

4.プロセスビルダーを作成する

RayBarcodeをセールスフォース環境にインストールすると「BarcodeScanResult」というカスタムオブジェクトが作成されます。「GCBarcode Scanner」Lightningコンポーネントタブで読み取りを実行すると「BarcodeScanProcessRule」で規定した設定に従って「BarcodeScanResult」オブジェクトにレコードが作成されます。

BarcodeScanResultの詳細についてはこちらのオンラインヘルプをご参照ください。

docs.raykit.grapecity.com

プロセスビルダーでは、「BarcodeScanResult」オブジェクトにレコードが作成されたことをトリガーとして、実際に行いたい動作を規定します。今回のユースケースであれば、オブジェクト作成をトリガーとしたキャンペーンメンバーの状況を「出席」に変更するプルセスビルダーを作成します。

まず、プロセスを開始するタイミングを「BarcodeScanResult」オブジェクトにレコードが作成されたタイミングに指定します。

次に、条件分岐には「BarcodeScanResult」オブジェクトに作成されたレコードの対象となるオブジェクトの判定を行います。今回のケースではキャンペーンメンバーのレコードが作成されたときにTRUEになるように条件を指定します。

「BarcodeScanResult」オブジェクトのSObjectTypeNameに対象となるオブジェクトのAPI名が入りますのでそれを条件に指定します。

項目 [gcbc__ BarcodeScanResult__c]. gcbc__ SObjectTypeName __c
演算子 次の文字列と一致
種別 文字列
CampaignMember

f:id:ray_grapecity:20200323142924p:plain

最後に、ルール適用時のアクションにはレコードを更新する動作を指定します。今回のケースではバーコードから読み取ったキャンペーンメンバーIDをもつレコードの状況(Status)を「出席」に更新します。更新処理はRayBarcodeをインストールすると作成される「Update SObject Field Value」Apexクラスを使用します。

「Update SObject Field Value」Apexクラスの変数には以下を指定します。

項目 種別
fieldName 文字列 Status
fieldValue 文字列 出席
sObjectId 数式 [gcbc__ BarcodeScanResult__c]. gcbc__ SObjectTypeName __c

f:id:ray_grapecity:20200323143453p:plain

以上で設定は完了です。

動作確認

それでは、実際の動作を見てみましょう。

まずは、スマートフォン端末にインストールしたRayBarcode専用アプリを起動します。
次に、「GCBarcode Scanner」タブをタップします。すると読みり画面が起動しますので、バーコードにかざします。

では、キャンペーンページを開き、更新されているか確認してみます。

f:id:ray_grapecity:20200323143749p:plain

きちんと更新されました。

まとめ

バーコードの読み取り機能を、コードを伴う開発の必要がなく実現することができました。今回の例では、キャンペーンメンバーオブジェクトと連携しましたが、その他の標準オブジェクトやカスタムオブジェクトとも連携することができます。

Salesforceプラットフォーム上にバーコード業務を構築できるSalesforce専用バーコードコンポーネント「RayBarcode」は無料で30日間フル機能をトライアルできますので、ご自身の環境でぜひお試しください。

raykit.grapecity.com