Apex Scheduler Salesforce,执行错误
Posted
技术标签:
【中文标题】Apex Scheduler Salesforce,执行错误【英文标题】:Apex Scheduler Salesforce, execution error 【发布时间】:2012-06-14 07:32:11 【问题描述】:我对 apex 调度程序有一个大问题。 当我尝试执行调度程序时,我总是收到此错误消息: "全局类型必须包含在全局类中"
这是代码示例:global class updateData implements Schedulable global void execute (SchedulableContext SC) DataContact dContact = new DataContact(); dContact.UpdateContact();
谢谢!
杰
【问题讨论】:
【参考方案1】:您似乎正试图在开发者控制台中执行此代码。 Developer Console 并不真正支持创建全局类(这意味着您无法在其中实现 Schedulable 接口)。如果您只是想匿名呼叫UpdateContact
,那么您只需在开发者控制台中输入:
DataContact dc = new DataContact();
dc.updateContact();
如果您尝试创建一个可调度对象来调度对 DataContact 的调用,那么您应该使用您发布的代码创建一个 Apex 类,然后使用 Apex 类页面上的“调度 Apex”按钮来调度它。
【讨论】:
实际上我使用 Soql Explorer 来执行我的 apex 类。我在salesforce 中创建了调度程序顶点类(updateData),也是DataContact 类。这个 DataContact 类只有一个方法 updateContact() ,它只将新联系人插入我的联系人列表。感谢您的回复.. 有什么想法吗? @Jay Soql Explorer 与开发者控制台一样,是“匿名 Apex”,它不允许全局类。它们共享所有相同的限制。如果您希望安排 UpdateData 类,您可以通过 UI 中的“Schedule Apex”按钮执行此操作,或者,如果您有复杂的时间要求,请从匿名 apex 调用System.schedule
,详见此处:salesforce.com/us/developer/docs/apexcode/Content/…。
我还通过单击 Apex 类中的“调度 Apex”按钮通过 UI 运行调度程序,但没有产生任何结果。是否需要任何设置才能使调度程序正常工作?
在调度程序中设置一些东西会导致它按计划定期运行。您可以通过转到设置 -> 监控 -> 计划作业来确认已计划运行某些内容。如果您的项目在列表中,它将在给定的时间段运行。如果您只想调用updateContact()
方法,可以通过将我的答案中的代码输入到 Soql Explorer 的 Apex 部分来实现。
感谢 Triangle Man.. 我现在可以成功运行我的调度程序了。以上是关于Apex Scheduler Salesforce,执行错误的主要内容,如果未能解决你的问题,请参考以下文章
salesforce零基础学习(七十四)apex:actionRegion以及apex:actionSupport浅谈
我们可以在 Salesforce(apex) 中动态投射 SObject 吗?