2019年3月

リストビューにおけるクイックアクションの一括実行

  • 2019.03.30

概要 本記事では、リストビューで選択したレコードに対して、用意したクイックアクションを実行することで、通常はレコード単位に行う操作が一括で実行できるようにする方法を記載します。 設定方法 クイックアクションを作成 まずは、オブジェクトのクイックアクションを作成します。 この例では、商談オブジェクトのフェーズ項目を更新するクイックアクションを作成します。 リストビューにクイックアクションを追加 検索レイアウトのリストビューに作成したクイックアクションを追加する。 リストビューでクイックアクションを実行 リストビューにボタンが追加されて、複数行を選択してクイックアクションが実行できることを確認します。 まとめ 本記事で記載した方法を使うことで、標準機能でリストに対して一括で操作を加えるような機能を実現できるようになります。 ぜひ参考にしてみてください。

[Salesforceデザイナー資格]Sharing and Visibilityデザイナー合格まで

  • 2019.03.13

概要 本記事では、Salesforceデザイナー資格のSharing and Visibilityデザイナー試験を受験して合格するまでに勉強した内容を簡単にまとめます 試験範囲 試験範囲については、リリースごとに変わる可能性があるので最新を確認する必要があります。 私が受験した時は、Winter’19でしたので、下記の内容となります。 http://tandc.salesforce.com/examguide_cert_sharing_visibility_designer.pdf 宣言的共有(67%) ・与えられた特定の顧客シナリオに従って、異なるタイプの情報へのユーザアクセスを許可および制限するために必要となる、該当するオブジェクトおよび項目レベルセキュリティ設定の適切な使用および制限について説明する ・与えられた特定の顧客シナリオに従って、適切なデータアクセス権をしかるべきユーザに付与する宣言的プラットフォームセキュリティ機能のすべてに必要な関連設定を説明する ・適切な表示およびコラボレーションの要件が満たされるように、取引先チームの使用事例を適切に評価し、取引先チームを実装する能力を示す ・セキュリティに関する考慮事項に留意しながら、グループやロールなどのセキュリティ機能を使用して、異なるグループにビューとフォルダを効果的に区分する方法を示し、レコードレベルのセキュリティに関する考慮事項とどのように異なるかを示す ・与えられた特定の顧客の組織階層に従って、レコード共有に対するロール階層の影響を説明する ・外部ユーザが関与する与えられたシナリオに従って、異なるタイプのコミュニティユーザ (社内、顧客コミュニティ、パートナーコミュニティなど) に適切にレコードを表示するために、セキュリティおよび共有設定をどのように利用できるかを説明する ・特定の顧客シナリオに従って、より複雑なセキュリティ要件に対処するために、Territory Management 2.0 をどのように適用するか、または適用しないかを認識している ・顧客の特定データストレージとデータ格納先について与えられた要件に従って、Salesforce の宣言的およびプログラミング的セキュリティ機能を適切に利用する市場のソリューションオプションを知っている ・共有およびセキュリティモデルについて与えられたアーキテクトの設計および設定に従って、共有および表示の検証方法を説明する ・共有およびセキュリティモデルについて与えられたアーキテクトの設計および設定に従って、共有および表示の検証方法を説明する パフォーマンス(8%) ・特定の複雑な顧客組織の設定に従って、Apex 共有 (および計算) がシステムパフォーマンスにどのような影響を与えるかを説明する ・特定の複雑な顧客組織の設定に従って、多数のユーザおよびレコードにおいてもメンテナンス可能なセキュリティモデルを設計する プログラミング的共有(25%) ・与えられたシナリオに従って、宣言的機能を使用すると満たせない要件を達成するために、プログラミング的共有機能を活用したソリューションを設計する ・与えられたシナリオに従って、データ表示に関連したプログラミング的カスタマイズ (Apex および Visualforce) のセキュリティリスクを最小限にする方法を説明する ・プログラミング的セキュリティソリューションを検証する単体テストを適切に設計する方法を示す ・プログラミング的ソリューションの設計時にオブジェクトおよび項目レベルの権限を適切に適用する方法を示す サンプル問題 1. あるリモートユーザから、自分が作成した非公開の取引先リストビューを実行すると特定の取引先が表示されないという苦情が寄せられました。この問題をトラブルシューティングするため、システム管理者はどのようにサポートできますか? 答えを 1 つ選んでください。 A. そのユーザの場所に VPN 接続して、リモートデスクトップセッションを確立する B. そのユーザからリストビューのリンク URL をメールで送ってもらい、調査する C. 別名でログイン機能を使用して、そのユーザがログインしたときに表示される内容を確認する D. 自分で問題を解決できるように、そのユーザを一時的にシステム管理者に設定する 2. ユニバーサルコンテナ社は営業部門のカスタムプロファイルを作成し、「参照」および「編集」のアクセス権をカスタムオブジェクトのカテゴリ項目に設定しました。営業部門プロファイルに割り当てられている 100 名のユーザのうち 3 名のカテゴリ項目に「参照のみ」のアクセス権を設定するように新たな依頼がありました。 アーキテクトはこの依頼にどのように対応できますか? 答えを 1 つ選んでください。 A. カテゴリ項目に「参照のみ」の権限セットを作成して、該当ユーザに割り当てる B. カテゴリに「編集」アクセス権がない新規プロファイルを作成して、該当ユーザに割り当てる C. カテゴリ項目セットを「参照のみ」に設定した新規ページレイアウトを該当ユーザ用に作成する D. カテゴリに「参照のみ」アクセス権を付与するカスタム権限を作成して、該当ユーザに割り当てる 3. ユニバーサルコンテナ社では、営業 VP が 6 か月ごとに商談チームの編成を変更します。各商談チームは次の人材で構成されています。 o AE (所有者) o 営業エンジニア o オーバーレイメンバー o 営業担当 アーキテクトは、商談チームのメンバーが適切な商談レコードにアクセスできるようメンバーを再編成するために、何を使用する必要がありますか? 答えを 1 つ選んでください。 A. ユーザ設定メニューで、[進行中の商談でチームメンバーを更新する] をクリックする B. デフォルトチームをクエリして進行中の商談を更新する Visualforce ページを構築する C. 商談レコードの詳細ページで、「チームメンバーの更新」機能を使用する D. 商談タブのホームページで、商談チームの一括再割り当てウィザードを使用する 4. ユニバーサルコンテナ社では、国内のコールセンター向けに、3 か月前に Service Cloud の大規模な展開に成功しました。最も顧客取引先の数が多い企業のひとつであるユナイテッドオートモーティブ社のオープンケースは 15,000 件を超えています。エージェントが、ユナイテッドオートモーティブ社に新規ケースをオープンするときに問題が発生しています。ケースを作成しようとすると、次のエラーメッセージが表示されます。 UNABLE_TO_LOCK_ROW このエラーは、ユナイテッドオートモーティブ社の取引先にのみ発生することがわかっています。再度ケースを保存しようとすると通常は保存できますが、問題の発生回数が増えているようです。 アーキテクトはどの選択肢を推奨すべきですか? 答えを 1 つ選んでください。 A. すべての取引先の共有ルールを見直し、カスタマーサービスチームにユナイテッドオートモーティブ社の取引先への「参照・更新」アクセス権を付与する B. ユナイテッドオートモーティブ社の取引先構造を見直して、取引先を複数の支店取引先に分割する C. すべてのケース共有ルールを見直して必要に応じて統合し、共有ルールの合計数を減らす D. カスタマーサービスプロファイルを見直し、適切なケース項目および取引先項目への「参照・更新」アクセス権を付与する 5. 適切な権限が付与された場合、レポートの作成と編集が可能となるライセンスタイプはどれですか? 答えを 2 つ選んでください。 A. Customer Community Plus B. Customer Community C. Customer Community Plus Login D. Partner Community Plus Login [回答] 1. C 2. B 3. D 4. B 5. A、C 勉強法 勉強法は、シンプルに試験範囲の事項についてSalesforceが提供するヘルプページ、開発者ドキュメントをひたすら読みながら、よくわからない部分は自分のDeveloper Editionで動作確認してみるというのを繰り返しました。 実際に学習に使用したリンクを下記にまとめましたので、参考にしてください。 アクセス制御の基礎 データアクセスの種別 https://developer.salesforce.com/docs/atlas.ja-jp.dat.meta/dat/dat_components.htm レコードへのアクセス https://help.salesforce.com/articleView?id=granting_access_to_records.htm&type=5 共有の直接設定によるユーザ共有と共有セットによるユーザ共有の相違点 https://help.salesforce.com/articleView?id=security_sharing_users_manual_and_sets.htm&type=5 ユーザレコードの共有の直接設定の制御 https://help.salesforce.com/articleView?id=security_sharing_owd_user_manual.htm&type=5 データローダを使用して手動で共有ルールを作成する方法 https://help.salesforce.com/articleView?id=000005614&language=ja&type=1 Apex を使用したレコードの共有 https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_bulk_sharing_creating_with_apex.htm エンタープライズテリトリー管理 https://help.salesforce.com/articleView?id=tm2_intro.htm&type=5 組み込みの共有動作 https://help.salesforce.com/articleView?id=sharing_across_objects.htm&type=5 暗黙的な共有 https://developer.salesforce.com/docs/atlas.ja-jp.draes.meta/draes/draes_object_relationships_implicit_sharing.htm 項目へのアクセスはどのように決まるのですか? https://help.salesforce.com/articleView?id=customize_fieldaccess.htm&type=5 項目のアクセス設定の変更 https://help.salesforce.com/articleView?id=modifying_field_access_settings.htm&type=5 データスキュー 所有権データスキュー https://developer.salesforce.com/docs/atlas.ja-jp.draes.meta/draes/draes_group_membership_data_skew.htm 親子データスキュー https://developer.salesforce.com/docs/atlas.ja-jp.draes.meta/draes/draes_object_relationships_parent_child_data_skew.htm 要約: パフォーマンス向上のためのデータのリレーションと更新の調整 https://developer.salesforce.com/docs/atlas.ja-jp.draes.meta/draes/draes_object_relationships_takeaway.htm Apex、Visualforce Apex および […]

