5

私は 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();

「顧客のリストを取得するためのコード」を記入してくれる人はいますか? 事前にどうもありがとうございました!

ビクター

4

3 に答える 3

8
customers.IncludeRetElementList.Add("IsActive");
customers.IncludeRetElementList.Add("ListID");
customers.IncludeRetElementList.Add("EditSequence");
customers.IncludeRetElementList.Add("Name");
customers.IncludeRetElementList.Add("ParentRef");

上記のリストで指定されたフィールドのみが QuickBooks から返されます - 正しい大文字と小文字の正しい文字列を使用することが非常に重要です - 何かが間違っていてもエラー メッセージは表示されません。サブフィールドを指定することはできません (例: Address ブロック内の City。Address ブロック全体を取得する必要があります)。カスタム フィールドの場合は、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
于 2013-08-20T19:49:52.093 に答える
7

わかりました、不足しているピースを見つけたようです:

ICustomerQuery customers = customerSet.AppendCustomerQueryRq();

これにより、各顧客に関連するすべてのデータが生成されます。これは一歩前進です。顧客の XML を解析することは非常に簡単ですが、各顧客の個々のタスク/ジョブを解析するのは面倒です。各タスクにはサブノードがないためです。基本的に、すべての基本的な顧客情報 (住所、請求書住所、配送先住所など)、次に、「FullName」と呼ばれるこの 1 つのプロパティが、顧客名にコロンを追加し、その後にタスク タイトルが続きます (サブタスク タイトルなどを含む別のコロンをその後に続けることができます)。より良い xml 応答を得るために、リクエスト クエリで何か巧妙なことができるかどうか疑問に思っています (たとえば、返されるプロパティを指定し、特定の顧客の各タスクのサブノードの作成を強制するなど)...

于 2009-07-23T19:34:39.580 に答える