Skip to content

Releases: Bonitasoft-Community/credit-card-dispute-resolution

2.0.1

22 Aug 08:59
Compare
Choose a tag to compare
  • Remove commons-lang3 dependency from configuration

2.0.0

04 Aug 09:37
Compare
Choose a tag to compare

Migration to 2021.2

Project is now composed with the following extensions:

1.0.0

03 Dec 09:28
Compare
Choose a tag to compare

1.0.0 (2019-12-03)

Bug Fixes

  • Theme: Add font-awesome in custom theme to properly display the default layout page in Bonita 7.9.1 and above

1.0.0 RC (2019-10-28)

Bug Fixes

  • Dependencies: jfairy jar dependency has been updated to remove Guava from the uber jar. Guava 19.0 is provided in the parent Classloader.

Features/Improvements

  • Tutorial: Add an error toast if data initialization fails
  • Tutorial: If the DataInitialization process is not deployed, the Create customers, accounts, transactions and disputes button is disabled
  • Tutorial: Depending on the Bonita version, the deployment and handler activation instructions change.
  • Tutorial: Bonita and application version is displayed.
  • Tutorial: Do not display the Data initialization section if data is already initialized.
  • Generic forms: Increase text area default height.
  • Update parameters: Use a word case for parameter names.
  • Update parameters: Only display business parameters. Technical parameters must be prefixed by an _.
  • Dispute and Customer info fragments: Use a custom Panel widget based on bootstrap panel that supports buttons (for customer account details)
  • Credit Card Dispute Process: Add an email connector on the Chargeback task to notify the customer.
  • Environment: use the Local environment instead of the Development to ease the first Deploy operation.
  • Packages: use a unique package name com.company.creditcard.dispute for BDM and sources

1.0.0 RC

28 Oct 16:23
Compare
Choose a tag to compare
1.0.0 RC Pre-release
Pre-release

1.0.0 RC (2019-10-28)

Bug Fixes

  • Dependencies: jfairy jar dependency has been updated to remove Guava from the uber jar. Guava 19.0 is provided in the parent Classloader.

Features/Improvements

  • Tutorial: Add an error toast if data initialization fails
  • Tutorial: If the DataInitialization process is not deployed, the Create customers, accounts, transactions and disputes button is disabled
  • Tutorial: Depending on the Bonita version, the deployment and handler activation instructions change.
  • Tutorial: Bonita and application version is displayed.
  • Tutorial: Do not display the Data initialization section if data is already initialized.
  • Generic forms: Increase text area default height.
  • Update parameters: Use a word case for parameter names.
  • Update parameters: Only display business parameters. Technical parameters must be prefixed by an _.
  • Dispute and Customer info fragments: Use a custom Panel widget based on bootstrap panel that supports buttons (for customer account details)
  • Credit Card Dispute Process: Add an email connector on the Chargeback task to notify the customer.
  • Environment: use the Local environment instead of the Development to ease the first Deploy operation.
  • Packages: use a unique package name com.company.creditcard.dispute for BDM and sources

1.0.0 Beta

16 Oct 13:22
Compare
Choose a tag to compare
1.0.0 Beta Pre-release
Pre-release

Credit card dispute resolution

This repository contains a Bonita project that leverage Adaptive Case Management with Bonita.
It is an example application of a credit card dispute resolution application.

Bonita compatibility

1.x versions are compatible with Bonita 7.9.0 and above (Enterprise editions only).

Enable ACM event handler

Go in the preference of your Studio, in the Server settings category, in Tomcat JVM arguments, set the com.bonitasoft.engine.plugin.acm.REGISTER_ACM_HANDLER property to true (false by default)

Deploy the application

  1. Set the default environment to Development (Right-click on Environments > Development.xml file and Set as active environment)
  2. Deploy the Rest API extension
  3. Deploy all the processes
  4. Open the credit-card-dispute-resolution.xml application descriptors and click on the overview URL
  5. Follow the instructions of the tutorial

Project content

Organization

Reuse the default ACME organization.

Business Data Model

  • Dispute : A simple representation of a dispute. A dispute instance is always bound to a Credit Card Dispute case. An instance can be updated using the Update Dispute discretionary task.
  • Account: The account of the customer claiming a dispute.
    • AccountTx: Represents a transaction on an Account.
  • Customer: Customer information

Profiles

Reuse the default profiles

Application descriptors

  • credit-card-dispute-resolution.xml : The application descriptor for the application. The default Bonita layout is used for this app. A Tutorial page is used as landing page to present the application example.

