2013-02-07 91 views
2

我有一個asp.net應用程序,我想將它連接到快速書籍桌面版,在web應用程序中,我想要做到以下幾點: 1-從quickbooks獲取客戶列表。 2-創建新發票並保存發送到快速書本。集成asp.net應用程序與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(); 
      } 
     } 

}

回答

1

,我發現這個網頁:QuickBooks Integration (Mad Computer Scientist)

它說,你可以使用任何東西:你需要指定的應用標識ID和姓名

當打開一個連接。這將在QuickBooks中顯示給用戶以允許/禁止訪問。這些都是字符串,據我所知,沒有檢查運行,允許用戶把任何他們關心的東西放在這裏。

「向用戶顯示」位意味着如果您在ASP.NET服務器上使用此選項,則可能需要使用AutoIt或類似命令來關閉對話框!

+1

那篇文章非常糟糕 - 它充滿了不準確之處。在一個快速的洞察,一些明顯的錯誤:「QuickBooks API是一個旨在失敗默默。」 (不,它總是會給你一個錯誤信息,他只是沒有正確處理錯誤)「......最低要求和限制......這些沒有記錄在我能找到的任何地方。」 (OSR:http://developer.intuit.com/qbsdk-current/common/newosr/index.html)等等。Ick。 –

4

您使用COM的方法可能不起作用。

QuickBooks SDK/API有點愚蠢,因爲它使用Windows COM GUI消息泵來執行實際上與QuickBooks進行通信的骯髒工作。這意味着Windows GUI 必須才能與QuickBooks進行數據交換。

這對你來說是一個問題,因爲你正在構建一個web應用程序......它將在IIS內運行,因此不會有Windows GUI會話可用。

如果你正在構建一個SaaS應用,是我們的目標是允許多個其他人自己的QuickBooks文件連接到Web應用程序:

考慮看Intuit Partner Platform/Intuit Anywhere。請注意,這僅適用於SaaS類型的應用程序。基本思想是人們將他們的QuickBooks數據文件同步到Intuit的雲中,然後您可以使用REST Web服務交換數據。

Intuit甚至提供了一些有用的DevKits,它們提供了一些示例代碼和對象/方法來進行數據交換。

否則,如果你不打算在任何地方忒路線,看看QuickBooks的Web連接器:

QuickBooks的Web連接器的全部要點是讓像你正在做一個整合。

以下是the QuickBooks Web Connector的好概覽。它基本上是QuickBooks本身可以理解的qbXML模式的簡單SOAP包裝器。

如果您下載QuickBooks SDK,則此文件夾中有一些示例代碼: C:\ Program Files(x86)\ Intuit \ IDN \ QBSDK12。0 \ samples \ qbdt

那裏有Web連接器的.NET示例代碼,這應該是有幫助的。

+0

+1這是很好的建議 –

相關問題