【Salesforce】項目履歴管理が想定と違う時の管理者が見るべき原因

【Salesforce】項目履歴管理が想定と違う時の管理者が見るべき原因
🛡️ 超解決

Salesforceで項目履歴管理を設定しているのに、期待した履歴が記録されない、または想定外のタイミングで履歴が残るというケースは少なくありません。管理者としては「設定が正しいはずなのになぜ?」と頭を悩ませる場面でしょう。項目履歴管理は単に「追跡する」スイッチをオンにするだけでなく、複数の要素が絡み合って動作します。この記事では、管理者が原因を特定するための具体的な確認ポイントと切り分け手順を解説します。システム全体の挙動を理解し、迅速に問題を解決できるようになることを目指します。

【要点】この記事で確認すること

  • 最初に見る場所: オブジェクト管理設定の「項目履歴管理」画面。どの項目が有効になっているか、追跡タイプは正しいか。
  • 切り分けの軸: 端末側(ユーザー操作)か、アカウント側(権限)か、管理設定側(自動化ルール・トリガ)か。更新方法(画面、API、データローダ)も重要。
  • 注意点: 会社PCで勝手に設定変更をせず、必ずSandboxで検証してから本番に適用すること。管理者しか変更できない設定もあるため、権限の確認が必要。

ADVERTISEMENT

項目履歴管理が想定と違う原因の全体像

項目履歴管理が期待通りに記録されない原因は、大きく分けて4つのカテゴリに分類できます。それぞれのカテゴリを順に確認していくことで、問題の根源を効率的に見つけられます。最初のカテゴリは「設定そのものの不備」です。項目履歴管理の対象にしたい項目が正しく有効化されていない、あるいは追跡タイプが「新旧値」ではなく「新しい値のみ」になっているといったケースです。2つ目は「自動化ルール(ワークフロー、プロセスビルダー、フロー)による影響」です。例えば、項目更新ルールで別の項目を更新した場合、その更新が履歴として残るかどうかは設定次第です。3つ目は「ApexトリガやAPI経由の更新」です。画面から手動で更新するのと違い、システム的な更新では履歴が残らないケースがあります。4つ目は「データローダやインポートウィザードによる一括更新」です。これらのツールでは、項目履歴を残すためのオプションがデフォルトで無効になっていることがあります。

原因を特定するための優先順位

問題が発生したら、まずは最も簡単に確認できる「項目履歴管理の設定画面」から調べます。次に、自動化ルールやトリガの有無を確認し、その後ユーザー権限やAPI使用状況を調査します。この順序に従えば、無駄な工数をかけずに原因を特定できます。

設定画面で確認すべきポイント

最初に確認するのは、対象オブジェクトの項目履歴管理設定です。設定手順は以下のとおりです。

  1. 設定画面で「オブジェクトマネージャ」を開き、対象のオブジェクトを選択します。
  2. 左メニューから「項目履歴管理」をクリックします。ここに、現在追跡対象となっている項目の一覧が表示されます。
  3. 期待する項目が一覧に含まれているか確認します。含まれていない場合は「新規」ボタンから追加します。
  4. 各項目の「追跡タイプ」を確認します。「新しい値のみ」を選択していると、古い値は記録されません。新旧両方を残したい場合は「新旧値」に変更します。
  5. 「有効」チェックが入っているか確認します。無効になっている項目はもちろん履歴が残りません。

ここでよくある失敗パターンは、必要な項目を設定したつもりが「保存」ボタンを押し忘れているケースです。また、参照項目の履歴を追跡したい場合は、参照先の値が変わっても履歴が記録されない仕様であることを理解しておく必要があります。参照項目自体が変更されたときだけ履歴が残るため、誤解しやすいポイントです。

自動化ルールが履歴に与える影響

ワークフロールールやプロセスビルダー、フローといった自動化機能が項目更新を行う場合、その更新が履歴として記録されるかどうかは、ルールの「項目自動更新」アクションの設定に依存します。特に、ワークフロールールの「項目自動更新」アクションには「項目履歴を記録する」というチェックボックスがあります。これがオフになっていると、ルールによる更新は履歴に残りません。プロセスビルダーやフローで「項目の値を変更する」アクションを使用する場合も同様の設定があるかを確認します。

失敗パターン:ルールが想定以上にトリガされる

