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

System.CalloutException: Callout loop not allowed

Потратил пол дня и все в пустую...
Есть песочница, из которой нет возможности вызвать сервис, т.к. он TLS 1.0. Есть DevOrg, который может делать вызов этого метода. Я, не долго думая, сделал прокси сервис.
Оказалось, что так нельзя делать. Вызывать сервис из сервиса нельзя.
Знал бы, за это же время на .Net запилил бы :-(

Потратил пол дня и все в пустую...
Есть песочница, из которой нет возможности вызвать сервис, т.к. он TLS 1.0. Есть DevOrg, который может делать вызов этого метода. Я, не долго думая, сделал прокси сервис.
Оказалось, что так нельзя делать. Вызывать сервис из сервиса нельзя.
Знал бы, за это же время на .Net запилил бы :-(

Andrew Muzychuk
Потратил пол дня и все в пустую...
Есть песочница, из которой нет возможности вызвать сервис, т.к. он TLS 1.0. Есть DevOrg, который может делать вызов этого метода. Я, не долго думая, сделал прокси сервис.
Оказалось, что так нельзя делать. Вызывать сервис из сервиса нельзя.
Знал бы, за это же время на .Net запилил бы :-(

Делай прокси без всякого кода. Должно сработать. Правда работает только с текстовыми данными.

[quote="Andrew Muzychuk"]Потратил пол дня и все в пустую...
Есть песочница, из которой нет возможности вызвать сервис, т.к. он TLS 1.0. Есть DevOrg, который может делать вызов этого метода. Я, не долго думая, сделал прокси сервис.
Оказалось, что так нельзя делать. Вызывать сервис из сервиса нельзя.
Знал бы, за это же время на .Net запилил бы :-([/quote]

Делай прокси без всякого кода. Должно сработать. Правда работает только с текстовыми данными.

С помощью чего? СФ?

С помощью чего? СФ?
[quote="Andrew Muzychuk"]С помощью чего? СФ?[/quote]
Да. https://developer.salesforce.com/docs/atlas.en-us.ajax.meta/ajax/sforce_api_ajax_proxy.htm

Спасибо!
Может и сработает, но так я уже точно делать не буду ибо эот какую-то страничку делать надо. А переделывать текущюю только из-за песочницы - это уже перебор.

Спасибо!
Может и сработает, но так я уже точно делать не буду ибо эот какую-то страничку делать надо. А переделывать текущюю только из-за песочницы - это уже перебор.

Andrew Muzychuk
Спасибо!
Может и сработает, но так я уже точно делать не буду ибо эот какую-то страничку делать надо. А переделывать текущюю только из-за песочницы - это уже перебор.

Никакую страницу делать не нужно. ты просто посылаешь свой калаут с нужными параметрами и на нужный endpoint

[quote="Andrew Muzychuk"]Спасибо!
Может и сработает, но так я уже точно делать не буду ибо эот какую-то страничку делать надо. А переделывать текущюю только из-за песочницы - это уже перебор.[/quote]

Никакую страницу делать не нужно. ты просто посылаешь свой калаут с нужными параметрами и на нужный endpoint

var envelope = ""; //request envelope, empty for this example
sforce.connection.remoteFunction({
url : "http://services.xmethods.net:80/soap",
requestHeaders: {"Content-Type":"text/xml",
"SOAPAction": "\"\""
},
requestData: envelope,
method: "POST",
onSuccess : function(response) {
sforce.debug.log(response);
},
onFailure : function(response) {
alert("Failed" + response)
}
});

Это разве Apex? Как по мне, то это Javascript. Есть возможность Javascript вызвать из Apex?

[code]var envelope = ""; //request envelope, empty for this example
sforce.connection.remoteFunction({
       url : "http://services.xmethods.net:80/soap",
       requestHeaders: {"Content-Type":"text/xml",
              "SOAPAction": "\"\""
          },
       requestData: envelope,
       method: "POST",
       onSuccess : function(response) {
              sforce.debug.log(response);
          },
       onFailure : function(response) {
              alert("Failed" + response)
          }
   });[/code]
Это разве Apex? Как по мне, то это Javascript. Есть возможность Javascript вызвать из Apex?

Andrew Muzychuk
Есть песочница, из которой нет возможности вызвать сервис, т.к. он TLS 1.0.

Интересное ограничение. Это связанно именно с sandbox? На проде такой проблемы не будет? Это что получается что нельзя стучаться к внешним сервисам если они используют устаревший протокол шифрования?

[quote="Andrew Muzychuk"]Есть песочница, из которой нет возможности вызвать сервис, т.к. он TLS 1.0. [/quote]
Интересное ограничение. Это связанно именно с sandbox? На проде такой проблемы не будет? Это что получается что нельзя стучаться к внешним сервисам если они используют устаревший протокол шифрования?
[url=https://help.salesforce.com/HTViewSolution?id=000221207]Salesforce disabling TLS 1.0[/url]

Компания Salesforce планирует начать поэтапное выключение протокола шифрования TLS 1.0 для соответствующих служб Salesforce в июне 2016 года. Выключение TLS 1.0 позволяет исключить возможность его использования для доступа к системе Salesforce при выполнении входящих и исходящих подключений.

Все, теперь понял. Думал что только с SF API будут проблемы. А вон оно как.
Как-то вообще не сильно гуманно по отношению к сторонним сервисам. TLS >1.0 это не требование, а рекомендация насколько я понимаю.

[i]Компания Salesforce планирует начать поэтапное выключение протокола шифрования TLS 1.0 для соответствующих служб Salesforce в июне 2016 года. Выключение TLS 1.0 позволяет исключить возможность его использования для доступа к системе Salesforce при выполнении входящих и [color=red]исходящих[/color] подключений.[/i]

Все, теперь понял. Думал что только с SF API будут проблемы. А вон оно как. 
Как-то вообще не сильно гуманно по отношению к сторонним сервисам. TLS >1.0 это не требование, а рекомендация насколько я понимаю. 

Ну, у меня с этим особых проблем нет. Вот единственный сервис, в котором нет поддержки TLS 1.1. Почему-то один отдел все никак не уйдет от TLS 1.0, хотя, два года сервис крутился без какой-либо аутентификации и когда узнали, сразу затрубили тревогу. А вот TLS 1.1 - это нада время.
Ну и плюс, единственная проблема - тестирование в песочнице.

Ну, у меня с этим особых проблем нет. Вот единственный сервис, в котором нет поддержки TLS 1.1. Почему-то один отдел все никак не уйдет от TLS 1.0, хотя, два года сервис крутился без какой-либо аутентификации и когда узнали, сразу затрубили тревогу. А вот TLS 1.1 - это нада время.
Ну и плюс, единственная проблема - тестирование в песочнице.