Más contenido relacionado
La actualidad más candente (20)
Similar a 【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向 (20)
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
- 19. 19
どんな技術要素があるの?
1. サーバサイド … Apex / Trigger
2. データベース … SOQL
3. フロントエンド … LightningComponent / Visualforce
4. テスト … Apexテストフレームワーク
5. 開発環境・ツール … 開発者コンソール / SFDX / force.com CLI
6. Webアプリ開発 … Heroku
7. ML, IoT … Einstein / IoT Cloud
- 20. 20
1. Apexとは?(1)
開発者が Salesforce Platformでフローとトランザクションの
制御ステートメントを実行できるようにした、
強く型付けされたオブジェクト指向のプログラミング言語
https://trailhead.salesforce.com/ja/projects/quickstart-apex/steps/quickstart-apex-1
- 21. 21
1. Apexとは?(2)
開発者が Salesforce Platformでフローとトランザクションの
制御ステートメントを実行できるようにした、
強く型付けされたオブジェクト指向のプログラミング言語
https://trailhead.salesforce.com/ja/projects/quickstart-apex/steps/quickstart-apex-1
例 1.1 取引先オブジェクトから洗い替え対象レコードを抽出し、洗い替えを行う処理
- 22. 22
1. Apexとは?(3)
開発者が Salesforce Platformでフローとトランザクションの
制御ステートメントを実行できるようにした、
強く型付けされたオブジェクト指向のプログラミング言語
https://trailhead.salesforce.com/ja/projects/quickstart-apex/steps/quickstart-apex-1
技術コスト低めで初心者が学びやすい
Ease of Development の頃のJavaを
少しやさしく制限をかけた感じ
おまじない含めコード量は最小限
標準カスタマイズとの棲み分けが
根底にあるため、きちんと設計すれば
コード量は最小限で済む
例 1.1 取引先オブジェクトから洗い替え対象レコードを抽出し、洗い替えを行う処理
- 24. 24
1. Apexとは?(5) Apex Trigger
=Salesforce PlatformでのDBトリガー
古いレコードのロード
新しいレコードで古い値の
上書き
システムの入力規則
Before トリガー
カスタムの入力規則
レコードのDBへの保存
(未コミット)
レコードのリロード
After トリガー
割り当てルール
自動応答ルール
ワークフロールール
プロセス
エスカレーションルール
積み上げ集計数式の値更新
データベースのコミット
コミット後のロジック
Salesforceのレコードに適用される
これらのロジック群のうち、
他ロジックで実現できない、
特にクリックベースで担いにくいタ
スクを実行する時に用いる
https://help.salesforce.com/articleView?id=000005694&language=ja&type=1
- 25. 25
2. DB操作 – SOQL(1)
SOQLとは
アプリケーション層のApexからデータ層へアクセスする際に使用する、SQL類似言語
例 2.1 ステータスが「完了」の商談を、「リードソース」別に集計して、商談金額の合計を表示する
- 26. 26
2. DB操作 – SOQL(2)
SOQLとは
アプリケーション層のApexからデータ層へアクセスする際に使用する、SQL類似言語
例 2.1 ステータスが「完了」の商談を、「リードソース」別に集計して、商談金額の合計を表示する
=ORマッパーを兼ねている
点に注目
オブジェクトが返ってくる
商談(Opportunity)
- 27. 27
2. DB操作 – SOQL(3)
見込み顧客と取引先は別のオブジェクトだが、
オブジェクトのリレーションを経由してフィールドを取得できる
例 2.2 「見込み顧客」のうち、取引を開始して「取引先」になったレコードから、取引
先の社名と年間売上を取得
- 28. 28
2. DB操作 – SOQL(3)
見込み顧客と取引先は別のオブジェクトだが、
オブジェクトのリレーションを経由してフィールドを取得できる
例 2.2 「見込み顧客」のうち、取引を開始して「取引先」になったレコードから、取引
先の社名と年間売上を取得
見込み顧客(Lead) 取引先(Account)
- 29. 29
2. DB操作 – SOQL(3)
見込み顧客と取引先は別のオブジェクトだが、
オブジェクトのリレーションを経由してフィールドを取得できる
例 2.2 「見込み顧客」のうち、取引を開始して「取引先」になったレコードから、取引
先の社名と年間売上を取得
見込み顧客(Lead) 取引先(Account)
関係演算のうち、
「選択」と「射影」はそのまま
だが、「結合」がSQLと異なる
- 30. 30
2. DB操作 – SOQL(4)
SQLとSOQLの違い
レコードベース オブジェクトベース
INSERT, UPDATE, DELETEなどを
サポート
SELECTのみ
(※INSERT,UPDATEなどはDMLを使用)
多くの関係代数演算子をサポート
※和、差、交差、直積、選択、射影、
結合、商など
関係代数演算子はSQLと比べて少ない
※独自のリレーションクエリで代替
https://trailhead.salesforce.com/ja/modules/database_basics_dotnet/units/sql_to_soql
制限をあらかじめ考慮して
データモデルの設計・実装を行う
SQL SOQL
- 31. 31
3. Salesforce Lightning
Salesforce Lightning は、現行のSalesforceプラットフォームサービスの総称。
ブランドとして「Lightning」と呼ぶこともある
代表的なLightningサービス群
• Lightning Component フレームワーク(クライアント-サーバフレームワーク)
• Lightning Application ビルダー(コンポーネントを組み合わせたUI構築基盤)
• Lightning Experience (ユーザエクスペリエンス)
他にも Lightningブランド以前をClassicと呼び、Classicから存在する
サービスや機能にLightningを冠していることもある
- 32. 32
3. Lightning Component フレームワーク
レコード詳細
Todos
Action
buttons
Google Map Social
関連レコード一覧
画面を疎結合なコンポーネント単位に
切り出して構築できるようにした仕組み
画面構築例
コンポーネント
標準を利用したり、
AppExchangeで取り入れたり、
自身のコーディングで開発したりできる
Lightning アプリケーションビル
ダーでコンポーネントを1つの画面
にまとめることができるが、
もちろんコンポーネント単体での
再利用も可能
- 34. 34
3. Lightning Component フレームワーク
UI構築はいくつかの選択肢がある
①Apex+Visualforce
Servlet/JSPチックな世界
②Visualforce + JavaScript
SPAチックな世界
③Lightningコンポーネント
コンポーネント駆動な世界
④HerokuなどのPaaS+Salesforce
→プロプライエタリだが安定
緻密な権限など、堅めの要件向き
→既存資産のポータビリティ重視
SFはReact, Vueを載せる箱として
→今後の拡張性重視
柔軟性はあるが、安定性が課題
→Webアプリ前提なら無難にMixしたい
Fargateなど本命対抗も出てきており
SFとの親和性でHerokuを取るかを検討
- 40. 40
5. 開発環境・ツール
IDE
★開発者コンソール
★VSCode
・Welkin IDE
API tool
★Workbench
★API Explorer
CLI
★force.com CLI
★SFDX CLI
ライブラリ
・jsForce
・restforce
・simple-salesforce
Data tool
★DataLoader
★Dataloader.io
• ほとんどSalesforceのブラウザベースで整う
• 以下が手元に揃っていれば開発で困ることはない
最初にチームで使う
ツールを決めるのがおすすめ
- 43. 43
7. Salesforce Einstein
ひとことで言えば、CRM 用の人工知能 (AI)
Salesforceが展開する機械学習/AI(人工知能)関連のサービスを総称していくもの
http://itpro.nikkeibp.co.jp/atcl/news/16/092002725
企業名 サービス内容 発表時期
BeyondCore データディスカバリー 2016年8月
Coolan データセンター向けデータ分析 2016年7月
EdgeSpring データ分析 2013年6月
Implisit 営業担当者向けBI(Business Intelligence) 2016年5月
MetaMind ディープラーニングベースの画像認識など 2016年4月
MinHash 質問応答システム用の検索エンジン 2015年12月
PredictionIO 機械学習プラットフォーム 2016年2月
RelateIQ 企業と顧客との関係分析 2014年7月
Tempo AIがスケジュールを調整するカレンダー 2015年6月
Salesforceが2013年以降、買収してきたML/AI企業の一覧。
- 49. 49
どんな技術要素があるの?
1. サーバサイド … Apex / Trigger
2. データベース … SOQL
3. フロントエンド … LightningComponent / Visualforce
4. テスト … Apexテストフレームワーク
5. 開発環境・ツール … 開発者コンソール / SFDX / force.com CLI
6. Webアプリ開発 … Heroku
7. ML, IoT … Einstein / IoT Cloud
- 63. ほかにもこんなオフラインコミュニティが
• Tokyo Salesforce Developer Group
• Umekita Force(関西)
• Salesforce 女子部
• Northern Force(北海道)
• Fukuoka Salesforce Developer Group(福岡)
などなど
詳細はこちらから
https://www.trailblazers.jp/group
63