【发布时间】:2012-08-29 17:41:35
【问题描述】:
我在这种情况下苦苦挣扎。我在 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 清单时,如果用户在名为 COSOperations_c 的 GOP 对象中填充新的自定义查找字段,则保留该名称, 2.- 如果用户没有填充 COSOOperations_c 字段,但填充了 Opp 级别 CARE_Operations__c 中的字段,则使用该名称。 3.- 如果 CARE_Operations_c 或 COSOOperations_c 均未填充(用户输入),则 COSOOperations__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 个条件正常工作.. !有任何想法吗 ?谢谢!!!
【问题讨论】:
-
@Twanley 嗨,Twanley。现在要求不同了..请再次检查我的问题,感谢您的所有反馈..!
标签: triggers salesforce apex-code lookup