SlideShare a Scribd company logo
Apexトリガと
標準自動化プロセスの違い
Kyoto Salesforce Developers Group
桑山 佳也
2019 - 06 - 07
[Kyoto]
Salesforce Developers
Meetup #1
自己紹介
インフォニック株式会社
桑山 佳也 (@kuwayama_inf)
製造業からITサービス業に転職
Salesforce エンジニア歴:2年
自己紹介
趣味
音楽制作・動画制作
本題
自動化プロセス
自動化プロセスとは?
ビジネスプロセスを
自動化したツール
自動化プロセスツール
LightningフローApexトリガ ワークフロー
プロセスビルダー Flow Builder
開発
コーディング
標準ツール
ノンプログラミング
- ToDo
- メールアラート
- 項目自動更新
→ 自身のオブジェクトのみ
※主従の場合は親も対象
- アウトバウンドメッセージ
ワークフロー
- レコード作成
- レコード更新 → 自身、親、子オブジェクトが対象
- メール送信
- クイックアクションの起動
- Chatter投稿
- フロー起動
- 他プロセスビルダーの起動
- Apexコール
プロセスビルダー
- レコード作成
- レコード更新 → 全て対象
- レコード削除
- メール送信
- クイックアクションの起動
- Chatter投稿
- フロー起動
- 他プロセスビルダーの起動
- Apexコール
Flow Builder
- 大体なんでもOK
Apexトリガ
- 中でも特に他のツールにはない機能
Apexトリガ
削除・復元時に
処理実行が可能
なんでもできるよ!
でも
なんでもできるからってさ。
決してベストではない
コーディング
大抵Sandboxで開発
Apexテスト&リリース
↓
メンテナンス。。
やること多い
簡単な機能は
標準機能でやるほうが早い
処理が複雑になればなるほど
トリガのほうが管理しやすい
↓
エラー処理やデバグ
条件分岐やテストやバッチ処理など。。
実現したい自動化プロセス機能
によって分ける
システムの拡張性
1. 古いレコードをデータベースからロード(または、新しい挿入の初期化)
2. 新しいレコードの値で古い値を上書き
3. システムの入力規則(商談商品を挿入する場合、システムの入力規則に加えてカスタム入力規則が実行されます)
4. すべての before トリガを実行(EE / UE のみ)
5. カスタム入力規則
6. レコードをデータベースに保存(しかし、コミットされていない)
7. レコードをデータベースから再ロード
8. すべての after トリガを実行(EE / UE のみ)
9. 割り当てルール
10.自動応答ルール
11.ワークフロー ルール
12.プロセス
13.エスカレーション ルール
14.積み上げ集計数式の値の更新(存在する場合)
15.データベースのコミット
16.コミット後のロジック(メールの送信)
処理順
beforeトリガ
↓
afterトリガ
↓
ワークフロー
↓
プロセスビルダー
処理順
同じオブジェクトで
複数の自動化ツール
使った場合どう処理されるの?
いっぱい実行されます
トリガで更新
↓
ワークフローで更新
↓
トリガで更新
↓
プロセスビルダーで更新
↓
トリガリレーで処理爆発
実際に作ってみた
カスタム項目で5つチェックボックス作成
ワークフロー作成
フラグ1が☑なら
フラグ2を☑にする
プロセスビルダー作成
条件:フラグ3が☑なら
プロセスビルダー作成
条件:フラグ3が☑なら
更新:フラグ4を☑にする
trigger DevObjectTrigger on DevObject__c (before update) {
for(DevObject__c d : Trigger.New) {
if (d.Flag2__c) {
d.Flag3__c = True;
}
if (d.Flag4__c) {
d.Flag5__c = True;
}
}
}
Apexトリガ作成
フラグ2が☑なら
フラグ3を☑にする
フラグ4が☑なら
フラグ5を☑にする
フラグ1☑→2☑ → ワークフロー
フラグ2☑→3☑ → トリガ
フラグ3☑→4☑ → プロセスビルダー
フラグ4☑→5☑ → トリガ
処理まとめ
フラグ1□ を ☑ にON!
実行
1周目
beforeトリガ
↓
afterトリガ
↓
ワークフロー
↓
プロセスビルダー
処理順
処理まとめ
フラグ1☑→2☑ → ワークフロー
フラグ2☑→3☑ → トリガ
フラグ3☑→4☑ → プロセスビルダー
フラグ4☑→5☑ → トリガ
2周目
beforeトリガ
↓
afterトリガ
↓
ワークフロー
↓
プロセスビルダー
3周目
beforeトリガ
↓
afterトリガ
↓
ワークフロー
↓
プロセスビルダー
trigger DevObjectTrigger on DevObject__c (before update) {
system.debug(‘てすと’);
for(DevObject__c d : Trigger.New) {
if (d.Flag2__c) {
d.Flag3__c = True;
}
if (d.Flag4__c) {
d.Flag5__c = True;
}
}
}
デバグ追加してみる
1周目
beforeトリガ
↓
afterトリガ
↓
ワークフロー
↓
プロセスビルダー
処理順
2周目
beforeトリガ
↓
afterトリガ
↓
ワークフロー
↓
プロセスビルダー
3周目
beforeトリガ
↓
afterトリガ
↓
ワークフロー
↓
プロセスビルダー
無駄にいっぱい処理される
↓
ガバナ制限やら、動き重たいやら
いろいろ問題
処理はなるべく
標準ツール or トリガ
どっちかでまとめる!
- どちらのほうが良いという訳ではない
- 標準機能をしっかり熟知した上で最適な選択を行う
- なるべく処理をどちらかにまとめる
まとめ
以上
ありがとうございました
資料参考
Salesforce Developer Group
ルーキー会 様
めっちゃ参考にさせてもらいました。
ありがとうございました!!
改めてコミュニティのご挨拶
京都の開発者向け
デベロッパーグループ
立ち上げました
Kyoto Salesforce
Developers Group[ ]
- -
京都以外の方でも大歓迎
開発者以外でも大歓迎
Salesforceに興味がある人なら
誰でも大歓迎
グループ立ち上げやイベント開催において、
どちらも初めてで、右も左もわからない状態ですが、
今後京都にてSalesforceを盛り上げていきたいと思います!!
みなさまのご助力を頂くこともあるかとございますが、
どうぞよろしくお願いいたします。
Kyoto Salesforce Developers Group
桑山 佳也
Trailblazerコミュニティに参加
Kyoto Salesforce Developers
Group で検索!
「参加」よろしくお願いします!!
質疑応答
本日は
ありがとうございました
Apexトリガと標準自動化プロセスの違い

