Mark Hammer's Blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

Trailhead日本語要約を今後ストップします

お世話になっております。本ブログ管理者のMark Hammerです。
いつも本ブログをご参照いただきましてありがとうございます。

本ブログは2017年3月より英語しかなかったTrailheadモジュールのChallengeを日本語要約するサイトとしてスタートしました。
その後2019年よりはてなブログに場所を移し、TrailheadのみならずSalesforceに関するノウハウも投稿するようになり皆様より多くのアクセスをいただきました。
まことに感謝しております。

お知らせですが、表題の通り、今後Trailhead日本語要約を投稿することを一旦止めます。
理由は以下の通りです。

  • だいたい1年前からChallengeの日本語要約作成がストレスとなり、Challengeを含むTrailheadモジュールの手を止める要因となっていること。
  • そもそもChallengeの日本語要約に関する投稿へのアクセス数が少なく、上記のストレスを受ける割に需要が見込めないこと。
  • 比較的多いアクセスを頂いている資格更新モジュールのChallengeについてもSalesforce公式の日本語訳、解説があり1ユーザの投稿が必要とは思えないこと。
  • Trailhead本体にChallengeの日本語版が掲載されるようになり、必要性が薄れてきたこと。

現在投稿済みのTrailhead日本語要約についてはしばらく残しますが、今後非公開化する場合があります。
本ブログ自体は引き続き継続し、Salesforce関連の投稿を行う予定です。

なお、「このChallengeの日本語要約を作ってほしい!」という依頼がありましたらTwitterにてご連絡ください。
作成するとは明言できませんが、価値があると思えば作成する場合があります。

引き続き本ブログをよろしくお願いいたします。

Mulesoftオンライン研修: Anypoint Platform Development: Fundamentals (開発: 基礎) で詰まったところ

はじめに

最近、会社に言われてMulesoftの最初の研修に当たるAnypoint Platform Development: Fundamentals (開発: 基礎)をオンラインで受講しました。

Anypoint Platform Development: Fundamentals (開発: 基礎)

オンラインで無料ながらAnypoint Platformのトライアルアカウントと研修用に用意されている環境(DBやWeb環境)を使ってAnypoint Platform、Anypoint Studioを学べる研修です。
内容としてはかなりいいとは思うのですが、進める上で詰まったところがそれなりにあったのでここに書いておきます。

詰まったところと解決策

動画、ドキュメントを見てもチェックが入るものとチェックが入らないものがある

研修資料は動画やウォークスルーの手順書などのドキュメントがありますが、最後まで見るとチェックが入るようになっています。


しかし、中には最後まで見てもチェックが入らないものもあり、しばらく原因が分からず「そういう仕様なのだろう」と思っていました。

結論から言うと全ての動画、ドキュメントはチェックが入ります。
ただしチェックが入る条件は「動画/ドキュメントを最後まで見る」ではなく「動画/ドキュメントを指定時間以上表示して最後まで見る」になっています。

動画の場合

動画の指定時間は通常「動画を通常の速度で再生した場合の時間」となっています。
ここで注意すべきなのが倍速機能で、「早く見たいので速度を1.5倍にする」などもできるのですが、1回目でこれを行ってしまうと最後まで見ても「指定時間表示していない」と判定されてチェックが入りません。

動画再生画面の倍速機能

「必ず2回以上動画を見る」という人以外は1回目は等速で表示することを強くお勧めします。
なお、指定時間が動画を通常の速度で再生した場合の時間より長いケースも確認しています。この場合は動画を何回も見ないとチェックが入りません。

ドキュメントの場合

ドキュメントのチェック条件は「指定時間以上表示&最後のページまで表示」となっています。
ウォークスルーの場合、想定作業時間が「(25 - 75 分)」のように記載されていますが、想定作業時間の最小時間(例の場合は25分)が指定時間となっています。
問題はウォークスルーを想定作業時間より早く終わらせても、ドキュメントは指定時間表示しないとチェックが入らない、ということです。実際の研修では「指定時間より早く終わった人は休憩してください」となる時間ですね。
早く終わった場合にチェックが入るまで休憩するか、それとも先を進めて後でドキュメントを再表示してチェックを付けるかはご自由に決めてください。ちなみに私は後者でした。

