Salesforce Hack Challenge 2014
Force.com 募集管理アプリケーション
オープンソース賞
名前:吉川 大樹
http://tyoshikawa1106.hatenablog.com/
@tyoshikawa1106
+TaikiYoshikawa
tyoshikawa1106
tyoshikawa1106
Salesforce Hack Challenge 2014
Salesforce1 Platformの機能を有効活用できている点と
コードの公開によりサンプルコードとして活用可能な点が高評価
Salesforce Hack Challenge 2014
Salesforce Hack Challenge 2014
Force.com サイトの入力フォームから応募者情報を登録します。
画面下側にある登録ボタンで入力した情報を登録できます。
正常に登録されるとメッセージが表示されます。
登録された情報は応募者オブジェクトの詳細ページで
確認できます。
応募者情報が登録されるとApexトリガーで
登録者にメールを送信します。
Apexトリガーのメール送信処理でエラーが発生した場合は、
送信メールエラーログオブジェクトにエラー情報が登録されます。
登録された応募者情報はスケジュールバッチにより、
Chatterフィードに自動共有されるようになっています。
Chatter共有は応募者管理グループに対して行います。
これにより対象のユーザにのみ共有可能です。
Chatter投稿は対象の応募者レコードにも紐付いています。
これにより詳細ページからフィードを確認することも可能です。
Chatter共有処理は応募者オブジェクトの投稿済み項目が
チェックありのレコードのみを対象としています。
ダッシュボードでどのような応募者が多いのか簡単に分析できます。
Salesforce1モバイルアプリでモバイル端末から
応募者情報にアクセスできます。
Chatterのアンケート機能やダッシュボードも利用できます。
Salesforce1モバイルアプリ用に
検索画面を用意しています。
以下のスキルを使って開発しました。
・BootstrapSF1
・KnockoutJs
・RemoteObjects
検索は前方一致検索です。
レコードを選択すると詳細ページへ
遷移します。
Salesforce Hack Challenge 2014
Salesforce Hack Challenge 2014
サイトゲストユーザはAPIを有効化することができません。
RemoteObjectsの登場でJSから登録処理が可能になりました。
サイトゲストユーザプロファイル
システム管理者プロファイル
サイトゲストユーザでRemoteObjectsによる登録処理を
実行した際に実行権限のエラーが発生しました。
応募者オブジェクトの作成権限を付け忘れていたことが
エラーの原因でした。
Salesforce Hack Challenge 2014
BootstrapSF1を利用すると『apex:composition』や『apex:include』の
タグ読み込み時に一部スタイルが適用されませんでした。
今回はサイトテンプレートの使用を諦めました。
Salesforce Hack Challenge 2014
当初、サイトのゲストユーザが応募者を登録したタイミングで、
ApexトリガーからFeedItemオブジェクトをINSERTする予定でした。
管理者ユーザでは正常に実行できましたが、ゲストユーザではエラーとなりました。
管理者権限で実行できるスケジュールバッチで処理することで解決しました。
Salesforce Hack Challenge 2014
Chatter API in ApexはWinter 15のバージョンアップで
一部クラスの使用方法が変更されました。
Salesforce Hack Challenge 2014
Chatter API in Apexのテストでは
『@isTest(SeeAllData=true)』の宣言が必要
Salesforce Hack Challenge 2014
Chatter API in ApexでのChatter投稿は
DML処理の扱いになるのでループ内で処理できません。
Salesforce Hack Challenge 2014
今回、画面開発ではKnockoutJsを利用しました。
まだ理解できていないことが多かったので思うように動作せず苦労しました。
Salesforce Hack Challenge 2014
Salesforce Hack Challenge 2014
応募者情報のChatter共有処理で使用するグループ名は
カスタム設定に持たせました。
グループ名変更はコードの修正を行わずに対応できます。
カスタム設定の設定種別は階層型を利用しています。
※組織レベルに定義できれば問題ない為です。
Salesforce Hack Challenge 2014
画面に表示するラベルやメッセージなどは
カスタム表示ラベルの値を表示するようにしています。
※JSファイル内では使用できません。
Salesforce Hack Challenge 2014
テストクラス内で用意するデータを作成する共通クラスを用意しています。
必須項目や入力規則が追加されたときの修正箇所を少なくできます。
共通クラスのテストクラスで使用方法を確認できます。
入力規則などの追加によるエラーはここのテストで確認できます。
Salesforce Hack Challenge 2014
Controllerにすべての処理を書いたりするとメンテナンスが大変です。
Helperクラスを用意してその辺の問題を解決しています。
ApexトリガーでもHelperクラスを用意することで
Handlerクラスの処理がスッキリすると思います。
Salesforce Hack Challenge 2014
Intriguing Design Pattern for Scheduled APEX
http://advancedapex.com/2012/11/14/scheduledapex/
Salesforce Hack Challenge 2014
Salesforce Hack Challenge 2014
Salesforce Hack Challenge 2014
https://github.com/tyoshikawa1106/Salesforce-Hack-Challenge-2014
Salesforce Hack Challenge 2014
Salesforce Hack Challenge 2014

