tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Files Connectの認証情報設定で注意すべきこと

Files ConnectをつかえばChatterファイルからGoogle Drive APIをつかってファイルを参照できるようになります。


この機能を利用するときに注意するべき点があります。OAuth同意画面のユーザーに表示するサービス名を設定する部分です。
f:id:tyoshikawa1106:20170323010235p:plain


ここに入力した値がSalesforceからGoogleドライブに接続する際の認証画面にタイトルとして表示されます。この値ですが何を入力しても問題ないわけではありません。Googleドライブにアクセスするので「Google Drive」にしようと設定したことがあります。


その結果、Googleから利用規約に違反しているので3日以内に修正対応してください。改善されない場合は対象プロジェクトを停止します。と通知メールを受け取ることになりました。


Googleの製品と誤認させる名称は許可されないようにチェックする仕組みがあるみたいです。(改めて考えてみれば当然の仕組みですが...)


こうした状況になってしまった場合ですが、「異議を申し立て」的なボタンからサポートに連絡することができます。(この辺りの手順と詳細については通知メールに記載があります。)


ボタンの名称が少し怖い感じがしますが利用してもぜんぜん怖いことにはなりませんでした。Google API Developer Consoleのページから利用できるのですが、ページは日本語で記載されているので内容をよく見て判断することができます。


基本的にはどのように修正したかをサポートの方に報告するための機能となっていましたが、修正方法がわからない場合も質問することができるようです。困ったときは放置せずにきちんと問い合わせを行うと丁寧に対応してもらえると思います。


今回は通知メールに記載されたとおり、同意画面の表示内容を修正して「異議を申し立て」ボタン経由でサポートに連絡したところすぐに解決しました。異議という単語でなんとなく悪いことをしている気分になりますがそんなことはないのできちんと対応した方が良さそうです。


利用規約違反の通知を見て慌てて設定を削除して対応しようとすると逆にサポートへの連絡ができなくなってしまうと思います。そうすると利用規約違反の記録が残り続けることになる可能性も考えられます。(確認はしたことありませんが) 設定削除による対応は何も解決しないのでやらない方がいいと思います。


今回はGoogleでしたが他のサービスでも同じようなチェックがあると思いますので、製品名を認証タイトルに指定するのは避けたほうが良さそうです。Files Connectの認証情報設定を行うときはこうしたことにも注意が必要となります。

SFDC:プロセスビルダーのChatter投稿機能でメンション先を動的に設定する方法

プロセスビルダーをつかえばワークフロールールと同じようにレコードの作成と更新時に処理を行うことができます。さらにワークフロールールではサポートしていなかったChatter投稿も行うことが可能です。Chatter投稿では特定のユーザにメンションを付けることも可能となっています。
f:id:tyoshikawa1106:20170323001913p:plain

f:id:tyoshikawa1106:20170323001928p:plain:w300


ですが実際にメンションを行う場合、動的に切り替えたいというケースが多々あると思います。そんなときは次のような書き方がサポートされています。

@[{![Contact].OwnerId}]

f:id:tyoshikawa1106:20170323002110p:plain:w300


こんな感じです。
f:id:tyoshikawa1106:20170323002441p:plain

f:id:tyoshikawa1106:20170323002455p:plain

利用時に注意すること

Name項目ではなくユーザIDを指定することでメンションとして認識される仕組みとなっています。数式のID文字列が認識されるかはちょっと確認してみませんが、おそらくサポートされるのやユーザの参照項目ぐらいだと思います。


所有者などユーザ項目の値にはコミュニティユーザを指定するケースもあると思います。
f:id:tyoshikawa1106:20170323003203p:plain


これで社内組織からレコード更新時に特定のコミュニティユーザにメンション通知できそうですが、実際に投稿された内容を見るとアクセス権限が付与されていないことがわかります。
f:id:tyoshikawa1106:20170323003450p:plain


Chatter投稿先をプロセスビルダーで指定していないためです。
f:id:tyoshikawa1106:20170323003533p:plain


もしかするとどこかで指定できるかもしれませんが、おそらくサポートされていないと思います。


社内ユーザがApexバッチなどで一括処理を行いその結果をコミュニティユーザにChatter経由で通知したい。と思ってもおそらくこの方法では対応できないと思います。(検証はしていませんが社内ユーザがコミュニティ組織に移動して処理を行えばもしかするとうまくいくかもしれません。)


