Обновить веб-службу во время выполнения

У меня есть приложение MVC, которое я интегрирую с slaesforce. И он работает нормально, WSDL, предоставленный Salesforce, который используется в / в качестве веб-ссылки в приложении MVC, и успешно получает доступ к данным Salesforce. Теперь я в ситуации, когда мне нужно использовать песочницу Salesforce.

Итак, у меня есть два WSDL, сгенерированных из Salesforce, один для производства, а другой для песочницы. Но нельзя добавить оба в проект MVC одновременно, поскольку оба имеют одинаковые объекты.

Что мне нужно сделать, так это изменить URL-адрес веб-службы или что-то еще при некоторых условиях, чтобы использовать производственный WSDL один раз и тестовый WSDL в другой раз.

Так было бы что-то вроде этого

//The Action used in salesforce site to send submit order email
public string SendSubmitOrderEmail(string opportunityId,bool isSandbox)
{
   if(isSandbox)
   {
      SforceService sf = new SforceService();
      sf.Url = "https://test.salesforce.com/services/Soap/";
   }
   else
   {
      SforceService sf = new SforceService();
      sf.Url = "https://login.salesforce.com/services/Soap/";
   }
}     

ИЛИ могу ли я изменить настройки веб-сервиса в webconfig?

<applicationSettings>
<ItineraryBuilder.Properties.Settings>
  <setting name="ItineraryBuilder_SalesForceService_SforceService"
    serializeAs="String">
    <value>https://login.salesforce.com/services/Soap/c/25.0/0DFd00Wa6</value>
  </setting>
</ItineraryBuilder.Properties.Settings>
</applicationSettings>

Не знаю, как это сделать.

Спасибо за любую помощь.


person Anil D    schedule 29.08.2012    source источник


Ответы (2)


Вы должны установить URL-адрес конечной точки (и другую информацию о конфигурации, такую ​​как имя пользователя, пароль и т. Д.) В файле внешних свойств, а затем ваш код будет обращаться к этому файлу свойств значения ключа, чтобы получить URL-адрес конечной точки и информацию о конфигурации для подключения к salesforce.

url = https: //test.salesforce.com/services/Soap/

[email protected]

пароль = blahxxxx12345sxxx

В идеале у вас должен быть отдельный файл свойств для песочницы / dev (dev.properties) и производства (prod.properties), и ваша система сборки (maven или аналогичная) должна подбирать правильный файл свойств в зависимости от того, где он запущен.

Вам следует избегать жесткого кодирования URL-адресов или определения среды в вашем коде, насколько это возможно. Вышеупомянутый метод должен работать для таких языков, как Java, C ++, Python и т. Д.

Надеюсь, это имеет смысл!

Ануп

person Anup    schedule 29.08.2012
comment
Извините, я не получаю, если я установлю свойства во внешнем файле, как мне обновить URL-адрес веб-ссылки с его помощью? - person Anil D; 29.08.2012
comment
Я предполагаю, что вы используете С #. Этот вопрос-ответ (stackoverflow.com/questions/485659/) может указать вам правильное направление. - person Anup; 29.08.2012

Спасибо всем,

Обновление веб-ссылки во время выполнения работает нормально

SforceService sf = new SforceService();
sf.Url = "test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6"

что я делал неправильно, "sf" не был передан в класс API, который используется при создании соединения.

У меня есть решение в другом вопросе здесь

Еще раз спасибо.

person Anil D    schedule 31.08.2012