1

我正在尝试创建一个 API 调用以将数据添加到使用 AL 扩展在销售订单页面上创建的自定义字段中。问题是当我尝试通过邮递员进行 api 调用时,我得到“类型‘Microsoft.NAV.salesOrder’上不存在属性‘propertyName’”。首先,我什至不知道 API 是否允许这样做,那有可能吗?其次,如果可能的话,是否有某种方法可以通过 AL 扩展设置 API 调用或字段?

tableextension 50100 "AddProjectIdToSalesOrder" extends "Sales Header"
{
    fields
    {
        field(50100; "CrmProjectId"; Guid)
        {
            Caption = 'Crm Project Id';
            DataClassification = OrganizationIdentifiableInformation;
        }
    }
}

pageextension 50100 "AddProjectIdToSalesOrder" extends "Sales Order"
{
    layout
    {
        addlast(General)
        {
            field("CRM Project Id"; Rec.CrmProjectId)
            {
                ApplicationArea = all;
                ToolTip = 'The Guid of the related Project Record in the CRM environment';
            }
        }
    }
}

这就是我使用 AL 扩展设置字段的方式,对于 post call,我只是创建一个带有帖子的新销售订单,正文如下所示:

{
    "customerNumber" : "10000",
    "CrmProjectId" : "random-guid"
}

错误是“错误请求”:“类型 'Microsoft.NAV.salesOrder' 上不存在属性 'CrmProjectId'。确保仅使用类型定义的属性名称。” 任何帮助,将不胜感激。

4

1 回答 1

0

销售订单 API 是一个单独的页面。它不等同于销售订单页面,因此您必须修改 API 以完成您想要的。

但是微软提供的标准 API 是不能扩展的。

你有两个选择:

  • 制作标准销售订单 API 的副本(这涉及制作所有链接的 API 以及例如销售线 API 的副本)。
  • 创建一个新的 API 页面,其唯一目的是更新您的新字段。然后,您将使用标准销售订单 API 创建销售订单,然后通过对自定义 API 页面的第二次调用来更新 CrmProjectId。
于 2022-01-03T10:58:47.957 回答