ナレッジ記事のトリガに関する考慮事項
KnowledgeArticleVersion オブジェクトには、トリガを記述できます。トリガをいつ使用するかと、記事のアーカイブなどのトリガを起動できないアクションについて説明します。
一般に、KnowledgeArticleVersion (KAV) レコードでは次のトリガを使用できます。
- KAV レコードの作成では、before insert と after insert トリガをコールします。これには、記事やドラフトの作成があり、アーカイブ済み、公開済みのマスタ言語記事から [復元]、[ドラフトとして編集]、[翻訳申請] アクションを使用して行うことができます。
- 既存の KAV レコードの編集では、before update と after update トリガをコールします。
- KAV レコードの削除では、before delete と after delete トリガをコールします。
-
記事レコードの作成では、before insert と after insert トリガをコールします。翻訳付き記事のインポートでも、before update と after update トリガをコールします。
公開やアーカイブなど、KAV レコードの公開状況を変更するアクション。Apex トリガやフロートリガは起動されません。ただし、UI から記事を公開すると記事が保存されることがあり、その場合は before update と after update が呼び出されます。
ナレッジアクショと Apex トリガ
KnowledgeArticleVersion のアクションに対する Apex トリガを記述するときは、次の点を考慮してください。
- 保存、保存 & 閉じる
- 記事を閉じるとき、before update と after update トリガがコールされます。新しい記事を最初に保存するときは、代わりに before insert と after insert トリガが起動します。
- 編集、ドラフトとして編集
-
- ドラフト翻訳を編集する場合、before update と after update トリガを使用できます。
- [ドラフトとして編集] アクションでは、公開記事からドラフトが作成されるため、before insert と after insert トリガが起��されます。
- Salesforce Classic では、ドラフトのマスタ言語記事を編集したときにトリガが起動されません。
- Salesforce Classic では、[記事の管理] タブでアーカイブ済み記事を編集するときに、before insert と after insert トリガがコールされます。これにより、ドラフトの KAV レコードが作成されます。
- キャンセル、削除
-
次の場合に、before delete と after delete トリガがコールされます。
- トランザクションのドラフトを削除するとき。
- Salesforce Classic の [記事の管理] または [ナレッジ] タブで、公開記事を編集して [キャンセル] をクリックした後。この場合、新しいドラフトが削除されます。
- 翻訳申請
- このアクションによってドラフト翻訳が作成されるため、通常は before insert と after insert トリガを使用できます。Salesforce Classic では、[ナレッジ] タブから新しい記事を作成して保存してから翻訳申請するときに、before update および after update トリガを使用できます。before update と after update トリガは、マスタ言語記事が現在編集中のときに起動しますが、リストビューからの起動や、記事の表示中の起動は行われません。
- 割り当て
- before update と after update トリガがコールされるのは、コールによってレコードが先に保存されるときだけです。これは、[割り当て] ボタンがクリックされる前に記事が編集されているときに発生します。
Lightning 以降に与える影響
Salesforce Classic のナレッジから Lightning Knowledge への移行は、Apex トリガに影響します。KnowledgeArticleVersion オブジェクトに Apex トリガを記述すると、依存関係が作成され、KAV オブジェクトが削除されなくなります。複数の記事タイプがある組織を Lightning Knowledge に移行するときは、KAV 記事タイプを参照する Apex トリガを削除する必要があります。移行中に、削除された記事タイプの KAV オブジェクトを Apex トリガがまだ参照している場合、システム管理者にエラーメッセージが表示されます。新しい KAV オブジェクトを参照する Apex トリガが存在している間に Lightning Knowledge の移行をキャンセルすると、システム管理者に通知され、さらに Apex コードを削除する必要があります。