如何创建引用两个查找的验证规则
How to create a validation rule referencing two lookups
我想创建一个验证规则或类似规则来控制是否已经存在具有相同两个查找值的记录,开始日期必须是前一条记录结束日期之后的那一天。
每个查找共有 28 种组合,因此 A - b、c、d、e、f、g。 B -a,c,d,e,g,g 等
还有一个与另一个字段的主从关系,该关系必须与上述关系具有相同的值。
我正在努力想出规则。
这里是您的触发器将执行的操作的草图
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');
}
}
}
你必须为你的 objects/fields 修改它,这也应该 follow the trigger/handler pattern
我想创建一个验证规则或类似规则来控制是否已经存在具有相同两个查找值的记录,开始日期必须是前一条记录结束日期之后的那一天。 每个查找共有 28 种组合,因此 A - b、c、d、e、f、g。 B -a,c,d,e,g,g 等
还有一个与另一个字段的主从关系,该关系必须与上述关系具有相同的值。
我正在努力想出规则。
这里是您的触发器将执行的操作的草图
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');
}
}
}
你必须为你的 objects/fields 修改它,这也应该 follow the trigger/handler pattern