Как создать правило проверки, ссылающееся на два поиска - PullRequest
0 голосов
/ 08 мая 2019

Я хотел бы создать правило проверки или подобное, которое контролирует, если запись уже существует с теми же двумя значениями поиска, что дата начала должна быть днем ​​после даты окончания предыдущей записи.Каждый поиск имеет в общей сложности 28 комбинаций, поэтому A - b, c, d, e, f, g.B -a, c, d, e, g, g и т. Д.

Существует также отношение мастер-деталь с другим полем, которое должно быть таким же значением для вышеуказанного отношения.

IЯ изо всех сил пытаюсь придумать правило.

1 Ответ

0 голосов
/ 08 мая 2019

Вот эскиз того, что будет делать ваш триггер

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 разрешить шаблон триггера / обработчика

...