Apex计划程序Salesforce,执行错误

Apex计划程序Salesforce,执行错误,salesforce,apex-code,Salesforce,Apex Code,我对apex调度器有一个大问题。 当我尝试执行调度程序时,总是收到以下错误消息: “全局类型必须包含在全局类中” 这是代码示例: 全局类updateData实现可调度的{global void execute(SchedulableContext SC){DataContact dContact=new DataContact();dContact.UpdateContact();}}} 谢谢 Jay看起来您正试图在开发人员控制台中执行此代码。开发人员控制台实际上不支持创建全局类(这意味着您无法

我对apex调度器有一个大问题。 当我尝试执行调度程序时,总是收到以下错误消息: “全局类型必须包含在全局类中”

这是代码示例:
全局类updateData实现可调度的{global void execute(SchedulableContext SC){DataContact dContact=new DataContact();dContact.UpdateContact();}}}

谢谢


Jay

看起来您正试图在开发人员控制台中执行此代码。开发人员控制台实际上不支持创建全局类(这意味着您无法在其内部实现可调度接口)。如果您只是尝试匿名调用
UpdateContact
,则只需在开发人员控制台中键入:

DataContact dc = new DataContact();
dc.updateContact();

如果您试图创建一个可调度对象来调度对DataContact的调用,那么您应该使用您发布的代码创建一个Apex类,然后使用Apex类页面上的“schedule Apex”按钮进行调度。

看起来您正试图在开发人员控制台内执行此代码。开发人员控制台实际上不支持创建全局类(这意味着您无法在其内部实现可调度接口)。如果您只是尝试匿名调用
UpdateContact
,则只需在开发人员控制台中键入:

DataContact dc = new DataContact();
dc.updateContact();

如果您试图创建一个可调度对象来调度对DataContact的调用,那么您应该使用您发布的代码创建一个Apex类,然后使用Apex类页面上的“schedule Apex”按钮来调度它。

实际上我使用Soql Explorer来执行我的Apex类。我在salesforce中创建了scheduler apex类(updateData),也是DataContact类。这个DataContact类只有一个updateContact()方法,它只将新联系人插入我的联系人列表。谢谢你的答复。。有什么想法吗?@jaysoql浏览器和开发者控制台一样,是“匿名Apex”,它不允许全局类。他们有着相同的限制。如果您希望安排UpdateData类,您可以使用“schedule Apex”按钮通过UI来完成,或者,如果您有复杂的计时要求,可以从anonymous Apex调用
System.schedule
,如下所述:。我还通过点击Apex类中的“schedule Apex”按钮通过UI来运行调度器,但没有产生任何结果。是否确实需要任何设置来使调度器工作?在调度器中设置某些内容将导致它定期按计划运行。您可以通过进入设置->监视->计划作业来确认计划运行的内容。如果您的项目在列表中,它将在给定的时间段运行。如果您只想调用
updateContact()
方法,可以通过在Soql资源管理器的Apex部分键入我答案中的代码来实现。谢谢。。我现在成功地运行了我的调度程序。实际上,我使用了Soql资源管理器来执行我的apex类。我在salesforce中创建了scheduler apex类(updateData),也是DataContact类。这个DataContact类只有一个updateContact()方法,它只将新联系人插入我的联系人列表。谢谢你的答复。。有什么想法吗?@jaysoql浏览器和开发者控制台一样,是“匿名Apex”,它不允许全局类。他们有着相同的限制。如果您希望安排UpdateData类,您可以使用“schedule Apex”按钮通过UI来完成,或者,如果您有复杂的计时要求,可以从anonymous Apex调用
System.schedule
,如下所述:。我还通过点击Apex类中的“schedule Apex”按钮通过UI来运行调度器,但没有产生任何结果。是否确实需要任何设置来使调度器工作?在调度器中设置某些内容将导致它定期按计划运行。您可以通过进入设置->监视->计划作业来确认计划运行的内容。如果您的项目在列表中,它将在给定的时间段运行。如果您只想调用
updateContact()
方法,可以通过在Soql资源管理器的Apex部分键入我答案中的代码来实现。谢谢。。我现在已成功运行我的计划程序。