tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Chatterページの「自分がフォローするもの」と「会社の注目」の初期選択について

ChatterタブでChatterのページにアクセスした際にユーザによって「自分がフォローするもの」が選択されている場合と「会社の注目」が選択されている場合に分かれていました。

f:id:tyoshikawa1106:20191018192800p:plain


なんでかなとサポートに問い合わせしてみたところ、ユーザのフォロー数に影響を受けるみたいです。

ほとんどのユーザにとって、デフォルトのフィードは [自分がフォローするもの] です。ただし、Lightning Experience では、フォローしているものが 10 件より少ないユーザのデフォルトのフィードは [会社の注目] になります。[会社の注目] がデフォルトになることで、新規ユーザは、組織内で最も活気のあるものは何かを確認することができます。


ヘルプはこちら。
f:id:tyoshikawa1106:20191018193147p:plain

特定のフィードの表示


公開グループを作成したときにメンバーには追加していないのでノイズにはならないと考えているときにはフォロー数が10件より少ないユーザが存在するかチェックしておいたほうが良いと思います。Chatter運用開始直後やフォローなどの文化が構築できていない組織ではフォロー数が少ないユーザは出てくると思いますので、そうしたユーザにはノイズ的な投稿がでてしまうことを意識する必要があります。

SFDC:Lightning Experienceのごみ箱機能を試してみました

Winter'20で追加されたLightning Experienceのごみ箱機能を試してみました。タブとして追加されているのでアプリケーションランチャーなどからアクセスできます。

f:id:tyoshikawa1106:20191018191933p:plain


Classicと同じく私のごみ箱と組織のごみ箱の選択が可能です。
f:id:tyoshikawa1106:20191018192006p:plain


Classicと違う部分として新規リストビューの作成が可能です。これにより複雑な条件でフィルタしたごみ箱のビューを用意できます。
f:id:tyoshikawa1106:20191018192057p:plain


またアプリケーションに追加するなどでナビゲーションバーに表示できます。
f:id:tyoshikawa1106:20191018192212p:plain:w300


今まではサイドバーのみでしたがより自由な配置が可能となっていました。
f:id:tyoshikawa1106:20191018192232p:plain

SFDC:Web-to-Xでフォームを実装するときに注意すること

Web-to-リードやWeb-to-ケースでを利用してフォームを作成する際のけっこう重要な注意事項として下記のヘルプ記事が公開されていました。

f:id:tyoshikawa1106:20191018190127p:plain

スパムの問題を回避するための Web-to-X のソースコードの保護


内容は下記のとおり。HTMLはサンプルでそのまま使わないことと、Salesforceの情報を記述しないという点が記載されています。

Salesforce で生成できる Web-to-X の HTML はサンプルとなります。
このため、Salesforce から生成した Web-to-X の HTML を公開するサイトで直接、使用しないよう注意してください。
公開するサイトのフォームには送信先となる Salesforce の情報を記述せず、HTML/API メソッドを使用してリクエストを送信することで、スパムなどの脅威から保護することができます。


基本的にデザインにはCSSを当てて、入力チェックにはJavascriptを使用します。なのでそれなりにカスタマイズは必要になる前提の機能ではありますが、Salesforceの情報を記述せずという部分がこのヘルプの重要なところでした。おそらく生成されるHTMLの組織IDのことを指していて、運用の際にはバックエンド側に変数等を用意してフロント側には見えなくしてくださいの意味ではないかと思います。



Web-to-Xのフォーム作成はCSSやJavascriptによるカスタマイズは必要ですが、サーバー側で処理を実装するのであれば、少し導入難易度が上がります。サーバーで処理を実装するのではればSalesforce APIの仕組みでリードや取引先の登録フォームを開発するという選択肢も有りかもしれません。



ただ、Web-to-Xのフォーム生成時にはセキュリティを高める「reCAPTCHA」の機能が用意されているためそちらを利用するのであれば、Web-to-Xによるフォーム作成のメリットも出てくると思います。

f:id:tyoshikawa1106:20191018191007p:plain

SFDC:Winter'20の新しいモバイルアプリケーションを試してみました

Winter'20で利用できるようになった新しいモバイルアプリケーションを試してみました。
f:id:tyoshikawa1106:20191013220236p:plain


