Quantcast
Channel: tyoshikawa1106のブログ
Viewing all 1437 articles
Browse latest View live

SFDC:Lightning Design Systemと静的リソースへのアップロード

$
0
0

Visualforceで使うLightning Design SystemのCSSは「apex:sldsタグ」で読み込ませているのですが、静的リソースへのアップして読み込ませておいた方がいいケースがあったので最新版をダウンロードしてみました。現在の最新版は2.9.2です。

f:id:tyoshikawa1106:20190519115537p:plain

Lightning Design System


ちゃんと静的リソース用のダウンロードリンクが用意されています。
f:id:tyoshikawa1106:20190519115700p:plain

Downloads - Lightning Design System


ダウンロードしたファイルをZip化してアップしたところエラーがでました
 ↓

Error: static resource cannot exceed 5MB

アレ・・と思って確認したところ、Zip化された時点で5.3MBぐらい。ちょっと削らないとアップできませんでした。


削れそうなファイルを確認したところImagesフォルダの中にある画像は削っても問題なさそうでした。
f:id:tyoshikawa1106:20190519121642p:plain


こんな感じで不要なファイルを削って5.1MBぐらいになったところで無事にアップできました。ほんの少しならオーバーしてもアップできるみたいです。Salesforce内で使われている画像が手に入るのは嬉しいのですが、静的リソース版はそのままアップできる5MBに収まっていると便利かなと思いました。


SFDC:Lightning Design SystemのData Tablesコンポーネントと左右のスペース

$
0
0

Lightning Design Systemでtableタグのスタイルを適用すると左右にスペースが差し込まれて幅が均等にならないのでなんとかならないかなと思ってました。
f:id:tyoshikawa1106:20190519144109p:plain


slds-table_cell-bufferクラスを除外すればよかったみたいです。(サンプルに自動でセットされている)
f:id:tyoshikawa1106:20190519143757p:plain


Google翻訳すればすぐに気づけるようになってました。
f:id:tyoshikawa1106:20190519143847p:plain


Lightning Design SystemのData Tablesコンポーネントは画面サイズに合わせて幅を自動調整してくれてモバイル対応とかもやりやすいので便利です。

SFDC:Indy 500とSalesforce Car

$
0
0

2018年の記事ですがIndy 500でSalesforceがスポンサーとして参加したチームがあるみたいです。
f:id:tyoshikawa1106:20190526142114p:plain


ドライバーはJ.R. Hildebrandという人で、2018年5月のレースで66台中11位でゴールした話がSalesforce Blogで記事になっています。
f:id:tyoshikawa1106:20190526142934p:plain

J.R. Hildebrand Drives Salesforce-Sponsored Car 66 to an 11th Place Finish in Indy 500 - Salesforce.com


Indy 500の情報ってどこかでみれるのかなと思ったらiOSアプリが公開されているみたいです。
f:id:tyoshikawa1106:20190526144755p:plain

‎「INDYCAR」をApp Storeで


英語ですが雰囲気で利用できそうです。アプリを起動するとお気に入りのドライバーをフォローできるようになっていました。
f:id:tyoshikawa1106:20190526145020p:plain:w200


これでそのドライバーの基本情報を見ることができます。
f:id:tyoshikawa1106:20190526145042p:plain:w200


またお気に入りのチームもフォローできるようになっています。てっきりSalesforceが一つのチームを持っているのかとおもったのですが、チーム内の一台がSalesforceがスポンサーとなっている車のようです。チーム名は「Dreyer & Reinbold Racing」という名前でした。
f:id:tyoshikawa1106:20190526145233p:plain:w200


アプリ内では過去のレース結果も確認できます。
f:id:tyoshikawa1106:20190526145459p:plain:w200


下の方のレースの結果を見てみるとHildebrandさんは21位でゴールしてました。お気に入りに登録しておくと一番上に表示されるので便利です。
f:id:tyoshikawa1106:20190526145642p:plain:w200


その他アプリでできることの詳細はこちらが参考になりました。


また、NTT IndyCar SeriesというTwitterアカウントとWebサイトがありました。こちらでもJR Hildebrandさんが特集されてました。


YoutubeチャンネルもあるのでもしかするとSalesforce Carが走ってるレースが見られるかもしれません。(チラッと見てみましたが基本遠くからの撮影なので見つかりませんでした。)


Salesforce CarですがSalesforceのAnalyticsチームがレースデータを分析しながらレースに望んでいるみたいです。

SFDC:Pardotでハマったところ - プロスペクトの上限について

$
0
0

PardotはSalesforceのMA製品で主にB2Bをターゲットとした製品です。
f:id:tyoshikawa1106:20190526151017p:plain

B2Bマーケティングを自動化で支援 - Pardot(パードット) - セールスフォース・ドットコム


エディションによって利用できる機能が多少異なりますが、どのエディションでも共通の制限があります。プロスペクト数最大10,000の部分です。
f:id:tyoshikawa1106:20190526151242p:plain

各種エディションと料金-Pardot - セールスフォース・ドットコム


最初あまり気にしていなかったのですが、この上限10,000件はおそらくあっという間に突破すると思います。Salesforceに登録されたリード/取引先責任者は原則自動でPardot側に同期されるためです。この10,000件を超えてしまうとPadotのホーム画面にアラートが表示されます。またメールでの通知も届きます。内容としては10日以内に10,000件以内に収まるように対応しないとメール送信不可となるとのことでした。

対応方法

アラートが表示されてからSalesforceのサポートに問い合わせしてみました。プレミアプランではない場合はだいたい1日〜2日で返答があります。その後の問題の解決まではプラス2日〜4日ぐらいかかると思います。


サポートに問い合わせした結果解決方法としては下記の二点での対応になるみたいです。

  • ①Pardotから不要なプロスペクトデータを削除する
  • ②Pardotのプロスペクトをオプトアウトしてメール不可状態にする。


①のプロスペクト削除ですが、Pardot側で削除した場合、Salesforce側の同期処理で自動で復元されることはないとのことです。削除対応後に気づいたら復元されて容量オーバーが再発するケースは起こらないことが確認できました。


②のメール不可状態の件ですが、プロスペクトの上限というのは「メール可能な」プロスペクトの件数で判定されるとのことです。なのでメール不可状態にしておけば10,000件を超えても問題なく、更にスコアリングやグレードの集計なども実行されるとのことでした。


個人的にPardotのスコアリングやグレードの機能は使いたい機能だったので、削除ではなくメール不可状態にして対応したいと思いました。ですが、その際に問題となったのがオプトアウトを手動で設定したものと顧客側で配信停止リンクなどからオプトアウトしたものが区別できるかという部分でした。ここが区別できないといつかプロスペクトを整理してメール送信可能な状態に戻したくなっても、本当に戻していいプロスペクトか判別ができません。どうやって管理すればいいか問い合わせしていたのですが、10日という期限が迫っていたこともあり、今回は削除で対応することになりました。。(良い案があれば知りたいです。)


ちなみにPardotからプロスペクトの一括削除はチェックボックスと削除アクションで実行できますが、オプトアウトの一括変更機能は用意されていませんでした。こちらもサポートの方に相談したところ、オートメーションルールなどを用意しての対応が必要になるみたいです。この部分も調査に時間が掛かりそうなのがネックでした。

制限緩和オプションについて

上限の10,000件ですが、オプション購入で制限を緩和することができます。営業の方に相談したところ、10,000件単位で利用可能な件数を追加できるみたいです。(値段等正確な情報は担当営業の方に実際にお問い合わせ頂くのが良いと思います。)

その他の考慮事項

サポートとは別の経緯で教わった情報ですが、Pardotへの同期対象を特定のデータのみに絞って実行する方法があります。Pardotの同期は指定したユーザ権限をつかって行われます。そのため下記の手順で制限することで対応可能です。

  1. リードと取引先責任者を非公開にする
  2. 共有設定などで同期用ユーザに特定の条件に一致するデータのみアクセス権限を付与する。
  3. アクセス権限が付与されているデータのみが同期の対象となる。

URLを忘れましたがSalesforceのヘルプページにも記載されていたので公式的なやり方です。この方法を取り入れようかと考えたのですが、取引先責任者とリードの非公開設定にする必要がある部分で諦めました。(このあたりの仕様もPardot導入時点で検討する内容に含めておいた方が良さそうです。)

