Изменить конечную точку Salesforce wsdl на рабочую

Я немного поработал над интеграцией с salesforce.com, и все в порядке в тестах, на которых мы тестировали различные системы Salesforce, изменяя наши учетные данные для входа в API. Теперь пришло время запуска, я обнаружил, что конечная точка службы, которая хранится в WSDL, должна быть обновлена. Единственный способ, который я вижу, чтобы изменить это, - это полностью заменить wsdl «dev/test» на «живой» wsdl, перестроить и повторно развернуть.

Должен быть более простой способ переключения между dev/test и live wsdl или конечными точками для отдела продаж. Как это должно быть сделано?


person Craig    schedule 25.06.2013    source источник
comment
Это может быть полезно: stackoverflow.com/a/10214366/361599   -  person JCD    schedule 25.06.2013


Ответы (1)


Файл конфигурации можно использовать для переопределения URL-адреса веб-службы Salesforce, извлеченного из WSDL.

В противном случае найдите свойство URL в сгенерированном классе веб-ссылок. Я думаю, вы также можете определить его в конструкторе.

Если вы используете Enterprise WSDL и существуют различия в схеме между двумя организациями, вам потребуется обновить определение.

person Daniel Ballinger    schedule 26.06.2013
comment
Я думаю, мне нужно сохранить обе ссылки, но как лучше всего переключаться между ними в коде? У меня есть частный член типа SforceService, который я использую для своих операций, но теперь он должен быть другого типа в зависимости от среды, в которой он работает. Самым элегантным способом было бы использование директив препроцессора #if !DEBUG для изменения псевдонима пространства имен, но мне нужно запустить код выпуска на UAT, поэтому я не могу использовать этот метод. - person Craig; 26.06.2013
comment
@Craig Вы импортировали два разных Enterprise WSDL в один и тот же проект? - person Daniel Ballinger; 26.06.2013
comment
да. В основном у меня есть ссылка на sforce (живая) и ссылка на sforce.sandbox (dev/test), и я хочу найти лучший способ переключаться между ними без необходимости кодировать все дважды. - person Craig; 26.06.2013
comment
Вместо использования символа условной компиляции DEBUG определите свои собственные символы и настройте различные конфигурации сборки для переключения между ними. Конфигурации сборки монстров Франкенштейна - person Daniel Ballinger; 27.06.2013
comment
Я бы предпочел иметь что-то, что я мог бы проверить, например, настройку web.config, и не полагаться на правильную конфигурацию сборки. - person Craig; 27.06.2013
comment
Возможно, вам лучше использовать партнерский API. Он будет обрабатывать как организации, так и отличия схемы от одного WSDL. Вам нужно будет закодировать различия, но это не так уж сложно. - person Daniel Ballinger; 27.06.2013
comment
Вы не можете просто поменять URL-адреса, с помощью Salesforce он хочет, чтобы вы сначала вошли в систему, что возвращает объект, содержащий идентификатор сеанса и конечную точку URL-адреса. - person The Muffin Man; 12.07.2014
comment
@TheMuffinMan, если одна организация является песочницей, а другая — рабочей, вам все равно нужно переключить URL-адрес между test.salesforce.com и login.salesforce.com. Затем переключитесь на конечную точку URL-адреса из вызова входа в систему. - person Daniel Ballinger; 12.07.2014