如何解决Acumatica Rest API 获取客户属性名称
我正在尝试通过 Rest API 获取客户属性的值。目前,我可以检索客户属性,但无法确定关联的是哪个特定属性。例如,给定此代码(基于 https://github.com/Acumatica/AcumaticaRESTAPIClientForCSharp,Endpoint = "Default",EndpointVersion = "18.200.001",Endpoint Library = Acumatica.Default_20.200.001,Acumatica version = Cloud ERP 2020 R1,Build 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,...
我还缺少什么才能返回属性名称?或者我应该如何将给定的值关联回给定的属性?
解决方法
Customers 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"
},"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是属性的标识符,对应于属性记录的描述。
您的结果是针对 customerApi.GetList(top: 5,select: "Attributes/Value");
请求返回的。如果要指定,请确保在选择部分中包含了 Attributes/Attribute。
更新
18.200 和 20.200 的命名有细微差别。
在 18.200 中,属性 ID 实际上被命名为 Attribute
在 20.200 中,属性 ID 更名为属性 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 StringValue Value { get; set; }
[DataMember(Name="ValueDescription",EmitDefaultValue=false)]
public StringValue ValueDescription { get; set; }
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。