まとめ

Pardotのプロスペクト上限問題は必ず遭遇すると思います。実際の顧客情報が10,000件未満だとしてもそれ以外の取引先などの情報がSalesforceに登録されることで、10,000件を超える可能性が高いです。Pardot導入を検討しているタイミングの場合は営業の人にどのように対応するのが良いか相談しておくのが良いと思います。個人的にはどうしてこのあたりの対処方法が公式でまとめられていないんだろ...って気分になりました。(オプトアウトとは別にPardotのメール送信除外フラグがほしい。。)

SFDC:Pardotでハマったところ - 同期処理と空白データの扱い

$
0
0

Pardotを可動したあとにアレ...っとなるケースがありました。下記の挙動です。

  • リードの日付項目に値を入力。
  • 入力した値が不要になったため、空白データで更新。
  • 一定時間経過すると最初に入力したデータが復元されていた。


いや..空白データに更新できないとか困る。。と思ってサポートに問い合わせしたところ、Salesforce側データを空白に更新した場合、Pardot側のデータで上書きされるされるため、空白には更新できない仕様があるとのことでした。

f:id:tyoshikawa1106:20190526155929p:plain

Pardot 同期動作の仕組み

対応方法

この問題を解決するにはSalesforceの空白値を優先させるオプションを有効化させる必要があるとのことです。これを有効化することで最初に記載した挙動の問題を解決できます。またオプションは一度有効化したあと、無効に戻すことも可能です。(空白値で更新したデータは戻りません。)


また双方向の同期の場合、Pardot側の空白値がSalesforce側に反映されることはないので、万が一Pardot側にデータが正しくセットされていないくて、空白データとなっていても、それがSalesforce側に反映されてデータが破損することはないとのことでした。(※双方向同期の場合はSalesforceデータが正なのでこの挙動で問題ないと思います。)

このオプションの有効化自体は依頼すればすぐに実行されました。時間がかかったのはそのオプションを有効化するときの考慮点やPardot側のでデータが正しくなくて空白データで更新されてSalesforce側のデータが破損する恐れはないかの確認に時間がかかりました。(いろいろ確認してもらったところ、その心配はありませんでした。)


個人的にはSalesforce側で空白データで更新できないのは問題点しかない気するので最初から有効化してほしいのですが、気づいていないだけで何かメリットがあるのかもしれません。

まとめ

このオプションの有効化については同期する方向によって注意点が異なるみたいですので詳細はSalesforceのサポートに問い合わせして確認するのが良いと思います。

SFDC:Salesforce Basecamp For Financial Services 2019に参加しました

$
0
0

5月28日に赤坂インターシティコンファレンスで開催されたSalesforce Basecamp For Financial Services 2019に参加しました。

f:id:tyoshikawa1106:20190528125704j:plain

https://www.salesforce.com/jp/events/basecamp19-fin/


会場はこんな感じ。セッション会場が3つとブースが10箇所用意されていました。
f:id:tyoshikawa1106:20190528130501j:plain:w300

f:id:tyoshikawa1106:20190528125326j:plain:w300

f:id:tyoshikawa1106:20190528125428j:plain:w300

f:id:tyoshikawa1106:20190528133420j:plain:w300

イベントのアジェンダ

  • 12:45-18:40 Registration/EXPO Open
  • 13:30-14:30 Keynote
  • 14:55-17:35 Breakout Session
  • 17:35-18:40 Networking Reception

見に行ったセッション

  • 13:30-14:30 Keynote
  • 14:55-15:35 デジタル体験変革による顧客接点強化-三菱UJFモルガン・スタンレー証券様による取り組み
  • 15:55-16:35 大分銀行様におけるクラウド化IT戦略と業務課題へのアプローチ
  • 16:55-17:35 邦銀初!住信SBIネット銀行様のフルクラウド型コンタクトセンター(Service Cloud×Amazon Connect)の取り組み
  • 17:35-18:40 Networking Reception

13:30-14:30 Keynote(基調講演)

最初の基調講演は二部構成でした。

  • 第一部:キャッシュレスの動向とデータ活用の重要性
  • 第二部:顧客起点のサービス変革に向けて


第一部は株式会社インフォキュリオン・グループの代表取締役社長でFinTech協会代表理事会長の方が登壇され、キャッシュレス界隈についてのお話が聞けました。

f:id:tyoshikawa1106:20190528133907j:plain:w300


いろいろな支払いサービスが増えていますが、ガイドラインも用意されて企業間での連携が可能になっていたりオープンAPIなどが用意されているといった話が聞けました。またキャッシュレス協会が設立されて標準化を進めているとのことです。(昨年設立されたそうです。)

一般社団法人キャッシュレス推進協議会 |


その他セッション内では同じキャッシュレスでもクレジットカードとコード決済では支払いの際のフローに違いがあるといった話や、複数ある決済方法に対応できる端末が開発されているので、利用者が支払可能か悩まなくてもよくなるようになる話がありました。

f:id:tyoshikawa1106:20190528135637j:plain:w300

f:id:tyoshikawa1106:20190528141820j:plain:w300


Salesforceとは関係無い分野の話ではありましたが普段何気なく利用していたキャッシュレス周りの話を聞くことができてよかったです。


第二部ではSalesforce社の常務執行役員 エンタープライズ金融営業本部長の方が登壇されてSalesforce周りの話をしてくれました。Salesforce Tower Tokyoができる話と金融機関向けシステム構築をサポートしてくれるパートナー企業がたくさんある話が聞けました。
f:id:tyoshikawa1106:20190528142219j:plain:w300

f:id:tyoshikawa1106:20190528142918j:plain:w300

f:id:tyoshikawa1106:20190528143801j:plain:w300


その他、Mule Softをつかったシステム連携やFinancial Service Cloud、金融機関向けCustomer360が用意されている話がありました。Line WorksとSalesorce連携の事例の話も興味深かったです。最後に今後つながってほしいパートナー企業があったら教えてください。とのことでした。

13:30-14:30 Breakout Session1

1つめのBreakout Sessionでは三菱UFJモルガン・スタンレー証券のお話が聞けました。Service CloudとMarketing Cloudによるシステム構築の話と運営サービスの『MUFGテラス』についてのお話がありました。

f:id:tyoshikawa1106:20190528144931j:plain:w300


会場は基調講演と同じ一番広い部屋でした。前の方の席が空いていたので最前列で見ることができました。イベントの前の方の席って以外と空いてる気がします。(気をつけないとReserve席だったりしますが..)
f:id:tyoshikawa1106:20190528144701j:plain:w300


Service Cloudではコールセンターや問い合わせ受付の仕組みを構築した話を聞けました。電話、メール、チャットと様々な問い合わせ方法をサポートできるオムニチャネルの仕組み構築が行えたとのことです。対面型コンサルサービスと非対面コンサルサービスの両方を提供し、リアルとデジタルの統合を実現しているとことです。

オムニチャネル - Wikipedia

今回のセッションでメインの話は運営サービス『MUFGテラス』の話でした。

オンライントレード×チャット資産運用相談サービス“MUFGテラス”|三菱UFJモルガン・スタンレー証券株式会社

MUFGテラスは2018年11月18日に開始されたチャットとメールで投資相談が行えるサービスとのことです。チャットはリアルタイムでのやりとりが可能で相談から注文まで対応可能となっていて、メールはリアルタイムではないので注文の受付はできないが24時間受け付け可能で翌日回答となっているそうです。


チャットは電話よりも聞きやすくて便利という声がある話も興味深かったです。マーケットAIの仕組みで市況等について自動応答する仕組み構築も行っている話がありました。その他非対面コンサルではバーチャル担当が窓口となり、裏側では複数人のスペシャリストがサポートする体制にすることで利用者が使いやすいサービスとなるようにしたといった話もありました。こうしたサービスの設計周りについての話を聞くことができて良かったと思います。(リアルタイムのチャットをサポートしようと思ったら多くスタッフが必要ということも改めて意識できました。)


Marketing Cloudでは顧客が望む適切なタイミングで情報を提供するシステム構築を行った話がありました。ここは比較的サラッと話が進んだ気がします。ただ、メールについての話で「メールは一斉配信に適したメディアで、低コストだが適したタイミングで送信できるのはシステム化が必要」という話でMA製品がなぜ必要になるのかなんとなく意識できた気がしました。

