Business logic is written in the Java programming language and stored in the database as Java Program Objects (JPOs). Each JPO is a Java class with one or more methods. These methods are used to populate the user interface, process entered data, and control the behavior of the application through the association of triggers which fire when certain events occur. The JPOs are delivered in pairs. The base JPO holds the out-of-the-box (OOTB) business logic delivered by ENOVIA and the derived JPO is where the customer places their business logic. The base JPO should not be modified. The derived JPO will not be overwritten when installing a new release.