有没有办法在搜索企业账户时获取 BAccountID,或者通过 Web 服务 API 根据这些主键更新企业账户?

Is there any way to get BAccountID when searching Business Account, or update Business Account based on those primary keys through Web Service API?

我们正在开展一个项目,通过 Web 服务 API 将我们的电子商务订单传递到 Acumatica。

作为订单流程的一部分,我们需要通过搜索Customers来获得我们需要的那个,然后我们希望能够根据主键,即BAccountID来更改这个客户数据;但是,当我使用 Web 服务 API "AR303000Export" 获取客户信息时,我没有在从 Acumatica 获取的数据中看到 "BAccountID",因此我无法更新该业务基于主键的账户记录(BAccountID和CompanyID,我们已经有了CompanyID)。

在通过 Web 服务进行搜索时是否可以获取主键值 API?

我注意到我可以使用 "AcctCD",它被称为 "Customer ID" 来更新,但是,我不确定该客户 ID 在数据库中是否唯一,因为它未指定为主键...

任何帮助将不胜感激。

谢谢。

你的具体问题是如何获得 BAccountID,你可以 - 所以我会回答这个问题。但是您可能确实想使用 AcctCD.

这段代码构建了 AR303000Export

的命令列表
   var commandgroup = new Command[]
        {
                AR303000Schema.CustomerSummary.ServiceCommands.EveryCustomerID
            ,   WSTools.NewA4Field(AR303000Schema.CustomerSummary.CustomerID.ObjectName, "DefContactID") 
            , AR303000Schema.CustomerSummary.CustomerID 
            , AR303000Schema.CustomerSummary.CustomerName 
            ,   WSTools.NewA4Field(AR303000Schema.CustomerSummary.CustomerID.ObjectName, "BAccountID") 
            ,   WSTools.NewA4Field(AR303000Schema.CustomerSummary.CustomerID.ObjectName, "Type") 
            ,AR303000Schema.CustomerSummary.Status 
            , AR303000Schema.GeneralInfoMainContact.Phone1  
            , AR303000Schema.GeneralInfoMainContact.Phone2
            ,   WSTools.NewA4Field(AR303000Schema.GeneralInfoMainContact.Phone1.ObjectName, "Phone1Type") 
            ,   WSTools.NewA4Field(AR303000Schema.GeneralInfoMainContact.Phone1.ObjectName, "Phone2Type") 
            WSTools.NewA4Field(AR303000Schema.CustomerSummary.CustomerID.ObjectName, "LastModifiedDateTime") 

        };

您会注意到一些有趣的东西并没有在强类型模式中公开,但如果您知道如何构建命令来引用该字段,它们仍然可用。 (比如Phone1中的phone号的类型在Phone1Type中)。

在您的情况下,您需要一个命令从与 CustomerID:

相同的内部对象名称中导出 BAccountID

WSTools.NewA4Field(AR303000Schema.CustomerSummary.CustomerID.ObjectName, "BAccountID")

在您的导出命令列表中。 (在上面的代码片段中排名第 5)。

有很多方法可以构建 "Field" 对象 - 我有一个实用方法:

  public static AcumaticaWS.Field NewA4Field(string objName, string fldName)
    {
        AcumaticaWS.Field nv = new AcumaticaWS.Field();
        nv.ObjectName = objName;
        nv.FieldName = fldName.TrimEnd();
        return nv;
    }

希望对您有所帮助!