tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Lightningコンポーネント開発とForce.com IDE

VisualforceやApexの開発をするとき最近はSublimeText × MaventsMateを利用することが多いのですがTrailheadを見ているとLightningコンポーネントの開発ツールとしてForce.com IDEが紹介されていました。

f:id:tyoshikawa1106:20170715170648p:plain


Google翻訳で訳した内容はこちら。
f:id:tyoshikawa1106:20170715170815p:plain


Force.com IDEはしばらく利用したことがなかったのですが、最新バージョンではLightningコンポーネント開発もサポートされているみたいです。

SFDC:Salesforce Trailhead Live Tokyoの資料ダウンロードサイト

7月7日にSalesforce Trailhead Live Tokyoの資料ダウンロードサイトが公開されました。一部非公開のセッションもありますが、セッションの録画動画を見ることもできます。

f:id:tyoshikawa1106:20170715164846p:plain

資料ダウンロード - Salesforce Trailhead Live Tokyo

SFDC:Lightning Experienceと取引先階層の管理

Salesforceの取引先には階層の管理機能が用意されています。
f:id:tyoshikawa1106:20170712122553p:plain


この機能をLightning Experienceで利用しようとすると下記エラーメッセージが表示されると思います。
f:id:tyoshikawa1106:20170712122737j:plain


このメッセージが表示されたらオブジェクトマネージャーの取引先設定画面で階層の列を設定すれば解決します。
f:id:tyoshikawa1106:20170712123132p:plain


これでLightning Experienceでも取引先の階層を表示できるようになります。今まで表示項目のカスタマイズはできませんでしたが、LEXでは自由にカスタマイズが可能になるようです。
f:id:tyoshikawa1106:20170712123238p:plain

SFDC:承認割り当てメールテンプレートで申請通知メールのカスタマイズ

Salesforceには承認プロセス機能を利用することで承認申請の仕組みを実装することができます。
f:id:tyoshikawa1106:20170712082104p:plain


申請時には通常次の通知メールが自動で送信されるようになっています。
f:id:tyoshikawa1106:20170712082247p:plain


このメールの本文は承認割り当てメールテンプレートの設定を行うことでカスタマイズできます。検証用に次のメールテンプレートを用意しました。
f:id:tyoshikawa1106:20170712082516p:plain


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


これで承認担当者に届く通知メールをカスタマイズできました。
f:id:tyoshikawa1106:20170712082909p:plain
f:id:tyoshikawa1106:20170712082742p:plain


これだけだと承認申請ページへのリンクも無く不便です。差し込み項目ルックアップを使って更にカスタマイズします。
f:id:tyoshikawa1106:20170712083127p:plain


承認の項目を選択して利用できる項目を差し込めば良いみたいです。
f:id:tyoshikawa1106:20170712085103p:plain


試してみた所、ページのURLは問題なく表示されました。(通常ユーザの場合は社内、社外どちらのURLも同じでした。)
f:id:tyoshikawa1106:20170712083926p:plain

f:id:tyoshikawa1106:20170712085051p:plain


ただ、申請相手の名前部分は表示されませんでしたので差し込んだ項目に誤りがあったようです。「承認ステップの任命先」と「承認ステップの承認者」は申請した人が割り当てられるので、承認者側の名前ではありませんでした。


承認者側の名前を差し込む項目だけ見つけられませんでしたが、ひとまずこれで申請通知メールのカスタマイズはできそうです。メールの本文をSalesforceデフォルトのものから変更したい場合はここから設定が可能でした。

SFDC:プロセスビルダーでChatter投稿機能を実装するときのポイント

Salesforceのプロセスビルダーを利用するとChatterに投稿する機能を簡単に実装できます。
f:id:tyoshikawa1106:20170709211214p:plain


例えばカスタム項目Chatter共有にチェックをつけて保存したときにセールスのグループに共有する機能を実装しました。
f:id:tyoshikawa1106:20170709211649p:plain


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


Chatter投稿の実行条件を作成したタイミングではなく、項目が特定の値で更新されたらとすることで、一度必須項目のみ入力して時間のあるときに詳細を入力しChatterに共有するといったオペレーションが可能になります。


特定の条件が無い場合はチェックボックス型にしておくのがわかりやすくていいと思います。
f:id:tyoshikawa1106:20170709212124p:plain


自動投稿した内容にコメントを入れたりすることで情報共有がやりやすくなります。
f:id:tyoshikawa1106:20170709212547p:plain


ここで注意点です。Chatter共有にチェックをつけて保存するとセールスグループに自動投稿する仕組みが追加してみました。そんな組織でデータの一括更新が行われます。
f:id:tyoshikawa1106:20170709212801p:plain


その結果・・・こんなことになります。
f:id:tyoshikawa1106:20170709212858p:plain


過去に登録された取引先をChatter投稿する必要はなかったのですが、Chatter共有にチェックがある状態で保存すると実行の条件があるせいで大量に不要な投稿が行われてしまいました。


数十件程度だったら笑い話ですが、数百件、数千件でこれをやってしまうと悲しいことになると思います。こんな悲しい事態を発生させないためには、実行条件にある「レコードに指定の変更が行われた場合にのみアクションを実行しますか?」のオプションで「はい」にチェックを付けます。
f:id:tyoshikawa1106:20170709213527p:plain


このチェックをつけることでChatter共有のチェックがFalseからTrueになったタイミングでのみ実行されるようになります。データの一括更新作業に影響がでることはありません。
f:id:tyoshikawa1106:20170709213808p:plain

f:id:tyoshikawa1106:20170709213914p:plain


チェックが付いていたら更新してはいけないなどのルールで回避しようといった方法を考える場合もあるかもしれませんが、管理の引き継ぎなどでそのルールが引き継がれずデータの一括更新が行われてしまうといったリスクが考えられます。


