从Apex/VisualForce检测Salesforce版本和/或功能

从Apex/VisualForce检测Salesforce版本和/或功能,salesforce,apex-code,Salesforce,Apex Code,在Apex类中,如何检测版本(即,组、专业、企业、无限)。更具体地说,是否有API来检索用户版本的功能(或缺少功能) 我试图解决的问题是,在Group/Professional版本中,用户无法访问我的应用程序中的自定义Web服务,并收到错误登录\u OAUTH\u API\u DISABLED。有没有一种方法可以从Apex内部检测这是否有效?您是否希望发现任何特定的功能?没有办法确定版本(如果可以的话,这将是一个很大的麻烦)。许多差异最终会反映在数据模型中,您可以发现使用 如果您想从apex检查

在Apex类中,如何检测版本(即,组、专业、企业、无限)。更具体地说,是否有API来检索用户版本的功能(或缺少功能)


我试图解决的问题是,在Group/Professional版本中,用户无法访问我的应用程序中的自定义Web服务,并收到错误登录\u OAUTH\u API\u DISABLED。有没有一种方法可以从Apex内部检测这是否有效?

您是否希望发现任何特定的功能?没有办法确定版本(如果可以的话,这将是一个很大的麻烦)。许多差异最终会反映在数据模型中,您可以发现使用

如果您想从apex检查您的web服务是否已启用/可用,则可以使用apex Callout尝试并调用它(和FWIW,错误代码来自OAuth,而不是apex web服务)

嗯。您将如何在Group/Professional版本中运行任何Apex代码?没有Apex,Visualforce页面必须非常简单(没有Apex=没有自定义控制器),没有WebServicesAPI(这也意味着没有数据加载器)


我认为只需保留现有代码并将其包装在try-catch块中?

您可以使用以下SOQL来确定组织的许可证类型:

SELECT OrganizationType FROM Organization

对于Professional,它将返回“Professional Edition”。这在上有详细说明。

谢谢superfell,我已经用我正在尝试检测的特定功能更新了我的问题。谢谢你更新的答案。我想这个问题没有简单的解决办法,这在某种程度上证实了我已经知道的;-)无论如何,谢谢你提出你的想法!通过安全审查后,您可以将托管应用部署到Group/Professional。