我想创建一个验证规则或类似规则,以控制是否已存在具有相同两个查找值的记录,即开始日期必须是前一条记录的结束日期之后的一天。 每个查询共有28个组合,因此A-b,c,d,e,f,g。 B -a,c,d,e,g,g等
与另一个字段之间也存在主从关系,对于上述关系,该字段必须具有相同的值。
我正在努力制定规则。
答案 0 :(得分:0)
这是触发器的作用示意图
trigger YourTrigger on ObjectWithLookups__c(before insert) {
Set<Id> idsForLookupA = new Set<Id>();
Set<Id> idsForLookipB = new Set<Id>();
for (ObjectWithLookups__c record : Trigger.new) {
idsForLookupA.add(record.LookupA);
idsForLookupB.add(record.LookupB);
}
List<ObjectWIthLookups__c> existingRecords = [
SELECT Id, LookupA, LookupB
FROM ObjectWithLookups
WHERE LookupA IN :idsForLookupA
AND LookupB IN :idsForLookupB
];
Set<String> uniquePairs = new Set<String>();
for (ObjectWithLookups__c existingRecord : existingRecords) {
uniquePairs.add(existingRecord.LookupA + '-' + existingRecord.LookupB);
}
for (ObjectWithLookup__c newRecord : Trigger.new) {
if (uniquePairs.contains(newRecord.LookupA + '-' + newRecord.LookupB)) {
newRecord.addError('This combination already exists');
}
}
}
您必须针对您的对象/字段对其进行修改,这也应该为f ollow the trigger/handler pattern