Обнаружить Salesforce Edition и / или возможности от Apex / VisualForce
-
08-10-2019 - |
Вопрос
Из-за класса APEX, как я могу обнаружить издание (т. Е. Группа, профессионал, предприятие, неограниченное). Более конкретно, есть ли API для извлечения возможностей (или его отсутствие) для издания пользователя?
Проблема, которую я пытаюсь решить, это то, что из группы / профессионального издания пользователи не могут получить доступ к пользовательским веб-сервисам в моем приложении, получая ошибку login_oauth_api_disabled. Есть ли способ обнаружить, собирается ли это работать изнутри apex?
Решение
Вы можете использовать следующие SOQL, чтобы определить тип лицензии Организации:
SELECT OrganizationType FROM Organization
Для профессионала это вернется «профессиональное издание». Это подробно описано на Объектная страница организации.
Другие советы
Есть ли какие-либо конкретные возможности, которые вы хотите обнаружить? Нет никакого способа определить издание (и это было бы в основном красная сельдь, если бы вы могли). Многие различия в конечном итоге отражаются в модели данных, и вы можете обнаружить, что используя Опишите особенности.
Если вы хотите проверить от APEX, если ваши веб-сервисы включены / доступны, то вы можете использовать вызывы APEX, чтобы попытаться привести к нему вызов (и FWIW, код ошибки от OAuth, а не из вашей службы APEX)
«APEX включена в неограниченное издание, разработчик для разработчиков и Enterprise Edition».
Дух Как вы собираетесь запустить любой код Apex в группе / профессиональных изданиях? Там нет вершины, страницы VisualForce должны быть очень простыми (нет apex = нет пользовательских контроллеров), нет API WebServices (что также означает не загрузчик данных) ...
Я бы сказал, просто держите свой существующий код и оберните его в блок Try-Catch?