More Related Content

What's hot

誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
Junichi Kodama
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
furuCRM株式会社 CEO/Dreamforce Vietnam Founder
 
SharePoint Online で最近の困った。 大きなリストのお話。
SharePoint Online で最近の困った。 大きなリストのお話。SharePoint Online で最近の困った。 大きなリストのお話。
SharePoint Online で最近の困った。 大きなリストのお話。
Hirofumi Ota
 
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法についてSalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
Takashi Hatamoto
 
Salesforce 開発入門
Salesforce 開発入門Salesforce 開発入門
Salesforce 開発入門
Salesforce Developers Japan
 
Lightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみたLightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみた
y-maeda
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネント
Salesforce Developers Japan
 
Salesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱い
Salesforce Developers Japan
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
日本マイクロソフト株式会社
 
MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
Tetsutaro Watanabe
 
SharePoint Online 外部共有を考える
SharePoint Online 外部共有を考えるSharePoint Online 外部共有を考える
SharePoint Online 外部共有を考える
Teruchika Yamada
 
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce Developers Japan
 
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツLightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Salesforce Developers Japan
 
Salesforce integration architecture 20200529
Salesforce integration architecture 20200529Salesforce integration architecture 20200529
Salesforce integration architecture 20200529
Hiroki Iida
 
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Takeshi Fukuhara
 
Salesforceのサイトゲストユーザについて
SalesforceのサイトゲストユーザについてSalesforceのサイトゲストユーザについて
Salesforceのサイトゲストユーザについて
Taiki Yoshikawa
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
Sai Jithesh ☁️
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
Yusuke Suzuki
 
Visualforceを使ってみよう
Visualforceを使ってみようVisualforceを使ってみよう
Visualforceを使ってみよう
Salesforce Developers Japan
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
 

What's hot (20)

誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
 
SharePoint Online で最近の困った。 大きなリストのお話。
SharePoint Online で最近の困った。 大きなリストのお話。SharePoint Online で最近の困った。 大きなリストのお話。
SharePoint Online で最近の困った。 大きなリストのお話。
 
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法についてSalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
 
