# Creating MOs and Maintenance Transactions

A typical development of a new MO and its corresponding maintenance transaction entails the following steps:

- Create database objects, e.g., tables, indexes, etc.
- Enter database type of meta-data using online application from the Admin Menu. This includes:
  - Field
  - Table
  - Table/Field
  - Constraints
- Enter MO meta-data using the online system from the Admin Menu.
- Create the entity, changeHandler, and maintenance impl (implementation) classes using Eclipse.
- Generate artifacts based on the impl classes using the Artifact Generator. The artifact generator must also be executed whenever annotations and/or meta-data are changed.
- Add business rules on either the entity or changehandler using Eclipse.
- Create business components, if necessary, in Eclipse.
- Create test classes and then execute JUnit tests in Eclipse.
- If necessary, update maintenance impl class annotation to include fields with derived values using Eclipse. Regenerate artifacts after changing annotation. This generates the service metainfo.
- Add business logic on maintenance impl classes using Eclipse.
- Create maintenance test classes and then execute JUnit tests in Eclipse.
- Create search impl classes using Eclipse.
- Create search test classes and then execute JUnit tests in Eclipse.
- Create a new Maintenance Object from the Admin Menu -> Maintenance Object. This would automatically create the Tab Menus and Tab Pages necessary for a new transaction. This will also create the appropriate navigation key for each program component.
- Create javascript user exits for UI program components (tab menu, tab page, list grid, and so on.).
- Add security access to the new application service.
- Create Menu entry for new application service.
- Launch server and test the new application service.

Building General Purpose Maintenance Classes

The steps for developing general-purpose maintenance classes are like those for MO-based maintenance classes, as described above, but without the need to rely on entity or MO metadata.

- Create the maintenance impl (implementation) classes using Eclipse.
- Generate artifacts based on the impl classes using the Artifact Generator. The artifact generator must also be executed whenever annotations and/or meta-data are changed.
- Create business components, if necessary, in Eclipse.
- Create test classes and then execute JUnit tests in Eclipse.
- If necessary, update maintenance impl class annotation to include fields with derived values using Eclipse. Regenerate artifacts after changing annotation. This generates the service metainfo.
- Add business logic on maintenance impl classes using Eclipse.
- Create maintenance test classes and then execute JUnit tests in Eclipse.
- Create javascript user exits for UI program components (e.g. tab menu, tab page, list grid, etc.).
- Add security access to the new application service.
- Create Menu entry for new application service.
- Launch server and test the new application service.

Parent topic: Development Process