14:55-16:35 Breakout Session2

2つめのBreakout Sessionでは大分銀行の事例についての話が聞けました。撮影・録音禁止のアナウンスがあったのと満席で立ち見となったセッションでした。内容としては、大分銀行のシステム構築を行った日本システム技術株式会社の方が登壇されてBank Neoという製品の紹介という感じでした。

Bank Neoは2011年に提供開始された製品ですが、今回Cloud版を2019年に提供開始し、またBank Neoの機能の一つで預かり管理機能をSalesforceを基盤として開発した話を聞くことができました。預かり管理機能は大分銀行と共同開発していて今年の秋頃にリリースする予定とのことです。

その他の話はこんな感じ。

  • 預かり管理機能の開発基盤としてSalesforceを選んだ理由(セキュアな環境)
  • 大分銀行プロジェクトについての紹介ビデオ
  • 今までのオンプレミス開発とクラウドを使った開発の違いについて
  • Bank Neoの強み
  • これからのIT戦略


実際にはもっと細かく参考になる話を聞くことができていますが、ざっくりこんな感じのセッションでした。クラウド導入のメリットや導入前の検討事項などといった話は聞くことができてよかったです。

16:55-17:35 Breakout Session3

3つめのBreakout Sessionでは住信SBIネット銀行とiSiDの方が登壇されたフルクラウド型コンタクトセンターの話を聞くことができました。このイベントの中で一番技術者向けの話だったと思います。CRM選定でSalesforceを選んだ理由やできる限り標準機能を活かしつつ必要に応じてAWSでシステム構築を行なった話、Salesforceのガバナ制限を考慮してシステム連携の設計を行った話を聞けました。

f:id:tyoshikawa1106:20190528165636j:plain:w300

f:id:tyoshikawa1106:20190528171320j:plain:w300

f:id:tyoshikawa1106:20190528172823j:plain:w300

まとめ

半日のみのスケジュールとなりましたが、金融機関向けの話をいろいろ聞けてよかったです。見に行ったセッションでは共通してSalesforceによるセキュアな環境/強固なセキュリティという話が出ていたかなと思います。上記に記載した内容については一応メモ取りながら聞いていったので大きな聞き間違いはないと思うのですが、もしかすると認識誤り等あるかもしれません。

さいごに

Networking Reception楽しかったです。
f:id:tyoshikawa1106:20190528174459j:plain:w300

f:id:tyoshikawa1106:20190528174534j:plain:w300


食事も最高でしたが、パートナーブースでお話を聞くことができました。今回お話を聞きにいったブースは次の4つです。

  • ワークスモバイル株式会社 - LINE WORKS(LINE for Sales)
  • 株式会社アイリックコーポレーション - smart OCR
  • VLocity Japan 株式会社 - Vlocity
  • セールスフォース・ドットコム - Success Cloud (プレミアサクセスプラン)

f:id:tyoshikawa1106:20190602182406j:plain:w300

LINE WORKS(LINE for Sales)

SalesforceとLINE WORKSのシステム連携を実現できるLINE for Salesという製品の話を聞きました。基調講演でチラッと名前が出てきたので気になって行ってみました。

明治安田生命にて「LINE WORKS」と「Salesforce」の連携ソリューションを導入|ワークスモバイルジャパン株式会社のプレスリリース

ブースでサクッと聞いた話になるので導入検討時の詳細確認はきちんと問い合わせを行う必要があると思いますが、料金はサブスクリプションモデルで月額XX円という形で、システム導入費用は発生しないとのことでした。


また、厳密にはRekuruというシステムも連携に必要になるため、下記の構成となります。

LINE × LINE WORKS × Rekuru SFA × Salesforce


Rekuru SFAについての詳細は聞いていませんがこちらの導入必要はまた別途必要になるのだと思います。LINEとSalesforce連携の仕組みをきちんと構築しようとするとかなり大変なイメージがあるので、お手軽にデータ連携が可能になる製品はすごく便利だと思います。

smart OCR

smart OCRは画像データを渡すとテキスト構造化データとしてアウトプットしてくれるAPI連携を提供してくれるサービスでした。アウトプット時のテキスト構造化データはJSON形式とのことです。

構想中の案件例として住宅ローン仮審査の必要書類(物件情報や本人確認書類)をOCRでデータ化するといった例がでていました。利用イメージとしてはモバイル端末で書類を写真撮影するとデータ化されるといったことが可能とのことです。これは紙の電子化を行っていきたい企業にとって非常に便利なサービスだと思います。また導入時に要望に応じてカスタマイズ可能との案内も資料に記載がありました。

Vlocity

こちらは話を聞きにいったところ保険業界に特化したサービスを提供しているみたいです。また本社はUSAにある企業とのことでした。

保険業界とは関係なかったので詳しい話は聞かなかったのですが、せっかく来てくれたのでと資料と会社ロゴの入ったボールペンを頂いちゃいました。資料に書いてあった内容を見ると、「見積」〜「制約」までの一連の流れをサポートするアプリケーションを構築できるみたいです。おそらく規模の大きいアプリケーションなのだと思います。本社がUSAとのことで現状事例も海外企業のものがメインでしたが、Salesforce上で保険業のシステム構築する際には話を聞いてみると良いかもしれません。

Success Cloud

最後にセールスフォース社のブースにも行ってみました。Success Cloudということでプレミアサクセスプランや定着化についての話が聞けました。最近サポートに問い合わせる機会が多いのでプレミアサクセスプラン契約してほしい。けど数年間継続して使い続けるかわからないな..と悩んでいたのでいろいろ相談に乗ってもらいました。こうしたイベントではセールスフォースの中の人に直接相談できる機会があるのですごく助かりました。


Salesforce Basecamp For Financial Services 2019はだいたいこんな感じでした。Salesforceのイベントは事例や今まで知らなかった製品の話が聞けてすごく参考になるので機会があればなるべく参加していきたいです。

SFDC:キャンペーンメンバーの状況が更新できなくてハマった話

$
0
0

キャンペーンメンバーの状況が更新できなくてハマった話。必要になった要件に対してキャンペーンの機能を使って対応しようとオブジェクト設定を行いデータを登録したのですが、キャンペーンメンバーの状況を更新しようとしたところ、データが更新されたメッセージが表示されたもののデータが古い値のままという現象が発生しました。

f:id:tyoshikawa1106:20190602203504p:plain


挙動はこんな感じ

  1. キャンペーン詳細ページにアクセス
  2. キャンペーンメンバー関連リストを表示
  3. 対象の取引先責任者レコードにチェックをつける
  4. 状況の更新ボタンをクリック
  5. 変更後の状況の値を選択
  6. 「1 人のキャンペーンメンバーが正常に「レスポンスあり」の状況に更新されました。」とメッセージが表示される
  7. データを確認すると値が変更前のままとなっている。


この現象が発生する前にPardot接続によりConnectedという値が自動生成されたこともあり、そのあたりが関係しているのかなとそれ含めてサポートに問い合わせてみました。

原因と解決方法

結果としてPardotとの接続は関係ありませんでした。原因は状況リスト値でラベルとAPI名を異なる値にしていたためでした。詳細は下記のとおり。

キャンペーンメンバーの状況リスト値でラベルとAPI名を異なる値にした場合にデフォルト値に戻る。そのため存在しない値がで更新しようとしたことになり、データ更新が実行されないという挙動になったようです。


選択リストのラベル名とAPI名を別の値にするのはどのオブジェクトでも使える便利機能ですが、キャンペーンメンバーでは別の値にすることはできないことが確認できました。ほぼ不具合だと思いますが、修正の予定はないとのことです。詳細はこちら。
f:id:tyoshikawa1106:20190602204150p:plain

Campaign member status reverts to default value, if selected picklist value label/Api name is different.


カスタマイズミスが原因ではなく、またこの問題は修正されないことが確認できたので今回はラベルとAPI名を同じ値になるようにして解決しました。

Pardot連携によるConnected値について

こちらもサポートの方に調べてもらいました。PDFにまとめられているみたいです。
f:id:tyoshikawa1106:20190602205124p:plain

http://www2.pardot.com/ConnectedCampaignsFAQ