特定の条件で自動実行する処理を実装するときはこの値変更の有無までチェックすることでより安全で使いやすいシステムにできると思います。これはプロセスビルダーだけではなくApexトリガでも同じだと思います。システムを運用していると新しい項目が追加されたりして過去データの更新が必要になることがかならずでてきます。そうしたときに自動実行機能があるから実施できませんということにならないように考慮しておく必要があります。

Chatterグループへの誤投稿の修復方法

残念なことにChatterグループへの大量誤投稿が行われてしまった場合、それを削除する必要があります。1人の作業者が手動で1件ずつ削除していった場合、2時間ぐらいで100〜200件ぐらいは削除できる...かもしれません。なので500件ぐらいなら4〜5時間ぐらいで削除できると思います。ですが実際の所そんな時間と気力がある人はあまりいないと思います。。そこで思いつくのはSOQLとApexをつかって一括削除する方法です。実際に試したことは無いのですがこれは絶対に辞めたほうがいいと思います。もしWHERE条件に失敗して組織のすべての投稿が削除された場合、取り返しがつきません。


カスタムレポートタイプを作成することでChatterグループの誤投稿を抽出するレポートを作成できます。
f:id:tyoshikawa1106:20170709215854p:plain


グループの名前、作成者、作成日などで絞り込むことで絞り込みができると思います。
f:id:tyoshikawa1106:20170709220251p:plain


自動投稿の場合は特定のキーワードが含まれています。それを条件に入れると絞り込みの精度が向上します。
f:id:tyoshikawa1106:20170709220441p:plain


これでレポートを用意できました。
f:id:tyoshikawa1106:20170709220622p:plain



削除するにはレコードIDが必要ですが、必要なのは『フィード投稿 ID』ではなく『フィード項目ID』の項目になります。(※ここまで『フィード投稿 ID』の方でキャプチャを取っていましたが、このタイミングで間違いに気づきました。。)


『0D5』で始まるIDが必要になります。
f:id:tyoshikawa1106:20170709222237p:plain


SOQLクエリでFeedItemオブジェクトの値を見てみるとこちらがレコードIDであることを確認できると思います。
f:id:tyoshikawa1106:20170709222329p:plain


また、フィード項目IDの値はレコードIDになりますのでURLに直接指定すると投稿ページに移動できます。
f:id:tyoshikawa1106:20170709222438p:plain


対象レコードIDを抽出できるレポートを作成できたら後はエクスポートしてデータローダで削除するだけです。
f:id:tyoshikawa1106:20170709222556p:plain


データローダでどのオブジェクトを指定するかはこちらが参考になります。

Salesforce Help - データローダで Chatter の投稿および添付ファイルを削除する方法


FeedItemを削除すればいいのですが、間違いが無いか一度にエクスポートなどで検証を行ってください。Chatter投稿を削除することはほぼありませんが、削除後復元は難しいと思いますので念入りに検証してからが良いと思います。


レポートで抽出すると対象の件数を確認できます。なので関係のないレコードが含まれていないかの確認ができますし、万が一過ちがあってもすべてが消えるといったことは回避できるはずです。


長くなりましたがChatterの大量誤投稿を行ってしまった場合はこんな感じで修復が行えます。

より便利なChatter投稿を行うために

最後にChatterの自動投稿でやっておきたい設定を紹介します。Chatterグループに自動で投稿したい場合は次の設定になると思います。
f:id:tyoshikawa1106:20170709223548p:plain


この場合、Chatterフィードから対象のレコードに移動することができません。なので投稿先を「このレコード」に指定して本文の中にグループメンションを追加します。
f:id:tyoshikawa1106:20170709223803p:plain


これでChatterグループにレコードへのリンクがある状態で投稿することが可能になります。
f:id:tyoshikawa1106:20170709224014p:plain


プロセスビルダーでChatter投稿機能を実装するときはこのあたりを押させておくといいと思います。

参考

SFDC:プロファイル作成時のPasswordExpiration 項目の値が無効なエラー

プロファイルコピーして別のプロファイルを新規作成しようとした際にPasswordExpiration 項目の値が無効というエラーに遭遇しました。

f:id:tyoshikawa1106:20170704234031p:plain


このエラーですがプロファイルの「パスワードの有効期間」に 180日に設定できない事象が関係するエラーとのことです。


プロファイル設定画面を確認したところ、180日で設定されていました。
f:id:tyoshikawa1106:20170704234246p:plain


解決方法ですが、90日などに変更することで解決するとのことです。この問題はKnown Issues サイトに既に上がっている問題でした。

▼Summer '17 Profile Password Policies do not allow 180 days expiration

Summer '17 Profile Password Policies do not allow 180 days expiration

f:id:tyoshikawa1106:20170704234528p:plain


Known Issues サイトで「This Issue Affects me」をクリックいただきますと、 不具合が修正されたタイミングでお知らせのメールを受け取れるそうなので気になる人はやっておくと良さそうです。

SFDC:Salesforce Trailblazers Communityが公開されました

7月4日のイベント「Trailhead Live」でSalesforce Trailblazers Communityサイトが公開されたとの情報がありました。
f:id:tyoshikawa1106:20170704230459p:plain

https://www.trailblazers.jp/


日本のコミュニティ向けの情報がこちらのサイトにまとめられているみたいです。

ABOUT

f:id:tyoshikawa1106:20170704230649p:plain

EVENT

f:id:tyoshikawa1106:20170704230701p:plain

GROUP

f:id:tyoshikawa1106:20170704230714p:plain


まだあまり情報は多くありませんが、ユーザ会やイベント日などがこのサイトで確認できるようになるみたいです。