查询工作信息

时间:2016-06-17 16:56:55

标签: quickbooks qbxml

我正在查看“屏幕参考”,看看是否有查询作业的XML请求。我发现只有客户查询请求CustomerQueryRq,并且它也不会返回它拥有的子作业。

假设这是客户和&就业中心看起来像:

- Customer 1
  -- Job 1
  -- Job 2
  -- Job 3

我能够使用CustomerQueryRq并获取Customer 1的详细信息,但找不到任何用于检索Job 1的内容。

所以我的问题是我如何查询工作并获得它的父客户?我真的很感激任何帮助。

编辑:发布我的QBXML请求:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
   <QBXMLMsgsRq onError="continueOnError">
      <CustomerQueryRq requestID="1">
         <FullName>Customer name</FullName>
      </CustomerQueryRq>
   </QBXMLMsgsRq>
</QBXML>

Customer name有子作业,我想查询这些作业。

1 个答案:

答案 0 :(得分:1)

ICustomerQuery返回Jobs列表以及Customers列表。作业没有单独的查询对象。每个工作都有一个客户作为父母。因此,您还可以检索作业的关联客户。 这是一个例子:我的公司文件中有一个与客户 C1 关联的作业 J1 。在下面的C#代码示例中,我创建了一个客户查询对象(使用QB SDK 13.0)并迭代结果。我在客户列表中得到两个结果(C1和J1):

using QBXMLRP2Lib;
using Interop.QBFC13;

public class SDKApp
{

private QBSessionManager sessionMgr;

public SDKApp()
{
    // in the class constructor - sessionMgr is a member variable
    sessionMgr = new QBSessionManager(); 
}

public void GetData()
{
// open connection and begin session before data fetch - intentionally skipped this code

// during data fetch
IMsgSetRequest msgset = sessionMgr.CreateMsgSetRequest("US", 13, 0);
ICustomerQuery customerQuery = msgset.AppendCustomerQueryRq();
IMsgSetResponse msgRes = sessionMgr.DoRequests(msgset);
IResponseList responseList = msgRes.ResponseList;
if (responseList.Count > 0)
{
    IResponse response = responseList.GetAt(0);
    ICustomerRetList customerList = response.Detail as ICustomerRetList;
    for (int i = 0; i <= customerList.Count - 1; i++)
    {
        ICustomerRet qbCustomer = customerList.GetAt(i);
        string displayName = qbCustomer.Name.GetValue();
        string entityType = "Customer";
        if (qbCustomer.ParentRef != null)
        {
            entityType = "Job of " + qbCustomer.ParentRef.FullName.GetValue();
        }
        Console.WriteLine(displayName + " " + entityType);
    }
}

// end session and close connection after data fetch - intentionally skipped this code
}

}