Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This plugin was created to solve use cases where we need to perform post-processing of the JSON response of a JSON API call in before storing the data into a form or workflow variable. 

The configurations are exactly similar to the default bundled JSON Tool in Joget, just with an additional optional property to write bean shell a BeanShell script to format/modify the JSON response. The post-processed/formatted response is also returned at the end of the the execute() method for further integration use case.

This plugin works just like the default bundled JSON Tool in Joget, but with the following added abilities:-

  • with GET, PATCH, PUT, and POST methods.
  • Send files in POST method.
  • Receive file and store into a Joget form file upload.

The plugin source codes can be found at JogetOSS Github. Feel free to clone and customize to suit your needs.

...

Note
iconfalse

To learn how to configure the JSON Tool plugin, do see the KB page for for JSON API Tool.

This plugin's configuration is identical, only with the additional configurable properties below.

Image Added

Figure 1: Connection Timeout and Socket Timeout Properties

NameDescription
Connection TimeoutSpecifies the maximum time (in seconds) that the client will wait to establish a connection with the server. If the connection cannot be established within this time, an error will be thrown and logged.
Socket TimeoutSpecifies the maximum time (in seconds) that the client will wait for a server response after the connection is established. If no response is received within this time, an error will be thrown and logged.

Format Response

Info
titleImportant

You can only see this property if you select JSON for your Response Type.

NameDescription
Enable Response FormattingWhen checked, you can start writing
bean shell
a BeanShell script to format/post-process the JSON response.
Script

The "Enable Response Formatting" property must be enabled in order to write

bean shell

the BeanShell script here.

Injected Variables:

  • data - This is a Map object of the JSON response from the JSON API call.

Expected Return Object:

It is expected to return a Map object that would later on be processed as configured to store to form and/or workflow variables.

Example:

Return the response only for the first item in a JSON array with the object name

of

"apps".

Code Block
languagejava
return data.get("apps")[0];

Image Added

Figure 2: Enable Response Formatting

Download Sample App

APP_jsonEnhanced_toolJSON_dx_kbTool.jwa

Notes:

  • This sample app already includes does NOT include the Enhanced JSON Tool plugin. So just import Please install the latest plugin into your Joget server and start usingat Releases · jogetoss/enhanced-json-tool (github.com).
  • The API Domain Whitelist / API IP Whitelist setting in General Settings needs to be configured to allow JSON API requests, in order for this sample app to work.

...