指定時間の確認方法

チェックが入るまでの指定時間と現在の表示時間を確認する方法は以下の通りです。

  1. 研修画面下の「Transcript」をクリック
  2. LessonsタブのLessonが各動画、ドキュメントのタイトル、Durationが「(現在までの表示時間)/(指定時間)」の表記となっています。
その他
  • ウォークスルーの動画は任意となっているため、アクセスさえすれば大体はOK。ただし一部指定時間が設定されているため、チェックが入らない場合は動画を最後まで見てください。
  • DIYエクササイズの手順ドキュメントは最後のページまで表示すればOK。
  • 各章の確認クイズは全問正解、模擬試験は42/60問正解すればOK。
  • アンケートは回答を送付すればOK。

各章の確認クイズの内容を確認する方法

各章の最後には5問前後の確認クイズがあり、全問正解しないとチェックが入らないのですが、どの問題が正解/間違いなのかは「Review Questions」から確認できます。

不正解がある場合はどの問題を間違えたか確認してから再度やり直すことで全問正解にできます。
また、全問正解後に再度クイズの内容を表示する方法は以下の通りです。

  1. 研修画面下の「Transcript」をクリック
  2. Testsタブをクリックし、「View Details」をクリック
  3. 確認したいクイズをクリック
  4. 「Review Questions」をクリック

ちなみに模擬試験は上記のような回答後の内容確認はできません。

Anypoint Studioのウォークスルーで手順通りモジュールを読み込ませるとエラーになる

Anypoint Studioのウォークスルーでは機能使用のためにモジュールのインストールを行うことがありますが、手順書ではインターネットから最新版のモジュールをインストールする内容になっています。
しかし実際に実施すると実行/デバッグ時にバージョン起因のエラーが発生することがあります。

回避策としては、研修用に用意された受講者用ファイルを解凍するとモジュールが用意されているので、そのモジュールを使用することで回避できます。なおこの回避策用の手順はないので、使用するモジュール含めて自分で探す必要があります。

例)ウォークスルー12-4でJMS ConfigのActive MQブローカー用依存関係を追加する手順がありますが、手順書だと「Add Maven dependency」を使うところ、「Use local file」 で受講者用ファイル内のモジュールを指定することでエラーを回避します。

Advanced REST client ダウンロード用URLにアクセスすると github にリダイレクトされる、またはアクセスできない

最初に行う環境のセットアップにて、APIアクセス用アプリであるAdvanced REST client ダウンロード用URLとして https://install.advancedrestclient.com/ が記載されていますが、このURLにアクセスすると https://github.com/advanced-rest-client/arc-electron にリダイレクトされるか、404エラーが表示されます。
実際のダウンロード方法は以下の通りです。

ちなみに私は試していませんが、Chrome拡張機能もあるようです。これを使ってもいいかもしれません。 chrome.google.com

ウォークスルー手順書に記載されたアイコンが Advanced REST client にない

Advanced REST clientを使用する手順書にて、Rawを表示するという手順で <> アイコンをクリックするよう記載されている場合があります。

が、Ver.17.0.9時点でこのアイコンはありません
Ver.17.0.9時点では、アウトプット部分の縦3点アイコンをクリック→「Raw」をクリック、で同様の出力が表示できます。

おわりに

この研修はここに書いた通り受講者に優しくない部分もあります。
しかし、用意されている環境は無料とは思えないものであることは間違いないので、Mulesoftを学びたい方はやってみることをお勧めします。

風呂場でWeb試験を受けられる環境を作るまで

はじめに

2020年にコロナウィルスが流行してから多くのことが変わりましたが、資格試験の受験環境も例外ではなく、テストセンターの他に自宅でも受けられるようになりました。
自宅で試験を受けた方も多くいらっしゃるかと思いますが、私はずっとテストセンターで受験してきました。
理由は以下のように自宅受験の制限が自分にとってつらいということもありますが、

それ以上に自宅受験を選べない理由がありました。

