Несколько вещей здесь. Во-первых, если вы определяете этот триггер для запуска перед вставкой, ваши операторы if, чтобы проверить, что это до вставки, являются избыточными.
Во-вторых, Trigger.new представляет собой набор вставленных объектов, в этом случае я принимаю объекты типа Shan__Complaint__c, поэтому вы не сможете магическим образом получить любые другие типы объектов из коллекции, Повторите попытку с помощью Shan__bsnl_customer__c здесь.
Что вам нужно сделать, это сделать запрос для соответствующих объектов Shan__bsnl_customer__c, а затем проверить их.
Что-то вроде этого должно быть достаточно, чтобы вы начали. Я использовал Shan__CustomerId__c для отношений, поскольку вы не указали его в своем вопросе, убедитесь, что вы заменили его на имя реального поля. Я также сохранил логику в конечный, если заявление, как вы выразились, хотя от чтения на ваш вопрос, и сообщение об ошибке, это звучит для меня, как вы хотите, чтобы они были! = Вместо ==
Set<Id> customerIds = new Set<Id>();
for (Shan__Complaint__c complaint : Trigger.new)
{
//get a list of Customer Ids to query
customerIds.add(complaint.Shan__CustomerId__c); // replace field name here
}
//query the customer objects
Map<Id, Shan__bsnl_customer__c> customers = new Map<Id, Shan__bsnl_customer__c>(
[SELECT Id, Shan__cust_contact__c, Shan__cust_email__c
FROM Shan__bsnl_customer__c
WHERE Id IN :customerIds];
for (Shan__Complaint__c complaint : Trigger.new)
{
//get the right customer -- replace field name with correct value
Shan__bsnl_customer__c customer = customers.get(complaint.Shan__CustomerId__c);
//add null check in case no customer found
if (customer == null ||
(complaint.Shan__Phone_Number_del__c == customer.Shan__cust_contact__c
&& complaint.Shan__E_mail_del__c == customer.Shan__cust_email__c))
{
complaint.addError('Customer is not in Database');
}
}
Я сделал предположение, что, если клиент не найден (например, поле отношения поиска клиента пустое), то это также состояние ошибки, похоже, что это было бы основано на вашем вопросе.
Как я уже сказал, я бы также рассмотрел условия в вашем окончательном утверждении if, они, похоже, противоречат вопросу, иначе этот код или что-то подобное должно выполнить то, что вы хотите.
Я думаю, вы также выиграете от дальнейшего чтения на триггерах, в частности, следующее:
Trigger Context Variables
Common Bulk Trigger Idioms
Trigger and Bulk Request Best Practices
я хочу клиент поле поиска должно быть пустым –
Вашего оригинальным вопрос говорит, что вы хотите проверить, не указан ли адрес электронной почты и номер телефона в записи клиента - если вы хотите, чтобы поле поиска клиента было пустым то, конечно, это всегда будет ложным? Извините, но я действительно не понимаю, что вы хотите, читая его с оригинальным вопросом. –
Я хочу проверить детали клиента, такие как адрес электронной почты и номер телефона, если номер телефона и адрес электронной почты совпадают, тогда только клиент может подать заявку на регистрацию! –