【发布时间】:2026-01-14 12:45:01
【问题描述】:
这是挑战:
要完成此挑战,您需要为机会添加触发器。触发器会将任务添加到任何插入或更新的“已结束赢得”阶段的机会。任务的主题必须是“跟进测试任务”。
- Apex 触发器必须称为“ClosedOpportunityTrigger”
- “ClosedOpportunityTrigger”处于活动状态时,如果插入或更新机会为“Closed Won”阶段,它将创建一个主题为“Follow Up Test Task”的任务。
- 要将任务与机会相关联,请在“WhatId”字段中填写机会 ID。
- 此挑战专门在一次操作中测试 200 条记录。
这是我的代码
trigger ClosedOpportunityTrigger on Opportunity (before insert, before update) {
List<Opportunity> opportunities = [SELECT Id, StageName
FROM Opportunity
WHERE Id
IN :Trigger.New];
List<Task> tasksToUpdate = new List<Task>();
System.debug('##### OPS' + opportunities);
for(Opportunity o : opportunities){
System.debug('##### ' + o.StageName);
if(o.StageName == 'Closed Won'){
Task thisTask = new Task(WhatId = o.Id, Subject = 'Follow Up Test Task');
tasksToUpdate.add(thisTask);
System.debug('##### ' + tasksToUpdate);
}
}
insert tasksToUpdate;
}
当我尝试通过 trailhead 进行验证时,它给出了“挑战尚未完成......这是错误的: 对触发器执行未按预期工作。”错误。
我添加了一些调试打印,似乎表明 soql 语句没有提取任何结果,因此它没有进入 if 语句。对我来说,这似乎是一个非常简单的 soql 语句,但我一定遗漏了一些东西。无论我添加或更新项目,都会发生这种情况。
提前致谢
【问题讨论】:
标签: salesforce apex