SFDC:サポートへの問い合わせ内容を社内ユーザ共有する際にハマった話

$
0
0

サポートへの問い合わせ内容と社内共有についてです。「お問い合わせ共有設定」にユーザを追加するとやりとりのメールが追加したユーザにも共有されるようになります。メールは共有されたのですが、メール内のリンクをクリックするとアクセス権限がないというメッセージが表示されてしまいました。


これだとあまり意味がないのでサポートの方に問い合わせてみたところ、お問い合わせ共有設定でアクセス可能なのはメールのみというのが仕様のようです。この問題の解決方法としては、対象ユーザに問い合わせ管理者の権限を付与することで他ユーザが問い合わせした内容も参照可能になるとのことでした。


問い合わせの管理者権限を付与することで追加されるのは問い合わせ内容のアクセス権限のみとのことでした。(一部の問い合わせのみアクセス可能するといったことはできないと思います。) アクセス権限を付与しても問題なければ管理者権限付与で解決するのが良いと思います。権限付与はサポートへ依頼することで付与してもらえました。


f:id:tyoshikawa1106:20190602210049p:plain


SFDC:Visualforceページにアクセスするときのカスタムボタンとアクションの違い

$
0
0

レコードの詳細ページからVisualforceページにアクセスするにはカスタムボタンの方法とアクションによる方法があります。

f:id:tyoshikawa1106:20190608110025p:plain

はじめに

・カスタムボタン => ClassicでもLightning Experienceでも両方OK.
・アクション => Lightning Excperienceのみ(Salesforceモバイルでも利用可能)

Visualforceアクセス権限での挙動の違い

ユーザがVisualforceページにアクセスするにはプロファイル等で権限を付与する必要があります。
f:id:tyoshikawa1106:20190608110458p:plain


Visualforceページのアクセス権限がない場合、カスタムボタンの場合はボタンが表示された状態となりますが、アクションの場合はボタン自体が非表示になる制御が用意されています。※「商談商品登録⚡」がアクションです。

VFページのアクセス権限あり

f:id:tyoshikawa1106:20190608113007p:plain:w300

VFページのアクセス権限なし

f:id:tyoshikawa1106:20190608110658p:plain:w300


カスタムボタンの場合、ボタンは表示されたままになりますがクリックするとアクセスエラーとなります。
f:id:tyoshikawa1106:20190608110812p:plain


アクションはClassicでは利用できないという仕様がありますが、Lightning Experienceへの移行が完了している組織の場合は権限判定が強化されているアクション経由での利用の検討も良いかもしれません。

カスタムボタンとアクションの表示形式の違い

カスタムボタンでVisualforceページにアクセスするとページ全体が切り替わります。
f:id:tyoshikawa1106:20190608111251p:plain


アクションの場合はポップアップ形式で表示されます。
f:id:tyoshikawa1106:20190608111642p:plain


ポップアップの高さはアクションの設定の際に指定できます。
f:id:tyoshikawa1106:20190608111714p:plain


ポップアップにタイトルやキャンセルボタンなどが付いてきますがこちらはapex:pageタグのshowQuickActionVfHeader属性で解決すると思います。
f:id:tyoshikawa1106:20190608112110p:plain

f:id:tyoshikawa1106:20190608111853p:plain

https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_page.htm


変更後はこちら。不要なタイトルやボタンが非表示となりスッキリしました。
f:id:tyoshikawa1106:20190608112207p:plain


アクションの場合、詳細ページからは移動していないため「sforce.one.back(true);」処理による前ページに戻る処理を実行すると詳細ページの前のページのビューページまで戻る挙動となります。
f:id:tyoshikawa1106:20190608112533p:plain

f:id:tyoshikawa1106:20190608112547p:plain


カスタムボタンでの実装時にレコード詳細ページ→ボタンクリック→Visuafoorceページ→前ページへ戻る→レコード詳細ページという流れを想定してつくっている場合はアクションにすると挙動が変わってしまうのでアクションへの切り替え前に処理を見直す必要があります。


Visualforceページにアクセスするカスタムボタンとアクションの違いはこんな感じでした。

SFDC:Apex開発とアクセス権限の関係について

$
0
0

Apexクラスの処理は基本的にシステム権限で実行されます。そのためいくつか権限設定を行い正しく利用されるように制御する必要があります。

ページアクセスの権限

この権限が付与されていない場合はページにアクセスするとエラーメッセージが表示されます。
f:id:tyoshikawa1106:20190608110458p:plain

f:id:tyoshikawa1106:20190608110812p:plain

有効なApexクラスの権限

Apexクラスの権限が実は付与されていなくてもあまり問題がないことが多いです。
f:id:tyoshikawa1106:20190608115046p:plain


社内ユーザが操作するVisualforceページが裏側で呼び出しているcontrollerなどは権限を付与していなくても問題なく利用できます。(@RemoteActionも平気でした。)
f:id:tyoshikawa1106:20190608115544p:plain


この権限が必要になるのはカスタムボタンからApexクラスを実行するWebServiceメソッドを呼び出すような場面で必要になります。(カスタムボタン→Javascript→Apexクラス呼び出しはLightning Experienceではサポートされていないので利用場面は少なくなったと思います。)


その他いくつかの場面で必要になったとは思いますが基本的には実装後の動作確認で気づけるレベルと思います。

オブジェクトの参照権限

Apexは基本的にシステム権限で実行されます。そのため項目レベルセキュリティなどは無視して処理が可能です。例として下記のような感じ。

権限あり

f:id:tyoshikawa1106:20190608131315p:plain

権限なし

f:id:tyoshikawa1106:20190608131350p:plain

f:id:tyoshikawa1106:20190608131408p:plain

このように取引先権限を除外することで標準ページでアクセスできなくしてもVisuaforceページでクエリを実行すると下記のようにデータにアクセスできます。
f:id:tyoshikawa1106:20190608131556p:plain


Visualforceページ側でapex:outputFieldタグなどをつかった場合は権限周りもチェックされますが、それ以外の表示方法なら権限を無視して実装できます。こうした仕様のメリットとしては、プロファイル設定でユーザの権限を与えないことで標準ページ上は何も操作できない状態にして、Visualforce一画面のみ業務に必要なデータ登録を行うなどの実装ができます。(上記取引先検索の例ではデータ参照ですが、基本的にはデータ登録や更新周りでの用途となると思います。)


逆に開発者はセキュリティの要件が厳しい機能のApex開発を行う場合はそうした判定処理を実装する必要があります。(基本的にアクセス権限を無視した機能の実装を行うケースの方が稀だと思いますが..)

「with sharing」と「without sharing」

よく話にでてくる「with sharing」と「without sharing」での取得制御ですが、こちらは項目レベルセキュリティを判定するのではなく、共有設定で制御された非公開レコードへのアクセスの制御となります。

まとめ

Apexのシステム権限実行ですが、Summer'19へのリリースでFLSやCRUDが考慮されるようになる機能が追加されるという話を耳にしました。(パイロット版かも) リリースノートなどではまだ正確な情報を確認していないのですが、Sandbox組織でSummer'19が一足先にさわれるようになっていると思いますので気になる機能の動作確認はしておいたほうが良いかもしれません。(パイロット版とのことなのでまだ大丈夫と思いますが。)

SFDC:TrailheadのSpring'19 リリース試験モジュールを進めました

$
0
0

実はまだ終わっていないSpring'19リリース試験。Summer'19への切り替えの話も出ているのでさすがにやることにしました。(いつかやり忘れで失効しそう...)
f:id:tyoshikawa1106:20190608134640p:plain


ちなみに期限は「August 23, 2019」。
f:id:tyoshikawa1106:20190608154102p:plain

アドミニストレーター認定資格の更新

1ページ目
2ページ目

f:id:tyoshikawa1106:20190608140832p:plain

f:id:tyoshikawa1106:20190608141006p:plain


f:id:tyoshikawa1106:20190608141051p:plain

B2C Commerce デベロッパー資格の更新

この資格持ってないけどせっかくなので。

  • Business Manager の IP 制限
    • 特定の IP アドレスまたはアドレス範囲に対するアクセスを制限できるようになりました。

