| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Изменение статуса записи при помощи Javascript
			 
			
			Нужно сделать чтобы при изменении значения поля на определенное (предположим, на число 25) запись становилась "неактивной". Пробовал реализовать двумя способами, ни одним не получилось... 
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Чайный пьяница 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Но рекомендовал бы это делать Post-Update плагином. 
				__________________ 
		
		
		
		
	Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Kostya Afendikov 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			У меня получился следующий SOAP - запрос: 
		
		
		
		
		
		
		
	// Prepare variables for updating a contact. var tripid = crmForm.ObjectId; var scode = 1; var authenticationHeader = GenerateAuthenticationHeader(); // Prepare the SOAP message. 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'>"+ authenticationHeader+ "<soap:Body>"+ "<Update xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+ "<entity xsi:type='new_business_trip'>"+ "<statecode>"+scode+"</statecode>"+ "<new_business_tripid>"+tripid+"</new_business_tripid>"+ "</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 = "+tripid+" successfully updated."); } В результате запрос вроде как выполняется, но статус командировки не меняется  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Консультант-джедай 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А страничку перезагружаете?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать!   Блога
			 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ага.. Запрос правильно составлен? Чтобы запись стала неактивной нужно изменить только этот аттрибут?)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Чайный пьяница 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Состояние записи сообщением Update не изменяется. 
		
		
		
		
		
		
			Для этого необходимо использовать SetState сообщение. 
				__________________ 
		
		
		
		
	Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			т.е. нужно изменить данный SOAP запрос? Или он полностью неправильно составлен?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот тут библиотечка есть. С ее помощью легко сделать то, что вам нужно. 
		
		
		
		
		
		
		
	См. SetState Sample. Как вариант еще можно было бы написать свой web-сервис, который бы деактивировал запись и вызывать его так же AJAX'ом. И еще можно подсмотреть, какой скрипт вызывается при деактивации через меню. Но с этим лучше не связываться.  
		 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Реализация при помощи плагина мне не подходит...  
		
		
		
		
		
		
		
	Цитата: 
	
		
			И еще можно подсмотреть, какой скрипт вызывается при деактивации через меню. Но с этим лучше не связываться.
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну что значит как? Дебаггером!  
		
		
		
		
		
		
		
	![]() Например, при деактивации Организации вызывается вот такая функция: changeState('deactivate', '1', '5'); Правда, она вызовет диалог подтверждения деактивации. Чтобы от него избавиться, надо будет залезть внутрь функции changeState и вырезать нужный кусок. Но это все дикий ансаппорт, поэтому и не советую связываться.  
		 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А вот я ими, напротив, не брезгую! Как-никак реализация самих разработчиков! Но ансапорт нужно особо чательно документировать, чтобы в случае чего можно было быстро обновить реализацию.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]()   MS Certified Dirty Magic Professional
			 | 
| 
	
 | 
| 
	
	 | 
	
		
  |