Suche senden
Hochladen
Adminとうまく共存するためのApex開発Tips
•
Als PPTX, PDF herunterladen
•
1 gefällt mir
•
448 views
Takashi Hatamoto
Folgen
Salesforce Developer Group ルーキー会 2周年記念LT大会 #19 での発表資料です
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 31
Jetzt herunterladen
Empfohlen
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
Salesforce Developers
モダンなイベント駆動型システム連携を学ぼう〜Platform Events 入門
モダンなイベント駆動型システム連携を学ぼう〜Platform Events 入門
Salesforce Developers Japan
Salesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica Cloud
Darren Cunningham
MuleSoft Madrid Meetup #5 slides 21st January 2021
MuleSoft Madrid Meetup #5 slides 21st January 2021
Ieva Navickaite
Apex Code Analysis Using the Tooling API and Canvas
Apex Code Analysis Using the Tooling API and Canvas
Salesforce Developers
Salesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
Empfohlen
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
Salesforce Developers
モダンなイベント駆動型システム連携を学ぼう〜Platform Events 入門
モダンなイベント駆動型システム連携を学ぼう〜Platform Events 入門
Salesforce Developers Japan
Salesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica Cloud
Darren Cunningham
MuleSoft Madrid Meetup #5 slides 21st January 2021
MuleSoft Madrid Meetup #5 slides 21st January 2021
Ieva Navickaite
Apex Code Analysis Using the Tooling API and Canvas
Apex Code Analysis Using the Tooling API and Canvas
Salesforce Developers
Salesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
Demystify Salesforce Bulk API
Demystify Salesforce Bulk API
Dhanik Sahni
Salesforce 開発入門
Salesforce 開発入門
Salesforce Developers Japan
Salesforce Integration Patterns
Salesforce Integration Patterns
usolutions
Champion Productivity with Service Cloud
Champion Productivity with Service Cloud
Salesforce Admins
Salesforce intro session_for_students_v2
Salesforce intro session_for_students_v2
Stephen Edache Paul
Episode 20 - Trigger Frameworks in Salesforce
Episode 20 - Trigger Frameworks in Salesforce
Jitendra Zaa
Discover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automations
JackGuo20
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
Integrating with salesforce using platform events
Integrating with salesforce using platform events
Amit Chaudhary
LMS Lightning Message Service
LMS Lightning Message Service
Peter Chittum
Salesforce Certified Platform Developer Ⅰ 勉強会資料
Salesforce Certified Platform Developer Ⅰ 勉強会資料
Nishiyama Hiroaki
Lightning web components episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Salesforce Developers
Live coding with LWC
Live coding with LWC
Salesforce Developers
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
ester41
DevOps Monitoring and Alerting
DevOps Monitoring and Alerting
Khairul Zebua
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
andyinthecloud
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce Developers Japan
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
Takashi Hatamoto
Release & Change management in salesforce
Release & Change management in salesforce
Kalyan Lanka ☁
Secure Salesforce: External App Integrations
Secure Salesforce: External App Integrations
Salesforce Developers
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
SFDG ROOKIES
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
SFDG ROOKIES
Weitere ähnliche Inhalte
Was ist angesagt?
Demystify Salesforce Bulk API
Demystify Salesforce Bulk API
Dhanik Sahni
Salesforce 開発入門
Salesforce 開発入門
Salesforce Developers Japan
Salesforce Integration Patterns
Salesforce Integration Patterns
usolutions
Champion Productivity with Service Cloud
Champion Productivity with Service Cloud
Salesforce Admins
Salesforce intro session_for_students_v2
Salesforce intro session_for_students_v2
Stephen Edache Paul
Episode 20 - Trigger Frameworks in Salesforce
Episode 20 - Trigger Frameworks in Salesforce
Jitendra Zaa
Discover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automations
JackGuo20
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
Integrating with salesforce using platform events
Integrating with salesforce using platform events
Amit Chaudhary
LMS Lightning Message Service
LMS Lightning Message Service
Peter Chittum
Salesforce Certified Platform Developer Ⅰ 勉強会資料
Salesforce Certified Platform Developer Ⅰ 勉強会資料
Nishiyama Hiroaki
Lightning web components episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Salesforce Developers
Live coding with LWC
Live coding with LWC
Salesforce Developers
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
ester41
DevOps Monitoring and Alerting
DevOps Monitoring and Alerting
Khairul Zebua
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
andyinthecloud
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce Developers Japan
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
Takashi Hatamoto
Release & Change management in salesforce
Release & Change management in salesforce
Kalyan Lanka ☁
Secure Salesforce: External App Integrations
Secure Salesforce: External App Integrations
Salesforce Developers
Was ist angesagt?
(20)
Demystify Salesforce Bulk API
Demystify Salesforce Bulk API
Salesforce 開発入門
Salesforce 開発入門
Salesforce Integration Patterns
Salesforce Integration Patterns
Champion Productivity with Service Cloud
Champion Productivity with Service Cloud
Salesforce intro session_for_students_v2
Salesforce intro session_for_students_v2
Episode 20 - Trigger Frameworks in Salesforce
Episode 20 - Trigger Frameworks in Salesforce
Discover salesforce, dev ops and Copado CI/CD automations
Discover salesforce, dev ops and Copado CI/CD automations
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
Integrating with salesforce using platform events
Integrating with salesforce using platform events
LMS Lightning Message Service
LMS Lightning Message Service
Salesforce Certified Platform Developer Ⅰ 勉強会資料
Salesforce Certified Platform Developer Ⅰ 勉強会資料
Lightning web components episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Live coding with LWC
Live coding with LWC
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
DevOps Monitoring and Alerting
DevOps Monitoring and Alerting
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
Release & Change management in salesforce
Release & Change management in salesforce
Secure Salesforce: External App Integrations
Secure Salesforce: External App Integrations
Ähnlich wie Adminとうまく共存するためのApex開発Tips
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
SFDG ROOKIES
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
SFDG ROOKIES
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
SFDG ROOKIES
DreamTXセッションから読み解くAI活用の現状と展望
DreamTXセッションから読み解くAI活用の現状と展望
Takashi Hatamoto
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
leverages_event
20221104_しゃべくりforceのおしゃべり用資料
20221104_しゃべくりforceのおしゃべり用資料
Takashi Hatamoto
Salesforce integration architecture 20200529
Salesforce integration architecture 20200529
Hiroki Iida
Lt 110416
Lt 110416
Tomoyuki Obi
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
decode2016
Delphi開発者のためのSencha入門
Delphi開発者のためのSencha入門
Shinobu Kawano
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Tomoki Ando
Salesforce developer conference tokyo2013
Salesforce developer conference tokyo2013
Ikou Sanuki
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
Serverworks Co.,Ltd.
Spring'15 ISV様向け新機能紹介
Spring'15 ISV様向け新機能紹介
Kazuki Nakajima
Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理
政雄 金森
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
MPN Japan
Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ
Kazuhiro Kotsutsumi
OpenSpan_PreMarketing
OpenSpan_PreMarketing
motani_kamakura
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
Rakuten Group, Inc.
Ähnlich wie Adminとうまく共存するためのApex開発Tips
(20)
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
Swtt2018 sfdgr1 Developer Group ルーキー会が教える!これから始めるSalesforce開発
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
DreamTXセッションから読み解くAI活用の現状と展望
DreamTXセッションから読み解くAI活用の現状と展望
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
20221104_しゃべくりforceのおしゃべり用資料
20221104_しゃべくりforceのおしゃべり用資料
Salesforce integration architecture 20200529
Salesforce integration architecture 20200529
Lt 110416
Lt 110416
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
Delphi開発者のためのSencha入門
Delphi開発者のためのSencha入門
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Salesforce developer conference tokyo2013
Salesforce developer conference tokyo2013
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
Spring'15 ISV様向け新機能紹介
Spring'15 ISV様向け新機能紹介
Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
JPC2016: PUP-02: 今すぐできるソフトウェア資産を活かした Azure ビジネス展開 ~ ソフトウェア資産をお持ちの方も利用する方も ~
Spa のための web サーバ構築ノウハウ
Spa のための web サーバ構築ノウハウ
OpenSpan_PreMarketing
OpenSpan_PreMarketing
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
Mehr von Takashi Hatamoto
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
Takashi Hatamoto
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
Takashi Hatamoto
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
Takashi Hatamoto
20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)
Takashi Hatamoto
Restriction Rules(制限ルール)調べてみた
Restriction Rules(制限ルール)調べてみた
Takashi Hatamoto
LEXモバイルから紐解くSalesforceモバイル史
LEXモバイルから紐解くSalesforceモバイル史
Takashi Hatamoto
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
Takashi Hatamoto
Mehr von Takashi Hatamoto
(7)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)
Restriction Rules(制限ルール)調べてみた
Restriction Rules(制限ルール)調べてみた
LEXモバイルから紐解くSalesforceモバイル史
LEXモバイルから紐解くSalesforceモバイル史
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
Adminとうまく共存するためのApex開発Tips
1.
Adminとうまく共存するための ApexプログラミングTips ~ルーキーDeveloperの「その後」のために~ 株式会社ユー・エス・イー 畑本貴史 1
2.
自己紹介 はたもと たかし 畑本 貴史 株式会社ユー・エス・イー サービスデザイン事業部 カスタマーサクセス課
主任 経歴 2010年~Salesforce開発者(Apex/Visualforceメイン) AIアプリコンテスト2018 優勝チーム(ロボホンズ) Lightning App Dev Champion Salesforce Developer Group Tokyo 運営メンバー ←New! 2
3.
Step0:ルーキー会で学んでコード書けるようになった! けれど・・・ 3 理解した! 好きなもの 自由に書ける! Salesforceのコー ディングを学ぶ んだ・・・ 何これ! 動かない!
4.
あなたのコード、本当に「使える」コードですか? 4 あなたが開発したコードを使うのは、 組織のAdminとエンドユーザです。 開発したコードが組織の運用に役に立つよう、「使える」コードを理解しましょう。
5.
Step1:Adminを困らせないためのTips 5
6.
Step1:Adminを困らせないためのTips あなたのコード、本当に運用組織に送っても大丈夫ですか? テストコードはどこ!? 動作確認したのに、なぜ・・・?
一括登録できない!? トリガの動きが違う!? 6
7.
Step1:Adminを困らせないためのTips ①テストコードはどこ!? Salesforceの運用環境はApex作成・更新不可 ⇒Sandboxでコーディングを進め、運用環境に送る ⇒リリース時にApexテストコードが起動し、 以下の条件を満たさない場合はリリース不可 テストコードが全てのApexクラスを網羅している テストコードのエラー0件
全体のコードカバレッジが75%以上 (リリース対象Apexクラスと直接関係ないクラスは再テスト不要) 7
8.
Step1:Adminを困らせないためのTips ①テストコードはどこ!? Apexテストコードは、リリース対象クラスと1:1で作成する ⇒リリース時や改修時、どのテストコードを送れば コードカバレッジを満たすのかわかりやすい 8
9.
Step1:Adminを困らせないためのTips ②動作確認したのに、なぜ・・・ ? 開発時には主に管理者ユーザ (すべてのデータを参照・編集可能)を使用し開発している ⇒自分で動作試験を行った段階では問題なし ⇒エンドユーザ(共有権限の影響あり)が操作した場合に 問題発生!? システム管理者以外のアクセス権が考慮されてなかった・・・ 9
10.
Step1:Adminを困らせないためのTips ②動作確認したのに、なぜ・・・ ? テストコードの中に、代理ログイン試験パターンを入れる “System.runAs”で囲った範囲内の処理は 別ユーザのアクセス権限で処理される ⇒ユーザ間の挙動の違いも考慮してテストコードを記述する 10
11.
Step1:Adminを困らせないためのTips ③一括登録できない!? 画面からの入力時に動作するApexトリガを作成 ⇒画面から更新処理を行った場合は問題なし ⇒データローダで一括更新を行った場合にエラー!? ガバナ制限に対する考慮が足りなかった・・・ 11
12.
Step1:Adminを困らせないためのTips ③一括登録できない!? ガバナ制限のうち、特にトリガとの関連性が高い事項 SOQL実行回数:100回 DML実行回数:150回 データローダの最大バッチサイズ:200件 ⇒処理件数1件ごとにSOQLやDMLを実行すると確実にエラー ⇒ループ処理の中でDBにアクセスしてはいけない トリガのテストコードでは、バッチサイズ(200件)を考慮した 一括登録試験パターンを入れる 12
13.
Step1:Adminを困らせないためのTips ④トリガの動きが違う!? Sandboxで作ったトリガを運用環境にリリースしたら、 挙動が微妙に違う・・・? ⇒同じオブジェクト、イベントで複数のトリガが起動する際、 起動順序は不明(コードレベルで同じ組織でも異なる場合有) 13 トリガ1 トリガ2
14.
Step1:Adminを困らせないためのTips ④トリガの動きが違う!? トリガはオブジェクト毎に1件のみ定義し、 ビジネスロジックはハンドラクラスに別途記載する ⇒一つのイベントの中で順次呼び出せば確実に同じ順序で起動する 特に気になる部分は”System.AssertEquals”で値をチェック! 14 トリガ ハンドラ
15.
テストコード大事。 15 Step1:Adminを困らせないためのTips 総括 バグを残したままリリースしないように、 テストコードでしっかりチェックしましょう・・・
16.
Step2:Adminに末長く使ってもらうためのTips 16
17.
Step2:Adminに末長く使ってもらうためのTips カスタムパラメータを活用しよう 開発時点の仕様をもとに、Apex内部に定数を記述した ⇒その後、動作仕様に関わるパラメータが変わった場合、 Sandboxで修正し再度リリースしないといけない・・・ ⇒パラメータがApex外部にあればコードを改修する必要なし! 17
18.
Step2:Adminに末長く使ってもらうためのTips カスタムパラメータを活用しよう ①カスタム表示ラベル 1行のテキスト(String) システム変数として差し込み可能
ユーザ表示言語別に定義可能 パラメータはメタデータ扱い (メタデータとしてリリース可能) ユースケース:表示文言・定数の値 例:外部WebサービスのエンドポイントURL 18
19.
Step2:Adminに末長く使ってもらうためのTips カスタムパラメータを活用しよう ②カスタム設定 オブジェクトのレコード形式(1件、カスタム項目定義可能) システム変数として差し込み可能
ユーザ・プロファイル別に定義可能 パラメータはデータ扱い(メタデータに含まれない) ユースケース:特定ユーザのみ有効なフラグ・パラメータ 例:システム管理者のみ入力規則が判定されなくなるフラグ 19
20.
Step2:Adminに末長く使ってもらうためのTips カスタムパラメータを活用しよう ③カスタムメタデータ型 オブジェクトのレコード形式(複数件登録可能、カスタム項目定義可能) SOQLで取得(ガバナ制限カウント対象外)
組織内で一意のパラメータ パラメータはメタデータ扱い (メタデータとしてリリース可能) ユースケース:マスタデータ、対応付け、ホワイトリスト 例:メールアラートの際、ユーザの所属部署に応じて CC送信するメールアドレスの一覧 20
21.
Step2:Adminに長く使ってもらうためのTips カスタムパラメータを作ってみよう カスタム表示ラベル カスタム設定 カスタムメタデータ型 データの持ち方 1行テキスト
1件のレコード 複数件のレコード データの使い分け 言語別 ユーザ・プロファイル別 × (自分で選択する) メタデータAPIで データ移行 ○ × (レコードは別途登録) ○ ユースケース 表示文言 定数の値 特定ユーザ用フラグ マスタデータ 対応付け ホワイトリスト 21 カスタムパラメータ一覧
22.
Step3:Adminにもっと活用してもらうためのTips 22
23.
Step3:Adminにもっと活用してもらうためのTips メソッドの呼び出し方を増やす Apexクラスの書き方を工夫し、汎用性の高いコードを作ろう 汎用性のあるビジネスロジックは、 イベント処理クラスと分離してハンドラクラスとして記述する ⇒独立したハンドラクラスは、様々なイベントから呼び出せる Apexトリガ Apexスケジューラ/バッチ
Visualforce Lightning Component プロセス、フロー 23
24.
Step3:Adminにもっと活用してもらうためのTips メソッドの呼び出し方を増やす ハンドラクラスのお作法 メンバー変数を使わない(定数は可) メソッドはpublic(global)
staticで宣言 DBアクセスを伴うメソッドは複数レコード一括処理 必要に応じて各種アノテーションを付加 24
25.
Step3:Adminにもっと活用してもらうためのTips メソッドの呼び出し方を増やす 各種アノテーションを付けることで利用シーンが増える 通常 Apexトリガ、Apexスケジューラ/バッチ、 Visualforce(actionメソッド)で利用可能 @AuraEnabled Lightning コンポーネント(Aura、LWC)で利用可能 @RemoteAction Visualforce(Javascipt Remoting)で利用可能 25
26.
Step3:Adminにもっと活用してもらうためのTips メソッドの呼び出し方を増やす 更に・・・ ビジネスロジックを別のメソッドで呼び出す @InvocableMethod プロセス・フローから呼び出し可能 @InvocableVariable 上記メソッド使用時の引数・戻り値 26
27.
Step3:Adminにもっと活用してもらうためのTips メソッドの呼び出し方を増やす 27 試してみた 実際に動かす ビジネスロジックの メソッド 上記メソッドを呼ぶ @InvocableMethod メソッド
28.
Step3:Adminにもっと活用してもらうためのTips メソッドの呼び出し方を増やす 28 Apexアクションとして呼び出せる!
29.
Step3:Adminにもっと活用してもらうためのTips メソッドの呼び出し方を増やす その他 @future Apexメソッドを非同期処理できる (戻り値なし) ⇒高負荷な処理を現行トランザクションから分離 Apex RESTアノテーション全般 ApexメソッドをWebサービスとして公開できる ⇒外部アプリ・サービスからアクセス可能に 29
30.
最後に 開発者よし、Adminよし、ユーザよし 三方よしの開発を心がけましょう! 30
31.
ご清聴ありがとうございました! 31
Jetzt herunterladen