![]() |
#1 |
Участник
|
![]()
Господа, выручайте.
И CRM-ом и Web-сервисами занимаюсь ровно неделю Надо разобраться как эти веб сервисы работают ![]() При попытке использовать CrmService напрямую возвращает ошибку 401 Скармливаю post-ом вот такой XML <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <soap:Header> <CrmAuthenticationToken xmlns="http://schemas.microsoft.com/crm/2007/WebServices"> <AuthenticationType xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes"> 0 </AuthenticationType> <OrganizationName xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes"> AdventureWorksCycle </OrganizationName> <CallerId xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes"> 00000000-0000-0000-0000-000000000000 </CallerId> </CrmAuthenticationToken> </soap:Header> <soap:Body> <Create xmlns='http://schemas.microsoft.com/crm/2007/WebServices'> <entity xsi:type='lead'> <subject>Интерес с сайта: Тест сервиса</subject> <companyname>Тестовая компания</companyname> <lastname>Иванов</lastname> <emailaddress1>test@mail.ru</emailaddress1> <telephone1>6782637</telephone1> <jobtitle>Директор</jobtitle> <description>Интерес для тестовых целей, не обращать внимания</description> </entity> </Create> </soap:Body> </soap:Envelope> создал его по документации ответ - 401 пускаю через curl с использованием NTLM аутентификации пробовал разобраться через CrmDiscoveryService Загнал ему такой XML <?xml version="1.0" encoding="iso-8859-1"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Execute xmlns="http://schemas.microsoft.com/crm/2007/CrmDiscoveryService"> <Request> <RetrieveCrmTicketRequest /> </Request> </Execute> </soap:Body> </soap:Envelope> что находится в теге реквест без разницы на все ответ один <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Server was unable to process request.</faultstring><detail><error> <code>0x80040216</code> <description>An unexpected error occurred.</description> <type>Platform</type> </error></detail></soap:Fault></soap:Body></soap:Envelope> попытался на сервере трейс включить как тут описано http://support.microsoft.com/kb/907490/en ноль реакции никаких файлов в директории не создается в общем тыкаюсь как слепой котенок, направьте хоть куда копать? в моей конкторе спецов по этому делу нет (я сам в веб технологиях только в теории что то где то а так по базам данных всю жизнь, а тут подписали меня с этим заниматься ![]() |
|
![]() |
#2 |
Участник
|
А CRM-то какой? 4.0 или 2011?
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Moderator
|
Приведите код, пожалуйста.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#5 |
Участник
|
Кода как такового нет
через curl скармливаю XML сервисе вот такой командой c:\curl>curl --ntlm --user admin:123 --header "Content-Type: text/xml" --data-as cii @passorg.xml -v http://192.168.0.2/MSCRMServices/200...scoveryService .asmx --output test.txt passorg.xml имеет следующее содержимое <?xml version="1.0" encoding="iso-8859-1"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Execute xmlns="http://schemas.microsoft.com/crm/2007/CrmDiscoveryService"> <Request> <RetrieveCrmTicketRequest /> </Request> </Execute> </soap:Body> </soap:Envelope> |
|
![]() |
#6 |
Moderator
|
Затейливо! Какую задачу вам предстоит решать и какими средствами? Интересуют язык и платформа. Дело в том, что я бы рекомендовал вам тестировать код и использовать более высокоуровневые реализации работы с веб сервисами.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#7 |
Участник
|
Цитата:
есть веб форма, с нее заполняются данные, на основании этих данных создается новый интерес моя задача родить XML запрос, который это сделает, затем уже его передадут разработчикам, которые это все водрузят на сайт я вообще не разработчик есичо (ну вообщето специализируюсь на БД и общей архитектуре, т.е. до сего момента знаний "веб сервисы кормятся XML-ями и работают в гетерогенных средах" мне было за глаза, а тут такая задача) с наскоку скормить Create crmservice не получилось я так понял для начала надо получить токен, который надо пихать в хидер для получения этого токена надо вызвать <RetrieveCrmTicketRequest /> при попытке вызвать получаем вот такой результат ![]() |
|
![]() |
#8 |
Moderator
|
Вообще этот токен нужен в основном для получение тикета при работе с IFD и Live внедрениями. В вашем случае - NTLM авторизация он не нужен. Попробуйте воспользоваться решением http://www.stunnware.com/crm2/topic....=jswebservice2. Для этого нужно знать C#. Суть решения в том, что вы строите нужные вам запросы при помощи объектной модели CRM, запускаете программу и она выдает как должен выглядеть SOAP запрос.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#9 |
Moderator
|
И да, кстати, при определенных сетевых настройках 401 бывает если обращаться к сервису по IP или доменному имени. Не уверен, что curl использует какие-то API Windows, но чем черт не шутит - попробуйте по имени машины к сервису обратиться. Еще можно поиграть настройками прокси и интрасети в IE и добавить узел CRM в доверенные или зону интрасети.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#10 |
Участник
|
Цитата:
Сообщение от Артем Enot Грунин
![]() И да, кстати, при определенных сетевых настройках 401 бывает если обращаться к сервису по IP или доменному имени. Не уверен, что curl использует какие-то API Windows, но чем черт не шутит - попробуйте по имени машины к сервису обратиться. Еще можно поиграть настройками прокси и интрасети в IE и добавить узел CRM в доверенные или зону интрасети.
с C# все очень и очень плохо - я его совсем не знаю ![]() |
|
![]() |
#11 |
Moderator
|
Linux? Знаете, бы тогда попытался, для начала, убедиться удается ли авторизоваться в CRM с веб сайта, а уже потом запрос отлаживал.
Еще мысль: HTML при помощи curl удается прочитать? Или тоже 401?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#12 |
Участник
|
|
|
![]() |
#13 |
Moderator
|
Вдвойне странно... Пока догадок больше нет. Стандартная установка? Тонкой настройкой не занимались? Пользователь под которым читаете данные есть в CRM?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
![]() |
#14 |
Участник
|
Цитата:
никакой настройки нет ни тонкой никакой (я этот CRM первый раз в жизни месяц назад увидел) пользователь есть естественно, если нет ругань идет на гораздо более раннем этапе (короче этот момент исключил сразу) блин ниужели никто никогда такого не далал? ![]() проблема явно какая то принципиальная, так как в наличии и на сервере установленном только что и на боевом точно такая же картина пытался искать что то по настройке Web сервисов - тишина все примеры исключительно на C# или VB или JScript изредка Java но нигде нет никакого примера где можно тупо скормить XML и получить ответ, хоть блин хеллоу ворлд какой нить |
|
![]() |
#15 |
Moderator
|
Ну, гайд у вас сомнительный! Тем не менее, мне кажется что установка у вас рабочая. Принципиальная проблема заключается в средствах которые вы используете. Нет ничего удивительного в том, что для Web системы разработки Microsoft все примеры делаются на технологиях Microsoft. Откуда взять XML - вообще не важно - хоть из сокета его читайте. Проблема в том КАК вы эти данные передаете.
Например, я не вижу в вашем "коде" хидеров запроса: "SOAPAction" = "http://schemas.microsoft.com/crm/2007/WebServices/ имя вызываемого веб метода" "Content-Type" = "text/xml; charset=utf-8" "Content-Length" = длинна вашего XML И нигде не вижу, чтобы запрос выполнялся по методу POST, хотя это, вероятно скрыто в какой-то из инструкции curl. Возможно есть еще какие-то моменты. Мы все делали подобные вещи, но из JavaScript (на худой конец отлаживайтесь так!) или при помощи готовых библиотек MS.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() ![]() |
|
Теги |
web сервис, crm4 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|