例えば、「ステータスが’完了’に変わったときに、担当者をシステム管理者に変更する」というルールがあったとします。このルールが正しく動作していても、その変更が履歴として記録されるかどうかは、ルールの設定次第です。また、ルールが複数適用される場合、あるルールで更新した項目が別のルールをトリガする連鎖が起き、履歴が大量に生成されることがあります。管理者はこの連鎖を予測し、必要に応じてルールを無効化または再設計する必要があります。

ApexトリガやAPI呼び出しによる更新時の注意点

Apexトリガで項目を更新する場合、デフォルトでは項目履歴が記録されません。トリガ内で明示的に履歴を挿入する必要があります。同様に、API(REST/SOAP)を使用して更新する場合も、ヘッダーに「Sforce-Disable-Field-History-Tracking: false」を指定するなどの対応が必要です。これらの仕様を理解せずに実装すると、画面操作では履歴が残るものの、システム連携では残らないという事態が発生します。

更新方法 履歴記録のデフォルト動作 履歴を残すための対応
画面手動更新 有効な項目は記録される 特になし
ワークフロールール 「項目履歴を記録する」がONなら記録 ルール設定のチェックボックスを確認
プロセスビルダー・フロー アクションの設定による 「履歴を記録」オプションを有効化
Apexトリガ 記録されない トリガ内で履歴オブジェクトにINSERTする
API更新 記録されない ヘッダーにSforce-Disable-Field-History-Tracking=falseを追加
データローダによる更新 記録されない 設定ファイルでAllowFieldTruncation等とは別。基本的にレコードを挿入する方法で対応

データローダやインポートツール使用時の注意点

データローダでレコードを更新する場合、標準機能では項目履歴は記録されません。これは多くの管理者が気づかないポイントです。どうしても履歴を残したい場合は、APIを使用する際の対応(前述のヘッダー設定)をデータローダの設定に組み込むか、または履歴を直接インサートするApexバッチを作成する必要があります。また、インポートウィザードやData Import Service(Dataloader.ioなどの外部ツール含む)でも同様の制限がありますので、事前に動作確認を行うことが重要です。

よくある質問(FAQ)

項目履歴管理をオンにしたのに、過去のデータの履歴は追跡されないのですか?

はい、そのとおりです。項目履歴管理を有効にした時点以降の変更のみが記録されます。過去の変更履歴は遡って生成されません。そのため、設定変更後に意図した履歴が記録されるかどうかを確認するには、実際に項目を変更してテストする必要があります。

項目履歴管理のレコード数に制限はありますか?

組織全体で「履歴レコード」として保存できる件数に制限があります。具体的には、標準オブジェクトの履歴レコードは最大で200,000件までという制限があります。この上限に達すると新しい履歴は記録されなくなります。管理者は「データストレージ使用量」のレポートで監視し、不要な履歴は適宜削除することを検討してください。

履歴が一部しか残っていないのはなぜですか?

考えられる原因として、追跡対象項目の数が多すぎてシステムの制限に引っかかっている可能性があります。1つのオブジェクトに対して追跡できる項目数は最大で20個までです。また、履歴の保存期間はデフォルトで無制限ですが、カスタム設定で保持期間を制限している場合はその影響も考えられます。

管理者が原因を切り分けるための最終チェックリスト

問題解決のために、以下のチェックリストを順に確認することをお勧めします。

  • 項目履歴管理設定で、対象項目が有効かつ適切な追跡タイプになっているか
  • ワークフロールールやフローで「項目履歴を記録する」オプションがオンか
  • Apexトリガで明示的に履歴を挿入しているか、API呼び出し時にヘッダーを設定しているか
  • データローダなどのツールを使用した場合は、履歴が残らない仕様を理解した上で代替手段を取っているか
  • 履歴レコードの上限に達していないかをストレージ使用量から確認

また、ログイン履歴や監査証跡から、誰がいつ更新したかを確認することで、原因がユーザー操作なのかシステムなのかを切り分けることも有効です。

まとめ

項目履歴管理が想定と違う原因は、設定の見落としや自動化ルールの設定、更新方法の違いなど多岐にわたります。管理者はまず設定画面を確認し、次に自動化ルール、最後にAPIやトリガの実装を調べることで効率的に原因を特定できます。特に、ワークフロールールの「項目履歴を記録する」オプションや、Apexトリガでの履歴挿入漏れは見落としがちなポイントです。問題が発生した際には、Sandboxで再現テストを行い、修正後に本番環境へ適用するプロセスを徹底してください。これにより、履歴管理の信頼性を高め、監査要件にも確実に応えられるようになります。


この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。