【问题标题】:QBFC: Specify custom field data when adding new customer (Custom field already exists)QBFC:添加新客户时指定自定义字段数据(自定义字段已存在)
【发布时间】:2013-05-28 14:19:58
【问题描述】:

我正在运行一些测试来为快速手册中已设置的自定义字段指定一个值。

我可以添加客户,但我未能添加自定义字段...我认为我在最后一个 DataExtMod 行中 @“FullName”有问题...

对此有什么想法吗?我没有得到任何具体的错误,只是一个 hresult。

 Dim custAdd As ICustomerAdd = qbMsgReq.AppendCustomerAddRq

        Dim str_name As String = "Louis Pluto Test 2 - ZA Code"
        Dim str_phone As String = "0764128111"

        custAdd.Name.SetValue(str_name)
        custAdd.Phone.SetValue(str_phone)
        custAdd.Email.SetValue("email@addy.com")
        custAdd.FirstName.SetValue("myname")
        custAdd.LastName.SetValue("my lastname")
        custAdd.fullname.setvalue()


        'add custom ID field...
        Dim MyDataExtMod As IDataExtMod
        MyDataExtMod = qbMsgReq.AppendDataExtModRq

        MyDataExtMod.OwnerID.SetValue("0")
        MyDataExtMod.DataExtName.SetValue("ID NUMBER")
        MyDataExtMod.DataExtValue.SetValue("0123456789012")
        MyDataExtMod.ORListTxn.ListDataExt.ListDataExtType.SetValue(ENListDataExtType.ldetCustomer)
        MyDataExtMod.ORListTxn.ListDataExt.ListObjRef.FullName.SetValue(str_name)

更新

我的 XML 响应:

        MyDataExt_resp.ToXMLString  "<?xml version="1.0" ?> <QBXML> <QBXMLMsgsRs> <CustomerAddRs requestID="0" statusCode="0" statusSeverity="Info" statusMessage="Status OK"> <CustomerRet> <ListID>8000051D-1369767881</ListID> <TimeCreated>2013-05-28T21:04:41+02:00</TimeCreated> <TimeModified>2013-05-28T21:04:41+02:00</TimeModified> <EditSequence>1369767881</EditSequence> <Name>Louis Test User with ID2</Name> <FullName>Louis Test User with ID2</FullName> <IsActive>true</IsActive> <Sublevel>0</Sublevel> <FirstName>Louis</FirstName> <LastName>van Tonder</LastName> <Phone>0123456789</Phone> <Email>email@addy.com</Email> <AdditionalContactRef> <ContactName>Main Phone</ContactName> <ContactValue>0123456789</ContactValue> </AdditionalContactRef> <AdditionalContactRef> <ContactName>Main Email</ContactName> <ContactValue>email@addy.com</ContactValue> </AdditionalContactRef> <Balance>0.00</Balance> <TotalBalance>0.00</TotalBalance> <JobStatus>None</JobStatus> </CustomerRet> </CustomerAddRs> <DataExtModRs requestID="1" statusCode="3120" statusSeverity="Error" statusMessage="Object &quot;ID NUMBER&quot; specified in the request cannot be found.  QuickBooks error message: This feature is not enabled or not available in this version of QuickBooks." /> </QBXMLMsgsRs> </QBXML> " String

这部分显然很有趣......自定义字段只是“ID NUMBER”,我应该以其他方式引用它吗?命名约定?

<DataExtModRs requestID="1" statusCode="3120" statusSeverity="Error" statusMessage="Object &quot;ID NUMBER&quot; specified in the request cannot be found.  QuickBooks error message: This feature is not enabled or not available in this version of QuickBooks." /> </QBXMLMsgsRs>

【问题讨论】:

    标签: intuit-partner-platform intuit qbfc


    【解决方案1】:

    您在 DataExt 中设置的 FullName 应该与您正在创建的客户的 FullName 相同。否则,您将告诉 QuickBooks 为其他一些随机对象设置自定义字段。

    例如如果这是您客户的全名:

    Dim str_name As String = "Louis Pluto Test 2 - ZA Code"
    

    那么您应该在 DataExt 中使用相同的 FullName:

    ' This is *wrong*:
    MyDataExtMod.ORListTxn.ListDataExt.ListObjRef.FullName.SetValue("Myname mylastname")
    
    ' This is correct:
    MyDataExtMod.ORListTxn.ListDataExt.ListObjRef.FullName.SetValue(str_name)
    

    【讨论】:

    • 啊。我无法将 .name 与“全名”连接起来......将给它一个旋转,谢谢!
    • 即使您进行了更改...我有以下错误:深入研究时,它看起来像...无法加载文件或程序集“Microsoft.CSharp”或其依赖项之一。系统找不到指定的文件。
    • 实际上......我没有在我的代码中指定 : qbMsgReq.Attributes.OnError = ENRqOnError.roeContinue 行......这次我的 hresult 更有意义......我删除了客户我试图再次添加..现在,似乎无法完成。我的代码现在运行,但我没有看到我的自定义 ID 字段填充...想法?
    • 更新您的代码和/或发布您从 QuickBooks 获得的 XML 响应。
    • 好的,明白了..!在 Quickbooks 的附加信息屏幕上,它显示为全部大写。 ID NUMBER,但在打开定义字段窗口时,案例是 ID 号。现在很有魅力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    相关资源
    最近更新 更多