設定に一致しない IP アドレスでユーザがログインしようとした場合に、次のことを実行できます。

  • ユーザのアクセスを拒否する。
  • エラーログエントリを要求する。エラーログエントリは、LogCenter に送信されて処理されます。
  • 指定されたシステム管理者にメール通知を送信する。
  • ログイン失敗回数を増やす。この回数を増やすことで、アクセスの試行回数が多くなりすぎた場合にユーザをブロックできます。
  • すべての認証試行とその結果はセキュリティログに記録されます。以前は、成功したログインのみが記録されていました。
  • OCAPI API 設定の変更
    • ExportDataUnitsConfiguration ドキュメント (Data API 19.1)
    • ExportGlobalDataConfiguration ドキュメント (Data API 19.1)
    • ExportSitesConfiguration ドキュメント (Data API 19.1)
  • ジョブとスケジュール
    • OCAPI Data API を使用してサイトエクスポートを管理できるようになりました。その結果、開発者はカスタムコードを開発せずにサイトエクスポートを実行できるようになりました。
    • システムジョブ sfcc-site-archive-export として公開されています。
  • 価格設定
    • お客様による 300 個以上の価格表の削除が可能に
    • 1000個を超えるって書き方してたけどリリース試験の1200という回答は誤りだったので1000個までっぽい。
  • 新しい API メソッド dw.order.Basket.releaseInventory
    • dw.order.Basket.releaseInventory は、買い物かご用に予約されているすべての在庫をリリースします。


f:id:tyoshikawa1106:20190608142113p:plain

CPQ スペシャリスト認定資格の更新

これももってないけど。せっかくなので。

  • 消費スケジュール価格の定義
    • 定義済みの消費レートに基づいて使用量の価格を設定します。以前は、営業担当が価格一覧を使用して、注文商品ごとに 1 つのみの使用量レートセットに価格を定義できました。消費スケジュールにより、価格設定の柔軟性が高まります。複数の商品に対して消費スケジュールを適用したり、複数の消費スケジュールを 1 つの商品に添付したりします。
  • Salesforce CPQ および Salesforce Billing での消費スケジュールの使用
    • 以前は、消費スケジュールは Salesforce でのみ使用できました。CPQ および Billing の管理パッケージサポートによって、消費スケジュールを Salesforce CPQ および Salesforce Billing のライフサイクル全体に取り込むことができます。消費スケジュールが設定された使用量商品の見積、契約、注文、請求処理ができるようになりました。
  • カスタムスクリプトでの消費スケジュールと消費レートの使用
    • 会社のニーズをより的確に満たすように消費スケジュールと消費レートにさらに機能を追加します。消費レートおよび消費スケジュールオブジェクトから最大 10 個の項目をカスタム JavaScript コードに含めます。
  • 見積品目エディタでのサブスクリプションの修正
    • 見積品目エディタに修正見積用の [サブスクリプションを修正] ボタンを追加しました。営業担当が見積品目エディタで [サブスクリプションを修正] をクリックすると、Salesforce CPQ に [サブスクリプションを修正] ページが表示されます。このページで、営業担当は、見積の取引先の修正可能なサブスクリプションを選択して修正見積に追加できます。この機能は、営業担当が別の契約から修正見積にサブスクリプションを取り込む場合に役立ちます。
  • 見積品目の迅速な削除
    • 積品目エディタに修正見積用の [サブスクリプションを修正] ボタンを追加しました。営業担当が見積品目エディタで [サブスクリプションを修正] をクリックすると、Salesforce CPQ に [サブスクリプションを修正] ページが表示されます。このページで、営業担当は、見積の取引先の修正可能なサブスクリプションを選択して修正見積に追加できます。この機能は、営業担当が別の契約から修正見積にサブスクリプションを取り込む場合に役立ちます。以前は、修正見積で営業担当が修正できるのは、元の見積から取得した納入商品とサブスクリプションのみでした。
  • 見積品目の迅速な削除
    • 複数品目削除を有効にしている組織で大量の削除 (150 以上の見積品目の削除など) がすばやく完了するように、見積品目エディタの機能を拡張しました。
  • 見積プレビューページからの見積ドキュメント PDF のダウンロード
    • PQ 見積ドキュメントのプレビューが完了したら、その PDF を容易にダウンロードできるようになりました。


f:id:tyoshikawa1106:20190608143319p:plain

Data Architecture デザイナー認定資格の更新

  • データアーキテクチャ設計について
    • 認定 Data Architecture and Management デザイナーは、データソーシング、インテグレーション/移動、持続性、マスタデータ管理、メタデータ管理とセマンティックな調整、データガバナンス、セキュリティ、配布など、主要なビルディングブロックからなる情報アーキテクチャフレームワークに関する豊富な知識を有します。
  • モデルの各プレディクターによる影響の理解
  • Spring '19 では、Einstein に各プレディクターの影響スコアが提示されます。予測の構築が完了したら、予測リストでそれを見つけて、アクションメニューから [スコアカードを表示] を選択します。この機能は、Einstein Analytics Plus または Einstein Predictions ライセンスを持つシステム管理者が使用できます。
  • 項目履歴データの保持制限の更新
    • Salesforce では、組織経由で最大 18 か月、API 経由で最大 24 か月の項目履歴データの保持が保証されています。Winter '19 でお知らせしたとおり、Spring '19 以降、24 か月より古い項目履歴データの削除プロセスが開始されます。
  • [設定] からのカスタム Big Object の作成
    • Big Object は、Salesforce Platform 上で大量のデータを保存して管理します。Big Object に他のオブジェクトのデータをアーカイブしたり、外部システムの膨大なデータセットを取り込んで顧客の全容を把握したりすることができます。
  • Einstein データインサイトによるレポートからの詳細情報の取得 (正式リリース)
    • Einstein ではレポートデータが分析されて、要点、比較、トレンドが、洞察に満ちたグラフと総計値でまとめられます。ワンクリックでデータサイエンスを実現します。
  • カスタムメタデータ: カスタムメタデータ型を使用したデフォルト項目値の設定
    • デフォルト値でカスタムメタデータ型レコードを参照し、項目の更新を簡略化します。デフォルト項目値を変更する必要がある場合、複数の項目参照を更新する代わりに、参照先のカスタムメタデータ項目値で更新できます。複数の項目のデフォルト値を簡単に変更できるようになります。


f:id:tyoshikawa1106:20190608144219p:plain

Spring '19 での Development Lifecycle and Deployment デザイナー認定資格の更新

これも関係ないやつ。

  • 開発ライフサイクルとリリースの設計について
  • 変更セットまたはメタデータ API を使用した有効なプロセスおよびフローのリリース
    • プロセスの自動化設定で有効化できるとかなんとか。
  • カスタマイズ可能な事前作成済みのビジネスプロセスの作成またはインストール
    • プロセスビルダーのプロセスのプロパティを編集して、[テンプレート] を [はい] に設定する。
  • Sandbox のコピーによる時間の節約 (正式リリース)
  • ロック解除済みパッケージ内の廃止されたメタデータの移行を有効化
  • VS Code 向け Salesforce 拡張機能: Lightning Web コンポーネントのサポート、予定されている Force.com IDE の廃止


認定資格は持ってないけど内容はよかった。2019年10月12日Force.com IDE廃止。最近は使ってないけど初めての開発でお世話になった開発ツール。
f:id:tyoshikawa1106:20190608144710p:plain


あとプロセスビルダーを有効状態でリリースできるようになってた。便利だけど基本は無効でリリースする方が助かるかもことが多いかも。(Chatter投稿系の処理がエラーになるので。。)
f:id:tyoshikawa1106:20190608144908p:plain


プロセスビルダーのテンプレート機能
f:id:tyoshikawa1106:20190608145433p:plain


f:id:tyoshikawa1106:20190608150100p:plain

Spring '19 での Einstein Analytics and Discovery 認定資格の更新

  • Einstein データインサイトのレポートでの人工知能 (AI) の活用
    • Einstein Analytics Plus ライセンスに含まれる「Einstein データインサイトの実行」ユーザ権限が必要
  • R や Quip での Einstein Discovery ストーリーの分析とカスタマイズ
  • Spring '19 では、Einstein Discovery ストーリーをデータサイエンティストの R にエクスポートし、エクスポートされたモデルを各自の言語で分析してカスタマイズしたり、Quip にエクスポートし、インサイトをチームのビジネスユーザに共有したりすることができます。
  • ビジネス向けの Analytics アプリケーションの追加
  • イベントベースのスケジュールの使用によるデータ同期とデータフロー実行からの推測の排除
  • コミュニティの Analytics からの Salesforce のアクションの実行


