AX 2012 AIF 出站端口数据策略 - 覆盖必填字段

AX 2012 AIF Outbound port Data Policy - override mandatory fields

我在 AX 2012 R3 CU10。

我需要以 XML 格式导出项目数据。

我已经根据服务操作创建了出站 AIF 端口 EcoResProductService.read
在选择数据策略时,AX 不允许我取消选中 /EcoResProduct/Product/Translation/LanguageId 的复选框(变灰),因为这是基础 table.
中的必填字段 这可以通过将其添加到 AxBC class 的 initMandatoryFieldsExemptionList 方法来覆盖。示例 here

所以,我在 \Classes\AxEcoResProductTranslation\initMandatoryFieldsExemptionList

上覆盖了它
protected void initMandatoryFieldsExemptionList()
{
    super();

    // LanguageId not mandatory
    this.setParmMethodAsNotMandatory(methodstr(AxEcoResProductTranslation,parmLanguageId));

}

但是,之后数据策略中的复选框仍然保持灰色。
我尝试过的事情:

当我将我的代码与标准代码(如 AxAssetTable 进行比较时,initMandatoryFieldsExemptionList 已实现并正常工作。
AssetId 在那个数据策略中没有变灰。

有谁知道如何让 AX "see" 我对 LanguageId 的豁免?

您需要让系统更新 AIF 架构 table。您可以通过右键单击服务下 AOT 中的服务并单击 Add-Ins/Register 服务来执行此操作,或者打开表单 AifService 并单击刷新按钮以更新所有服务。