CRM 2011 извикване към mscrmsevices с подкана за идентификационни данни

Преконфигурирам приложение, което работехме в CRM 4.0, за да работи в CRM 2011. Преди това беше извикано от бутон на лентата с инструменти с помощта на javascript.

Прехвърлих javascript към уеб ресурс и преконфигурирах лентата да държи бутона и да извиква необходимата функция в библиотеката.

Когато тествам това обаче, получавам подкана за потребителско име и парола, които, когато бъдат въведени 3 или повече пъти, връща грешката „„null“ е null или не е обект“.

Не съм сигурен защо получавам подкана за идентификационни данни, когато това не се случи в CRM 4.0.

Някакви идеи на какво може да се дължи това?

Javascript е по-долу:

try 
{
var ADD_LETTER='1';
var SAVE_DOC_IN_CRM='1';
var STORE_TO_PRINT='1';
var SEND_EMAIL='1';
var SHOW_PARAGRAPHS='1';
var 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\'>'+GenerateAuthenticationHeader() +' <soap:Body>' +' <RetrieveMultiple xmlns=\'http://schemas.microsoft.com/crm/2007/WebServices\'>' +' <query xmlns:q1=\'http://schemas.microsoft.com/crm/2006/Query\' xsi:type=\'q1:QueryExpression\'>' +' <q1:EntityName>systemuser</q1:EntityName>' +' <q1:ColumnSet xsi:type=\'q1:ColumnSet\'>' +' <q1:Attributes>' +' <q1:Attribute>systemuserid</q1:Attribute>' +' </q1:Attributes>' +' </q1:ColumnSet>' +' <q1:Distinct>false</q1:Distinct>' +' <q1:Criteria>' +' <q1:FilterOperator>And</q1:FilterOperator>' +' <q1:Conditions>' +' <q1:Condition>' +' <q1:AttributeName>systemuserid</q1:AttributeName>' +' <q1:Operator>EqualUserId</q1:Operator>' +' </q1:Condition>' +' </q1:Conditions>' +' </q1:Criteria>' +' </query>' +' </RetrieveMultiple>' +' </soap:Body>' +'</soap:Envelope>' +'';
var xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP');
xmlHttpRequest.Open('POST', '/mscrmservices/2007/CrmService.asmx', false);
xmlHttpRequest.setRequestHeader('SOAPAction', 'http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple');
xmlHttpRequest.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
xmlHttpRequest.setRequestHeader('Content-Length', xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
var entityNode = resultXml.selectSingleNode('//RetrieveMultipleResult/BusinessEntities/BusinessEntity');
var useridNode = entityNode.selectSingleNode('q1:systemuserid');
var sUserId = (useridNode == null) ? '' : useridNode.text;
var sGUID = crmForm.ObjectId;
var sEntity = crmForm.ObjectTypeName;
var sURL = '/ISV/Mergedabc/Mergedabc.aspx?org=' + ORG_UNIQUE_NAME + '&guid=' + sGUID + '&ety=' + sEntity + '&userid=' + sUserId + '&indid=' + sGUID + '&indtype=' + crmForm.ObjectTypeCode + '&indtypename=' + sEntity + '&addletter=' + ADD_LETTER + '&docincrm=' + SAVE_DOC_IN_CRM + '&storetoprint=' + STORE_TO_PRINT + '&emaildoc=' + SEND_EMAIL + '&showparas=' + SHOW_PARAGRAPHS;
var objRet = window.showModalDialog(prependOrgName(sURL));

if(objRet != null)
{
if (objRet.length > 0) 
{
    var o = objRet[0];
    if (o.ret == true) 
    {
        alert('Merge Completed.');
    }
    else {
        alert('Unable to merge document.');
    }
}
else 
{
    alert('No merge information returned.');
}
}
}
catch (e) 
{
alert(e.message);
}

Изглежда, че това се случва, когато се опитва да извика CrmService и причинява грешка 401.

Всякакви предложения как да поправим това ще бъдат оценени,

Благодаря!!


person Brett    schedule 19.09.2011    source източник
comment
Заявката за влизане се появява преди изскачането на страницата или след това (може би когато щракнете върху Запазване в изскачащия прозорец)? С други думи, сигурни ли сте, че заявката за влизане идва от този javascript или може да идва от действие на ASPX страницата, която изскача?   -  person Josh Painter    schedule 20.09.2011
comment
Преди. Дори не стигам до aspx страницата. наздраве   -  person Brett    schedule 20.09.2011


Отговори (1)


Коригиран – проблемът беше XML-изацията на всички %amp; %lt; %gt; вместо %, < и > в SOAP повикването.

person Brett    schedule 20.09.2011