blob: 398c5e720874a96094cf8393e59d9bd8445626e7 [file] [log] [blame]
= Custom Business Steps
It is very easy to add your own business steps to Fineract's default steps:
1. Create a custom module (e. g. `custom/acme/steps`, follow the instructions on how to create a custom module)
2. Create a class that implements interface `org.apache.fineract.cob.COBBusinessStep`
3. Provide the custom database migration to add the necessary information about your business step in table `m_batch_business_steps`
.Business Step Interface
[source,java]
----
include::{rootdir}/fineract-core/src/main/java/org/apache/fineract/cob/COBBusinessStep.java[lines=19..]
----
== Business Step Implementation
.Custom Business Step Implementation Example
[source,java]
----
include::{rootdir}/custom/acme/loan/cob/src/main/java/com/acme/fineract/loan/cob/AcmeNoopBusinessStep.java[lines=19..]
----
As you can see this implementation is very simple and doesn't do much. There are some simple conventions though that you should follow implementing your own business steps:
1. Make sure the value returned by method `getEnumStyledName()` is unique; it's a good idea to choose a prefix that reflects the name of your organization (in this example `ACME_`)
2. You have more freedom for the value returned by `getHumanReadableName()`, but it's a good idea to keep this value as unique as possible
== Business Step Database Migration
.Business Step Database Migration Example
[source,xml]
----
include::{rootdir}/custom/acme/loan/cob/src/main/resources/db/custom-changelog/0001_acme_loan_cob.xml[lines=22..]
----
NOTE: See also chapter about batch jobs in this documentation.