項目履歴管理
特定の項目を選択して、オブジェクトの [履歴] 関連リストの項目履歴を追跡および表示できます。項目監査履歴が有効でない場合、項目履歴データは最大 18 か月保持されます。API 経由の場合は、最大 24 か月保持されます。項目監査履歴が有効の場合、項目履歴データは手動で削除するまで保持されます。項目履歴データはいつでも手動で削除できます。項目履歴管理データは、データストレージ制限に含まれません。
| 使用可能なインターフェース: Salesforce Classic (すべての組織で使用できるわけではありません)、Lightning Experience、および Salesforce アプリケーション |
| 使用可能なエディション: Contact Manager Edition、Essentials Edition、Group Edition、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition、および Database.com Edition 標準オブジェクトは Database.com Edition では使用できません。 |
カスタムオブジェクトおよび次の標準オブジェクトの項目履歴を追跡できます。
- 取引先
- 記事
- 納入商品
- キャンペーン
- ケース
- 取引先責任者
- 契約
- 契約品目名
- 危機
- 従業員数
- 従業員危機対応評価
- エンタイトルメント
- 行動
- 個人
- 内部組織単位
- ナレッジ
- リード
- 商談
- 注文
- 注文商品
- 商品
- 価格表エントリ
- 見積
- 見積品目
- サービス予定
- サービス契約
- ソリューション
- ToDo
- 作業指示
- 作業指示品目
Salesforce では、オブジェクトの追跡項目履歴を StandardObjectNameHistory または CustomObjectName__History という関連付けられたオブジェクトに保存します。たとえば、AccountHistory は、取引先レコードの項目の値に対する変更の履歴を表します。同様に、MyCustomObject__History では MyCustomObject__c カスタムオブジェクトの項目履歴を追跡します。
考慮事項
項目履歴管理を使用する場合は、次の点を考慮してください。
- 一般的な考慮事項
-
- Salesforce は、項目履歴の追跡を、項目で有効化された日時から開始します。この日時よりも前の変更は含まれておらず、履歴関連リストのエントリは作成されていません。
- 過去 18 ~ 24 か月間の項目履歴を取得するには、データローダまたは queryAll() API を使用します。
- 255 文字を超える項目に対する変更は、編集済みとして追跡され、元の値と新しい値は記録されません。
- 時間項目に対する変更は、項目履歴関連リストでは追跡されません。
- 項目履歴管理のタイムスタンプは、秒単位で正確です。つまり、2 人のユーザが同じ秒内で同じレコードの同じ追跡項目を更新すると、両方の更新のタイムスタンプは同じになります。Salesforce は、データベースへのこれらの変更のコミット順序を保証できません。その結果、表示値の順序が不適当になる可能性があります。
- 項目履歴管理は、初期インストール時に管理パッケージでサポートされます。ただし、項目履歴設定は、アップグレード時にサポートされません。パッケージのアップグレードを選択した場合は、項目履歴設定を確認し、必要に応じて調整してください。
- 標準オブジェクトまたはカスタムオブジェクトのレコードタイプを作成して、同じメタデータ API リリースでそのレコードタイプの項目履歴管理を有効にすることはできません。代わりに、1 つのリリースでレコードタイプを作成し、別のリリースでそのレコードタイプの履歴管理を有効にします。
- Salesforce では、StandardObjectNameHistory または CustomObjectName__History オブジェクトの最近表示または参照された機能は有効にしません。そのため、これらの履歴オブジェクトの SOQL クエリで FOR VIEW 句または FOR REFERENCE 句を使用することはできません。たとえば、次の SOQL クエリは無効です。
1SELECT AccountId, Field FROM AccountHistory LIMIT 1 FOR VIEW
- その他の Salesforce 機能とのインタラクション
-
- Lightning では、[作成日] 項目と [ID] 項目の順序の差を表示できます。すべての変更追跡は引き続きコミットされ、監査ログに記録されます。ただし、データベースでこうした変更が行われる正確な時間は大幅に異なる可能性があり、同じミリ秒以内に行われる保証はありません。たとえば、項目でコミット時間を増やすトリガまたは更新があり、時間に差が生まれる可能性があります。その期間中、ID は昇順で作成されますが、同じ理由により、やはり差が生まれる可能性があります。
- プロセスビルダー、Apex トリガ、またはフローによってオブジェクトに変更が加えられ、現在のユーザに編集権限がない場合、その変更は追跡されません。項目履歴管理では現在のユーザの権限が優先され、システムコンテキストで発生する変更は記録されません。
- Salesforce は、特定の変更がデータベースに保存されない場合でも、履歴が管理されている項目について、すべての変更の追跡を試みます。たとえば、管理者が、Postal Code 項目の値 12345 を 94619 に変更するオブジェクトに Apex before トリガを定義したとします。ユーザがオブジェクトにレコードを追加し、Postal Code 項目に「12345」を設定した場合、Apex トリガによって、データベースに保存される実際の Postal Code の値は 94619 になります。最終的には 1 つの値しかデータベースに保存されませんが、Zip Code 項目の追跡履歴には 2 つの新しいエントリが追加されます。
- No value --> 12345 (ユーザが新しいレコードを挿入したときの変更)
- 12345 --> 94619 (Apex トリガによる変更)
- 行動および ToDo の履歴の考慮事項
-
- 履歴に変更が反映されるまで、最大で数分かかる場合があります。
- 行動または ToDo の項目を 6 つまで追跡できます。
- 活動が削除された後、活動の履歴は API クエリによって最大で数日間表示できます。履歴は、その削除が活動と同期されていないため、利用可能なまま残されます。
- 定期的な行動および下位行動へのすべての変更が追跡されるわけではありません。
- 特定の項目の履歴レコードを削除することはできません。
- 項目履歴管理を有効にすると、Bulk API のトランザクションや行動の同期などの一括処理が遅延することがあります。プロセスが遅延する場合は、活動項目の履歴管理をオフにすることを検討してください。
- 活動履歴が更新されるときには、活動の親レコードがロックされます。たとえば、ある活動が何千もの取引先にリンクしている場合、履歴が更新される間、それぞれの取引先がロックされてしまいます。ベストプラクティスとして、データのスキューを防止してください。親子の行のロックによってプロセスが失敗する場合、活動項目の履歴管理をオフにすることを検討してください。
- プロセスビルダー、Apex トリガ、またはフローによって生じた項目値の変更は、活動の履歴で追跡されます。項目レベルセキュリティ設定で許可されている場合のみ、ユーザに変更が表示されます。他のオブジェクトの場合、プロセス、トリガ、およびフローからの項目の変更は、現在のユーザに変更された項目への編集権限がある場合にのみ追跡されます。
- 以前に追跡に使用された暗号化された項目を非暗号化する場合、その項目が暗号化されている間に追跡された値は表示されません。項目の暗号化を解除した後は、値が履歴で追跡されます。
- API で活動履歴を利用できるのは、全データの変更権限を持つ管理者のみです。
- 活動の項目履歴は、関連リストに似た Lightning コンポーネントで表示されます。ページレイアウトで履歴を管理するのではなく、Lightning ページに行動や ToDo のレコードの活動レコード履歴コンポーネントを配置します。活動レコード履歴コンポーネントは、行動および ToDo のカスタムページに追加したり、デフォルトページから削除したりできます。履歴リストは、オブジェクトマネージャで項目履歴管理を有効にするまで空のままです。
- 履歴リストは、Salesforce Classic またはモバイルアプリケーションでは使用できません。
- 翻訳とロケールに関する考慮事項
-
- 追跡された項目の値は、自動的には翻訳されません。それらの値は、作成された際の言語で表示されます。たとえば、項目が「Green」から「Verde」に変更された場合、そ���項目の値がトランスレーションワークベンチを使用して他の言語に翻訳されていない限り、ユーザの言語に関係なく「Verde」が表示されます。この動作は、レコードタイプおよび選択リスト値にも適用されます。
- トランスレーションワークベンチで翻訳済みのカスタム項目ラベルに対する変更は、[履歴] 関連リストを参照しているユーザのロケールに合わせて表示されます。たとえば、カスタム項目ラベルが Red で、スペイン語では Rojo と翻訳されている場合、スペインロケールのユーザにはそのカスタム項目ラベルが Rojo と表示されます。それ以外のユーザには、そのカスタム項目ラベルが Red と表示されます。
- データ項目、数値項目および標準項目に対する変更は、[履歴] 関連リストを参照しているユーザのロケールに合わせて表示されます。たとえば、日付を 2012 年 8 月 5 日に変更すると、英語 (アメリカ) ロケールのユーザには 8/5/2012 と表示され、英語 (イギリス) ロケールのユーザには 5/8/2012 と表示されます。