f:id:tyoshikawa1106:20190608150735p:plain

Spring '19 での Identity and Access Management管理デザイナー認定資格の更新

  • メール、電話番号または選択した任意の識別子によるユーザログインの有効化
  • [私のドメイン] のログイン検出を使用した ID ファーストログインページの作成
  • 更新されたパスワードブラックリストによるセキュリティの強化
  • 軽量な、連絡先のないExternal Identity ユーザの作成
  • 証明書によるユーザの認証


f:id:tyoshikawa1106:20190608151539p:plain

Spring '19 での Integration Architecture デザイナー認定資格の更新

  • データの自動更新
  • プロセスおよびフローでの外部オブジェクトの使用
  • 接続アプリケーションの OAuth 2.0 エンドポイントとのインテグレーションの合理化
  • 変更データキャプチャを使用した外部データの最新の状態の維持
  • 大規模プラットフォームイベントによるイベントベースのアプリケーションの拡張


f:id:tyoshikawa1106:20190608152245p:plain

Spring '19 での認定 Marketing Cloud メールスペシャリスト資格の更新

  • Email Studio
    • 2 ステップログイン
    • ドメイン登録
  • Content Builder
    • Litmus プレビュー連携
    • カスタムコンテンツブロック SDK
  • Journey Builder
    • Journey Builder でのメールの作成
    • ジャーニーフォルダー
  • Contact Builder
    • 連絡先の削除の有効化
    • 分析ダッシュボードまたは REST API リソースでの連絡先削除要求の表示


f:id:tyoshikawa1106:20190608153106p:plain

認定モバイルソリューションアーキテクチャデザイナー資格の更新

  • モバイルアプリケーション用 Snap-in: 顧客へのより充実したチャット環境の提供
  • 行動のリソースの予約
  • Salesforce アプリケーションを使用して取引先を転送するときに維持できる関連レコードの増加
  • モバイルデバイスのプッシュ登録の削除
  • モバイルデバイスでのコミュニティフィード項目の翻訳


これは良さげ。
f:id:tyoshikawa1106:20190608153621p:plain


こんな機能あったんだ。
f:id:tyoshikawa1106:20190608153819p:plain


モバイルアプリにGoogle翻訳機能追加されてた。
f:id:tyoshikawa1106:20190608153910p:plain


f:id:tyoshikawa1106:20190608153932p:plain

Spring '19 での Pardot スペシャリスト認定資格の更新

  • 複数言語での Pardot の使用
  • エンゲージメント履歴
  • ボットクリックなしで Pardot アクションとレポートを取得
  • Pardot Einstein とは?
  • エンゲージメントアクティビティでのプロスペクトのスコアリング


f:id:tyoshikawa1106:20190608154548p:plain

Platform アプリケーションビルダー認定資格の更新

アプリケーション構築者向けの新機能の学習
  • Flow Builder を使用したより直感的なフローの作成
  • Lightning ページから別のテンプレートへの切り替え
  • Lightning Experience での取引先チームの削除
  • Lightning Web コンポーネントの作成
  • マクロでの相対日付を使用した正確な日時の設定

・・・アドミンのリリース試験とけっこう重複してる。。

カスタマイズされたホームページとコンポーネントを使ってみる
  • リッチテキストコンポーネントは Quill テキストエディタを使用
  • 標準およびカスタムユーザ権限に基づくコンポーネントの表示の設定

CKEditorからQuillになってた。
f:id:tyoshikawa1106:20190608155245p:plain

f:id:tyoshikawa1106:20190608155653p:plain


ホームページにリッチテキストコンポーネント追加できるの便利!あとコンポーネントの表示条件指定ができるようになったのは助かってる。
f:id:tyoshikawa1106:20190608160142p:plain


f:id:tyoshikawa1106:20190608160500p:plain

Spring '19 での Platform デベロッパー向けの新機能の学習

一番やらないといけないやつ。

  • Apex: 新規および変更されたクラスおよびインターフェース
  • 予期しない例外に関する情報の取得
  • Sandbox のコピーによる時間の節約
  • カスタムメタデータ: カスタムメタデータ型を使用したデフォルト項目値の設定
  • SOQL クエリの項目レベルセキュリティ権限の適用 (ベータ)


これか。Apexで項目レベルセキュリティをチェックするようになる話。
f:id:tyoshikawa1106:20190608161448p:plain


SOQLにWITH SECURITY_ENFORCEDを宣言すると項目レベルセキュリティ判定ができるようになる。
f:id:tyoshikawa1106:20190608162321p:plain

Schema.SObjectType.Contact.fields.__c.isAccessible()処理がいらなくなる。処理をスッキリさせるとこんな感じ。
f:id:tyoshikawa1106:20190608162759p:plain


SecurityExceptionが不要になってQueryExceptionで対応するようになるみたいです。まだパイロットだし使う機会があるかわかりませんがこういう処理が追加されてるのは確認できてよかったです。


f:id:tyoshikawa1106:20190608163027p:plain

Spring '19 でのSharing and Visibility デザイナー認定資格の更新

最後のモジュール。長かった。

  • テリトリー別のレコード、レポートおよびダッシュボードフォルダ、リストビューへのアクセス権の付与
    • 共有ルールにより、ユーザは組織の共有設定よりも幅広いアクセス権をユーザグループに付与できます。
  • パートナー取引先のリレーションとデータ共有ルールの作成
    • 複数の流通業者を使用していて、オブジェクトレコードへの異なるレベルのアクセス権が各流通業者に必要な場合、共有ルールは複雑になる可能性があります。
  • テリトリー別の個々のレコードの共有
    • Spring '19 では、レコードを共有するときに、営業担当は [テリトリー] または [テリトリーおよび下位テリトリー] を選択できるようになりました。
  • エンタープライズテリトリー管理での取引先の手動共有を有効化
    • Spring '19 リリースでは、AccountShare の TerritoryManual 理由コードが Territory2AssociationManual に変更されます。
  • コミュニティのゲストユーザによるファイルのアップロード
    • Spring '19 リリースでは、システム管理者はゲストユーザがファイルをアップロードして共有することを許可できます。
  • ケースへのコミュニティユーザアクセスの制限
    • Spring '19 リリースでは、Customer Community Plus ライセンスを持つユーザが、自分が取引先責任者として含まれているケースを参照および編集できるかどうかを制御できるようになりました。


サイトゲストユーザもファイルアップロードできるようになったんだ。Force.comサイトは別かな。
f:id:tyoshikawa1106:20190608164317p:plain


これSpring'19で追加されてた機能だったのか。なんか増えてると思ってた。
f:id:tyoshikawa1106:20190608164916p:plain

f:id:tyoshikawa1106:20190608164807p:plain


f:id:tyoshikawa1106:20190608165000p:plain

まとめ

最初のモジュールが14:10完了してから16:49まで、2時間20分で無事にすべてのリリース試験バッチを取得できました。
f:id:tyoshikawa1106:20190608165632p:plain


バッチ取得のために関係モジュールもやりましたがSpring'19リリース試験無事に完了して資格更新できました。
f:id:tyoshikawa1106:20190608165726p:plain

co-meetingもくもく会#17に参加しました

$
0
0

FARO神楽坂にオフィスがあるco-meetingさんのもくもく会#17に参加しました。

f:id:tyoshikawa1106:20190608101813j:plain


場所は神楽坂駅から徒歩10分ぐらい。
f:id:tyoshikawa1106:20190608101209j:plain:w300


オフィスが入っているFARO神楽坂の1階ラウンジでの開催でした。おしゃれ。
f:id:tyoshikawa1106:20190608101424j:plain:w300

f:id:tyoshikawa1106:20190608102043j:plain:w300


FARO神楽坂の1階にはカフェもあります。ネットで見て気になっていたカフェでせっかくなので一段落ついたときに利用してみました。

コーヒースタンド『WHY NOT』FARO神楽坂店オープン | FARO青山/神楽坂

Suicaでの支払いがOKでした。カフェラテおいしかったです。
f:id:tyoshikawa1106:20190608172051j:plain:w300