新しいバージョンのアップデートということでアプリのアップデートだと思っていたのですが、Salesforce組織側の設定で更新できるようです。
f:id:tyoshikawa1106:20191013220429p:plain


有効化のページで新しいモバイルアプリのイメージ動画が公開されています。
f:id:tyoshikawa1106:20191013220531p:plain


新しいモバイルアプリの有効化は権限の追加で行います。
f:id:tyoshikawa1106:20191013220622p:plain


一般ユーザに対して一括で有効化したい場合はプロファイルの設定で追加できます。
f:id:tyoshikawa1106:20191013220837p:plain


システム管理者の場合はプロファイルでの権限追加はできませんでした。
f:id:tyoshikawa1106:20191013221012p:plain


システム管理者に対しては権限セットで追加します。
f:id:tyoshikawa1106:20191013221210p:plain


権限を追加後にモバイルアプリを起動するとUIが更新されました。
f:id:tyoshikawa1106:20191013223345p:plain:w250

f:id:tyoshikawa1106:20191013223422p:plain:w250

f:id:tyoshikawa1106:20191013223510p:plain:w250


新しいバージョンではアプリケーションランチャーにアクセスできます。ですが初期状態では選択できるアプリケーションがありません。これについてはアプリケーション設定で電話での利用オプションを追加することでモバイルのアプリケーションランチャーからもアクセス可能にできます。
f:id:tyoshikawa1106:20191013223837p:plain


PCとモバイルでアクセス権限を分けて管理できるのは便利そうです。この他にもLightningページでモバイルのレイアウトカスタマイズができるようになっていました。
f:id:tyoshikawa1106:20191013224046p:plain


とりあえず確認できた新機能はこんな感じでした。

SFDC:Winter'20にアップデートされました

Salesforceが年3回行っているアップデートでWinter'20になりました。ロゴはハンモックで休憩しているイエティの格好をしたアストロくん。南半球の冬をイメージしたロゴらしいです。

f:id:tyoshikawa1106:20191013213726p:plain


わかりやすいところで活動の表示が見やすくなっていました。

f:id:tyoshikawa1106:20191013214246p:plain


とりあえずチェックしておきたいのは重要な更新の部分です。

f:id:tyoshikawa1106:20191013214456p:plain


この中の「HTTPS 接続には TLS 1.2 以降が必要」は10/25までに有効化が必要です。Salesofrceへのアクセスに関わる部分なのでSandboxチェックしてから早めに有効化しておくほうが良さそうです。

f:id:tyoshikawa1106:20191013215032p:plain


その他の新機能はリリースノートでチェックできます。

f:id:tyoshikawa1106:20191013215147p:plain

リリースノート

SFDC:Lightningページで参照先オブジェクトの関連リスト表示を試してみました

Lightningページで参照先オブジェクトの関連リスト表示を試してみました。商談のページで取引先の活動を表示したかったのですが、標準機能のみで対応可能かなと思ったところ、Lightning Experienceなら関連リスト1つのみのコンポーネントであれば表示が可能であることを教えてもらったのでやってみました。

f:id:tyoshikawa1106:20191010083419p:plain:w250


試したときは活動でしたが、ブログ書くときはちょうどいいテストデータがなかったので商談で試しました。
f:id:tyoshikawa1106:20191010083651p:plain:w250


実際の表示結果はこんな感じ。普通に関連リストを表示できます。関連商談という感じで表示したら以外と便利そうでした。
f:id:tyoshikawa1106:20191010083825p:plain


すべて表示のリンクからビューで表示できます。
f:id:tyoshikawa1106:20191010083926p:plain


活動で試したときにはレコードタイプの絞り込みまでやりたかったので、最終的に利用は見送りとなりましたが、いろいろ使えて便利そうです。

SFDC:データローダバッチを使った別システムとのデータ連携について

Salesforceと別システムを連携するときですが、データローダのバッチモードの機能を利用してデータ連携の仕組みを構築できます。リアルタイムでの連携はできませんが、API連携などに開発をリソースを確保できない場合などに便利です。

f:id:tyoshikawa1106:20191008182618p:plain

データローダをバッチモードで使用する際の設定手順


以前まとめた開発のイメージと注意点についてです。


データローダバッチでデータ連携するときの処理の流れは下記のようになります。

