Показать сообщение отдельно
Старый 25.10.2012, 18:14   #1  
arty is offline
arty
Участник
 
3 / 10 (1) +
Регистрация: 21.04.2006
Знатоки 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))));
        }
Т. е. сравнивается хэш документа, указанный во входящем XML и хэш текущего документа. Вычисляется он на основе RecId+RecVersion таблиц, составляющих документ. Получается, я этот хэш (причем текущий!) должен заранее знать и включить в документ, который отправляю в аксапту из стороннего приложения... По-моему бред. Или я что-то не так делаю?