Acumatica Rest API 获取客户属性名称

Acumatica Rest API get customer attribute name

我正在尝试通过 Rest API 获取客户属性的值。目前,我可以检索客户属性,但无法确定关联了哪个特定属性。例如,给定此代码(基于 https://github.com/Acumatica/AcumaticaRESTAPIClientForCSharp,端点 =“默认”,端点版本 =“18.200.001”,端点库 = Acumatica。Default_20.200.001,Acumatica 版本 = Cloud ERP 2020 R1,内部版本 20.110.0017):

            var customerApi = new CustomerApi(configuration);
            var customers = customerApi.GetList(top: 5, expand: "Attributes", select: "Attributes/Attribute,Attributes/Value");

            foreach (var cust in customers)
            {
                Console.WriteLine(cust.ToString());
            }

产生此输出:

{
  
"AccountRef": {},
  "Attributes": [
    {
      "Value": {
        "value": "True"
      },
      "id": "8de7a85d-6d60-4235-9d35-74a9d08d1cc6",
      "rowNumber": 1,
      "custom": {}
    },
    {
      "Value": {
        "value": "Sample Email Body"
      },
      "id": "8da2a21c-2ba3-45ba-9e12-02122c626e11",
      "rowNumber": 2,
      "custom": {}
    }, ...

我还缺少什么才能获得返回的属性名称?或者我应该如何将给定值关联回给定属性?

客户 API 的默认配置返回 Attributes 数组,如下所示 customerApi.GetList(top: 5, expand: "Attributes", select: "Attributes/Attribute,Attributes/Value"); 请求

 "Attributes": [
    {
      "Attribute": {
        "value": "Company Revenue"
      },
      "Value": {
        "value": "1,000,000 to 5,000,000"
      },
      "id": "6df69428-7157-438f-8b61-99b2d7d1a3ad",
      "rowNumber": 1,
      "custom": {}
    },
    {
      "Attribute": {
        "value": "Number of Employees"
      },
      "Value": {
        "value": "1-100"
      },
      "id": "15c3f47f-36eb-481b-92c0-f6b2f738732f",
      "rowNumber": 2,
      "custom": {}
    }
  ]

Attributes->Attribute->Value是Attribute的标识符,对应于Attribute记录的Description。

您的 customerApi.GetList(top: 5, expand: "Attributes", select: "Attributes/Value"); 请求结果已返回。如果要指定,请确保在 select 部分中包含了 Attributes/Attribute。

更新

18.200 和 20.200 的命名略有不同。

In 18.200 the Attribute ID is actually named Attribute
In 20.200 the Attribute ID is renamed to Attribute ID

这就是此请求对 18.200 正常工作的原因

namespace Acumatica.Default_18_200_001.Model
{
    [DataContract]
    public class AttributeDetail : Entity_v3
    {

        [DataMember(Name="Attribute", EmitDefaultValue=false)]
        public StringValue Attribute { get; set; }

        [DataMember(Name="RefNoteID", EmitDefaultValue=false)]
        public GuidValue RefNoteID { get; set; }

        [DataMember(Name="Required", EmitDefaultValue=false)]
        public BooleanValue Required { get; set; }

        [DataMember(Name="Value", EmitDefaultValue=false)]
        public StringValue Value { get; set; }

    }
}



namespace Acumatica.Default_20_200_001.Model
{
    [DataContract]
    public class AttributeValue : Entity_v4
    {

        [DataMember(Name="AttributeID", EmitDefaultValue=false)]
        public StringValue AttributeID { get; set; }

        [DataMember(Name="AttributeDescription", EmitDefaultValue=false)]
        public StringValue AttributeDescription { get; set; }

        [DataMember(Name="RefNoteID", EmitDefaultValue=false)]
        public GuidValue RefNoteID { get; set; }

        [DataMember(Name="Required", EmitDefaultValue=false)]
        public BooleanValue Required { get; set; }

        [DataMember(Name="Value", EmitDefaultValue=false)]
        public StringValue Value { get; set; }

        [DataMember(Name="ValueDescription", EmitDefaultValue=false)]
        public StringValue ValueDescription { get; set; }

    }
}