項目にフラグを設定する Apex トリガーの設定
トリガーを使用して、Experience Cloud サイトで項目に自動的にフラグを設定する高度なカスタムモデレーションロジックを作成します。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
| 必要なユーザー権限 | |
|---|---|
| トリガーを作成する | 「すべてのデータの編集」 |
ヒント この操作を UI で実行できます。ほとんどのサイトでは、カスタムモデレーショントリガーは必要ありません。モデレーションルールと条件は、エクスペリエンスワークスペースで直接作成できます。詳細は、「Experience Cloud サイトをモデレートするルールの作成」 を参照してください。
トリガーを使用して自動的に項目にフラグを設定すると、Experience Cloud サイトをバックグラウンドでモデレートできます。これらのフラグは、モデレーターにのみ表示されます。エクスペリエンスワークスペースでのフラグの表示、API でのフラグのクエリ、カスタムレポートタイプを使用したフラグ付き項目やフラグ付き項目が最も多いユーザーなどに関するレポートの作成ができます。
トリガーを作成するときは、次の点に留意してください。
- Apex は、FeedItem、FeedComment、ChatterMessage、または ContentDocument にトリガーを挿入した後に作成します。
- 条件は、満たされたら FeedComment、FeedItem、ChatterMessage、または ContentDocument を親として NetworkModeration (フラグ) レコードを作成するように定義します。
例
次のトリガーは、サイト内の BadWord を含む投稿に自動的にフラグを設定します。
trigger autoflagBadWordOnPost on FeedItem (after insert) {
List<NetworkModeration> flags = new List<NetworkModeration>();
for (FeedItem rec : trigger.new) {
if (!<NetworkId>.equals(rec.networkScope)){
continue;
}
if (rec.body.indexOf('BadWord') >= 0) {
NetworkModeration nm = new NetworkModeration(EntityId = rec.id, Visibility = 'ModeratorsOnly');
flags.add(nm);
}
}
if (!flags.isEmpty()) {
insert(flags);
}
}
コメントに対する同様のトリガーは、次のようになります。
trigger autoflagBadWordOnComment on FeedComment (after insert) {
List<NetworkModeration> flags = new List<NetworkModeration>();
for (FeedComment rec : trigger.new) {
if (!<NetworkId>.equals(rec.networkScope)) {
continue;
}
if (rec.commentBody.indexOf('BadWord') >= 0) {
NetworkModeration nm = new NetworkModeration(EntityId = rec.id, Visibility = 'ModeratorsOnly');
flags.add(nm);
}
}
if (!flags.isEmpty()){
insert(flags);
}
}
関連項目:
この記事で問題は解決されましたか?
ご意見をお待ちしております。