プロファイルのオブジェクト権限「すべて表示」が主従関係で親レコードに連動するか

  • 2019.03.12

概要 本記事は、親子の主従関係がある2つのオブジェクトがある場合に、プロファイルで親のオブジェクト権限に「すべて表示」や「すべて変更」が付与されていると、子レコードのデータアクセス権限が親レコードに連動するかどうかを検証してみた結果となります。 ※動作確認は、Developer Editionで行なっております。 検証結果 連動されました。 つまり、プロファイルのオブジェクト権限における「すべて表示」「すべて変更」はレコードのアクセス権が付与されており、主従関係の親に「すべて表示」「すべて変更」が付与されていれば子にアクセス権が継承されるようです。 参考 https://help.salesforce.com/articleView?id=users_profiles_view_all_mod_all.htm&type=5

Community Cloudのライセンス選定とレコードの共有について

  • 2019.03.10

概要 本記事は、SalesforceのCommunity Cloudにおけるライセンスの選定とそれぞれにおけるレコードの共有方法を簡単に整理したものです。 ライセンスの選定 まず、前提ですが、外部ユーザとしてログインを必要としない、認証されていない (ゲスト) ユーザ向けの公開知識ベースとしてコミュニティを使用する場合は、コミュニティライセンスを購入しなくても構築することができます。(Enterprise 組織、Performance 組織、および Unlimited 組織である必要有り...

VSCodeを用いたSalesforce開発で使用するExtension

  • 2019.03.05

VSCodeを用いたSalesforce開発で使用するExtension 従来のSalesforceのApexやVisualforceの開発では、Force.com IDE(Eclipse)やMavensMate(SublineやAtom)がローカルの開発環境として使用されていました。現時点(2019年3月)でこれからの開発環境は、VSCodeのExtensionを用いるのが標準となります。本記事では、VSCodeでSalesforceの公式のExtensionについて紹介します。 ソースコード VSCodeのExtesionは、OSSとなっておりGitHubに公開されております。 https://github.com/forcedotcom/salesforcedx-vscode Salesforce Extension Pack 結論からいうと、Salesforceの公式のExtensionは、いくつかありますがこれをインストールすると他の7つのExtensionもインストールされます。 https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode VSCodeの設定(事前準備) ・Salesforce CLIを下記のリンクの手順で導入する。 https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup ・A Salesforce DX project でローカルプロジェクトを作成する。 https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_workspace_setup.htm ・Java 8 Platform, Standard Edition Development Kitを導入する。 また、以下の手順でVSCodeで必要な設定の手順を実施します。 Command+,(カンマ)で設定を開く Apexで検索して、ユーザー設定(settings.json)を開く echo `/usr/libexec/java_home -v 1.8`でJAVA_HOMEのパスを調べる “salesforcedx-vscode-apex.java.home”: “Java_HOMEのパス” ・Visual Studio Code v1.26 or laterが必要となる。 使い方 Salesforce Extension Packに含まれる7つのExtensionの使い方は、下記のサイトにまとめられています。 https://developer.salesforce.com/tools/vscode それぞれのExtension Salesforce Extension Packに含まれるExtesionは、以下となります。 Salesforce CLI Integration https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-core Apex https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-apex Apex Interactive Debugger https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-apex-debugger Apex Replay Debugger https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-apex-replay-debugger Aura Components https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-lightning Visualforce https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-visualforce Lightning Web Components https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-lwc

Qiitaの記事をWordPressへ連携

  • 2019.03.04

Qiitaの記事をWordPressへ連携 元々本ブログ以外でQiitaで書いていた記事もいくつかあったので、QiitaからWordPressへ連携できるようにしてプログ側では全ての記事が参照できるようにしましたので、その方法を記載します。 プラグインのインストール FeedWordPressのプラグインをインストールします。 FeedWordPress QiitaのRSSフィード(ユーザ)のURLを追加 FeedWordPressのSyndicated Sitesに下記の形式でURLを追加します。 https://qiita.com//feed.atom 更新を手動実行 FeedWordPressのSyndicated Sitesで追加したサイトの「Update Now」を押下します。 各記事のFeatured Imageを変更 各記事のFeatured Imageを手動で変更します。 (※多分もっと効率の良い方法があるはずです。) 参考 Qiitaの記事をWordPressブログに同期できるようにしてみた https://qiita.com/icchi_h/items/2f8494ed4684a673a0c0 FeedWordPressの使い方-サイトのRSSを自動取得して記事作成 https://it-tantou.com/361/

VisualforceとApexにおけるタブ情報の取得

API
  • 2019.03.02

VisualforceとApexにおけるタブ情報の取得 Visualforceでは、JavaScriptの処理でAJAX Toolkitを使ってSOAP APIをコールしてアプリケーションとタブ情報を取得します。 取得されるアプリケーションは、ログインユーザが使用できるアプリケーションが対象となります。 Apexでは、Schema.describeTabs メソッドでDescribeTabSetResultを取得して、getTabs()によりアプリケーションごとのタグ情報を取得します。 サンプルコード Visualforce Apex 参考 AJAX Toolkit Developer Guide – Connecting to the API https://developer.salesforce.com/docs/atlas.en-us.ajax.meta/ajax/sforce_api_ajax_connecting.htm SOAP API 開発者ガイド – describeTabs() https://developer.salesforce.com/docs/atlas.ja-jp.api.meta/api/sforce_api_calls_describetabs.htm Apex 開発者ガイド – DescribeTabSetResult クラス https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_class_schema_describetabsetresult.htm

SalesforceのデータローダーがZulu OpenJDK 11でリリース

  • 2019.03.02

概要 Salesforceのデータローダーは、これまでOracle Java 8でビルドされていましたが、Ver.45のリリースで「Zulu OpenJDK 11」でビルドされるようになりました。下記のGitHubで公開されているので、早速導入してみました。 https://github.com/forcedotcom/dataloader/releases/tag/v45.0.0 Zuluとは https://qiita.com/nowokay/items/edb5c5df4dbfc4a...