またDEV環境で再現できなかったのですが、ユーザの参照項目をつかって動的にメンション指定する際にそのユーザがレコードのアクセス権限自体をもっていない場合、プロセスビルダーで認識されないと思われます。その結果、メンション指定されているのにユーザIDが存在しないことでシステムエラーが発生します。(再現しなかったのでもしかすると設定中にうっかりミスがあっただけかもしれませんが...) プロセスビルダーのシステムエラーメッセージは原因を確認しずらいので注意が必要です。

SFDC:Apexテストクラスで標準価格表IDを取得する方法

Apexテストクラスで標準価格表IDをSOQLをつかって取得するとき、システム項目ではないので@isTest(SeeAllData=true)を宣言しないと取得することができません。そのため次のようにメソッドレベルで宣言して取得したりします。
f:id:tyoshikawa1106:20170320123422p:plain


SOQLクエリはこんな感じです。
f:id:tyoshikawa1106:20170320123454p:plain



ですがこんなことしなくてももっとキレイに実装する方法がありました。
Test.getStandardPricebookId()を使う方法です。


次のように宣言すると標準価格表のIDを取得できます。

Id pricebook2Id = Test.getStandardPricebookId();


これをつかって直したのがこちら。
f:id:tyoshikawa1106:20170320124653p:plain


変更後にテストクラスを実行するとエラーなくテストできました。
f:id:tyoshikawa1106:20170320124722p:plain


このメソッドはSummer'14の頃に追加されていました。不要なSeeAllDate=trueの宣言もなくなりキレイに実装できて便利です。
f:id:tyoshikawa1106:20170320125031p:plain

http://successjp.salesforce.com/features/pdf/Summer14_ReleaseNotes.pdf

参考

Test.getStandardPricebookId()を使う方法はQiitaで知りました。

SFDC:LEXでFiles Connectのファイルにアクセスする方法

Files Connectの機能を使えばChatterファイルからGoogleドライブのファイルにアクセスできるようになります。
f:id:tyoshikawa1106:20170319172248p:plain


Salesforce ClassicではChatterタブから見れるのですがLightning Exprienceでは表示されませんでした。
f:id:tyoshikawa1106:20170320115251p:plain


ファイル関連リストに移動してもダメそうです。
f:id:tyoshikawa1106:20170320115325p:plain


試しにファイルタブの方を確認してみました。表示していない場合はアプリケーションランチャーからアクセスできます。
f:id:tyoshikawa1106:20170320115509p:plain


試してみたところファイルタブの方で無事表示されていました。
f:id:tyoshikawa1106:20170320115549p:plain


Files Connect利用時には次のようにアプリケーションにファイルタブを出しておくと良さそうです。
f:id:tyoshikawa1106:20170320115830p:plain

f:id:tyoshikawa1106:20170320120116p:plain


Classic版でもファイルタブがあったほうが便利になると思います。
f:id:tyoshikawa1106:20170320120202p:plain

SFDC:Files ConnectでChatterとGoogleドライブの連携 - 2017年バージョン

File Connectの機能を利用すればChatterファイルとGoogleドライブの連携ができるようになります。


最近設定しようとしたところ、Googleドライブの設定画面が新しくなっていたりしたので2017年版ということで確認してみました。


まずは、設定のFiles Connectで有効化を行います。
f:id:tyoshikawa1106:20170319161238p:plain


続いて権限セットを作成します。これで個別に権限を付与できるようになります。
f:id:tyoshikawa1106:20170319161530p:plain


システム権限にFile Connectが用意されています。
f:id:tyoshikawa1106:20170319161628p:plain


権限セット作成後は対象ユーザに割り当てます。


次はGoogle側の設定です。下記URLのページに移動します。
https://console.developers.google.com/project

f:id:tyoshikawa1106:20170319161851p:plain


プロジェクト作成ボタンを押すとプロジェクト名入力画面が表示されます。画面に従いプロジェクトを作成するとAPIを選択できるページに移動できますので、Google Driveと検索します。Google Drive APIというのがあると思いますので、それを選択します。
f:id:tyoshikawa1106:20170319162135p:plain


選択後、画面上側に有効にするボタンがあるのでクリックしてください。
f:id:tyoshikawa1106:20170319162230p:plain

f:id:tyoshikawa1106:20170319162256p:plain



画面の右上に認証設定ボタンが用意されています。
f:id:tyoshikawa1106:20170319162332p:plain


入力はこんな感じでいいと思います。
f:id:tyoshikawa1106:20170319162443p:plain


認証設定でURLを聞かれますがこれは後で設定します。ひとまずは下記を入力すればいいみたいです。
f:id:tyoshikawa1106:20170319162644p:plain


画面に従い操作を続けるとクライアントIDが発行されます。
f:id:tyoshikawa1106:20170319162932p:plain


