如何使用Quickbooks QBFC(8.0 SDK)获取客户,工作和雇主的列表

5 quickbooks qbfc

我编写了一个痛苦的任务,即编写一个C#应用程序,将员工时间条目与Quickbooks同步到一个单独的数据库中.由于我是QB编程的新手,我正在尝试执行基本任务,例如获取客户列表,然后是每个客户的工作,然后是员工.我一直在阅读SDK文档,但我对细节仍然有点模糊,因为我发现的例子对我来说有点太先进了:-P

为了简单起见,我想要一个代码片段,它为我提供了初学者的客户列表.这是我得到的代码:

        QBSessionManager SessionManager = new QBSessionManager();
        IMsgSetRequest customerSet = SessionManager.CreateMsgSetRequest("US", 8, 0);

        //          
        // Code to get list of customers here.
        //

        SessionManager.OpenConnection2("", "New App", ENConnectionType.ctLocalQBD);
        SessionManager.BeginSession(string.Empty, ENOpenMode.omDontCare);
        IMsgSetResponse Resp = SessionManager.DoRequests(customerSet);
        MessageBox.Show(Resp.ToXMLString());
        SessionManager.EndSession();
        SessionManager.CloseConnection();
Run Code Online (Sandbox Code Playgroud)

任何人都可以填写"代码来获取客户名单"吗?非常感谢你提前!

胜利者

Chi*_*ili 8

customers.IncludeRetElementList.Add("IsActive");
customers.IncludeRetElementList.Add("ListID");
customers.IncludeRetElementList.Add("EditSequence");
customers.IncludeRetElementList.Add("Name");
customers.IncludeRetElementList.Add("ParentRef");
Run Code Online (Sandbox Code Playgroud)

只有上面列表中指定的字段才会从QuickBooks返回 - 在正确的情况下使用正确的字符串非常重要 - 如果出现错误,不会产生错误消息.您不能指定子字段(例如,地址块中的城市;您必须获取整个地址块).对于自定义字段,还必须指定OwnerID(对于非应用程序专用的自定义字段,请使用0)

customers.IncludeRetElementList.Add("DataExtRet"); //will return non-private and/or private data extension fields depending on the OwnerIDList, below
customers.OwnerIDList.Add("0"); // required for non-private data extn fields
customers.OwnerIDList.Add("Your Appln GUID"); // Use this to get private data extns for the Appln identified by the GUID
Run Code Online (Sandbox Code Playgroud)


小智 7

好吧,好像我找到了丢失的部分:

ICustomerQuery customers = customerSet.AppendCustomerQueryRq();
Run Code Online (Sandbox Code Playgroud)

这将产生与每个客户相关的所有数据,这是向前迈出的一步.为客户解析XML应该非常简单,但解析每个客户的单个任务/作业将是费力的,因为每个任务都没有子节点 - 基本上你会得到重复的XML块和所有基本的客户信息(地址,计费)地址,送货地址等),然后这个名为"FullName"的属性将冒号附加到客户名称,然后是任务标题(其本身可以跟随另一个带有子任务标题的冒号等).我想知道我是否可以使用请求查询来获得更好的xml响应(例如,指定我想要返回的属性,并且可能强制为给定客户的每个任务创建子节点)......评论表示赞赏.