AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2010, 14:10   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Angry Ошибка выполнения запроса - система не находить запись
CRM 4.0
С помощью SOAP-запроса пытаюсь квалифицировать интерес.

Делаю так:

Код:
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var soapXml = "<?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'>" +
	GenerateAuthenticationHeader() +
	"<soap:Body>" +
	"<Request xsi:type='SetStateLeadRequest' xmlns='http://schemas.microsoft.com/crm/2006/WebServices'>" +
	"<EntityId>" + leadId + "</EntityId>" +
	"<LeadState>Qualified</LeadState>" +
	"<LeadStatus>3</LeadStatus>" +
	"</Request>" +
	"</soap:Body>" +
	"</soap:Envelope>";
try {
	xmlhttp.open("POST", "/mscrmservices/2006/CrmService.asmx", false);
	xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2006/WebServices/Execute");
	xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xmlhttp.setRequestHeader("Content-Length", soapXml.length);
	xmlhttp.send(soapXml);
	var result = xmlhttp.responseXML.xml;
	if (result.indexOf('faultcode') < 0)
		crmForm.SubmitCrmForm(1,true,true,false);
	else
		alert(result);
} catch(e) {
	alert(e.description);
}
На выходе получаю вот такой вот запрос:

Код:
<?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>
			<CrmTicket xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes"></CrmTicket>
			<OrganizationName xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes">MyOrg</OrganizationName>
			<CallerId xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes">00000000-0000-0000-0000-000000000000</CallerId>
		</CrmAuthenticationToken>
	</soap:Header>
	<soap:Body>
		<Request xsi:type='SetStateLeadRequest' xmlns='http://schemas.microsoft.com/crm/2006/WebServices'>
			<EntityId>{3ADEC8AB-466A-DF11-BE5B-00155D6F6500}</EntityId>
			<LeadState>Qualified</LeadState>
			<LeadStatus>3</LeadStatus>
		</Request>
	</soap:Body>
</soap:Envelope>
Интерес 100% существует, имя организации правильное, но в результате получаю вот такую ошибку:

Код:
<?xml version="1.0"?>
<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:Server</faultcode>
<faultstring>Server was unable to process request.</faultstring>
<detail>
<error>
<code>0x80040217</code>
<description>lead With Id = 3adec8ab-466a-df11-be5b-00155d6f6500 Does Not Exist</description>
<type>Platform</type>
</error>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
У кого-нибудь есть идеи почему такое может быть?
Старый 09.06.2010, 14:32   #2  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
У меня Ваш код прекрасно отработал (я только leadId захардкодил - скпировал из URL)
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 09.06.2010, 15:26   #3  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Если CRM - 4, то почему пользуетесь сервисами 2006?

xmlhttp.open("POST", "/mscrmservices/2006/CrmService.asmx", false);

Попробуйте через 2007 сделать.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.06.2010, 15:28   #4  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Да у меня на другой системе этот код тоже работает

В общем выяснилась такая штука... Проблема эта на системе с несколькими организациями. Запись ищется в дефолтном инстансе CRM, а не в том, который указан в хидере.
Но не могу понять почему так и как сделать чтобы было нормально.
Старый 09.06.2010, 15:31   #5  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от ZooY Посмотреть сообщение
Да у меня на другой системе этот код тоже работает

В общем выяснилась такая штука... Проблема эта на системе с несколькими организациями. Запись ищется в дефолтном инстансе CRM, а не в том, который указан в хидере.
Но не могу понять почему так и как сделать чтобы было нормально.
Именно в єтом и проблема. Работает с дефолтной организацией именно по той причине, что используете вебсервис версии 3.0, а не 4.0.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 09.06.2010, 17:24   #6  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Поменял 2006 на 2007, остальное не менял, на сколько я понимаю все остальное тоже самое. В результате получаю вот такую ошибку:
Код:
<?xml version="1.0"?>
<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:Server</faultcode>
<faultstring>Server was unable to process request.</faultstring>
<detail>
<error>
<code>0x80040203</code>
<description>request</description>
<type>Platform</type>
</error>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Вообще не понятно что с этим делать и в чем ошибка.
Старый 09.06.2010, 17:40   #7  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Сравнил Ваш код с этим. Есть отличия. Попробуйте использовать такой код:

Код:
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var soapXml = "<?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'>" +
	GenerateAuthenticationHeader() +
	"<soap:Body>" +
	"<Execute xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+ 
	"<Request xsi:type='SetStateLeadRequest'>" +
	"<EntityId>" + leadId + "</EntityId>" +
	"<LeadState>Qualified</LeadState>" +
	"<LeadStatus>3</LeadStatus>" +
	"</Request>" +
	"</Execute>"+ 
	"</soap:Body>" +
	"</soap:Envelope>";
try {
	xmlhttp.open("POST", "/mscrmservices/2007/CrmService.asmx", false);
	xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Execute");
	xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xmlhttp.setRequestHeader("Content-Length", soapXml.length);
	xmlhttp.send(soapXml);
	var result = xmlhttp.responseXML.xml;
	if (result.indexOf('faultcode') < 0)
		crmForm.SubmitCrmForm(1,true,true,false);
	else
		alert(result);
} catch(e) {
	alert(e.description);
}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: ZooY (1).
Старый 10.06.2010, 10:55   #8  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
a33ik, спасибо, это то что нужно. В моем коде не хватало строки
<Execute xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка авторизации при выполнении запроса Dark_Angel Dynamics CRM: Разработка 0 03.09.2009 17:23
Закешированная ошибка доработок (ISV) после выполнения импорта организации. Alberto Farinacci Dynamics CRM: Администрирование 4 06.07.2009 16:12
Ошибка при записи продукта e.pasechny Dynamics CRM: Администрирование 2 03.03.2008 18:12
Ошибка в отчете "Каналы продаж" после изменения процесса продаж Артем Enot Грунин Dynamics CRM: Разработка 2 25.09.2007 09:59
Ошибка при установке MS CRM Outlook клиента flay Dynamics CRM: Администрирование 0 29.06.2006 10:16

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:14.