f:id:tyoshikawa1106:20190608172401j:plain:w300

やったこと

午前中はVisualforce&Apexとアクセス権限まわりについての調べ物をしました。調べた結果は次の2記事です。


詳細ページに表示されるカスタムボタンの表示/非表示切り替えってできないのかなという話を聞いてVisualforceページのアクセス権限がなかった非表示になったかもという話をしてアクションだと非表示になるね。と教えてもらったので自分でも試してみました。最初カスタムボタンでも非表示になったかもと思ったのですが勘違いだったみたいです。


午後は放置しちゃっていたSpring'19リリース試験を片付ける作業を進めました。

モジュールを見たらびっくり14種類。(いつの間にこんなに認定資格が...)

  • アドミニストレーター認定資格の更新 (Spring '19)
  • B2C Commerce デベロッパー資格の更新 (Spring '19)
  • CPQ スペシャリスト認定資格の更新 (Spring '19)
  • Data Architecture and Management デザイナー認定資格の更新 (Spring '19)
  • Development Lifecycle and Deployment デザイナー認定資格の更新 (Spring '19)
  • Einstein Analytics and Discovery コンサルタント認定資格の更新 (Spring '19)
  • Identity and Access Managementデザイナー認定資格の更新 (Spring '19)
  • Integration Architecture デザイナー認定資格の更新 (Spring '19)
  • 認定 Marketing Cloud メールスペシャリスト資格の更新 (Spring '19)
  • 認定モバイルソリューションアーキテクチャデザイナー資格の更新 (Spring '19)
  • Pardot スペシャリスト認定資格の更新 (Spring '19)
  • Platform アプリケーションビルダー認定資格の更新 (Spring '19)
  • Platform デベロッパー資格の更新 (Spring '19)
  • Sharing and Visibility デザイナー認定資格の更新 (Spring '19)


関係あるリリース試験だけならすぐに終わりますが、このモジュールは期間限定バッチが取得できるモジュールという考え方をするとやらないわけにも行かないのでこの機会に全部に取り掛かりました。
f:id:tyoshikawa1106:20190608165632p:plain

だいたい2時間近くかかりましたが無事にクリア。
f:id:tyoshikawa1106:20190608180651p:plain

合計14個の期間限定バッチをゲットできました。よかった。
f:id:tyoshikawa1106:20190608180710p:plain:w300


リリース試験自体は新機能自体の確認になるので勉強になりました。


開発系まわりだとベータ版ですがSOQLにWITH SECURITY_ENFORCEDを処理が追加されてました。
f:id:tyoshikawa1106:20190608161448p:plain


あとはSalesforceのリッチテキストエリアの裏側の仕組みとして使われていたCKEditorというライブラリが別のライブラリにかわっていました。
f:id:tyoshikawa1106:20190608155245p:plain

f:id:tyoshikawa1106:20190608155653p:plain


昔CKEditorをハックする方法を教わったりしたのでなんとなくおお..となりました。

CKeditor カテゴリーの記事一覧 - tyoshikawa1106のブログ


とはいえCKEditorをハックする場面なんて全然なかったので今のSalesforceの機能に合う便利なライブラリが導入されるのは良いことかなと思います。


まったく関わりの無いデザイナー試験のモジュールも把握してなかったSalesforceの新機能の情報が満載だったので時間があればやっておくと良いと思います。
f:id:tyoshikawa1106:20190608181908p:plain

SFDC:Salesforceのインスタンスごとのデータセンターの場所

SFDC:Salesforceカレンダーの和暦表示と令和対応

$
0
0

令和対応されてました。

f:id:tyoshikawa1106:20190627073412p:plain

SFDC:HAVINGクエリによる重複データの抽出を試してみました

$
0
0

HAVINGクエリによる重複データの抽出についてです。
f:id:tyoshikawa1106:20190627082018p:plain

Salesforce Developers


特定のデータが2件以上存在するデータの抽出はレポートのサマリレポートでレコード順で並び替える方法で対応するこことができたのでよく使ってました。

f:id:tyoshikawa1106:20190627074929p:plain


関係無いデータも表示されますが一旦必要なデータが上の方に集まります。
f:id:tyoshikawa1106:20190627075041p:plain


重複判定に使いたいキーワードを持つ項目をサマリ項目に指定してレコード件数の多い順に並び替えることで重複データの有無をチェックしていたのですが組織に登録されたレコード件数自体が多くなると並び替え時にエラーとなり、この方法での重複データの確認はできなくなりました。


別の抽出方法を探していたところ、Trailblazer CommunityでHAVINGクエリをつかった方法が紹介されているのを見つけたので試したところ無事に必要なデータの抽出がうまくいきました。

Trailblazer Community - 質問広場


同じ取引先IDを持つ商談が2件以上存在しているデータの抽出するときのサンプルです。(※取引先と商談の場合は実際は積み上げ集計で取得可能ですが正しく取得できていることをわかりやすいのでこの条件で試しています。)


まず取引先と商談件数の登録状況です。
f:id:tyoshikawa1106:20190627080611p:plain


同じ取引先IDを持つ商談の件数の取得までならGROUP BYクエリで対応できます。(WHEREもORDER BYも使えます。)

SELECT AccountId,Account.Name,COUNT(Id) FROM Opportunity WHERE AccountId != null GROUP BY AccountId,Account.Name ORDER BY COUNT(Id) DESC

f:id:tyoshikawa1106:20190627081138p:plain


上記のクエリにHAVINGクエリを追加することで2件以上存在するデータという形で絞り込みできます。
→ HAVING COUNT(Id) > 1

SELECT AccountId,Account.Name,COUNT(Id) FROM Opportunity WHERE AccountId != null GROUP BY AccountId,Account.Name HAVING COUNT(Id) > 1 ORDER BY COUNT(Id) DESC

f:id:tyoshikawa1106:20190627081427p:plain


開発者コンソールでの実行となりますので管理者向けの確認方法となりますがこんな感じで特定の条件に一致するデータが2件以上のデータを抽出することができます。サンプルでは取引先IDとしていますが重複判定の項目に差し替えれば重複データの抽出が可能です。

関連


SFDC:Lightningメールテンプレートを試してみました

$
0
0

Lightningメールテンプレートを試してみました。
f:id:tyoshikawa1106:20190627195212p:plain


設定メニューに用意されていますがそちらはフォルダおよび拡張共有の有効化ができるだけみたいです。Lightningメールテンプレートの作成はアプリケーションランチャーのメールテンプレートから作成できます。
f:id:tyoshikawa1106:20190627195635p:plain


こちらからLightningメールテンプレートの設定ページです。非公開メールテンプレートやフォルダ管理が可能となっています。
f:id:tyoshikawa1106:20190627195723p:plain


メールの作成画面はこんな感じです。
f:id:tyoshikawa1106:20190627200435p:plain


画面右下の差し込みアイコンで変数をセットできます。
f:id:tyoshikawa1106:20190627200551p:plain


セットできる変数の選択画面はこのようになっていました。
f:id:tyoshikawa1106:20190627200631p:plain


必要な内容を入力して保存ボタンをクリックすればテンプレートは作成完了です。
f:id:tyoshikawa1106:20190627200841p:plain


関連タブから添付ファイルの設定もできました。
f:id:tyoshikawa1106:20190627200944p:plain


メールテンプレートの使い方です。はじめに取引先責任者またはリードのレイアウト設定でLightningアクションのメールを追加します。
f:id:tyoshikawa1106:20190627201310p:plain


これで活動関連リストからメール送信が可能になります。
f:id:tyoshikawa1106:20190627201439p:plain:w250


画面下側にテンプレートの挿入アイコンがあります。そちらから先程のテンプレートを適用できます。
f:id:tyoshikawa1106:20190627201609p:plain:w250

f:id:tyoshikawa1106:20190627201735p:plain:w250


入力欄を大きくしたい場合はドッキングビューのポップアップを選択します。
f:id:tyoshikawa1106:20190627201825p:plain:w250


次のように画面下側にドッキングビュー形式で表示されます。
f:id:tyoshikawa1106:20190627201913p:plain:w250


あとは右上の拡大アイコンでポップアップ表示すれば大きい入力欄に切り替えができます。
f:id:tyoshikawa1106:20190627202051p:plain


送信前にメールをプレビューアイコンを選択すれば変数に実際の値が差し込まれた状態で文章を確認できます。
f:id:tyoshikawa1106:20190627202245p:plain:w250


添付ファイルがある場合は確認ポップアップも表示されました。
f:id:tyoshikawa1106:20190627202315p:plain:w250


送信結果は活動の記録タイムラインに表示されます。開封の有無も確認できるみたいです。
f:id:tyoshikawa1106:20190627202403p:plain


送信結果はこんな感じでした。
f:id:tyoshikawa1106:20190627202508p:plain


作成したLightningメールテンプレートですがレコードとして扱われるため変更セットのリリースはできないみたいです。Ideaページも用意されていましたが現時点ではデータローダによる移行が対応方法のようです。


活動に残るメールはストレージの消費が大きめのため過去分は削除するなどの検討が必要になることがありますが開封の有無が確認でき、入力されたデータを差し込める定型文を用意できるのは便利だと思います。

SFDC:レポート登録機能によるメール送信と受信者のロール指定について

$
0
0

レポート登録機能のメール送信と受信者のロール指定についてです。サポートに問い合わせして教えてもらいました。

Lightning Experience でのレポートへのユーザ、グループ、ロールの登録


レポートの登録でメール受信者を設定できますがロールや公開グループを追加しようとしたところ、特定のロールが選択できないなどの現象にハマりました。
f:id:tyoshikawa1106:20190627203944p:plain


この表示されない原因ですがレポートフォルダの共有設定と関連があったようです。
f:id:tyoshikawa1106:20190627204128p:plain


次のようにロールを追加してあげると・・
f:id:tyoshikawa1106:20190627204059p:plain


そのロールがレポート登録のメール受信者設定で選択できるようになりました。
f:id:tyoshikawa1106:20190627204234p:plain


レポートアクセス権限があるユーザにのみレポート登録機能による通知メールを送信できるように制御しているため権限が付与されていない場合は選択できないようになっているみたいです。またメール受信者に設定後に共有権限から除外すると登録機能の受信者設定は解除されるようです。
f:id:tyoshikawa1106:20190627204443p:plain

SFDC:データローダv.46.0のインストールを試してみました

$
0
0

個人PCにインストールしていたデータローダのバージョンが38.0でだいぶ前だったので再インストールを試してみました。

f:id:tyoshikawa1106:20190702221535p:plain


気づいたらインストールページに手順のリンクが追加されていました。


zipファイルの解凍方法の記載もありましたがそこは普通に解凍して大丈夫でした。解凍後はinstall.commandファイルを右クリック→開くの手順で起動すればいいみたいです。

f:id:tyoshikawa1106:20190702221732p:plain


起動するとターミナルにメッセージが表示されます。
f:id:tyoshikawa1106:20190702221914p:plain


その後デスクトップに云々やアプリケーションランチャーに云々と質問があったのでとりあえず yesで進めてみました。
f:id:tyoshikawa1106:20190702222053p:plain


正確にはこちら。

Do you want to create an icon to launch Data Loader from your Desktop? [Yes/No] you want to create an icon to launch Data Loader from your Desktop? [Yes/No]yes

Do you want to create a link to launch Data Loader from your Applications
directory? [Yes/No] yes
Data Loader installation is quitting.

f:id:tyoshikawa1106:20190702222149p:plain


これでデータローダ46.0がインストールできました。
f:id:tyoshikawa1106:20190702222301p:plain

追記

上のでとりあえずインストールできたと思って一度投稿していたのですが、投稿のあとにデータローダを起動したらいつもと違いターミナルが表示された上にエラーメッセージが...。
f:id:tyoshikawa1106:20190702223145p:plain


ヘルプを読んだらこれが必要でした。

.DMG ファイルを使用して、macOS 用の Zulu OpenJDK バージョン 11 をインストールします。

f:id:tyoshikawa1106:20190702223257p:plain

Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8


バージョンを選んで、OSを選んでインストールします。
f:id:tyoshikawa1106:20190702223422p:plain


JDKを入れればいいのでここから。ボタンが3つありますがファイル形式が違うだけ、DMGファイルで良いと思います。
f:id:tyoshikawa1106:20190702223547p:plain

f:id:tyoshikawa1106:20190702223718p:plain

f:id:tyoshikawa1106:20190702223730p:plain

f:id:tyoshikawa1106:20190702223759p:plain

f:id:tyoshikawa1106:20190702223821p:plain


Zulu OpenJDK バージョン 11をインストールして再度実行したところ、ターミナルが呼び出されるのは変わりませんでしたが、データローダ起動するようになりました。
f:id:tyoshikawa1106:20190702224023p:plain


最近のデータローダはこんな感じでインストールすればいいみたいです。

SFDC:Chatterグループ作成とメール通知の一括設定を試してみました

$
0
0

Chatterグループ作成とメール通知の一括設定についてです。

f:id:tyoshikawa1106:20190704182127p:plain


グループに対してメンションするとグループメンバーに通知が行きますが、メール送信に関しては別途設定が必要です。
f:id:tyoshikawa1106:20190704182250p:plain


各ユーザが私の設定でChatter→メール通知のページからメール送信をONにする必要があります。
f:id:tyoshikawa1106:20190704182358p:plain


とはいえ重要なお知らせを行うグループの場合は管理者側で一括で登録したい部分があります。その場合はデータローダをつかって更新するのが良さそうです。グループの投稿権限の更新はShow all Salesforce objectsのチェックボックスにチェックをつけると表示されるグループメンバーオブジェクトから行えます。
f:id:tyoshikawa1106:20190704182810p:plain


はじめにEXPORTでレコードIDと現在の通知設定を取得しておきます。(今回は省略していますが対象のグループやユーザを絞ったりも必要に応じて行います。)
f:id:tyoshikawa1106:20190704183031p:plain


取得結果はこちら。NotificationFrequency項目で管理されていてNとなっている場合は受信しない設定となります。
f:id:tyoshikawa1106:20190704183323p:plain


詳細はSOAP APIガイドに記載されています。
f:id:tyoshikawa1106:20190704183516p:plain


今回は投稿ごとにメール通知を行いたいので"P"で更新します。
f:id:tyoshikawa1106:20190704183752p:plain:w200


これでメール送信設定に更新されました。
f:id:tyoshikawa1106:20190704183940p:plain


ユーザがSalesforceに慣れていれば私の設定から各自メール通知設定してもらうのが良いと思いますが、Salesforce導入直後などは管理者側で一括更新(兼 強制メール通知設定ON)にしてしまったほうが連絡の確認漏れが防げて良いと思います。

参考

SFDC:Lightningページのリッチテキストコンポーネントを試してみました

$
0
0

Lightningページのリッチテキストコンポーネントを試してみました。

f:id:tyoshikawa1106:20190704185247p:plain


検索ボックスでリッチと入力するとヒットします。
f:id:tyoshikawa1106:20190704185355p:plain:w200


テキストは自由に入力でき、文字サイズや色も指定できます。
f:id:tyoshikawa1106:20190704185410p:plain:w200


こんな感じでページ内に埋め込むことが可能です。
f:id:tyoshikawa1106:20190704185454p:plain


カードとして表示のチェックで背景色の有無を切り替えることができます。
f:id:tyoshikawa1106:20190704185555p:plain:w200


チェックなしの場合はこんな感じ。
f:id:tyoshikawa1106:20190704185642p:plain


チェックありだとこんな感じです。
f:id:tyoshikawa1106:20190704185731p:plain


Lightningコンポーネントなので表示条件を指定することも可能です。例えば商品の登録件数が0件の場合にアラートメッセージを表示するといった使い方ができます。
f:id:tyoshikawa1106:20190704185907p:plain:w200


※結果がTrueの場合に表示されるので商品フラグがFalse (商品0件)の場合に表示と設定します。
f:id:tyoshikawa1106:20190704190112p:plain:w200

商談商品の登録なし

f:id:tyoshikawa1106:20190704190155p:plain

商談商品の登録あり

f:id:tyoshikawa1106:20190704190249p:plain


Visualforceページの埋め込みと違い、レコードの更新などを行った際に即条件判定が行われて表示が切り替わりました。お知らせやデータ更新漏れ時のアラート表示など汎用的に使える便利機能だと思います。

Viewing all 1437 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>