RayKit活用ブログ-SalesforceとExcelのイイトコドリ-

Salesfoceの活用の幅を広げたい方に必要な情報をお届けします。グレープシティ株式会社RayKitチームが運用しています。

バーコードで現場とSalesforceを接続!

バーコードで現場とSalesforceを接続

RayBarcodeはSalesforceプラットフォーム上にバーコード業務を構築できるSalesforce専用バーコードコンポーネントです。この製品の特長は使う側(ユーザー)も手軽に簡単に使え、構築する側(システム管理者、開発者)も手軽に簡単に構築できる点にあります。

RayBarcodeの特長

1)バーコードの読み取りはスマートフォン

専用デバイスバーコードリーダー)は不要です。無償提供しているRayBarcode専用のモバイルアプリ(AndroidiOS)をインストールすれば、スマートフォンでバーコードの読み取りが可能です。

RayBarcode専用のモバイルアプリはSalesforceのモバイルアプリ「Salesforce1」とほぼ同等の機能を保有しています。「Salesforce1」ユーザーであれば違和感なく操作が行えます。

2)Salesforce関連知識だけでOK

LightningやVisualforceといったSalesforce関連知識だけで簡単にバーコードの生成・読み取り機能を使うことができます。専用バーコードリーダーやモバイルアプリの開発知識は不要です。

動画サンプルの解説

実際の操作性については動画を見ていただいたことでご理解いただけたと思います。以下では、動画サンプルを例にVisualforceでどのように読み取り機能を開発するのか、ということを解説したいと思います。サンプルコードは下記からダウンロードできます。

サンプルコードをダウンロードする

1)サンプルのシナリオ(イベント出欠管理)

1. 参加証にあるQRコードを読み取る。

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

受講票

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

キャンペーンメンバーが「出席」に更新されている

キャンペーンメンバーが「出席」に更新されている

2)コードの解説

このサンプルでは「CampaignMemberScanDemo」というVisualforceページと「CampaignMemberScanDemoController」というApexクラスを作成しています。

1. Visualforceページ「CampaignMemberScanDemo」
「CampaignMemberScanDemo」の48~53行目をご覧ください。GcBarcodeScannerVFというタグがあります。RayBarcodeをSalesforce組織にインストールすると、このタグが使えるようになります。このタグをVisualforceページに記述することで読み取り用のボタンが配置されます。各属性は以下のように指定します。

id コンポーネントを識別するための任意のIDを指定します。
buttonText ボタンのキャプションを指定します。
onScanComplete スキャン成功後に動作するAPEXを指定します。
scanResults スキャン結果を格納するページコントローラのプロパティを指定します。
reRender スキャン後に更新される、このページ内のセクションを指定します。
styleClass ボタンに適用するCSSのクラス名を指定します。
「CampaignMemberScanDemoController」の抜粋(63~66行目)
public string SingleScanResult{
    get;
    set;
    }

つづいて、2~19行目をご覧ください。このonSingleScanCompleteActionでスキャン成功後の動作を規定しています。スキャン結果SingleScanResult(キャンペーンメンバーのID)を使って対象のキャンペーンメンバーを取得し「状況」を「出席」に更新しています。

「CampaignMemberScanDemoController」の抜粋(2~19行目)
public PageReference onSingleScanCompleteAction(){        
    getSingleScanOutputMessage();
    System.debug('onSingleScanCompleteAction');
    System.debug('SigneScanResult=' + this.SingleScanResult);
    if (String.isNotEmpty(this.SingleScanResult)) {
        String[] rs = splitMultipleScanResult(this.SingleScanResult);
        List cms = [SELECT ID, Status, CompanyOrAccount, Lead.Description, Lead.ID FROM CampaignMember WHERE ID in :rs];
        if (cms.size() > 0) {
            for (CampaignMember m : cms) {
                if ('出席' <> m.Status)
                  m.Status = '出席';
            }
            update cms;
        }
    }

    return null;
}

Visualforceの開発経験のある方であれば、違和感なく普通のVisualforceの開発ということがご理解いただけたと思います。ストレートに言ってしまうと、開発者の観点ではバーコード読み取りが行えるVisualforceのタグが増えただけです。あとは普通のVisualforceの開発と変わりません。

まとめ

バーコードは現実の人や商品などのリアルな世界とシステムをつなぐことができる優れた仕組みです。RayBarcodeはSalesforce上にその仕組みを提供し、新しい可能性を広げます。例えば、今回のサンプルではイベント出欠管理を例にしましたが、リアルタイムでSalesforceの顧客データとつながることになるので、来場情報を担当営業へすぐに通知するなどさらなる顧客満足度向上につなげることもできます。その他にもPartner Communityと組み合わせることで、外注業者や代理店での報告業務や入荷検品業務を構築できるなどSalesforceの可能性を広げる様々な使い方ができます。

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

raykit.grapecity.com