More Related Content

PDF
Salesforce DUG Meetup 2015 新年会
PPTX
EventLogView 20150128
PDF
Salesforceのハッカソンに参加した話
PPTX
このべん第5回 ConoHaでWordPressのお勉強!
PDF
Chatter Chrome Extension
PDF
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
PDF
Force.comとモバイルでイベント管理実例
PDF
NPOの広報、PR担当者必見! Salesforceでイベント管理(便利機能編 vol.2)
Salesforce DUG Meetup 2015 新年会
EventLogView 20150128
Salesforceのハッカソンに参加した話
このべん第5回 ConoHaでWordPressのお勉強!
Chatter Chrome Extension
Salesforce1 Platform 入門 2014 〜改めて基本から理解するforce.com〜
Force.comとモバイルでイベント管理実例
NPOの広報、PR担当者必見! Salesforceでイベント管理(便利機能編 vol.2)

Similar to Salesforce Hack Challenge 2014 (20)

PDF
勉強会force#3 iOSアプリ開発
PDF
Spring '14リリース開発者向け新機能
PDF
Salesforce1 Developer Week
PDF
Salesforce1 PlatformアーキテクチャWebinar
PPT
Force.com
PPTX
Salesforce1 アプリをGruntでデプロイ
PDF
Developer Keynote
PDF
Salesforce1モバイルアプリケーション開発概要
PDF
Salesforce Platform Mobile Serviceを使ったアプリ開発
PDF
Tech talk salesforce mobile sdk
PDF
Salesforce1モバイルアプリ開発入門Webinar
PDF
Salesforce dug meetup #5
PDF
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
PDF
食わず嫌いの為のSalesforce1 Platform入門
PDF
App Cloud モバイルアプリ開発戦略
PPT
AppExchangeパートナー&デベロッパー第1部:20071205版
PDF
勉強会force#2 HTML5によるモバイルアプリ開発
PPT
AppExchangeパートナー&デベロッパー第2部:20070523版
PPTX
Salesforce1開発(s1 tour)
PDF
Salesforce認定Developer Winter’15 リリース試験のポイントは ここだ!
勉強会force#3 iOSアプリ開発
Spring '14リリース開発者向け新機能
Salesforce1 Developer Week
Salesforce1 PlatformアーキテクチャWebinar
Force.com
Salesforce1 アプリをGruntでデプロイ
Developer Keynote
Salesforce1モバイルアプリケーション開発概要
Salesforce Platform Mobile Serviceを使ったアプリ開発
Tech talk salesforce mobile sdk
Salesforce1モバイルアプリ開発入門Webinar
Salesforce dug meetup #5
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
食わず嫌いの為のSalesforce1 Platform入門
App Cloud モバイルアプリ開発戦略
AppExchangeパートナー&デベロッパー第1部:20071205版
勉強会force#2 HTML5によるモバイルアプリ開発
AppExchangeパートナー&デベロッパー第2部:20070523版
Salesforce1開発(s1 tour)
Salesforce認定Developer Winter’15 リリース試験のポイントは ここだ!

More from Taiki Yoshikawa (20)

PDF
Salesforceのサイトゲストユーザについて
PDF
Apex開発で実現できるSalesforce組織の構築例 - SWTT2019
PDF
SalesforceでStartup企業のシステム構築した話
PDF
Salesforceでオフィス資産の管理
PDF
Lightning Experience導入で意識したこと
PDF
ユーザー企業エンジニア目線のForce.com設計手法
PDF
Spring'17 - Visualforce & Apex
PDF
個人取引先でB2C顧客の管理
PDF
Salesforceの導入で押さえておきたいポイント
PDF
Salesforce Social Studio
PDF
Summer'16 Apex Code
PDF
React Lightning Design System
PDF
JSforceではじめるSalesforce APIの世界
PDF
Community Cloud & Force.com Sites
PDF
Salesforce DG Meetup Group
PDF
Salesforce Chatterと社内イベント
PDF
Spring'16 Apex Code 新機能
PDF
Lightningの入力フォーム
PDF
Force.comデモ環境つくりました
PDF
Salesforce Platformの世界
Salesforceのサイトゲストユーザについて
Apex開発で実現できるSalesforce組織の構築例 - SWTT2019
SalesforceでStartup企業のシステム構築した話
Salesforceでオフィス資産の管理
Lightning Experience導入で意識したこと
ユーザー企業エンジニア目線のForce.com設計手法
Spring'17 - Visualforce & Apex
個人取引先でB2C顧客の管理
Salesforceの導入で押さえておきたいポイント
Salesforce Social Studio
Summer'16 Apex Code
React Lightning Design System
JSforceではじめるSalesforce APIの世界
Community Cloud & Force.com Sites
Salesforce DG Meetup Group
Salesforce Chatterと社内イベント
Spring'16 Apex Code 新機能
Lightningの入力フォーム
Force.comデモ環境つくりました
Salesforce Platformの世界

Salesforce Hack Challenge 2014