ошибка «обязательное поле EntityId отсутствует» - PullRequest
1 голос
/ 16 ноября 2009

Независимо от того, что я пытаюсь, я получаю следующее исключение, выдаваемое MSCRM 4.0

Неверный формат входного XML для запроса SetStateITG_glcode: обязательное поле EntityId отсутствует

вот захваченный SoapEnvelope из WireShark, отправляющийся в MSCRM, где вы можете видеть, что на самом деле существует элемент EntityId.

<s:Body><ns0:Execute xmlns:ns0="http://schemas.microsoft.com/crm/2007/WebServices" xmlns:ns3="http://microsoft.com/wsdl/types/" xmlns:ns4="http://schemas.microsoft.com/crm/2006/WebServices" xmlns:ns6="http://schemas.microsoft.com/crm/2006/Scheduling" xmlns:ns2="http://schemas.microsoft.com/crm/2006/CoreTypes" xmlns:ns5="http://schemas.microsoft.com/crm/2006/Query" xmlns:ns1="http://schemas.microsoft.com/crm/2007/CoreTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns0:Request xsi:type="ns0:SetStateITG_glcodeRequest"><ns0:OptionalParameters/><ns0:EntityId>f0754ebf-50d2-de11-93aa-000c29af16b6</ns0:EntityId><ns0:ITG_glcodeState>Active</ns0:ITG_glcodeState><ns0:ITG_glcodeStatus>1</ns0:ITG_glcodeStatus></ns0:Request></ns0:Execute></s:Body></s:Envelope>

здесь тело SOAP, отправленное в MSCRM, снова захвачено Wireshark; это сообщение пришло из быстрого консольного приложения, которое я написал для обновления, которое я пробовал через мой клиент веб-службы выше.

<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Execute xmlns="http://schemas.microsoft.com/crm/2007/WebServices"><Request xsi:type="SetStateITG_glcodeRequest"><OptionalParameters/><EntityId>c2fcef74-19cf-de11-9376-000c29af16b6</EntityId><ITG_glcodeState>Inactive</ITG_glcodeState><ITG_glcodeStatus>-1</ITG_glcodeStatus></Request></Execute></s:Body>

второе сообщение работы; и MSCRM делает то, что должен делать. первый, который отличается от префиксов пространства имен, имеет ту же структуру ... насколько я могу видеть.

Я что-то упускаю из виду? о чем стонет МСРМ?

Спасибо

1 Ответ

1 голос
/ 16 ноября 2009

так что эта проблема исправлена ​​... Оказывается, MSCRM не понравился префикс пространства имен ns0 MSCRM использует собственный анализатор строк на основе Xml vlaidator или что-то смешное?

...