1. Salesforce側にデータを登録
2. Windowsのタスクスケジューラ機能でデータローダバッチ実行
3. バッチ処理実行によりSalesforceのデータをCSVファイル形式で出力
4. 出力したCSVファイルを既存システム側へ取り込む

※上記と同じような感じでSalesforce側にCSVデータを取り込んでデータ作成することも可能です。(INSERT or UPSERT)


一般的にデータローダバッチを使ったデータ連携は下記のような構成になると思います。
f:id:tyoshikawa1106:20191008185832p:plain


例えば取引先データを他システムに連携する場合、データローダバッチのエクスポート処理を実装することで取引先データをそのままCSV形式で出力可能です。
CSVファイルができればあとは他システム側でCSV取込の処理を実装して連携完了です。


・・・ですがSalesforceと他システムでデータの持ち方が異なる場合があります。他システム側でCSVファイルを取り込んでデータ登録する際に形式の変換処理を行うことで対応は可能ですが、他システム側の開発に大きな負担が発生します。



そこで下記の方法が良いと思います。
f:id:tyoshikawa1106:20191008190114p:plain


連携対象をカスタムオブジェクトで管理する方法です。直接取引先などのオブジェクトを出力対象にするのではなく、カスタムオブジェクトを経由することで数式によるデータの加工や連携対象となったデータが何件存在しているかの確認が可能となります。その他連携時にトラブルが発生した場合でも、取引先の場合は業務開始と同時にバンバン更新されますが、カスタムオブジェクトで管理していることでエラー発生時のデータをそのまま残すことが可能です。


データ連携の出力データを作成するために取引先データを元にカスタムオブジェクトのデータを作成する処理が必要になりますが、Apexバッチを開発することで用意に実現できます。


基本的にSalesforce側で開発を行うのは、既存システムで機能追加するよりも容易に実装しやすいと思いますので、CSV出力時にそのまま取り込めるようなデータ形式に調整しておく構成が良いと思います。

データローダバッチで運用するときの注意点

実際に運用してみて下記のトラブルに遭遇しました。

トラブル発生時の状況
  • データローダバッチで出力するオブジェクトは2つ。
  • 出力実行はWindowsのタスクスケジューラ
  • タスクスケジュールから起動するバッチ処理内では、2つのオブジェクトのエクスポート処理を同時に呼び出し。
トラブルの内容
  • 2つのオブジェクトのうち、1つのオブジェクトのCSVデータが空。(運用開始直後は問題なかった。。)
  • Windowsタスクスケジューラは正常に実行されていた。
  • CSVファイル自体はできていたのでバッチ処理は起動している。
解決方法

上記トラブルが発生したのですが、運用開始から数日は問題なく動作していることもあり原因がわかりませんでした。ですが、おそらく2種類のオブジェクトのエクスポート処理を同時に実行したことが理由であると判断しました。実際に出力処理を別にわけて(2つめは30分後に実行)から様子を見たところ、出力結果が0件のトラブルは発生しなくなりました。


SalesforceからApexバッチを同時に実行しても数件はキューとして保持されるためエラーにならずに処理が実行できますが、ローカル環境で動くデータローダの起動を同時に行うのは無理があったと思います。(もともと人の手で操作して処理を行うツールのためそういう使い方は正しくない)

データローダバッチとログ出力

データローダバッチ処理の実行結果を残しておきたい場合があると思います。その場合は「config.properties」ファイル内の設定で設定可能です。

f:id:tyoshikawa1106:20191008193050p:plain


主にエクスポート処理時のための設定と思いますが、「process.enableExtractStatusOutput=true」とすると処理結果のログを残すことができます。(INSERTは特に指定してなくてもログが自動で生成された気がします。)


出力結果はlogフォルダに出力される。
f:id:tyoshikawa1106:20191008193251p:plain


出力先は「process-conf.xml」ファイル内で指定も可能
f:id:tyoshikawa1106:20191008193407p:plain


データ連携ですが、予期せぬエラーなどトラブルが発生することを想定する必要があります。ログを残したりは必ずやっておいた方が良いと思います。

データローダバッチの開発者ガイド

バッチモードについてもドキュメントがまとめられています。ログイン情報の暗号化や各種設定情報のカスタマイズはこちらで確認するのが良いと思います。

f:id:tyoshikawa1106:20191008193730p:plain

バッチモードでの実行 (Windows のみ)