Salesforce 開発入門
Salesforce 開発入門Salesforce 開発入門
Salesforce 開発入門
 
Lightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみたLightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみた
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネント
 
Salesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱い
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
 
MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
 
SharePoint Online 外部共有を考える
SharePoint Online 外部共有を考えるSharePoint Online 外部共有を考える
SharePoint Online 外部共有を考える
 
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
 
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツLightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
 
Salesforce integration architecture 20200529
Salesforce integration architecture 20200529Salesforce integration architecture 20200529
Salesforce integration architecture 20200529
 
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
 
Salesforceのサイトゲストユーザについて
SalesforceのサイトゲストユーザについてSalesforceのサイトゲストユーザについて
Salesforceのサイトゲストユーザについて
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
 
Visualforceを使ってみよう
Visualforceを使ってみようVisualforceを使ってみよう
Visualforceを使ってみよう
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 

Similar to Apexトリガと標準自動化プロセスの違い

モデル駆動型開発
モデル駆動型開発モデル駆動型開発
モデル駆動型開発Norihito Ohshima
 
コピー自動生成プロダクトでDataflowを導入した話
コピー自動生成プロダクトでDataflowを導入した話コピー自動生成プロダクトでDataflowを導入した話
コピー自動生成プロダクトでDataflowを導入した話
ShunyoKawamoto
 
クライアント推し。
クライアント推し。クライアント推し。
クライアント推し。
Akira Fukami
 
複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう
Core Concept Technologies
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
 
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
leverages_event
 
俺 と ご褒美 Bot
俺 と ご褒美 Bot俺 と ご褒美 Bot
俺 と ご褒美 Bot
Masayuki KaToH
 
Roo
RooRoo
Example using LattePanda
Example  using LattePandaExample  using LattePanda
Example using LattePanda
Hirokazu Egashira
 
20190524_WindowsユーザのためのSalesforce DX
20190524_WindowsユーザのためのSalesforce DX20190524_WindowsユーザのためのSalesforce DX
20190524_WindowsユーザのためのSalesforce DX
Takahito Miyamoto
 
Serverless LT 20201202
Serverless LT 20201202Serverless LT 20201202
Serverless LT 20201202
ssuserebdd2a
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
Takashi Hatamoto
 
DX Suite & UiPath さっくり読み取りさっくり連携
DX Suite & UiPath さっくり読み取りさっくり連携DX Suite & UiPath さっくり読み取りさっくり連携
DX Suite & UiPath さっくり読み取りさっくり連携
Chuki ちゅき
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」Cybozucommunity
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
terurou
 
Salesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいことSalesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいこと
Yuki Yamaguchi
 
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
陽一 滝川
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃Teruo Adachi
 

Similar to Apexトリガと標準自動化プロセスの違い (20)

モデル駆動型開発
モデル駆動型開発モデル駆動型開発
モデル駆動型開発
 
コピー自動生成プロダクトでDataflowを導入した話
コピー自動生成プロダクトでDataflowを導入した話コピー自動生成プロダクトでDataflowを導入した話
コピー自動生成プロダクトでDataflowを導入した話
 
クライアント推し。
クライアント推し。クライアント推し。
クライアント推し。
 
複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
 
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
 
俺 と ご褒美 Bot
俺 と ご褒美 Bot俺 と ご褒美 Bot
俺 と ご褒美 Bot
 
Roo
RooRoo
Roo
 
Example using LattePanda
Example  using LattePandaExample  using LattePanda
Example using LattePanda
 
20190524_WindowsユーザのためのSalesforce DX
20190524_WindowsユーザのためのSalesforce DX20190524_WindowsユーザのためのSalesforce DX
20190524_WindowsユーザのためのSalesforce DX
 
Serverless LT 20201202
Serverless LT 20201202Serverless LT 20201202
Serverless LT 20201202
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
 
DX Suite & UiPath さっくり読み取りさっくり連携
DX Suite & UiPath さっくり読み取りさっくり連携DX Suite & UiPath さっくり読み取りさっくり連携
DX Suite & UiPath さっくり読み取りさっくり連携
 
基調講演「データのグループウェア化」
基調講演「データのグループウェア化」基調講演「データのグループウェア化」
基調講演「データのグループウェア化」
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
Salesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいことSalesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいこと
 
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 

Apexトリガと標準自動化プロセスの違い