coreBOS Updater is a revolutionary way of creating and maintaining software as I have discussed in the past. In this blog post, I will uncover some of the undocumented features that make it a breeze to customize new installs while keeping up with the ongoing project.

Updater permits us to use the vtlib API and direct database access to make any modifications we may need inside a running coreBOS. During the time we have been using this feature we have found the need to create helper methods which mostly are about mass operations made easy. Let's see some of these operations.

Mass Actions

A usual task when starting a new project with coreBOS is to create and hide fields. After the initial analysis meeting, you will have a list of fields that you will either have to hide or delete and another list with the ones you have to create

  • massCreateFields($fieldLayout)

This function accepts an array with modules, blocks and field definitions and will create the blocks if they do not exist, and all the fields inside those blocks. The structure of the array is rather simple as can be seen here It supports uitype 10 capture fields and picklists permitting to assign all necessary values. You can find some examples in the build/changeSets directory, specifically this one

  • massHideFields($fieldLayout)

This function accepts an array with modules and fields and will hide them all globally. The structure of the array is simple as can be seen here.

  • massDeleteFields($fieldLayout)

This function accepts an array with modules and fields and will delete them. The structure of the array is simple as can be seen here. You can find some examples in the build/changeSets directory, specifically this one

  • massMoveFieldsToBlock($fieldLayout, $newblock)

This function accepts an array with fields and a block. It will move all the fields to the indicated block. The block MUST exist.

  • orderFieldsInBlocks($fieldLayout)

This function accepts an array with modules, blocks and fields and will order them. You can find some examples in the build/changeSets directory, specifically this one

Some other useful functions are:

  • deleteWorkflow($wfid)
  • deletePicklistValues($values, $tableName, $moduleName)
  • deleteAllPicklistValues($tableName, $moduleName)
  • setQuickCreateFields($moduleName, $qcfields)
  • convertTextFieldToPicklist($fieldname, $module, $multiple = false)
  • setTooltip($tooltips)
  • removeAllMenuEntries($module)
  • installManifestModule($module)
  • isModuleInstalled($module)

Updates without coding

A few months ago we enhanced coreBOS updater to permit implementors to use some of these advanced functions directly creating records.

The concept is simple: you can now create, update, and delete some coreBOS updater records. These manual updates must contain a JSON formatted structure that coreBOS Updater will recognize and execute.

The supported JSON formats are all the high-level helper methods we describe above, and you can read all the details, with some examples, in our documentation wiki.

Don't hesitate to reach out to us if you think we should add any other functionality or you need any help with any of the existing functions.

Have fun!

unsplash-logoPhoto by Daniele Levis Pelusi on Unsplash

Previous Post Next Post