それは、自室にものが一杯で片付けられないこと。
写真はとても載せられませんが、机の上も周りも紙やら本やら何やら一杯で、絶対に試験前にNGが出そうな環境なので、テストセンター受験を継続していました。

しかし、ついに自宅受験を考えなければならない時が訪れます。
それは、SalesforceのAccredited Professional試験(以下「AP試験」)が原因でした。

AP試験とは

簡単に言うとSalesforceパートナー会社従業員向けの個別機能ごとの資格試験(Overview(英語))です。
この試験はSalesforceパートナー会社の人しか受験できません。

で、この試験、「オンライン試験のみ可」となっており、テストセンター受験の選択肢がありません。
自費で受けるつもりはなかったのですが、無料バウチャーが手に入ったので(まぁ捨てるのもなぁ…)と思い、受験することにしました。

試験場所を風呂場に決めるまで

ただ、前述の通り自室はとても試験ができる環境ではないため、「外のレンタルオフィスで受験できないか」とずっと考えていたのですが、

  • 他人の声など入らないか
  • ネット環境は有線で安定しているか
  • 費用は高くないか

等と考えていると選ぶことができませんでした。
そんな時に、以下の投稿を見つけます。

wing-degital.hatenablog.com

note.com

「そうか、別にPCがあればいいからトイレか風呂場でもいいんだ。」

ということで、トイレか風呂場での受験を決めます。
どちらにするかは悩みましたが、最終的に風呂場にPCと机を持ち込んで受験することにしました。

受験環境を整えるまで

ネット環境は有線で接続したいので、部屋の端にあるルータから風呂場までLANケーブルをつなぐ必要があります。

