The inbox service is an aggregation service which aggregates data of municipal services and workflow based on given complex search criteria and returns applications and workflow data in paginated manner. The service also returns the total count matching the search criteria.
This service allows to search both the module objects as well as processInstance
(Workflow record) based on the provided criteria for any of the municipal services. For this, it uses a module specific configuration which is stored in application.properties as a key value map, where the key is the businessService name while the value is the configuration map. An sample configuration is attached below -
Here, the key of the config map are the business services of PT module for which inbox has to be configured. Now, inside the search definition -
searchPath
- Points to the search URL of the municipal module
dataRoot
- This is the search response key that we get from module search, e.g. in Property module, the search response returns response objects inside “Properties” key.
applNosParam
- This is the parameter with which workflow search is called once the module objects are retrieved from module search. This parameter is the filed on which module table is joined with the workflow process instance table, e.g. in case of Property module it is “acknowldgementNumber”.
businessIdProperty
- This is the parameter with which we search module objects in case of empty moduleSearchCriteria
by performing the workflow search first. Again, this parameter is the field on which we join module table and workflow process instance table, e.g. in case of Property module it is “acknowldgementNumber”.
applsStatusParam
- This is the application status field name for the module upon which search is being performed, e.g. in case of Property module, it is “status”.
To provide pagination and total count across multiple modules, the inbox service is integrated with searcher. The searcher provides the list of ids and the total count of applications, based on those further enrichment is done by inbox service and results are returned to the API. Sample configuration link for PT and TL module is attached below: