tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:価格表と商品のメンテナンスを試してみました

Sales Cloudの商談機能を使えば商品の金額を管理できます。商品の管理には価格表が必要になるのですが、値を更新したときの扱いなどについて確認してみました。
f:id:tyoshikawa1106:20180408111303p:plain


商談商品の利用開始にはまず価格表を用意します。用意ができたら商談の詳細ページの商品関連リストから商品を追加ができるようになります。
f:id:tyoshikawa1106:20180408111151p:plain


初回の商品追加は価格表の選択が求められます。
f:id:tyoshikawa1106:20180408111333p:plain


続いて対象の商品を選択します。
f:id:tyoshikawa1106:20180408111417p:plain


数量と金額を入力します。残りの項目は必須ではないので状況に応じて利用します。
f:id:tyoshikawa1106:20180408111446p:plain


これで商品の追加が完了しました。
f:id:tyoshikawa1106:20180408111524p:plain


商品関連リストのすべてリンクをクリックすると選択した商品が一覧表示されます。
f:id:tyoshikawa1106:20180408111613p:plain


登録した商品はもちろん編集可能です。
f:id:tyoshikawa1106:20180408111656p:plain

価格表の更新の影響

ここからが今回の調査対象です。まず選択した価格表の金額が変更された場合、商談商品に影響があるか確認しました。価格表の金額はリスト価格で管理されています。
f:id:tyoshikawa1106:20180408111937p:plain


標準価格表チェックがONになっていると変更できないのでOFFにしてから値を更新します。
f:id:tyoshikawa1106:20180408112042p:plain


これで価格表の金額を更新しました。
f:id:tyoshikawa1106:20180408112112p:plain


その状態で商談商品の金額が変更されているか確認したところ、値は変更されずに残っていました。
f:id:tyoshikawa1106:20180408112227p:plain


価格表の金額を更新しても商談に登録した金額(販売価格)が勝手に変更されることはないようです。ただし、リスト価格の値が異なる値に更新されていました。基本的には問題ありませんが定価と比較してどの程度値下げもしくは値上げされているかが確認できなくなってしまいます。


価格表の金額更新は可能ですが、基本的には行わない方が良さそうです。

新しい価格の追加

上記の通り、価格表の金額を変える時は既存の価格表を更新するのではなく新規価格表を作成する方が良さそうです。その場合は既存価格表をコピーする形で登録できます。
f:id:tyoshikawa1106:20180408112701p:plain


・・・が、コピーした場合は商品データはコピーされないみたいです。。
f:id:tyoshikawa1106:20180408112759p:plain


これに関してはClassicから作成すると商品を含めてコピーできる機能があります。
f:id:tyoshikawa1106:20180408112954p:plain

f:id:tyoshikawa1106:20180408113015p:plain


今後のバージョンアップで対応可能になると思いますがそれまではClassicでの対応が良さそうです。


上記手順で新しい価格表を作成できました。
f:id:tyoshikawa1106:20180408113237p:plain


これで新しい商談を登録する際に金額が変更された価格表を選択できるようになります。
f:id:tyoshikawa1106:20180408113452p:plain


f:id:tyoshikawa1106:20180408113507p:plain


f:id:tyoshikawa1106:20180408113523p:plain

価格表の無効化

新しい価格設定が行われた後、旧価格が登録されてしまうのはあまり良くありません。価格表には無効化の機能もあるので試してみました。
f:id:tyoshikawa1106:20180408113734p:plain


無効になった価格表は次のように選択できなくなります。
f:id:tyoshikawa1106:20180408113951p:plain


ここで心配なのが既に進行済の案件です。これらの商談の価格表が切り替わってしまうと正しい集計ができません。確認したところそれらの価格表は問題なく利用できました。
f:id:tyoshikawa1106:20180408114130p:plain

f:id:tyoshikawa1106:20180408114215p:plain


ただし、価格表を変更してしまうと無効になった価格表は選択できなくなります。(価格表の変更を行うと商品情報もリセットされるので気軽には実施できません。)
f:id:tyoshikawa1106:20180408114434p:plain

商品の無効化

価格表の無効化の挙動は確認できました。最後に商品の無効化について確認します。
f:id:tyoshikawa1106:20180408114530p:plain


新しい商品の提供により古い商品のサポートが終了することがあると思います。そうした商品が商談登録時に選択肢としてでてしまうのは少し不便です。そのため無効化することで整理することができます。商品を無効化すると商談商品の選択肢からは表示されなくなります。
f:id:tyoshikawa1106:20180408114805p:plain


既に登録済の商談商品はそのまま利用できるようです。
f:id:tyoshikawa1106:20180408115011p:plain


価格表にもそのまま登録されていますが、無効なデータとして登録されています。
f:id:tyoshikawa1106:20180408115129p:plain


新規価格表作成時にも選択できなくなります。
f:id:tyoshikawa1106:20180408115227p:plain


商品を無効にすると全ての価格表に影響がでます。ですのでもしも過去の価格表では引き続き利用したい場合は商品を無効にするのではなく価格表から除外するだけの方が良いかもしれません。
f:id:tyoshikawa1106:20180408115343p:plain


価格表と商品のメンテナンスはこんな感じでした。

SFDC:Magic Mover for Notes And Attachments to Lightning Experience を試してみました

Magic Mover for Notes And Attachments to Lightning Experience を試してみました。メモ&添付ファイルをLightning Experienceがサポートするメモオブジェクトとファイルオブジェクトの形式に変換するためのアプリケーションです。

f:id:tyoshikawa1106:20180408085128p:plain

Magic Mover for Notes And Attachments to Lightning Experience - Salesforce Labs - AppExchange


このアプリケーションはSummer'17でファイルの変換方法として紹介されています。Salesforce社のSalesforce LabsチームがAppExchangeで公開していますが、Sales CloudやService Cloudのようにサポートされている製品ではないと思います)
f:id:tyoshikawa1106:20180408085506p:plain

リリースノート


メモ&添付ファイルの場合、LightningExperineceで参照すると自動でダウンロードされてしまいますが、ファイル形式の場合はプレビューモードが起動されます。そのため、Lightning Experienceの有効化には避けては通れない作業となっています。
f:id:tyoshikawa1106:20180408090039p:plain


アプリの利用ガイドも用意されています。作業の前には確認しておくと良さそうです。Summer'17のリリースノート公開されたときからアプリ名は変更されていたみたいです。
f:id:tyoshikawa1106:20180408090321p:plain

https://appexchange.salesforce.com/servlet/servlet.FileDownload?file=00P3A00000cWkhLUAS


AppExchangeなのでインストールは簡単に実施できます。
f:id:tyoshikawa1106:20180408090538p:plain:w300


ただし、そのままインストールするとエラーになると思います。
f:id:tyoshikawa1106:20180408090601p:plain:w300


このエラーはインストール作業前に必要な設定を行っていないからでした。ユーザインターフェースの設定でチェックを付ける必要があります。(詳細はガイドの方に記載されていました。)
f:id:tyoshikawa1106:20180408090636p:plain


メモ機能の有効化もやっておいたほうが良さそうです。
f:id:tyoshikawa1106:20180408090733p:plain


これで問題なくインストールできると思います。
f:id:tyoshikawa1106:20180408090806p:plain:w300


インストールすると権限セットが追加されます。これを管理者ユーザに割り当てます。
f:id:tyoshikawa1106:20180408090840p:plain


また下記の権限を追加してください。
f:id:tyoshikawa1106:20180408090920p:plain

f:id:tyoshikawa1106:20180408090934p:plain



下記のVisualforceページタブが追加されます。

  • Attachments
  • Attachments to Files
  • Configuration
  • Last Documents
  • Latest Files & Notes
  • Notes Conversion
  • Update Page Layouts


メモ&添付ファイルを移行するのはAttachments to Filesタブのページです。確認時に複数あることに気づかずメモ変換用のNotes Conversionページを起動したのですが、最初にリモートサイト設定の追加が必要になります。おそらく画面にメッセージが表示されるのでボタンをクリックするだけで追加完了です。権限セットが割り当てられていないとここで警告も表示されました。
f:id:tyoshikawa1106:20180408091253p:plain

f:id:tyoshikawa1106:20180408091554p:plain


ひとまずこれで事前準備が整いました。作業前にConfigurationタブにアクセスしてください。ここでバッチサイズを切り替えることが可能みたいです。
f:id:tyoshikawa1106:20180408091755p:plain


ファイル変換処理ですが、何も考えずに実行していくと『Apex CPU time limit exceeded』エラーが発生します。これは1日の使用量をオーバーしたことで発生するのですが、これが発生すると24時間一部機能が利用できなくなります。エラー通知のメールに「サポートに問い合わせて下さい。」と記載ありました。念のために問い合わせてみましたがさすがに緩和とかは難しいみたいでした。(※ファイルの変換作業は一度に処理する件数を減らすことで進めることができました。)


こうしたエラーを回避するためにもバッチサイズを50〜80ぐらいに減らしておいた方が無難かと思います。変換作業を実施したときにはこのページの存在に気づかずに上記CPUタイムの上限エラーを起こしてしました。その後70件から80件だと動くことに気付き毎回手動実行する方法で対応したのですが、本来はこのページでバッチサイズを変更すれば簡単に対応できると思います。



バッチサイズの設定ができたら、Attachments to Filesタブにアクセスします。ここでファイル変換作業を実施できます。
f:id:tyoshikawa1106:20180408092521p:plain


まずは対象ファイルを日付とオブジェクトで絞り込みます。今回変更対象のファイルは長年使われている組織と比べて多くなかったため、全期間と全オブジェクトで取得しても問題ありませんでしたが、必要に応じて絞り込むと良さそうです。条件を指定したらFilterボタンで検索できます。
f:id:tyoshikawa1106:20180408092626p:plain


検索した移行対象は画面左下に表示されます。移行対象にチェックをつけて少し上にあるConvertボタンをクリックします。
f:id:tyoshikawa1106:20180408092927p:plain


最初は検証用に数件試すのが良いと思います。実行前のメモ&添付ファイルはこのようになっています。
f:id:tyoshikawa1106:20180408093201p:plain


Converボタンをクリックするとポップアップで確認メッセージが表示されるので問題なければ実行します。
f:id:tyoshikawa1106:20180408093319p:plain


処理はApexバッチで行われます。完了まで少し時間が掛かります。
[f:id:tyoshikawa1106:20180408093337p:plain:300]


処理が完了するとメールで通知が届きます。ガバナ制限が発生しそうな場合などの通知メールも届くようになっています。
f:id:tyoshikawa1106:20180408093543p:plain


処理完了後はこのようになります。
f:id:tyoshikawa1106:20180408093632p:plain


ファイル関連リストとメモ&添付ファイルに同じものが表示されているのは、Salesforceの仕様なので問題ありません。(ファイル関連リストのデータはメモ&添付ファイルからも参照可能となっています。)


タイトル部分にIDが割り当てられたファイル、これが移行元となったファイルです。
f:id:tyoshikawa1106:20180408093852p:plain


移行元のファイルはAttachments to Filesの機能で削除することが可能です。
f:id:tyoshikawa1106:20180408094045p:plain


ゴミ箱をクリックすると削除バッチが実行されます。
f:id:tyoshikawa1106:20180408094117p:plain


これで不要になったファイルを削除できました。ファイルはゴミ箱にはいかず完全削除されるので注意してください。
f:id:tyoshikawa1106:20180408094232p:plain


この作業が完了した後すぐに対応しなくてはならないことがあります。ページレイアウトの設定です。メモ&添付ファイル関連リストが表示されたままだとまた新たなファイルがアップロードされてしまいます。それを防ぐためにメモ&添付関連リストを除外してファイル関連リストに差し替える必要があります。


こうした作業はUpdate Page Layoutタブの機能を利用すると簡単です。
f:id:tyoshikawa1106:20180408094510p:plain


画面左側のチェックボックスがメモ&添付ファイルが表示されているページレイアウトを表します。画面右側のチェックがファイル関連リスト・メモ関連リストを表示していることを表しています。関連リストの追加と除外は右上のボタンから実行できました。
f:id:tyoshikawa1106:20180408094832p:plain:w300



これでMagic Mover for Notes And Attachments to Lightning Experienceをつかってファイル関連リストへの変換が完了しました。メモの方は試していませんが同じように実行できると思います。この機能は正式な製品ではないと思いますので基本的には自己責任での利用が求められると思います。利用前には事前の検証を必ず行うようにした方が良さそうです。


注意点として、このパッケージのApexクラスがテストクラスでエラーが発生しました。インストール中はリリース作業ができなくなる可能性があります。(パッケージではなく組織側の問題かもしれません。)


検証時にはその当たりも含めて確認しておくのが良さそうです。


正式な製品ではありませんが、Salesforceのチームが公開しているためかTrailblazerCommunityにグループが用意されています。そこで最新情報を取得したり質問したりができそうです。
f:id:tyoshikawa1106:20180408095242p:plain
https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F93A000000LgpSSAS

補足

メモ&添付ファイル関連リストはAttachmentオブジェクトでしたが、ファイル関連リストのデータはContentVersion/ContentDocumentで管理されます。Apex側での改修が必要になったり、Force.comサイトのゲストユーザでアクセスできなかったりしますので、開発が入っている組織の場合は移行して問題が内科のチェックを行う必要があります。

SFDC:自動採番項目の表示形式変更を試してみました

Salesforceの自動採番項目の表示形式変更を試してみました。
f:id:tyoshikawa1106:20180404142801p:plain


Salesforceの自動採番項目を導入するときにうっかり「A-0001」と指定してしまうことがあると思います。基本的に任意の値に切り替えることはできませんが特定の手順で変更することが可能です。

f:id:tyoshikawa1106:20180404142844p:plain

※変更の際は必ずデータ入力が行われていない時間帯に作業します。


作業の流れ

まずはデータローダで既存データをエクスポートします。
f:id:tyoshikawa1106:20180404143004p:plain


続いてCSVデータを加工します。この作業はGoogleドライブにCSVファイルをアップしてGoogleスプレッドシートで行うとスムーズです。
f:id:tyoshikawa1106:20180404143150p:plain


別の列で新しい連番を用意したあとに既存の列の情報を更新します。
f:id:tyoshikawa1106:20180404143224p:plain


加工完了したらCSVファイル形式でダウンロードします。これで更新用データの準備ができました。
f:id:tyoshikawa1106:20180404143348p:plain


続いてName項目のデータ型をテキスト型に変更します。
f:id:tyoshikawa1106:20180404143301p:plain


テキスト型に変更するとName項目の値を更新することができるようになります。先程用意したCSVファイルとデータローダをつかってUPDATE作業を行います。(マッピングでName項目が表示されていない場合は、データローダを一度ログアウトして再ログインすると表示されます。)


UPDATE完了後にデータが正しく変更されているかを確認します。
f:id:tyoshikawa1106:20180404143413p:plain


更新に問題がないことを確認したらデータ型を自動採番型に変更します。そのとき開始番号には既存データの次の番号をセットします。
(選択リストで自動採番を選び保存を押すと各項目が表示されます)
f:id:tyoshikawa1106:20180404143621p:plain


データ型を自動採番に切り替えた後試しに一件データを作成してみます。
f:id:tyoshikawa1106:20180404143749p:plain


データが作成できることを確認できたら作業完了です。
f:id:tyoshikawa1106:20180404143818p:plain

f:id:tyoshikawa1106:20180404143850p:plain


この作業は他にデータ登録処理が実行されない時間帯に行う必要があります。また自動採番の値をつかって他システムと連携していないかの確認も必要です。作業後はApexクラスのテストがエラーになったりしていないかも確認しておくと無難かもしれません。基本的には変更しないというのが一番ですが他のデータと区別をつけやすくしたいときはこの手順で変更可能のはずです。

SFDC:活動のアーカイブと活動関連リストについて

Salesforceには1年間経過した活動はアーカイブされる仕組みがあります。これはデータが削除されるわけではなくレポート、リストビュー、検索でヒットしなくなるという仕様になっています。
f:id:tyoshikawa1106:20180401230030p:plain

レポートに全ての活動(ToDo および行動)が表示されない


なので一番重要な活動関連リストにはアーカイブ後も引き続き表示されるようになっています。(すべて表示ボタンで表示される)
f:id:tyoshikawa1106:20180401230230p:plain

アーカイブ済み活動の表示