2

私はasp.netアプリケーションを持っていて、それをquickbooksデスクトップ版に接続したい.Webアプリケーションで以下をしたい.1-quickbooksから顧客リストを取得する. 2- 新しい請求書を作成して保存し、quickbooks に送信します。

これはサンプル コードで見つけたものですが、(sessionManager.BeginSession("", ENOpenMode.omDontCare);) の AppId パラメータに設定する必要がある値を知りたいです。

private void getCustomers()
{
bool sessionBegun = false;
        bool connectionOpen = false;
        QBSessionManager sessionManager = null;

        try
        {
            //Create the session Manager object
            sessionManager = new QBSessionManager();

            //Create the message set request object to hold our request
            IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US", 8,      0);
            requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

            //Connect to QuickBooks and begin a session
            sessionManager.OpenConnection(@"D:\A to Z Wholesale Inc.QBW", "QuickBooks Integration Demo");
            connectionOpen = true;
            sessionManager.BeginSession("", ENOpenMode.omDontCare);
            sessionBegun = true;

            ICustomerAdd customerAddRq = requestMsgSet.AppendCustomerAddRq();
            customerAddRq.Name.SetValue("Amer");
            ICustomerQuery customer = requestMsgSet.AppendCustomerQueryRq();
            //Send the request and get the response from QuickBooks
            IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);
            IResponse response = responseMsgSet.ResponseList.GetAt(0);
            ICustomerRet customerRet = (ICustomerRet)response.Detail;
        }
        catch (Exception ex)
        {

        }
        finally
        {
            //End the session and close the connection to QuickBooks
            if (sessionBegun)
            {
                sessionManager.EndSession();
            }
            if (connectionOpen)
            {
                sessionManager.CloseConnection();
            }
        }

}

4

2 に答える 2

5

COM を使用したアプローチはおそらく機能しません。

QuickBooks SDK/API は、Windows COM GUI メッセージ ポンプを使用して、実際に QuickBooks と通信するという厄介な作業を行うという点で、少しばかげています。つまり、QuickBooks とのデータ交換を行うには、Windows GUIが必要です。

IIS 内で実行される Web アプリケーションを構築しているため、これは問題になるでしょう。そのため、Windows GUI セッションを使用できません。

SaaS アプリケーションを構築している場合、他の複数のユーザーが自分の QuickBooks ファイルを Web アプリケーションに接続できるようにすることが目標でした。

Intuit Partner Platform/Intuit Anywhereを見ることを検討してください。これは SaaS タイプのアプリでのみ使用できることに注意してください。基本的な考え方は、QuickBooks のデータ ファイルを Intuit のクラウドに同期し、REST Web サービスを使用してデータを交換できるというものです。

Intuitには、データ交換を行うためのサンプル コードとオブジェクト/メソッドを提供する便利なDevKitもあります。

それ以外の場合、Intuit Anywhere ルートに行かない場合は、QuickBooks Web コネクタを見てください。

QuickBooks Web コネクタの要点は、あなたが行っているような統合を可能にすることです。

QuickBooks Web Connector の概要は次のとおりです。これは基本的に、QuickBooks がネイティブに理解する qbXML スキーマの単純な SOAP ラッパーです。

QuickBooks SDKをダウンロードすると、次のフォルダーにいくつかのサンプル コードがあります: C:\Program Files (x86)\Intuit\IDN\QBSDK12.0\samples\qbdt

そこには Web コネクタの .NET サンプル コードがあり、参考になるはずです。

于 2013-02-07T22:54:09.140 に答える
1

以下の@Keith Palmer Jr.の回答を見ることをお勧めします。これは、これよりもはるかに役立ちます。これは承認されたので削除できません。

元の答え:

次のWeb ページを見つけました: QuickBooks Integration (Mad Computer Scientist)

これは、何でも使用できると言っています:

接続を開くときは、アプリケーション識別 ID と名前を指定する必要があります。これは、QuickBooks でユーザーに表示され、アクセスを許可/禁止します。これらは文字列であり、私が知る限り、チェックは実行されないため、ユーザーはここに好きなものを入れることができます。

「ユーザーに表示」ビットは、ASP.NET サーバーでこれを使用している場合、AutoIt などを使用してダイアログ ボックスを閉じる必要があることを意味します。

于 2013-02-07T22:37:45.160 に答える