Diagrams

  • Credit Card Dispute: The main process for this example.
  • Data Initialization: A helper process used for demonstration and testing purposes. It is a fully automated process that can be start from the Tutorial page instantiating fake Customers, their Accounts and some running cases.

Groovy scripts

  • ACMStates.groovy: Utility class with the ACM states constants
  • DisputeStates.groovy: Utility class with the Dispute states constants
  • DataUpdateRecorder.groovy: Utility class used when updating Dispute data or Parameters to track the values changes.
  • com.company.scenario package: Contains the logic to execute Credit Card Dispute process scenario

Forms and Pages

Pages

  • CaseList : List active and archived dispute cases. Process initiator actor (Customer Service) can start a new Dispute from this page.
  • Case: An overhaul case view of a Dispute case.
  • ExecuteManualTask: A generic page use to execute Manual task. Manual tasks are tasks created during the case execution.
  • Tutorial: The tutorial page presenting the application and how to use it.

Forms

  • AddCommentForm: A generic form submitting the task and attaching a comment on the case.
  • EditDispute: The form used to update the Dispute information.
  • DisputeInfo: The form used by Customer Service to create a new Dispute.
  • UpdateParameters: The form used by the Supervisor to update the parameters of the Credit Card Dispute process (currently the reviewAmountThreshold parameter).
  • ValidateDisputeForm: The form used by the Supervisor to approve or reject the dispute.

Custom widgets

  • HTMLDataTable: The default DataTable with HTML support added in cells.
  • Timeline: A timeline widget used in the Case page.
  • ButtonGroup: Create a bootstrap button group. Group buttons are defined using the buttons property.
    • JSON format of a button:
{
	"label" : "MyButton",
	"style" : "primary", /*could be "danger","warning","default" or "info"*/
	"action" : "POST", /*could be any of the standard button action "Open modal", "Close modal", "PUT", "GET", "DELETE", "Start process", "Submit task", "Add to collection", "Remove from collection"*/
	"url" : "../API/..", /*When action is GET,POST,PUT or DELETE*/
	"dataToSend" : {},
	"modalId" : "anModalId", /*When action is Open modal*/
	"closeOnSuccess" : true,
	"targetUrlOnSuccess" : "../home",
	"collectionToModify" : [], /*When action is Add to collection or Remove from collection*/
	"valueToAdd" : {},
	"removeItem" : {},
	"dataFromSuccess" : {}, /*Set if the request is successful*/
	"responseStatusCode" : 200, /*Set after the request is executed*/
	"dataFromError" : {} /*Set if the request is not successful*/
}
  • ToggleButtons: Toggle buttons used in the CaseList page to switch between active and archived cases.

Themes

  • creditCardTheme:
    • Customize the application logo.png and favicon.ico
    • Customize the link button color
    • Add custom css rule to define a light background container style
    • Add custom css rules to constrained maximum page with in _layout.scss
    • Add custom css rules for card style _card.scss
    • Add custom css rules for timeline style _timeline.scss

Rest API Extensions

  • GET API/extension/case?p=<INTEGER>&c=<INTEGER>&s=<STRING>: Retrieves the list of active Dispute cases (Dispute information are aggregated to case information). s parameter is used to filter result using search indexes.
  • GET API/extension/archivedCase?p=<INTEGER>&c=<INTEGER>&s=<STRING>: Retrieves the list of archived Dispute cases (Dispute information are aggregated to case information). s parameter is used to filter result using search indexes.
  • GET API/extension/caseActivity?caseId=<LONG>: Retrieves the list of the tasks for a given case.
  • POST API/extension/caseActivity: Create a new Task in a case. Payload: { "name", "caseId"}
  • GET API/extension/caseComment: Retrieves the of comments for a given case.
  • GET API/extension/caseHistory?caseId=<LONG>: Retrieves the case history for a given case.
  • GET API/extension/caseDocument?caseId=<LONG>: Retrieves the documents for a given case.
  • DELETE API/extension/caseDocument?documentId=<LONG>: Deletes the document with the given id.
  • GET API/extension/dispute?caseId=<LONG>: Retrieves the Dispute informations for a given case.
  • GET API/extension/customerInfo?caseId=<LONG>: Retrieves the Customer informations for a given case.
  • GET API/extension/createDisputeAuthorization: Return if the logged user can start a new dispute case.
  • POST API/extension/userTask: Submit the task with taskId and add a comment to the case content is provided. Payload: { "taskId", "content" }

Environments

Development.xml : a configured environment with example values (actor mapping, parameters...)