При попытке обновить документ в 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))));
}
Т. е. сравнивается хэш документа, указанный во входящем XML и хэш текущего документа. Вычисляется он на основе RecId+RecVersion таблиц, составляющих документ. Получается, я этот хэш (причем текущий!) должен заранее знать и включить в документ, который отправляю в аксапту из стороннего приложения... По-моему бред. Или я что-то не так делаю?