Я борюсь с этой ситуацией. У меня есть стандартный объект в SFDC (возможность), в котором есть настраиваемое поле поиска, указывающее на объект пользователя, что я пытаюсь сделать, это заполнить это поле именем пользователя, который создает настраиваемый объект, доступный в макете возможной сделки...
т. е. Новый контрольный список GOP --- Затем выберите тип контрольного списка --- а затем заполните все необходимые поля и нажмите «Сохранить», это указывает на представление «Возможность». Для начала, это что-то выполнимое? я знаю, что поля поиска могут быть сложными. и мой второй вопрос: как лучше всего сделать это программно (триггер) или с использованием функций рабочего процесса и обновления полей?
Спасибо !!
trigger TR_OrderChecklist on Order_Checklist__c (before insert) {
//----------------------------------------------------------------------------------
// Function 1: Update COS Operations Attribute in Opportunity
//----------------------------------------------------------------------------------
for(Order_Checklist__c o : trigger.new){
if(o.Opportunity__r.CARE_Operations__c == null) {
o.Opportunity__r.CARE_Operations__c = UserInfo.getUserId();
}
}
}
Вот что они придумали. В стандартном объекте возможностей у нас есть поле поиска, привязанное к пользователю.. CARE_Operations__c.. Теперь триггер должен делать следующее..
1.- При создании нового контрольного списка GOP, если пользователь заполнит новое настраиваемое поле поиска в объекте GOP с именем COSOperations_c, сохраните это имя, 2.- Если пользователь не заполнил COSOperations_c поле, но поле на уровне Opp CARE_Operations__c заполнено, используйте это имя. 3.- Если ни CARE_Operations_c, ни COSOperations_c не заполнены (пользовательский ввод), то COSOperations__c будет человеком, который только что создал объект GOP.
Это то, что у меня есть до сих пор..
trigger TR_OrderChecklist on Order_Checklist__c (before insert) {
List<Opportunity> COS_Op = new List<Opportunity>();
COS_Op = [select CARE_Operations__c from Opportunity where id in (select Opportunity__c from Order_Checklist__c where COSOperations__c != null)];
for(Order_Checklist__c OC : trigger.new) {
if(OC.COSOperations__c != null) {
break;}
if(COS_Op != null){
OC.COSOperations__c = OC.Opportunity__r.CARE_Operations__c;}
if(OC.COSOperations__c == null){
OC.COSOperations__c = UserInfo.getUserId();}
}
}
Моя проблема во втором операторе if.. остальные 2 условия работают правильно..! Любые идеи ? Спасибо !!!