>
> I am experimenting now with two approaches. One is to use Quickbooks SOAP web
> connector, and the other is to use QODBC plugin available at qodbc.com
> <http://qodbc.com/>. QODBC eliminates the Quickbooks SDK and provides
> transparent access. I have been able to connect to Quickbooks Desktop using
> both tools. I am leaning towards the plugin. QODBC also has great
> documentation.
I took a fairly close look at QODBC and decided to work with the SDK
directly from 4D instead. One, because QODBC had a cost and two, I decided I
did not want to depend on a 3rd party plugin. QODBC is basically a wrapper for
the SDK. Since 4D has everything needed to create the requests and receive the
responses I decided to use the SDK directly. I just needed to figure out how to
create and use the QuickBooks COM object. I was replacing an old 4D plugin
called QBManager4D that did all the COM work. Got to say it was a fun project
working with PowerShell and Windows COM objects.
>
> Technically, if you use the soap web connector communication is always
> initiated from Quickbooks. It sends a message to the 4D database on a timer
> asking for work to do, so you could ask it for changes since the last
> exchange of information and synchronize. The timer can be set to a small
> interval so that it is practically real time. Both the web connector and
> QODBC have read/write access and will work even when Quickbooks is closed
From what I was able to gather when I was investigating my options, the
SOAP communication was initiated by Quickbooks but it wasn’t doing anything but
opening a connection with the integrated app (4D) after which all
communications was done via requests from the integrated app. For my purposes I
needed to have the 4D end user open the connection to send and receive
transactions only when needed by the end user. My understanding is that no
matter how the connection is initiated, after the connection is made,
communication between 4D and Quickbooks is done entirely from 4D requests. No
matter which method you use QODBC, SOAP, or using the SDK directly via COM you
will have read/write access even when Quickbooks is closed. Using the SDK/COM
approach each request opens a connection, sends a request, receives data
response, then closes the connection.
I see no reason that your approach shouldn’t work just fine as long as
it gives you the flexibility you require.
John
>
>
>
>> On Jan 23, 2017, at 6:00 PM, John Baughman <[email protected]> wrote:
>>
>>
>>> On Jan 23, 2017, at 9:48 AM, Kevin Abraham <[email protected]> wrote:
>>>
>>> As for the Desktop App, the way integration here works (and you may have
>>> several options, I did not write our App and it is quite old) is that
>>> Intuit has an SDK which can be used in Visual Studio (in our case) to
>>> create a Windows EXE which can then be called by 4D. So with QB launched
>>> (in our case, there are other security options here) the user can run a 4D
>>> Method which drops and XML file in a preset location. 4D then Launches the
>>> EXE which we call QBXMLAgent. QBXMLAgent then reads the XML and does all
>>> the communication with QB’s and returns an XML file for 4D to the same
>>> preset location. Note, NO ODBC setup is required to make this work. Only
>>> that the EXE be present on the Windows machine in preset path where 4D
>>> calls. it.
>>
>>
>> Similar to how Kevin uses Visual Studio, you can use Windows PowerShell. 4D
>> creates and executes the Power Shell scripts that sends and/or receives data
>> to and from Quickbooks. As noted these scripts are very simple and well
>> documented in the Intuit Quickbooks SDK. if QB is installed on the same
>> machine as 4D Server or Client you can talk directly to QuickBooks desktop
>> from either 4D server or client. Intuit provides Client/Server utility apps
>> that allow 4D Server or 4D client to talk QB installed on different machines
>> than 4D. I have a 4D Client/Server/Quickbooks solution deployed that works
>> seemlessly using PowerShell which allows the users to set there systems up
>> in whatever configuration works best for the end user.
>>
>> I have never tried it but, if I remember correctly there is also a web
>> service option allowing you to talk to QB Desktop over the internet. I have
>> not worked with the QB OnLine.
>>
>> The communication is always 4D initiated. I do not know of any way to
>> exchange data with 4D initiated from QuickBooks Desk Top.
>>
>> John
>> **********************************************************************
>> 4D Internet Users Group (4D iNUG)
>> FAQ: http://lists.4d.com/faqnug.html
>> Archive: http://lists.4d.com/archives.html
>> Options: http://lists.4d.com/mailman/options/4d_tech
>> Unsub: mailto:[email protected]
>> **********************************************************************
>
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ: http://lists.4d.com/faqnug.html
> Archive: http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub: mailto:[email protected]
> **********************************************************************
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive: http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************