添加了对InventItemService AIF服务的更新操作并获取异常

时间:2017-01-03 23:06:32

标签: axapta dynamics-ax-2012 x++ aif

令我惊讶的是,我没有在InvenItemService上找到标准的更新和删除操作。因此,为了满足客户的要求,我运行了AIF更新向导并添加了这两个操作。我认为这很容易,并且发现这样做的过程非常快。在此之前,我将AxdItem查询的update属性设置为Yes。稍后,在调试更新操作时,我认为我必须相应地修改AxdItem类上的updateList()和Update()方法以提供方法定义。

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 Query上更改了所有子数据源的update属性,并重新运行了向导。再次跑CIL并获得以下异常。

  

无法编辑料品销售订单设置(InventItemSalesSetup)中的记录。   由于另一个用户进程删除记录或更改记录中的一个或多个字段而发生更新冲突。

有任何建议/想法吗?

我尝试过几件事,花了太多时间但都失败了。

1 个答案:

答案 0 :(得分:1)

似乎您尝试更新已在removeDefaultItemOrderSetup类的方法AxdItem中删除的记录

enter image description here

这会给你一个提示会发生什么 https://dynamicsuser.net/ax/f/developers/72116/aif-update-cannot-be-run-twice