QBO Module
Purpose of the QBO Module
This module is responsible for communicating with QuickBooks Online. It doesn't know your FileMaker data model and doesn't need to. All the "packaging" of JSON for this module is done by the LedgerLink API. As stated in the Scripts Organization article, the lower the script is listed in the Script Workspace, the less it knows about your FileMaker solution. Here in the QBO Module, we don't know anything about the FileMaker solution. In fact, the QBO Module is within the Modules folder to communicate how separated it is from the solution's structure.
The QBO Public Folder
The scripts in this folder are called by the LedgerLink API's Private scripts.
- Read ({Entity , QBOId }) given an Entity and its QBOId this script constructs a read request and passes it to the Send QBO Request script. It returns the $result to whatever script called it.
- Send FMData to QBO ({Entity, Data}) given an Entity and JSON data, this script constructs a post request and passes it to the Send QBO Request script. It returns the $result to whatever script called it.
The QBO Private Folder
These are the lowest level scripts for communicating with QBO. For example, the _Send Request script is a wrapper for the HTTP ( { request } ) script. That's about as uncoupled from your solution as you can get!