部屋の構造
(図は https://sumaity.com/press/157/ から自宅に似た間取りを引用しました。)

距離を測ると、約15mほどでした。
なお、電源は風呂場のそばにコンセントがあったため、延長コードなしで接続可能でした。

また、参考にした投稿を見ると浴槽ではお尻や腰にダメージがありそうだったため、可能であれば机と椅子を持ち込みたいと考えました。

ということで、必要なものは以下になります。

  • 風呂場に持ち込める机と椅子
  • 15m以上のLANケーブル

用意したもの

Amazon等を見て、以下を購入しました。

[山善] 折りたたみ パイプ 椅子 幅44.5×奥行47.5×高さ79.5cm 持ち運び用取っ手付き 軽量 完成品 シルバー/ブラック YZX-08SB:Amazon

[山善]テーブル ミニ 折りたたみ サイドテーブル 幅50×奥行48×高さ70cm ハイタイプ 傷・汚れ・水分・熱に強い天板(メラミン加工) なめらかな表面 角が丸い アンティークブラウン/ブラックRYST5040H(ABR/BK4):Amazon

エレコム ELECOM LD-C6FT/BU200 [ツメ折れ防止フラットLANケーブルCat6準拠 ヨリ線 20m ブルー]:ヨドバシ・ドット・コム

机は風呂場に入る範囲で大きいものを、椅子はよく見る折りたたみ椅子を購入しました。

実際の写真

見た目通りかなり狭いですが、出入りがつらいぐらいで受験中はそれほど気になりませんでした。
試験場としてはそこそこ快適な部類だと思っています。
ちなみに各種ケーブルはドアの下から通しています。

余談

試験は無事合格しました。

ただこの時の試験はリアルタイム監視を行う試験官がおらず、後日チェック方式でした。
次回受験する場合はリアルタイム監視ありとのことなので、何かあればまた更新します。

追記

この環境でリアルタイム監視ありオンライン試験であるMulesoft資格試験、Accredited Professional試験を受験していますが、何の問題もなく受験できています。
試験官ありの場合、マウスパッドが使えないそうなので机の上でマウスを動かしていますが、特に問題なく反応しています。
1点だけ問題があるとすれば、換気扇を止められないので試験官とのやり取り(部屋を見せろなど)が聞き取りづらいことがあります。まぁこれは仕方がなさそうです。

Lightningレコードページのレポートグラフコンポーネントの動作はレポートグラフと異なる

Lightningレコードページには、レポートから生成可能なグラフを配置できるレポートグラフコンポーネントがあります。
これを使えばレポート画面で作成したグラフをそのまま配置可能…と思っていましたが、「行をグループ化」を指定した場合に以下の動作の違いがありました。

  • レポート画面で配置可能なグラフ
    • 「行をグループ化」で指定した項目であればどの項目であっても軸として使用可能
  • レポートグラフコンポーネント
    • 「行をグループ化」で指定した項目のうち、最上位の項目のみ軸として使用可能

具体的な動作を以下例で表してみます。

例として、「自取引先を親取引先として持つ各取引先の商談金額合計をレコードページでグラフ表示したい」という要望があったとします。
まず、レポートの「行をグループ化」に「親取引先>取引先名」と設定すると、レポートページのグラフでは期待通りのグラフが作成できます。

「親取引先>取引先名」でグループ化したレポートとグラフ

期待通りのグラフをレポートページで作成できたので、これをLightningレコードページのレポートグラフコンポーネントを使用して親取引先レコードページに表示させようとします。
すると、以下のようにレポートページと異なり、Y軸には親取引先の1つしか表示されません。

「親取引先>取引先名」でグループ化したレポートを用いたレポートグラフコンポーネント

次に、レポートの「行をグループ化」に「取引先名」と設定します。
これでもレポートページのグラフで期待通りのグラフが作成できます。

「取引先名」でグループ化したレポートとグラフ
これを先ほどと同様にLightningレコードページのレポートグラフコンポーネントを使用して親取引先レコードページに表示させると、今度は期待通りレポートページのグラフと同様、Y軸には子取引先が表示されました。
「取引先名」でグループ化したレポートを用いたレポートグラフコンポーネント

Admin Configuration Kit: Security and Visibility を和訳してみた

2022/2にSalesforce blogにてシステム管理者向けのセキュリティ&データ参照・編集に関するイメージ図(英語版)が公開されました。

admin.salesforce.com

ここでは、イメージ図の日本語版、及び備考を記載していきます。

セキュリティ&データ参照・編集に関する設定の全体像

説明文の日本語要約

  • 対象製品:Sales Cloud, Service Cloud, Salesforce Platform
  • 対象機能:ログインセキュリティ、オブジェクト権限と項目レベルアクセス、レコードアクセス
  • 対象外機能:ゲストユーザ、テリトリー管理

Salesforce 組織内の新規ユーザのセキュリティとレコードアクセスに関する設定を設計および構成します。

  • まず、要件を収集します。
  • その後、各ページでベストプラクティスの図と段階的な構成フローを確認します。

この資料はヘルプに代わるものではありません。

ユーザログインの流れ

説明文の日本語要約

  • ベストプラクティス
    • MFAを有効にします。
    • ログインIPアドレスの制限、ログイン時間帯の制限、セッションタイムアウトの設定は、現時点ではプロファイルによってのみ割り当てることができます。
    • 可能な限り、権限セットと権限セットグループを使用してください。

この資料はヘルプに代わるものではありません。

セキュリティ設定決めの流れ

説明文の日本語要約

図の設定フローに従って、あなたの組織のユーザにとって最適なログイン・セキュリティ設定を決定してください。

  • ベストプラクティス
    • ユーザの業務に必要な最小限のアクセス権を付与します。
    • MFAを有効にします。
    • ログインIPアドレスの制限、ログイン時間帯の制限、セッションタイムアウトの設定は、現時点ではプロファイルによってのみ割り当てることができます。
    • 可能な限り、権限セットと権限セットグループを使用してください。

この資料はヘルプに代わるものではありません。

オブジェクト単位の参照・編集・削除・作成権限決めの流れ

説明文の日本語要約

図の設定フローに従って、どのようなオブジェクトレベルのアクセス権限がユーザにとって最適であるかを決定してください。

  • ベストプラクティス
    • ユーザの業務に必要な最小限のアクセス権を付与します。
    • 可能な限り、「すべて表示」、「すべて変更」のアクセス権限を付与しないようにします。
    • 可能な限り、権限セットと権限セットグループを使用してください。

この資料はヘルプに代わるものではありません。

項目単位の参照・編集権限決めの流れ

説明文の日本語要約

図の設定フローに従って、ユーザにとって最適な項目レベルアクセス権限の設定を決定してください。

  • ベストプラクティス
    • ユーザが仕事をするために必要な最小限のアクセス権を付与します。
    • ある項目を必須とする場合としない場合両方存在するときは、ページレイアウトでその項目を必須とするか、入力規則を設定することを検討してください。
    • 項目を完全に必須にするには、カスタム項目の作成時または編集時に「必須項目」チェックボックスにチェックを入れます。
    • 可能な限り、権限セットと権限セットグループを使用して権限を割り当ててください。

この資料はヘルプに代わるものではありません。

オブジェクト単位の組織の共有設定決めの流れ

説明文の日本語要約

図の設定フローに従って、組織の共有設定がユーザにとって最適であることを判断してください。

  • ベストプラクティス
    • 組織の共有設定は、可能な限り制限されるべきです。
      「レコード単位の共有設定決めの流れ」のロール階層、共有ルール、手動共有を使用して、レコードアクセスの対象を拡張することができます。
    • 共有はSandboxで構成し、本番環境に導入する前に十分にテストする必要があります。
    • 本番環境でのレコードアクセスの変更は、大規模な操作となるため、営業時間外に行う必要があります。
      共有が再計算されるまでは、Salesforceにアクセスさせないようにすることを検討してください。

この資料はヘルプに代わるものではありません。

レコード単位の共有設定決めの流れ

説明文の日本語要約

図の設定フローに従って、どのような共有機能がユーザにとって最適かを判断してください。

  • ベストプラクティス
    • 複数の共有機能によって1つのレコードに異なるレベルのアクセス権限が与えられる場合、そのユーザは最も範囲の広いアクセス権限を受け取ります。
      • 例:組織の共有設定で「公開/参照のみ」、共有ルールで「参照・更新」の場合は範囲の広い「参照・更新」が適用されます。
    • 共有機能はサンドボックスで設定し、本番環境に導入する前に十分にテストする必要があります。
    • 本番環境でのレコードアクセスの変更は、大規模な操作となるため、営業時間外に行う必要があります。
      共有が再計算されるまでは、Salesforceにアクセスさせないようにすることを検討してください。

この資料はヘルプに代わるものではありません。

パスワード有効期限切れ時のLightning Login動作、そしてパスワード有効期限切れ時の動作を確認する方法。

はじめに

以前、某所にて「パスワード入力が不要なLightning Loginにて、Salesforceのパスワード有効期限が切れた場合どうなるのか」という質問がありました。
シングルサインオンでログインするユーザの場合、Salesforce側のパスワード有効期限は無視される(参考ヘルプ)ことは知っていましたが、Lightning LoginはSalesforceで完結するため、確かに「どうなるんだろう」と思い、調べてみました。

パスワード有効期限切れ時の動作を確認する方法

検証しようとはいっても、パスワードの有効期限は手で書き換えられないので待たないと無理では…?と思ってしまいがちです。
しかし、Salesforceにはパスワードの有効期限残によらず全ユーザのパスワード有効期限を即期限切れとする機能があります。 それが設定項目にある「すべてのユーザのパスワードをリセット」になります。

[すべてのユーザのパスワードをリセット]前
[すべてのユーザのパスワードをリセット]後

実際のパスワード有効期限切れ時のLightning Loginの動作

実際の動作は以下でした。

  1. ログイン画面にてLightning Loginでログインする。
  2. ログインは成功するが、パスワード変更画面が表示される。
    このパスワード変更画面では現在のパスワードは入力不要のため新しいパスワードのみ入力して保存する。
    パスワード変更画面
  3. Salesforceログイン後の画面(通常はホーム画面)が表示される。

普段からLightning Loginを使用している場合、パスワード入力不要のため「パスワードを忘れた」となりがちですが、これだと安心ですね。

続きを読む

WebassessorログインIDの変更方法

はじめに

Salesforce認定資格試験を受験するためには必ずWebassessorのアカウントを取得する必要があります。
アカウント新規作成の際は当然ログインIDを設定する必要があるのですが、このログインID、登録後のプロファイル画面では変更不可となっています。
しかもSalesforce認定資格試験FAQでは「Webassessor ログインIDは変更できない仕様となっております。」となっており、変更依頼も不可とされていました。

FAQ抜粋

ログインIDは現在(6文字以上の半角英数字以外に)特に制限はないのですが、私がWebassessorアカウントを作成したときは会社のメールアドレスをログインIDに設定していたので、当時の会社のメールアドレスをずっとログインIDとしていました。
あくまでログインIDであって、試験予約、試験結果等が通知されるメールアドレスはプロファイル画面から変更可能なので昔の会社のメールアドレスであっても特に問題はないのですが、「変えられるなら変えたいなぁ…」とはずっと思っていました。

そんな時、Twitterにて以下情報が入ってきました。

これを参考にログインID変更申請を行ってみると、確かに変更できたので手順を残しておきます。

手順

なお、以後の操作、Trailhead Helpとの連絡は英語でした。

ケース作成

  1. Trailheadにログイン
  2. Trailhead Helpにアクセス
  3. 画面右下の「Submit a New Case」をクリック(表示まで時間がかかるのでしばらく待つ)
  4. Contact Trailhead Help 画面で「Certification」をクリック
  5. 次画面でStep2: Select Topicに"Trailhead/Certification Account"、Step3: Select Reasonに"Certification Webassessor Account, Password Reset, or Login Issue"を選択して「Log a ticket」をクリック
  6. Case作成画面で以下図を参考に入力し、「Submit to Trailhead」をクリック

以後はCase作成画面に表示されているメールアドレス宛に通知が届きます。
このメールアドレスはWebassessorに設定しているメールアドレスと別でも問題ありません。

Trailhead Helpとの連絡

ケース作成後、本人確認のためにWebassessor上の情報を入力するよう依頼が届きます。 私の場合は以下でした。

  • What is the company name tied to your Webassessor account?
    • Webassessorプロファイルの「会社名」
  • What is your full physical street address, including the city, state/province, and postal code?
    • Webassessorプロファイルの「住所1」「住所2」「都道府県」「県」「郵便番号」「国」を繋げて住所を入力する
  • What is the full name of the last exam you took, or the full name of the exam you are currently registered for?
    • 直近受験したSalesforce資格試験、または現在予約中のSalesforce資格試験の正式名
    • 資格試験の英語名はこちらが参考になります。
  • What is the phone number associated with your Webassessor account?
    • Webassessorプロファイルの「主たる電話番号」

ちなみに「主たる電話番号」は必須ではないので記載していなかったのですが、依頼が来た後に電話番号を設定して返信しても問題ありませんでした。
また連絡が英語である以上、会社名、住所等に日本語を記載している場合は英語に変えた方がいい気がします。(私は元から英語表記なのでそのままでした。)

返信はTrailhead Helpにアクセスすると、右下の「My Cases」に作成したケースが現れるので、そこをクリックして行います。
ちなみに返信は改行できませんでしたが、問題ありませんでした。

上記情報に問題がなければ、翌営業日にWebassessorログインIDを変更した旨連絡が届きます。
以後旧ログインIDではログインできないのでご注意ください。

フローのリソース: 選択肢で入力したテキストを取り出す方法

はじめに

Twitterを見ていたときに、この投稿を見つけました。

疑問に思って調べたところ、結構面倒な動作だったのでここにまとめます。

フロー設定と動作

まず、画面フローにて画面コンポーネントに選択リストを配置します。

この時、「OTHER」選択肢は「その他」を表示し、さらに「テキスト入力を表示」を有効にしてテキスト入力可能にします。

最後に、選択リスト画面で「完了」を押すと入力値が表示されるようにします。

実際にデバッグで動かしてみます。

すると、{!OTHER}では選択肢の「その他」が表示され、入力テキストは取得できませんでした。
また、その他に入力テキストが取得できそうなリソースも見当たりませんでした。

入力テキストを取り出す方法

参考資料によれば、「選択肢リソースをテキスト変数のデフォルト値に設定すると入力テキストが取得できる」とのことなので、{!OTHER}をデフォルト値とするテキスト変数var_inputTextを設定します。

そして、最後の入力値表示画面に{!var_inputText}を追加します。

すると、{!OTHER}では選択肢の「その他」が、{!var_inputText}では入力値の「テスト入力」が取得できました。

ここで、試しにテキスト変数var_inputTextからデフォルト値を外し、選択リスト画面と入力値表示画面の間にvar_inputText{OTHER}の値を割り当てる要素を追加します。

この方法でも{!var_inputText}で入力値の「テスト入力」が取得できました。

おわりに

できるにはできたのですが、確認した範囲ではヘルプにも記載がなく、トライアンドエラーでしか方法を特定できないと思います。
選択肢リソースで選択肢と入力テキストの両方を取得できないのであれば、個人的には選択肢リソースにて「テキスト入力を表示」を有効にした場合にそのテキストを保存するための変数を指定する項目を追加するのがベターだったのではないかと思いました。

参考資料

Trailblazer Community: How to get the value for screen flow 'Choice' option 'Display text input'?

Visual Flow Choices and Using “Show Input on Selection” | Explorations Into Salesforce

キャンペーンメンバーの状況を新規作成時にカスタマイズ済みにしたい

はじめに

キャンペーンでは参加者をキャンペーンメンバーとして登録しますが、キャンペーンメンバーの「メンバーの状況」項目は、初期状態では「送信」と「レスポンスあり」で固定となっており、カスタマイズができません。
これは、通常選択リスト項目で選べる値は項目に設定している値及びレコードタイプ設定で決定しますが、キャンペーンメンバーの「メンバーの状況」項目はそのキャンペーンに紐づく「キャンペーンメンバーの状況」オブジェクト内のレコードで決定する動作が原因と思われます。
この動作により、通常選択リスト項目の値はレコードタイプ単位で決まるため「同じレコードタイプでレコード毎に別の値を使いたい」という要望は叶いませんが、キャンペーンの「メンバーの状況」に限り「レコード毎に別の値を使いたい」という要望が実現できます。
ただし、「初期値をカスタマイズしたい」という要望が実現不可となっており、IdeaExchangeでも「修正予定なし」となっています。

IdeaExchange: Customizable Campaign Member Status Values picklist

Update from Salesforce
(中略)
We don't plan to address this immediately on the roadmap, but we'll continue to re-evaluate our priorities to see if we can fit this in.

ということで、ここでは「初期値をカスタマイズしたい」という要望を何とかして実現してみます。

前提

ここではキャンペーン作成時に「メンバーの状況」項目が以下から選べるようになっているようにします。

  • 連絡予定:デフォルト
  • 連絡済み
  • 出席予定:レスポンスあり
  • 欠席予定:レスポンスあり

また、初期値の「送信」、「レスポンスあり」は不要なので削除します。

解決方法1

テンプレートとなるキャンペーンを作り、それをコピーする。

概要

  • テンプレートとなるキャンペーンを作成し、「メンバーの状況」をカスタマイズする。
  • UIから「新規」ボタンを外し、代わりに「テンプレートを『関連情報と共にコピー』するボタン」を配置する。

実装手順

  1. キャンペーンページレイアウトに「キャンペーンメンバーの状況」関連リストを表示する。
  2. テンプレートとなるキャンペーンを作成する。この時レコードIDをコピーする。
  3. テンプレートとなるキャンペーンの「キャンペーンメンバーの状況」関連リストで、前提節の通り状況の追加、削除を行う。
  4. キャンペーンにカスタムボタンを作成する。カスタムボタンのURLは以下とする。
    /lightning/r/Campaign/[テンプレートのレコードID]/clone?useRecordTypeCheck=0&cloneRelatedEntities=%7B%22CampaignMemberStatuses%22%3A%7B%7D%7D
  5. キャンペーンオブジェクト設定の「リストビューボタンレイアウト」から「リストビュー」にて標準ボタンから「新規」ボタンのチェックを外し、カスタムボタンにて4.で作成したカスタムボタンを選択する。
  6. 以後、5.で設置したカスタムボタンをクリックすることでテンプレートのコピー作成画面が表示され、「キャンペーンメンバーの状況」がテンプレートと同じレコードが作成される。

作業完了後はキャンペーンページレイアウトから「キャンペーンメンバーの状況」関連リストを外してもOKです。

メリット

  • 「メンバーの状況」を再カスタマイズしたい場合、テンプレートを編集すればいいのでフローより楽。

デメリット

  • 新規作成時、キャンペーン名にテンプレートとなるキャンペーン名が入るので、都度消して入力する手間が発生する。
  • 誤ってテンプレートキャンペーンを削除するとカスタムボタン押下時にエラーになる。
  • データローダでのキャンペーンインポート時には「メンバーの状況」がカスタマイズされない。
  • Sandboxを作成した場合、Sandboxへのキャンペーンテンプレート作成及びカスタムボタンURLの変更を行わないとキャンペーンが作成できない。

解決方法2

フローでキャンペーン作成時にキャンペーンメンバーの状況オブジェクトに手を加える。

概要

  • フローでキャンペーン作成時に「キャンペーンメンバーの状況」オブジェクトのレコードを作成、削除する。

実装手順

別サイトに手順を記載しましたのでご参考ください。

zenn.dev

メリット

  • 「新規」ボタンのカスタムボタン差し替えなど、UIへの変更が不要。
  • テンプレート不要のため、誤削除を気にする必要がない。
  • データローダでのキャンペーンインポート時にも「メンバーの状況」がカスタマイズされる。
  • Sandbox作成時も特に対応せず状況カスタマイズ済みのキャンペーンが作成される。

デメリット

  • 「メンバーの状況」を再カスタマイズしたい場合の修正箇所を理解するには、フローの設計思想を理解する必要がある。

おわりに

現状、「メンバーの状況」の初期状態を書き換えたいという要望を実現するのが結構面倒だという印象を受けました。
冒頭に書いた通りIdeaExchangeでもこの動作を修正する予定はないとのことですが、もう少し何とかならないか…と思います。

参考資料

sf.forum.circlace.com

www.youtube.com

Field Service コンサルタント試験勉強用資料

この度、5/29にField Serviceコンサルタント合格しました。

ここでは勉強に使用した資料を書いていきます。

Field Service用パッケージ、組織

Salesforceの試験勉強では実際に触ることが重要です。
Trailheadのモジュールにて、Developer Editionにインストールできるパッケージと期間限定ながら即Field Serviceが利用可能な組織の情報がありました。

Trailhead

資格対策用Trailmix

Field Serviceのモジュール及びヘルプをまとめている公式Trailmixです。

trailhead.salesforce.com

主要Trail

Field ServiceのモジュールをまとめているTrailです。

trailhead.salesforce.com
trailhead.salesforce.com
trailhead.salesforce.com

Field Serviceで用いるオブジェクト一覧、モデル

Field Serviceでは作業指示、サービス予定のようなField Service専用のオブジェクトがあるため、Service Cloudに出てくる標準オブジェクトの知識だけでは足りません。
Field Service専用のオブジェクトについても知る必要があります。

Field Service関連権限セット・ライセンス情報

Field Serviceへのアクセスは専用の権限セットが必要となりますので、権限セットの前提となるライセンスについても知る必要があります。
ただExperience Cloudほどは重要度は高くありません。

パートナー向け資料

この資格はほぼパートナー向けだと思いますが、パートナーのみアクセス可能なパートナーコミュニティでは、「Salesforce Field Service 合格体験記 & 機能ワンポイント解説」のWebinar動画と資料が公開されています。
https://partners.salesforce.com/0D54V00005VMgio

特に機能ワンポイント解説の部分は試験カテゴリに沿った内容になっているので、入手できたら読むことをおすすめします。

(この資料はパートナーのみアクセス可能なため、私に直接連絡いただいても提供しません。ご了承ください。)