Upload
Download free for 30 days
Login
Submit Search
Adminとうまく共存するためのApex開発Tips
Download as PPTX, PDF
1 like
464 views
Takashi Hatamoto
Salesforce Developer Group ルーキー会 2周年記念LT大会 #19 での発表資料です
Engineering
Read more
1 of 31
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
More Related Content
PPTX
kintoneチームを支えるSeleniumテスト
Jumpei Miyata
PDF
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性
ikeyat
PDF
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
Yahoo!デベロッパーネットワーク
PDF
MS Officeファイル暗号化のマスター鍵を利用したバックドアとその対策
MITSUNARI Shigeo
PPTX
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
takehiko yoshida
PDF
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
Yasuyuki Sugai
PDF
Team Geek「何故チームにリスペクトが必要なのか」/ フォトラクションValues社内勉強会資料
MasaruNoda
PPTX
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
kintoneチームを支えるSeleniumテスト
Jumpei Miyata
[JSUG SpringOne 2021 報告会]見えてきたSpring 6.0の方向性
ikeyat
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
Yahoo!デベロッパーネットワーク
MS Officeファイル暗号化のマスター鍵を利用したバックドアとその対策
MITSUNARI Shigeo
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
takehiko yoshida
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
Yasuyuki Sugai
Team Geek「何故チームにリスペクトが必要なのか」/ フォトラクションValues社内勉強会資料
MasaruNoda
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
What's hot
(20)
PDF
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
Taehoon Kim
PDF
WebRTCの技術解説 公開版
Contest Ntt-west
PDF
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)
Kuniharu(州晴) AKAHANE(赤羽根)
PDF
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
Keizo Tatsumi
PPTX
.NET MVC Areas
Younju Park
PDF
はじめてのPRD
Takuya Oikawa
PDF
第3回SEMAT勉強会 SEMATエッセンス解説
Hironori Washizaki
PPT
試験にでるSpring
土岐 孝平
PDF
Pull Request & TDD 入門
ESM SEC
PDF
メルペイの与信モデリングにおける特徴量の品質向上の施策
Mai Nakagawa
PDF
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
Minwoo Kim
PDF
ツイートID生成とツイッターリアルタイム検索システムの話
Preferred Networks
PPTX
データマイニングの話詰め合わせ
Tokoroten Nakayama
PDF
イッパン的なゴカテイ作ってみた #histudy 2017/08
sperkbird
PPTX
2020/5/22 Account Code 3 - 会計システムアーキテクチャの道程
啓 杉本
PDF
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
PPTX
데이터를 보는 안목 (Data Literacy)
sidney yang
PDF
技術系文書作成のコツ
Hideo Terada
PPTX
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
SFDG ROOKIES
PDF
Tackling Complexity
Yoshitaka Kawashima
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
Taehoon Kim
WebRTCの技術解説 公開版
Contest Ntt-west
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)
Kuniharu(州晴) AKAHANE(赤羽根)
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
Keizo Tatsumi
.NET MVC Areas
Younju Park
はじめてのPRD
Takuya Oikawa
第3回SEMAT勉強会 SEMATエッセンス解説
Hironori Washizaki
試験にでるSpring
土岐 孝平
Pull Request & TDD 入門
ESM SEC
メルペイの与信モデリングにおける特徴量の品質向上の施策
Mai Nakagawa
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
Minwoo Kim
ツイートID生成とツイッターリアルタイム検索システムの話
Preferred Networks
データマイニングの話詰め合わせ
Tokoroten Nakayama
イッパン的なゴカテイ作ってみた #histudy 2017/08
sperkbird
2020/5/22 Account Code 3 - 会計システムアーキテクチャの道程
啓 杉本
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
데이터를 보는 안목 (Data Literacy)
sidney yang
技術系文書作成のコツ
Hideo Terada
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
SFDG ROOKIES
Tackling Complexity
Yoshitaka Kawashima
Ad
Similar to Adminとうまく共存するためのApex開発Tips
(14)
PDF
Japan Dreamin'2020 Salesforce Adminのおぼえがき(転職・LEXデビュー編)_After_愛おしきテンプレートVer.
Kyoko Tachibana
PDF
Japan Dreamin'2020 Salesforce Adminのおぼえがき(転職・LEXデビュー編)_Before
Kyoko Tachibana
PPT
AppExchangeパートナー&デベロッパー第2部:20070523版
Junichiro Tasaki
PPTX
Salesforce開発のスタート地点で考えたいこと
Yuki Yamaguchi
PDF
アジャイル開発を始めてみませんか?(思い出編)
Miho Nagase
PDF
Xp Terakoya No02
takepu
PPTX
CAのアジャイルな開発の取り組みと周りの環境について
Hirotaka Osaki
PDF
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
Ryutaro YOSHIBA
PDF
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce Developers Japan
PPTX
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
Hirotaka Nishimiya
PDF
アジャイルマニフェストから見るインセプションデッキ
You&I
PDF
Salesforce Wednesday - Apex Basic
Takahito Miyamoto
PDF
アート・オブ・アジャイル・デベロップメント読書会#1
Sosuke Kimura
PPT
50代現役SEのつぶやき
Kenichi Yamada
Japan Dreamin'2020 Salesforce Adminのおぼえがき(転職・LEXデビュー編)_After_愛おしきテンプレートVer.
Kyoko Tachibana
Japan Dreamin'2020 Salesforce Adminのおぼえがき(転職・LEXデビュー編)_Before
Kyoko Tachibana
AppExchangeパートナー&デベロッパー第2部:20070523版
Junichiro Tasaki
Salesforce開発のスタート地点で考えたいこと
Yuki Yamaguchi
アジャイル開発を始めてみませんか?(思い出編)
Miho Nagase
Xp Terakoya No02
takepu
CAのアジャイルな開発の取り組みと周りの環境について
Hirotaka Osaki
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
Ryutaro YOSHIBA
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce Developers Japan
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
Hirotaka Nishimiya
アジャイルマニフェストから見るインセプションデッキ
You&I
Salesforce Wednesday - Apex Basic
Takahito Miyamoto
アート・オブ・アジャイル・デベロップメント読書会#1
Sosuke Kimura
50代現役SEのつぶやき
Kenichi Yamada
Ad
More from Takashi Hatamoto
(10)
PDF
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
Takashi Hatamoto
PDF
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
Takashi Hatamoto
PPTX
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
Takashi Hatamoto
PPTX
20230830_ArchitectGroup_SWTT再演(GraphQL)
Takashi Hatamoto
PPTX
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
Takashi Hatamoto
PPTX
20221104_しゃべくりforceのおしゃべり用資料
Takashi Hatamoto
PPTX
Restriction Rules(制限ルール)調べてみた
Takashi Hatamoto
PPTX
DreamTXセッションから読み解くAI活用の現状と展望
Takashi Hatamoto
PPTX
LEXモバイルから紐解くSalesforceモバイル史
Takashi Hatamoto
PPTX
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
Takashi Hatamoto
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
Takashi Hatamoto
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
Takashi Hatamoto
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
Takashi Hatamoto
20230830_ArchitectGroup_SWTT再演(GraphQL)
Takashi Hatamoto
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
Takashi Hatamoto
20221104_しゃべくりforceのおしゃべり用資料
Takashi Hatamoto
Restriction Rules(制限ルール)調べてみた
Takashi Hatamoto
DreamTXセッションから読み解くAI活用の現状と展望
Takashi Hatamoto
LEXモバイルから紐解くSalesforceモバイル史
Takashi Hatamoto
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
Takashi Hatamoto
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
Download