| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Знатоки AIF, помогите!
			 
			
			При попытке обновить документ в DAX 2009 с помощью механизма AIF, обнаружил, что во время разбора входящего XML вызывается такой код (метод DeserializeTopEntity класса AxdBaseUpdate): 
		
		
		
		
		
		
		
	X++: // Verify that the document hash is present in the XML and matches the current version in the Db docVersionXml = _axInternalBase.parm_DocumentHash(); if (docVersionXml) { docVersionDb = document.getRecordHash(); if (docVersionDb != docVersionXml) { throw error("@SYS106156"); } } else { throw error(strfmt("@SYS26332", AxInternalBase::stripParm(methodstr(AxInternalBase, parm_DocumentHash)))); }  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Дык, правильно. 
		
		
		
		
		
		
			Чтобы обновить документ - надо его сначала запросить, соотв, получить DocumentHash вместе с ним. Ну, а потом, зная уже DocumentHash, указать его в документе с измененными полями. Это позволит убедиться системе, что с момента прошлого запроса исходный документ в системе не менялся и вы меняете именно ту версию документа, что и запрашивали. Т.е. нельзя изменить какой-то документ от балды. Сначала нужно его прочитать.  
		
				__________________ 
		
		
		
		
	Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...  
			 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: arty (1). | |
| Теги | 
| aif | 
| 
	
	 | 
	
		
  |