Это известная проблема, URL.getSalesforceBaseUrl()
должна предоставить эту информацию, но это не так. Однако в действительности это имеет очень ограниченное функциональное влияние.
Их домены экземпляра и apex взаимозаменяемы в том смысле, что запрос URL, не принадлежащего одному, перенаправляется на другой.
например, если вы ищете / apex / myPage с cs1.salesforce.com, вы будете перенаправлены на c.cs1 ... и наоборот, запрос / ID из домена apex перенаправит вас на домен экземпляра (если только не выполнить подробное действие) был переопределен)
Если это не поможет вам, есть один обходной путь, хотя и очень уродливый :) создайте пользовательский объект для хранения базового URL и создайте перед триггером вставки / обновления, который установит для поля baseURL значение URL.getSalesforceBaseUrl().toExternalForm()
. Очевидно, триггер - единственное место на платформе, где это будет работать (кроме выполнения анонимного, которое не очень полезно). При настройке приложения вставьте что-нибудь в эту таблицу, а затем используйте SOQL для получения базового URL.