クライアントIDが発行されたらSalesforce側に戻り認証プロバイダの設定を行います。
f:id:tyoshikawa1106:20170319163515p:plain


ここの入力内容は下記ヘルプに詳しく記載があります。


設定が終わるとコールバック URLが生成されるのでGoogle API設定のページに戻って差し替えます。
f:id:tyoshikawa1106:20170319164424p:plain


Salesofrceの外部データソースの設定にアクセスします。
f:id:tyoshikawa1106:20170319164804p:plain


つぎのように入力します。
f:id:tyoshikawa1106:20170319164934p:plain


設定を進めるとGoogleの認証ページが表示されたりします。外部データソースの作成が終わったら検証して同期をクリックします。
f:id:tyoshikawa1106:20170319165054p:plain


チェックをつけて同期ボタンをクリックすると外部オブジェクトが作成されます。
f:id:tyoshikawa1106:20170319165133p:plain


こんな感じです。
f:id:tyoshikawa1106:20170319165317p:plain


続いて各ユーザが認証作業を行います。私の設定の外部システムの認証設定から行います。→これは管理者ではなく各ユーザが自分で行います。
f:id:tyoshikawa1106:20170319165644p:plain

f:id:tyoshikawa1106:20170319165611p:plain


ここまでできたら設定中に作成した外部オブジェクト用のカスタムタグをつくってビューなどからデータを参照してみてください。アクセス権がないと表示されると思います。
f:id:tyoshikawa1106:20170319171851p:plain


プロファイルから外部データソースの利用権限を付与できます。
f:id:tyoshikawa1106:20170319172053p:plain

※追記:プロファイルよりも権限セットで付与した方が管理が楽になりました。

外部オブジェクトは開発中になっていないか確認し、なっている場合はリリース済みに変更してください。
f:id:tyoshikawa1106:20170319171952p:plain


これで設定完了です。Chatterタブに移動してファイルページを開いて下さい。Googleドライブのファイルにアクセスできるようになっています。
f:id:tyoshikawa1106:20170319172248p:plain


最後に設定中にホームタブが非表示になってしまった場合は、下記リンク先の手順で修正できると思います。

SFDC:Chatterをつかって社内にレポートのリンクを共有する方法

Chatterをつかって社内にレポートリンクを共有する方法についてです。Chatterでは特定の内容毎にグループを作成して情報共有や議論を行うことができます。そういったときにレポートを共有してどのような状況かを報告したりできると便利です。
f:id:tyoshikawa1106:20170308014048p:plain


レポートページのURLをコピーしてChatterに投稿するのもいいですがより簡単に投稿する仕組みが用意されています。フィード追跡を有効化する方法です。設定から有効化できますがレポートオブジェクトに対しても有効化できるようになっています。
f:id:tyoshikawa1106:20170308014550p:plain


レポートのフィード追跡を有効化するとレポートページにコラボレーションボタンが表示されます。これをクリックするとChatterの投稿フォームが表示されます。
f:id:tyoshikawa1106:20170308014953p:plain


あとは通常通り共有したい人またはグループにメンションをつけて投稿するだけです。
f:id:tyoshikawa1106:20170308015134p:plain:w300


こんな感じにレポートのChatterフィードでやりとりができます。
f:id:tyoshikawa1106:20170308015256p:plain


他のユーザはメンション時に指定したChatterグループのページで投稿を確認できます。投稿の一番上にレポート名のリンクが表示されるのでこれをクリックするだけでレポートページに移動できます。
f:id:tyoshikawa1106:20170308015507p:plain


最近追加された新機能というわけではないのでSalesforce Classicでも利用利用可能な機能です。
f:id:tyoshikawa1106:20170308015659p:plain:w300

f:id:tyoshikawa1106:20170308015642p:plain



定期的に利用するレポートなどはレポートフィードで情報交換すると過去に行われたやりとりが記録として残り一元管理されるので便利だと思います。

SFDC:作成済みのレポート一覧を表示するレポートの作り方

作成済みのレポートを抽出するレポートを作成。...できないと思っていましたができました。標準のレポートタイプでも作成できますが、カスタムレポートタイプをつくるとより多くの項目を利用することができます。
f:id:tyoshikawa1106:20170305222145p:plain


フォルダやレポートタイプの他にカスタムオブジェクトも表示できるみたいです。
f:id:tyoshikawa1106:20170305222300p:plain


カスタムオブジェクトを削除するときに削除対象オブジェクト用のレポートを一覧表示して確認するといったことができるかもしれません。