Module Designer - quandis/qbo3-Documentation GitHub Wiki
Create custom modules in QBO in less than 5 minutes using the Module Designer. In this walk through, we will:
- Create a new module by dragging and dropping an Excel spreadsheet
- Choose what QBO behaviors to apply to the module
- Modify the UI that QBO automatically creates, and
- Import data into the module
Create a new module
Designing a new module starts with a spreadsheet. From Design > Module Designer
, drop a spreadsheet on the 'Drag-and-drop document here' element. Ensure your spreadsheet:
- Has a file name with only letters and numbers
- Has columns containing letters and numbers (other characters will be stripped out)
- Contains some sample data (so we can infer data types)
The Object Type dropdown allows you to choose what core QBO module to inherit from:
- Abstract: allows for basic CRUD operations
- Generic: adds the ability to be a child of any other QBO module (via an
Object/ObjectID
pattern) - Contact: generic module that inherits from the Contact module
- Process: generic module that inherits from the Process module.
Table Options
Step 2 of the Module Designer presents the structure of the SQL table based on the data read from the spreadsheet. Generally, this SQL should be left alone. Advanced DBAs may choose to tweak data type or foreign keys, but such choices are beyond the scope of this walk through.
Table options include:
- Create a history table and corresponding trigger to track changes for a record
- Create a trigger to remove any associated Linked Objects when a record is deleted
- Create a trigger to remove any associated Subscriptions when a record is deleted
- Create a trigger to enforce configured state transitions
- this is possible only for tables with a
Status
column
- this is possible only for tables with a
- Create a link in the Main Menu for navigation
Import Operation
Step 3 prompts you to choose how QBO deals with data being imported:
- Append: all records imported will be appended to the table
- Autobind: QBO will compare data being imported to existing data, updating matches and inserting everything else
- for example, if you bind on Address+Zip, importing the same address+zip multiple times results in 1 record
- Truncate: QBO will delete all existing records, when importing a new batch of records
That's it. You now have a new module, which can be configured and extendedhttps://github.com/quandis/qbo3-Documentation/wiki/extensions-api like all QBO modules. You may now use the power of QBO to do things like:
- Manage documents associated with records in your module
- Create and assign tasks to work with records in your module
- Configure and launch workflows for records in your module
At the end of the Module Designer wizard, if you get a series of 'Oops. Please try again later.' error messages, press Ctrl-F5 in your browser. This is an artifact of QBO having create new Javascript for your module, but your browser has the older, cached version of Javascript.