课程章节介绍
好,咱们今天讲个挺实用的小功能——在Apex里怎么拿到已经跑完的报告实例,还有这些实例对应的结果。不少同学在做定时任务或者监控类需求的时候,经常会碰到这个场景,所以这块儿咱们好好捋一捋。
你看,Slide上先写了,获取实例列表用的是 `ReportManager.getReportHandler` 方法。你就这么记:`ReportManager` 这个类,专门管报告相关的操作,调用它的 `getReportHandler` 方法,就会返回一个实例列表。这个列表自动帮你按报告运行的日期和时间排好序,最新的在前面。是不是很贴心?
那这些报告的结果能存多久呢?Slide上说了,结果是连续存储24小时。也就是说,从报告跑完那一刻算起,一天之内你都可以拿到它当时跑出来的数据。超过24小时,系统就自动清掉了,这一点要留意,别存着过期的ID去查。
在你拿到实例列表之后,能不能看到每个实例的结果呢?这取决于你的用户访问级别。你只能看到你有权查看的报告实例,系统会按权限控制的,很安全。
那如果你已经知道某个具体实例的ID,想直接拿到它的结果,怎么办?很简单——用 `ReportManager.getReportInstance`,把实例ID传进去。这个方法会返回一个实例对象,然后在这个对象上再调用 `getReportReports`,就能得到这个实例的结果了。你把它理解成两步:先根据ID拿到实例,再从实例里把结果掏出来。
这样讲是不是就清晰多了?其实就是记住几个方法:拿列表用 `getReportHandler`,拿单个实例用 `getReportInstance`,最后实例点上 `getReportReports` 就有结果了。把握好24小时的存储窗口和权限限制,在实际开发中就能用得稳稳当当。
关键词
Apex
Salesforce
Developer Guide