随笔分类 -  Apex

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