Всем привет, есть ли способ чтобы узнать все возможные 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 метода (нет под рукой примеров)
И правда в этом нет смысла.
Я просто использовал сгенеренный 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 и по кругу.
Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?
[quote="Gres"][quote="Dmitry Shnyrev"]А зачем обращаться к метадате через "все возможные url текущего инстанса"? [/quote] И правда в этом нет смысла. Я просто использовал сгенеренный MetadataService, а он всегда пытается слать запросы на разный URL в зависимости от контекста. Но чтобы сделать запрос к metadata api из apex нужны remote site setting, а для них нужен metadata api и по кругу.[/quote] Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?
Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?
Scheduler/Queueable
[quote="wilder"]Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?[/quote] Scheduler/Queueable
Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?
Scheduler/Queueable
Тогда не должно быть проблем. Через url.getbaseurl().toexternal... Можно получить инстанс и уже от него плясать.
[quote="Gres"][quote="wilder"]Ты как обращаешься к метадате ? Из асинхронного процесса или нет ?[/quote] Scheduler/Queueable[/quote] Тогда не должно быть проблем. Через url.getbaseurl().toexternal... Можно получить инстанс и уже от него плясать.