随笔分类 - Apex
摘要:今日发现很久以前的一段代码发生报错,疑惑不已。 最近并没有修改这个Class, 怎么会突然报错呢~ 报错代码大致如下: List<Approval_Process__c> processes = [SELECT Id, Status__c FROM Approval_Process__c WHERE
阅读全文
摘要:震惊!明明是一个数字,为什么却得到了这样一个报错信息: System.TypeException: Invalid integer: 2185340704 类似代码如下: String test = '2185340704'; Integer testIInt = Integer.valueOf(t
阅读全文
摘要:我们有时候根据需求,需要编写动态的SOQl语句,这个时候我们就需要用到Database.Query, Database.getQueryLocator以及Database.countQuery 1. Database.query 运行时它将作为SOQL查询执行并返回单个sObject或sObject
阅读全文
摘要:Map<String, String> testMap; System.debug(testMap.isEmpty()); List<String> testList; System.debug(testMap.isEmpty()); 此时会报错System.NullPointerException
阅读全文
摘要:需求: 在保存一组数据之后,希望可以收集报错数据的Id以及报错信息。 初始代码: String errors = '';List<Database.SaveResult> results = Database.update(updatedAccounts, false);checkUpdatedRe
阅读全文
摘要:在使用split方法去分割字符串时一定要注意 如果是通过某些特殊字符去分割,可能会出现问题 例如: String test = 'ab.cd'; List<String> tests = test.split('.'); 此时得到的tests是一个空的List 只有这样写才可以正确得到结果: Str
阅读全文
摘要:在代码中执行update操作时,不能为master-detail field赋值。 也就是说不能更新记录的master-detail field. 如果需求需要做此操作,可以先clone record, 然后修改它的master-detail字段值,然后insert 之后可以根据需求选择是否删除当前
阅读全文
摘要:当构建queries, list views和reports时,最好创建selective的filter conditions. 只有在WHERE语句中仅有以下indexed fields时,才属于selective query: Indexed Standard Fields:1. Id2. Na
阅读全文
摘要:如果在org中启用了“State and Country Picklists”, 则无法在Trigger中获得Country或State的更新(适用于BillingCountry, BillingSate, MailingCountry, MailingState等) 例如,如下代码无法正常工作:
阅读全文
摘要:safe navigation operator (?.)可将试图对null值进行运算的表达式短路,并返回null而不是引发NullPointerException。 基本语法:a?.b // Evaluates to: a == null ? null : a.b如果a为null, 则返回a; 否
阅读全文
摘要:Query locators某些情况下是由system生成的,如果在过期或发布后使用query locators,则可能会导致API integrations或Apex code抛出错误。 Query locators代表查询时服务器端的一个游标。通常,当查询中请求的并非所有记录都适合返回的数据集时
阅读全文
摘要:1. Trigger中不要使用batch去更新数据 2. Before Trigger中只对进入trigger的数据进行字段的更改,不要使用DML操作 3. After Trigger中对除本对象外的数据进行DML操作 4. 写Trigger一定要谨慎小心,避免数据循环进入trigger的情况发生
阅读全文
摘要:在需求中,客户希望可以将从salesforce中发送出去的email存储备份在相关数据下的Activity History中。 Salesforce提供了方法可以实现这一需求: mail.setSaveAsActivity(true) setSaveAsActivity()是一个可选方法,它的默认值
阅读全文
摘要:今天发现的一个奇怪问题: Decimal test = 16 / 10; System.debug(test); 得到的结果是1,而不是期望的1.6 Decimal test = 16.0 / 10; System.debug(test); 这样得到的结果是1.6 Decimal test = (D
阅读全文
摘要:StandardSetController class包含一些方法,这些方法可以方便的通过记录列表进行分页,并可以对所选记录进行批量更新。但是在Controller中使用getRecords()方法只能得到当前页面的数据,而不能获得查询出来的全部数据。 这时我们可以将page size临时设置为最大
阅读全文
摘要:今天帮忙客户查看一个scheduled job的问题。 scheduled job的大致功能是每天定时通过batch去删除某个对象前一天的数据。 但是客户发现虽然每天batch都有执行,但是查询出来的数据却始终是0。 经过检查代码发现,代码中使用System.today()赋值给了一个final类型
阅读全文
摘要:需求中,需要将VF页面的内容转换成Blob格式使用,即会用到getContent()或者getContentAsPDF()方法 首先要将VF页面进行实例化: PageReference invoicePage = new PageReference('/apex/KayakInvoicePDF');
阅读全文
摘要:在项目中处理一些旧代码时发现,一些非测试类中包含了该类的测试代码。 例如: public class InvoiceHelper implements { public InvoiceHelper() { } @isTest static void testInvoiceHelper() { } }
阅读全文
摘要:在发送邮件时,如果需要使用salesforce org中的模版,则可使用setTemplateId(templateId)方法进行设置。 如果该模版中需要进行字段的合并,则需要在代码中使用setWhatId(whatId)设置需要进行合并的数据的Id。 代码中可以使用setTargetObjectI
阅读全文

浙公网安备 33010602011771号