|
|
|
|
#1 |
|
Участник
|
Значит так: написал на основе данного запроса функцию по обновлению атрибута new_data в сущности new_web по нажатию на кнопку.
Далее привожу код функции: Код: //Обновление даты
function SetAttributeValueFromID(sEntityName, GUID)
 {

var contactId =GUID;
var data = (new Date()).getDate()+'/'+(new Date()).getMonth()+'/'+(new Date()).getYear()+' '+(new Date()).getHours()+':'+(new Date()).getMinutes();
var authenticationHeader = GenerateAuthenticationHeader();

// Prepare the SOAP message.

var xml = '';

xml = 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\'>'+

authenticationHeader+

//тело SOAP запроса.
'<soap:Body>'+

//Обновление атрибута
'<Update xmlns=\'http://schemas.microsoft.com/crm/2007/WebServices\'>'+
'<entity xsi:type=sEntityName>'+
'<new_data>\'+data+\'</new_data>'+
'<contactid>\'+contactId+\'</contactid>'+
'</entity>'+
'</Update>'+
'</soap:Body>'+
 '</soap:Envelope>';

// Prepare the xmlHttpObject and send the request.

var xHReq = new ActiveXObject('Msxml2.XMLHTTP');

xHReq.Open('POST', '/mscrmservices/2007/CrmService.asmx', false);

xHReq.setRequestHeader('SOAPAction','http://schemas.microsoft.com/crm/2007/WebServices/Update');
xHReq.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');

xHReq.setRequestHeader('Content-Length', xml.length);

xHReq.send(xml);

// Capture the result.

var resultXml = xHReq.responseXML;


// Check for errors.

var errorCount = resultXml.selectNodes('//error').length;

if (errorCount != 0)
{
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
// Display a confirmation message and open the updated contact.
else
{
alert('Contact with id = '+contactId+' successfully updated.');
window.open('/sfa/conts/edit.aspx?id={'+contactId+'}');
}
}
var a = getSelected('crmGrid'); 

SetAttributeValueFromID('new_web', a);В чем может быть ошибка? |
|
|
|
|
#2 |
|
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
Значит так: написал на основе данного запроса функцию по обновлению атрибута new_data в сущности new_web по нажатию на кнопку.
Далее привожу код функции: Код: //Обновление даты
function SetAttributeValueFromID(sEntityName, GUID)
 {

var contactId =GUID;
var data = (new Date()).getDate()+'/'+(new Date()).getMonth()+'/'+(new Date()).getYear()+' '+(new Date()).getHours()+':'+(new Date()).getMinutes();
var authenticationHeader = GenerateAuthenticationHeader();

// Prepare the SOAP message.

var xml = '';

xml = 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\'>'+

authenticationHeader+

//тело SOAP запроса.
'<soap:Body>'+

//Обновление атрибута
'<Update xmlns=\'http://schemas.microsoft.com/crm/2007/WebServices\'>'+
'<entity xsi:type=sEntityName>'+
'<new_data>\'+data+\'</new_data>'+
'<contactid>\'+contactId+\'</contactid>'+
'</entity>'+
'</Update>'+
'</soap:Body>'+
 '</soap:Envelope>';

// Prepare the xmlHttpObject and send the request.

var xHReq = new ActiveXObject('Msxml2.XMLHTTP');

xHReq.Open('POST', '/mscrmservices/2007/CrmService.asmx', false);

xHReq.setRequestHeader('SOAPAction','http://schemas.microsoft.com/crm/2007/WebServices/Update');
xHReq.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');

xHReq.setRequestHeader('Content-Length', xml.length);

xHReq.send(xml);

// Capture the result.

var resultXml = xHReq.responseXML;


// Check for errors.

var errorCount = resultXml.selectNodes('//error').length;

if (errorCount != 0)
{
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
// Display a confirmation message and open the updated contact.
else
{
alert('Contact with id = '+contactId+' successfully updated.');
window.open('/sfa/conts/edit.aspx?id={'+contactId+'}');
}
}
var a = getSelected('crmGrid'); 

SetAttributeValueFromID('new_web', a);В чем может быть ошибка? Также обратил внимание на строчку var contactId =GUID; передаётето вы туда - массив, соответвенно по идее следовало бы использовать ориентировочно такую конструкицю - var contactId = GUID[0].id; Но если ни одной записи не будет выделено - выполнение скрипта - вызовет исключение.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 29.09.2009 в 11:10. |
|
|
|
|
#3 |
|
Участник
|
Цитата:
А разве аллертом не id выводится на скрине? |
|
|
|
|
#4 |
|
Чайный пьяница
|
Цитата:
Для данного конкретного случая - не тестировал, но если показывает, следовательно отработало. А что будет в ситуации, если не выделено ни одной записи (пустой грид - ни одной записи) или выделено несколько записей. Уверены, что код поведёт себя корректно? Я - не очень. Моё дело обратить Ваше внимание, Ваше дело - прислушаться или проигнорировать
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#5 |
|
Участник
|
Цитата:
Сообщение от a33ik
Как раз имеет значение какой формат. Ознакомьтесь.
Возможно я не правильно выразился: если бы обновляемое поле имело бы тип datetime, тогда да, формат в котором передается дата имел бы значение. Но в поле типа text почему я не могу передать дату в том формате в котором надо мне? да и не обязательно дату. Если даже я пытаюсь передать строковую значение, то все равно поле не обновляется. Кстати по поводу обновления, оно должно отобразиться после обновления страницы? |
|
|
|
|
#6 |
|
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
Ознакомился.
Возможно я не правильно выразился: если бы обновляемое поле имело бы тип datetime, тогда да, формат в котором передается дата имел бы значение. Но в поле типа text почему я не могу передать дату в том формате в котором надо мне? да и не обязательно дату. Если даже я пытаюсь передать строковую значение, то все равно поле не обновляется. Кстати по поводу обновления, оно должно отобразиться после обновления страницы? Код: '<entity xsi:type=sEntityName>'+ '<new_data>\'+data+\'</new_data>'+ '<contactid>\'+contactId+\'</contactid>'+ Код: '<entity xsi:type=sEntityName>'+ Код: '<entity xsi:type=\''+sEntityName + '\'>'+ Код: '<contactid>\'+contactId+\'</contactid>'+ Код: '<' + sEntityName +'id>\'+contactId+\'</' +sEntityName+ 'id>'+
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
| За это сообщение автора поблагодарили: Tarasov E (1). | |
|
|
#7 |
|
Участник
|
Большое спасибо! Исправил - заработало
|
|
|
|
|
|