К моему удивлению, я не нашел стандартных операций обновления и удаления на InvenItemService. Поэтому, чтобы полностью удовлетворить требования наших клиентов, я запустил мастер обновления AIF и добавил эти две операции. Я думал, что это легко, и нашел процесс очень быстро. Прежде чем это сделать, я установил для свойства update запроса AxdItem значение «Да». Позже, отлаживая операции обновления, я решил, что мне пришлось модифицировать методы updateList() и Update() для класса AxdItem, соответственно, чтобы предоставить определения методов.Добавлена операция обновления службы AIF InventItemService и получение исключений
public AifResult updateList( AifEntityKeyList _entityKeyList,
AifDocumentXml _xml,
AifEndpointActionPolicyInfo _actionPolicyInfo,
AifConstraintListCollection _constraintListCollection)
{
//throw error(strFmt("@SYS94920"));
return super(_entityKeyList, _xml, _actionPolicyInfo, _constraintListCollection);
}
AifResult update( AifEntityKey _entityKey ,
AifDocumentXml _xml,
AifEndpointActionPolicyInfo _actionPolicyInfo,
AifConstraintList _constraintList)
{
//throw error(strFmt("@SYS94920"));
return super(_entityKey, _xml, _actionPolicyInfo, _constraintList);
}
Теперь, пытаясь обновить существующий элемент в AX, я получаю следующее исключение AIF.
Невозможно отредактировать запись в настройках заказа товара (InventItemSalesSetup). Операция не может быть выполнена, так как запись не была выбрана для обновления. Помните TTSBEGIN/TTSCOMMIT, а также предложение FORUPDATE.
Затем я изменил свойство обновления всех дочерних источников данных на запрос AxdItem и перезапустил мастер. Ran CIL снова и теперь получает следующее исключение.
Невозможно отредактировать запись в настройках заказа товара (InventItemSalesSetup). Конфликт обновления произошел из-за другого процесса пользователя, удаляющего запись или изменения одного или нескольких полей в записи.
Любые предложения/идеи?
Я пробовал несколько вещей и провел слишком много времени, но не смог.