25.10.2012, 18:14 | #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)))); } |
|
25.10.2012, 18:36 | #2 |
NavAx
|
Дык, правильно.
Чтобы обновить документ - надо его сначала запросить, соотв, получить DocumentHash вместе с ним. Ну, а потом, зная уже DocumentHash, указать его в документе с измененными полями. Это позволит убедиться системе, что с момента прошлого запроса исходный документ в системе не менялся и вы меняете именно ту версию документа, что и запрашивали. Т.е. нельзя изменить какой-то документ от балды. Сначала нужно его прочитать.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
|
За это сообщение автора поблагодарили: arty (1). |
Теги |
aif |
|
|