У меня есть два пользовательских объекта 1. Клиент 2.Complaint, и они взаимозависимы друг с другом.Apex Trigger-Salesforce перед вставкой
У меня проблема, так как триггер ниже не работает. Мое требование так же, как прежде, чем вставлять жалобу, сначала он проверяет идентификатор электронной почты и номер контакта, а затем будет регистрироваться жалоба.
trigger Demo on Complaint__c (before insert) {
Set<Id> customerIds = new Set<Id>();
for (Shan__Complaint__c complaint : Trigger.new) {
customerIds.add(complaint.Shan__customer__c);
}
Map<String, Shan__cust__c> customers =
new Map<String, Shan__cust__c>([SELECT Shan__cust_contact__c, Shan__cust_email__c
FROM Shan__cust__c WHERE id IN: customerIds]);
for (Shan__Complaint__c complaint : Trigger.new) {
Shan__cust__c customer = customers.get(complaint.Shan__customer__c);
if (customer == null || complaint.Shan__E_mail__c == customer.Shan__cust_email__c
&& complaint.Shan__Phone_Number__c == customer.Shan__cust_contact__c) {
complaint.adderror('Your phone and Email does not exists in out database ');
}
}
}
это строка также неверна. 'Map customers = new Map ([SELECT Shan__cust_contact__c, Shan__cust_email__c FROM Shan__cust__c WHERE id IN: customerIds]);' создание такой карты будет отображать Shan_Cust__c.Id на Shan_Cust__c –
willard