У меня єсть master-detail объект от 'Opportunity'. Как мне автоматически создавать етот рекорд когда Probability филд в 'Opportunity' объекте > 80%. В Workflow Actions нет такой возможности
У меня єсть master-detail объект от 'Opportunity'. Как мне автоматически создавать етот рекорд когда Probability филд в 'Opportunity' объекте > 80%. В Workflow Actions нет такой возможности
Apex Trigger на Opportunity
Отслеживаешь изменение Probability и если оно становится >80% создаешь свой объект.
Apex Trigger на Opportunity Отслеживаешь изменение Probability и если оно становится >80% создаешь свой объект.
Может попробуй новую фишу - Lightning Process Builder
Правда тут ничего не гарантирую. Не пробовал.
Может попробуй новую фишу - [url=https://developer.salesforce.com/page/Lightning_Process_Builder]Lightning Process Builder[/url] Правда тут ничего не гарантирую. Не пробовал.
Ето я зделал. Не знаю теперь как вставить новый объект. От код...
trigger createNewProjectRecord on Opportunity (before insert) {
Opportunity[] opp = trigger.new;
for(Opportunity o: opp){
if(o.Probability>80){
Project__c project = new Project__c();
project.Project__c = o.Name;
project.Name = 'test_name';
insert project;
}
}
}
p.s. Первый день смотрю к salesforce'у поетому не судите строго.
[quote="Dmitry Shnyrev"]Apex Trigger на Opportunity Отслеживаешь изменение Probability и если оно становится >80% создаешь свой объект.[/quote] Ето я зделал. Не знаю теперь как вставить новый объект. От код... trigger createNewProjectRecord on Opportunity (before insert) { Opportunity[] opp = trigger.new; for(Opportunity o: opp){ if(o.Probability>80){ Project__c project = new Project__c(); project.Project__c = o.Name; project.Name = 'test_name'; insert project; } } } p.s. Первый день смотрю к salesforce'у поетому не судите строго.
trigger createNewProjectRecord on Opportunity (before insert) {
Opportunity[] opp = trigger.new;
for(Opportunity o: opp){
if(o.Probability>80){
Project__c project = new Project__c();project.Project__c = o.Name;
project.Name = 'test_name';
insert project;
}
}
}
Только Лучше так:
trigger createNewProjectRecord on Opportunity (before insert, before update) {
List<Project__c > projects= new List<Project__c >();
Opportunity[] opp = trigger.new;
for(Opportunity o: opp){
if(o.Probability>80){
Project__c project = new Project__c();project.Project__c = o.Name;
project.Name = 'test_name';
projects.add(project);
}
}
insert projects;}
[code] trigger createNewProjectRecord on Opportunity (before insert) { Opportunity[] opp = trigger.new; for(Opportunity o: opp){ if(o.Probability>80){ Project__c project = new Project__c(); project.Project__c = o.Name; project.Name = 'test_name'; insert project; } } } [/code] Только Лучше так: [code] trigger createNewProjectRecord on Opportunity (before insert, before update) { List<Project__c > projects= new List<Project__c >(); Opportunity[] opp = trigger.new; for(Opportunity o: opp){ if(o.Probability>80){ Project__c project = new Project__c(); project.Project__c = o.Name; project.Name = 'test_name'; projects.add(project); } } insert projects; } [/code]
Не забываем что надо сделать так, чтобы триггер сработал один раз иначе получите кучу дублей.
Не забываем что надо сделать так, чтобы триггер сработал один раз иначе получите кучу дублей.
Это точно. Можно завести отдельное поле, можно сравнивать старое значение и новое. Куча вариантов короче говоря)
Это точно. Можно завести отдельное поле, можно сравнивать старое значение и новое. Куча вариантов короче говоря)
Спс ребята!!!!
До етого сам дошол. А еще один простой вопрос. У меня есть Opportunity у него есть Account филд. В Account есть кастомый филд Primary_Contact__с - Lookup(Contact). Как мне его достать? o.Account.Primary_contact__c? Но он почему то пустой
Спс ребята!!!! [quote]trigger createNewProjectRecord on Opportunity (before insert, before update) { List<Project__c > projects= new List<Project__c >(); Opportunity[] opp = trigger.new; for(Opportunity o: opp){ if(o.Probability>80){ Project__c project = new Project__c(); project.Project__c = o.Name; project.Name = 'test_name'; projects.add(project); } } insert projects; }[/quote] До етого сам дошол. А еще один простой вопрос. У меня есть Opportunity у него есть Account филд. В Account есть кастомый филд Primary_Contact__с - Lookup(Contact). Как мне его достать? o.Account.Primary_contact__c? Но он почему то пустой
Он пустой потому что в trigger.new из которого твой o
содержатся поля только первого уровня (это такое правило).
Если хочешь поля второго и дальше порядка делай свой запрос для записей из trigger.new
Он пустой потому что в trigger.new из которого твой o содержатся поля только первого уровня (это такое правило). Если хочешь поля второго и дальше порядка делай свой запрос для записей из trigger.new
А можно плз екзампл что вы имеете в виду...
[quote="Dmitry Shnyrev"]Он пустой потому что в trigger.new из которого твой o содержатся поля только первого уровня (это такое правило). Если хочешь поля второго и дальше порядка делай свой запрос для записей из trigger.new[/quote] А можно плз екзампл что вы имеете в виду...
List<Opportunity> opps = [SELECT Id, Account.Primary_contact__c FROM Opportunity WHERE Id IN :Trigger.new]
[code]List<Opportunity> opps = [SELECT Id, Account.Primary_contact__c FROM Opportunity WHERE Id IN :Trigger.new][/code]
И правда всем лень гуглить...
И правда всем лень гуглить...
Симметричный ответ на санкции!
[quote="Gres"]И правда всем лень гуглить...[/quote] Симметричный ответ на санкции!
Надо уже говорить
"И правда всем лень яндексить"
[quote="ilya leshchuk"]Симметричный ответ на санкции![/quote] Надо уже говорить :D "И правда всем лень яндексить" :D