多选列表字段的更新在 SalesForce 中不起作用?
Update of multipicklist field not working in SalesForce?
我在 salesforce 中写了以下 class:
global class ChangeImmo implements Schedulable{
// Execute method
global void execute(SchedulableContext SC) {
List<Realty_User__c> rs = [SELECT Buttons__c FROM Realty_User__c WHERE not (Buttons__c INCLUDES ('Terminplaner'))];
for(Realty_User__c r : rs){
r.Buttons__c += ';Terminplaner';
update r;
}
}
}
然后我安排了一次运行。
它适用于我们的测试箱,但不适用于实时版本。我们有 1700 名用户,其中大约 730 名用户没有 "Terminplaner"。有人知道,为什么这不起作用?
编辑:我根据 SalesForce 的 DML 异常指南调整了我的代码,但它仍然无法正常工作:
global class ChangeImmo implements Schedulable {
// Execute method
global void execute(SchedulableContext SC) {
for (List < Realty_User__c > lstRu: [SELECT Buttons__c FROM Realty_User__c WHERE not(Buttons__c INCLUDES('Terminplaner'))]) {
for (Realty_User__c r : lstRu) {
r.Buttons__c += ';Terminplaner';
}
update lstRu;
}
}
}
编辑 2:好的,我现在找到了调试日志,错误显示:
17:00:14.574 (10574150113)|FATAL_ERROR|System.ListException:列表中的重复 ID:003b000000ZAhDgAAL
global class ChangeImmo implements Schedulable{
// 执行方法
global void execute(SchedulableContext SC) {
List<Realty_User__c> rs = [SELECT Buttons__c FROM Realty_User__c WHERE not (Buttons__c INCLUDES ('Terminplaner'))];
for(Realty_User__c r : rs){
**r.Buttons__c += ';Terminplaner';**
update r;
}
}
}
您似乎没有更新值。
例如:r.Buttons__c += 'value1;value2;Terminplaner';
update r;
003 - 它是联系人对象的前缀。在您更新 Realty_User__c 对象后,您的产品中似乎有一些触发器可以处理联系人。
我在 salesforce 中写了以下 class:
global class ChangeImmo implements Schedulable{
// Execute method
global void execute(SchedulableContext SC) {
List<Realty_User__c> rs = [SELECT Buttons__c FROM Realty_User__c WHERE not (Buttons__c INCLUDES ('Terminplaner'))];
for(Realty_User__c r : rs){
r.Buttons__c += ';Terminplaner';
update r;
}
}
}
然后我安排了一次运行。
它适用于我们的测试箱,但不适用于实时版本。我们有 1700 名用户,其中大约 730 名用户没有 "Terminplaner"。有人知道,为什么这不起作用?
编辑:我根据 SalesForce 的 DML 异常指南调整了我的代码,但它仍然无法正常工作:
global class ChangeImmo implements Schedulable {
// Execute method
global void execute(SchedulableContext SC) {
for (List < Realty_User__c > lstRu: [SELECT Buttons__c FROM Realty_User__c WHERE not(Buttons__c INCLUDES('Terminplaner'))]) {
for (Realty_User__c r : lstRu) {
r.Buttons__c += ';Terminplaner';
}
update lstRu;
}
}
}
编辑 2:好的,我现在找到了调试日志,错误显示:
17:00:14.574 (10574150113)|FATAL_ERROR|System.ListException:列表中的重复 ID:003b000000ZAhDgAAL
global class ChangeImmo implements Schedulable{
// 执行方法
global void execute(SchedulableContext SC) {
List<Realty_User__c> rs = [SELECT Buttons__c FROM Realty_User__c WHERE not (Buttons__c INCLUDES ('Terminplaner'))];
for(Realty_User__c r : rs){
**r.Buttons__c += ';Terminplaner';**
update r;
}
}
}
您似乎没有更新值。
例如:r.Buttons__c += 'value1;value2;Terminplaner';
update r;
003 - 它是联系人对象的前缀。在您更新 Realty_User__c 对象后,您的产品中似乎有一些触发器可以处理联系人。