0

我在使用 AIF Web 服务在 Dynamics AX 的合同模块中创建唯一主键时遇到问题。我们的合约 PK 的格式为“CON-######”,并且 contractId 与 AX 中的数字序列相关联。当我调用“创建”服务操作时,我为“ContractId”传递了一个 0,而 AX 并没有用数字序列中的实际合同 ID 替换该 0。

AX 服务端点配置为增强端口。是否需要在 AX 服务端点上启用设置?AX 端是否有需要实现的方法覆盖?

我有一个名为 CC 的类 CallContext 变量,以及一个应该插入新实体的 CreateEntityKey[] 方法。

private CallContext cc = new CallContext() { Company = "MYCOMPANY", Language = "en-us" };

public EntityKey[] CreateEntityKey(AxdEntity_CLMContractTable axdBtmContractTable) 
{

     EntityKey[] ek = null;

     AxdBtmContractHdr axBtmContractHeader = new AxdBtmContractHdr() 
     { 
          CLMContractTable = new AxdEntity_CLMContractTable[] 
          { 
               axdBtmContractTable 
          } 
      };

      try
      {
          ek = _client.create(cc, axBtmContractHeader);
      }
      catch (Exception e)
      {
          ek = null;
      }

      return ek;
}
4

1 回答 1

1

据我所知,AIF 一般不支持开箱即用的编号规则字段,而只支持某些实体(例如销售订单)。这意味着您必须实现自己的逻辑才能从数字序列中创建一个新数字。看看 class AxSalesTable, methodsetSalesId是如何做到的。

于 2016-07-29T16:35:26.640 回答