拥有我所在公司的公司最近单方面决定salesforce.com和force.com平台是我们的目标.目前,我们是一家C#.NET商店,我们经常在日常工作中使用Visual Studio和Resharper.
我对这个决定并不满意,但是,就像任何优秀的开发者一样,我愿意给它一个机会并研究这项新技术,看看如果我被迫决定从一个过渡的话,会发生什么样的事情. NET到APEX开发人员.到目前为止,我必须承认不会对Force.com平台留下深刻的印象.公平地说,有些事情看起来很不错......但其他事情只是糟透了......只要看看他们关于什么构成良好的 单元测试的想法......幸运的是,这些错误是我可以避免的事实无论salesforce.com的文档背后的人多少,都要编写适当的单元测试....
然而,对于咆哮感到抱歉(我真的需要把它从我的胸口那里拿走),我发现的一件事,我知道我真正想念的是像Resharper这样的好的重构工具.作为一名.NET开发人员,Resharper可以做很多繁重的工作,否则我会犹豫不决.它还使得开发TDD样式变得更加容易,因为只需几次击键就可以轻松创建新的方法和属性.因此,我正在寻找可用于Eclipse和APEX编程语言的任何重构工具.我已经下载并安装了force.com开发者网站推荐的工具,但到目前为止,我看到很少有重构支持的方式.
有没有人知道是否存在与APEX编程语言一起使用的重构工具?
当我尝试将自定义对象放入现有的主角对象时,我收到一条错误消息.
List<Lead> leads =[select Id from Lead where Email =:lead.Email ];
if(leads.size()>0)
{
Lead existing_lead = new Lead(Id = leads[0].id);
social_account.Lead__c = existing_lead.Id; //social_account is a custom object that
//has a child relationship to lead.
//ie lead is a parent of social_accounts.
update existing_lead;
insert social_account; //if there is an existing lead with same same email,
//i'd like to insert new social_account to an exsiting lead.
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
554 System.DmlException:更新失败.第0行的第一个例外,ID为00Q3000000WW3isEAD; 第一个错误:CANNOT_UPDATE_CONVERTED_LEAD,无法引用转换后的引导:[]
Class.ProcessContact.handleInboundEmail:第81行,第9列外部入口点
即使我注释掉'update existing_lead',我也会收到类似的错误消息.
554 System.DmlException:插入失败.第0行的第一个例外; 第一个错误:CANNOT_UPDATE_CONVERTED_LEAD,无法引用转换后的引线:[Lead__c]
Class.ProcessContact.handleInboundEmail:第82行,第9列外部入口点
我将不胜感激任何建议.
问候
我创建了一个自定义的visualforce 页面。在控制器类中,我允许用户创建文件夹。
我希望当用户单击“确定”(自定义按钮)时,新文件夹将作为工作区中的记录发布,但我找不到如何操作。
任何帮助表示赞赏。
upsert如何在Salesforce API中工作?
我相信它会检查它是否存在具有唯一ID的记录.在它可用的情况下,它会更新记录,否则创建记录.
它是否正确?
我收到以下错误
Upsert failed. First exception on row 1; first error: DUPLICATE_EXTERNAL_ID, Asset Tag: more than one record found for external id field: [a11M0000000CwJqIAK, a11M0000000CwJvIAK]: [Asset_Tag__c]
Run Code Online (Sandbox Code Playgroud)
我有一个包含项目的列表,并且没有重复的Asset_Tag值.
system.debug('LstItem Asset_Tag__c'+LstItem );
upsert LstItem Asset_Tag__c;
Run Code Online (Sandbox Code Playgroud)
从调试日志
LstItem Asset_Tag__c(Item_c__c:{Scanned_By__c=005M0000000IlxyIAC, Asset_Tag__c=12149, Status__c=Active, Scan_Location__c=001M0000008GzJXIA0, Last_Scan_Date__c=2011-12-17 06:08:47}, Item_c__c:{Scanned_By__c=005M0000000IlxyIAC, Asset_Tag__c=23157, Status__c=Active, Scan_Location__c=001M0000008GzJXIA0, Last_Scan_Date__c=2011-12-17 08:26:14})
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?
我想在对象上创建一个整数自定义字段.我看到我可以创建一个"数字"的自定义字段,但似乎返回一个十进制类型.大多数情况下这很烦人,因为我计划将该字段用作整数,并且我在代码中使用它时,我必须将其转换为整数.其他任何字段类型似乎都不是很接近 - 唯一似乎拥有数字类型的其他字段类型是Currency.
我已将小数字段后面的数字调整为(3,0) - 小数点前三位数,小数点后面的零数字.它仍然返回小数.
甚至可以创建一个整数?每当我需要它时,它是否被视为"最佳实践"?
我们如何获得该月的第一天和该月的最后一天.我在顶级课上使用它.
我可以通过使用获得今天的日期
date.today()
Run Code Online (Sandbox Code Playgroud)
但是我怎么能得到这个月的第一天和最后一天.
谢谢
我有一个简单的触发器,它从引导对象中提取数据,并在创建或更新引导时将其放入自定义的"财务"对象中.由于某种原因,Trigger.new [i] .Id在触发器中返回NULL,在插入之前触发.
我疯了,因为我看不出为什么Id会为NULL的原因......这是我的代码:
trigger FinanceNew on Lead (before insert) {
Map<String,User> userList = new Map<String,User>{};
// Places each returned user into a map with their sfID as the key
for(User tmp : [SELECT Id,Name,Email,Phone FROM User]){
userList.put(tmp.Id,tmp);
}
for(integer i = 0; i<Trigger.new.size(); i++){
string leadName = null;
if(Trigger.new[i].FirstName != ''){
leadName = Trigger.new[i].FirstName + ' ' + Trigger.new[i].LastName;
}else{
leadName = Trigger.new[i].LastName;
}
User ownerInfo = userList.get(Trigger.new[i].OwnerId);
ID leadId = Trigger.new[i].Id; // THIS IS RETURNING NULL!!
Finance__c financeRecord …Run Code Online (Sandbox Code Playgroud) 我在Contact对象上有一个触发器,当我尝试在此触发器中更新用户记录时,我得到以下异常:
"MIXED_DML_OPERATION,更新非安装对象后,不允许对安装对象进行DML操作(反之亦然):用户,原始对象:联系人"
触发代码:
trigger UpdateContactTrigger on Contact (after update) {
User u = [SELECT Id, IsActive FROM User WHERE IsActive = true];
u.IsActive = false;
update u;
}
Run Code Online (Sandbox Code Playgroud)
从Contact触发器更新用户记录的字段时,如何避免此错误?
我得到了必须在运行时发送请求的端点。后来我想向这个端点发送一个 HTTP post 请求,所以我也必须在运行时创建一个远程站点设置。
有没有办法通过 apex 代码创建远程站点设置?
我正在为之工作的组织在一个名为Cases.cls的类中调用一些代码的情况下触发了一个触发器.我修改了代码,但在尝试部署时,我不断收到错误:挂起或未来的调用.
自2010年以来,我发现了17个排队的未来工作!有一个文本在其旁边有"中止",我能够这样做,但我没有看到任何方法取消其余的.
我尝试通过开发人员控制台检索其中一个作业,并且成功了,但它不允许任何dml语句.
有谁知道如何删除排队的作业,以便我可以部署我的更改?
apex-code ×10
salesforce ×10
api ×1
dml ×1
eclipse ×1
foreign-keys ×1
future ×1
jobs ×1
refactoring ×1
visualforce ×1