Регистрация  |  Вход

Salesforce Url

Всем привет, есть ли способ чтобы узнать все возможные url текущего инстанса?
СФ очень любит разные домены. Url зависит от множества факторов classic/lightning/VF/текущий пакет/site/кастомный домен.
Хочется уметь делать запросы к metadata api из бэкграунд джобы, но sf url на клиенте и в бэкграунде разный.

UPD: Можно просто поменять стабы MetadataService и делать запросы только к тому url, который есть в remote site settings.

Всем привет, есть ли способ чтобы узнать все возможные url текущего инстанса?
СФ очень любит разные домены. Url зависит от множества факторов classic/lightning/VF/текущий пакет/site/кастомный домен.
Хочется уметь делать запросы к metadata api из бэкграунд джобы, но sf url на клиенте и в бэкграунде разный. 

UPD: Можно просто поменять стабы MetadataService и делать запросы только к тому url, который есть в remote site settings.

А зачем обращаться к метадате через "все возможные url текущего инстанса"?
Как вариант можно запрос на метод login в SOAP запрос сделать и он вернет что-то похожее.

'soapUrl': 'https://eu14.salesforce.com/services/Soap/u/39.0/00D24000000JwEn',
'serverUrl': 'https://eu14.salesforce.com/',
'metadataUrl': 'https://eu14.salesforce.com/services/Soap/m/39.0/00D24000000JwEn',

Даже при кастомных доменах к любому оргу можно достучаться по урлу вида https://eu14.salesforce.com/

Думаю что этот базовый url можно вытянуть и без login метода (нет под рукой примеров)

А зачем обращаться к метадате через "все возможные url текущего инстанса"?
Как вариант можно запрос на метод login в SOAP запрос сделать и он вернет что-то похожее.

'soapUrl': 'https://eu14.salesforce.com/services/Soap/u/39.0/00D24000000JwEn',
'serverUrl': 'https://eu14.salesforce.com/',
'metadataUrl': 'https://eu14.salesforce.com/services/Soap/m/39.0/00D24000000JwEn',

Даже при кастомных доменах к любому оргу можно достучаться по урлу вида https://eu14.salesforce.com/

Думаю что этот базовый url можно вытянуть и без login метода (нет под рукой примеров)

Dmitry Shnyrev
А зачем обращаться к метадате через "все возможные url текущего инстанса"?

И правда в этом нет смысла.
Я просто использовал сгенеренный MetadataService, а он всегда пытается слать запросы на разный URL в зависимости от контекста.
Но чтобы сделать запрос к metadata api из apex нужны remote site setting, а для них нужен metadata api и по кругу.

[quote="Dmitry Shnyrev"]А зачем обращаться к метадате через "все возможные url текущего инстанса"? [/quote]
И правда в этом нет смысла.
Я просто использовал сгенеренный MetadataService, а он всегда пытается слать запросы на разный URL в зависимости от контекста.
Но чтобы сделать запрос к metadata api из apex нужны remote site setting, а для них нужен metadata api и по кругу. 

Gres
Dmitry Shnyrev
А зачем обращаться к метадате через "все возможные url текущего инстанса"?

И правда в этом нет смысла.
Я просто использовал сгенеренный MetadataService, а он всегда пытается слать запросы на разный URL в зависимости от контекста.
Но чтобы сделать запрос к metadata api из apex нужны remote site setting, а для них нужен metadata api и по кругу.

Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?

[quote="Gres"][quote="Dmitry Shnyrev"]А зачем обращаться к метадате через "все возможные url текущего инстанса"? [/quote]
И правда в этом нет смысла.
Я просто использовал сгенеренный MetadataService, а он всегда пытается слать запросы на разный URL в зависимости от контекста.
Но чтобы сделать запрос к metadata api из apex нужны remote site setting, а для них нужен metadata api и по кругу.[/quote]

Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?

wilder
Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?

Scheduler/Queueable

[quote="wilder"]Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?[/quote]
Scheduler/Queueable

Gres
wilder
Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?

Scheduler/Queueable

Тогда не должно быть проблем. Через url.getbaseurl().toexternal... Можно получить инстанс и уже от него плясать.

[quote="Gres"][quote="wilder"]Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?[/quote]
Scheduler/Queueable[/quote]

Тогда не должно быть проблем. Через url.getbaseurl().toexternal... Можно получить инстанс и уже от него плясать.