...
- Defining New Entities: The Motor Loaner application includes 15 entities (13 top-level entities and 2 two sub-type entities). See Creating Developing for Entities for for information on how the Motor Loaner application were created. Also, see Motor Loaner System About the Design Specifications for the Motor Loaner Sample Application for information on the intended purpose from a design perspective for each of these entities.
- Writing Field Level Validation Scripts: Aptify's Generic Entity (GE) includes standard field level validation (as well as range-based validation for date and numeric fields). If needed, a developer can specify additional logic at the field level by writing a validation script in the VBScript scripting language. See Adding Developing Field-Level Validation for Scripts for details. The following fields use a validation script in the Motor Loaner application:
- Email Field in Associates and Customers Entities: This field includes a validation script that compares the value provided by a user against a regular expression to determine if the email address is in an acceptable format.
- Vehicle Models Entity's Year Field: This field's validation script enforces a business rule that only allows only vehicle models between 10 years old and 1 year greater than the current year to be added to the system.
- Vehicles Entity's VIN Field: This field includes a validation script that ensures that the value provided by a user is in the proper Vehicle Identification Number (VIN) format. Specifically, the script ensures that the value is 17 characters long does not contain these characters: o, O, i, I, u, or U.
- Vehicles Entity's VehicleStatusID Field: This field's validation script automatically sets the vehicle's status automatically each time the record is saved.
- Vehicles Entity's DateDisposed and DisposalMethod Fields: These fields contain a validation script which ensures that when one field is set, in addition to that the other field must be set. (In other words, if a user enters a Date Disposed for a vehicle, In addition to that user must select a Disposal Method.)
- Creating an Entity Plug-In Object: If an organization wants to implement specialized business logic for an entity beyond what is provided by Aptify, a developer can write an entity plug-in object to apply additional functionality beyond the standard implementation. See Creating Developing Entity Plug-in Objects for for details. The sample application includes the following entity object examples (including source code):
- Rental Agreements Entity: This entity includes an entity plug-in that manages the state of the Rental Agreement (for example, vehicle check-in fields cannot be modified during check-out) and provides validation to ensure that a vehicle's rental dates do not overlap and that the ending mileage is greater than or equal to the starting mileage.
- Service Tickets Entity: In the Motor Loaner application, the system automatically updates a vehicle's status once servicing is complete using a process flow. However, this same functionality can be implemented in an entity object. The sample application includes the source code for an entity object that implements this behavior for illustration purposes Note: (note that this entity object is not used within the sample application though).
- Creating a Duplicate Checking Object: The Aptify Framework supports the ability to define duplicate checking behavior on an entity-by-entity basis by linking a duplicate check plug-in object to an entity. See Creating Developing Duplicate Check Objects for for details. The sample application includes the following duplicate check object examples (including source code):
- Customers Entity: This entity includes a plug-in that checks for duplicate customer records, using the following logic:
- An existing record that matches a new record's First Name, Last Name, and phone number is flagged as an exact match.
- Existing records that match a new record's First Name and Last Name (but not phone number) are flagged as potential duplicates.
- Vehicle Models Entity: This entity includes a plug-in that checks for duplicate vehicle models, using the following logic:
- An existing record that match a new record's Year, Model Name, and Manufacturer is flagged as an exact match.
- Existing records that match a new record's Model Name and Manufacturer (but not year) are flagged as potential duplicates.
- Customers Entity: This entity includes a plug-in that checks for duplicate customer records, using the following logic:
Creating a Code-Based Wizard: A developer can create code-based wizards to assist users with process-orientated tasks. See
Creating Wizards forDeveloping Code-Based Wizards for details. The sample application includes a Vehicle Check-Out Wizard and a Vehicle Check-In Wizard to streamline the vehicle rental process. These wizard are linked to the Rental Agreements entity.
Note: that theNote The source code for both wizards are included with the sample application.
- Designing Form Templates: Aptify's form template technology and design in place Visual Designer provide developers with a powerful toolset to create and modify generated form templates. See Designing Developing Form Templates for for details. The sample application includes the following form configurations:
- Address and Phone Controls: The generated form templates for the Associates, Customers, and Manufacturers entities have been modified to use the standard Addresses and Phonies controls.
- Vehicle Models Form: The generated Vehicle Models form has been modified to add a Picture control (to support vehicle photos) and an Inventory Tab (a List View showing vehicles of a particular model).
- Vehicles Form: The generated Vehicles form has been modified to add a top area, to disable the Vehicle Status link box (to prevent users from changing a vehicle's status manually) and two tabs that display list views (one displaying Service Tickets linked to the vehicle and one displaying Rental Agreements linked to the vehicle).
- Rental Agreements Layout Control: The sample application includes a layout control for this form to disable fields that are not applicable depending on the rental agreement's status (for example, Check-in fields are disabled for vehicles that have not been checked out yet). The logic that prevents modification to fields based on record state is implemented in the Rental Agreements entity object but the layout control enforces this behavior visually at the user interface.
- Associates and Manufacturers Layout Control: The sample application includes these layout controls that disable the Addresses control's drop-down menu (since the entities' only support one address) and disables the address fields on the Associates and Manufacturers forms for members of the Users group, who have Read only permissions to these entity's in the sample application's security model.
- Designing Process Flows: Aptify's Process Pipeline infrastructure provides an organization with the ability to define and modify business logic and process flow through the use of an intuitive graphical user interface. All functionality within Aptify's business applications are delivered in the form of logical components, which are combined into process flows and associated with events throughout the application. The Aptify Process Pipeline architecture provides the ability to define extremely granular components that perform very specific actions. These components are then combined to form complete process flows. Administrators with knowledge of the system may make these process flow modifications through the use of a graphical user interface rather than by writing code. See Designing Developing Process Flows for for details. The sample application provides three sample process flow and events:
- Service Ticket Generation Process Flow (fired BeforeCommitTransaction for Rental Agreements): This four-step process flow uses a combination of
- Process Flow Step Rules and Components to automatically generate Service Tickets for vehicles that are either damaged or require scheduled maintenance during the check-in process.
- Service Ticket Approval Alert Process Flow (fired BeforeCommitTransaction for Service Tickets): This two-step process flow uses a Rule to identify if a Service Ticket is being saved as Completed, and if so, the process flow sends an e-mail notification to a manager that the vehicle is ready for release back to the fleet, pending approval.
- Vehicle Status Updater Process Flow (fired AfterSave for Service Tickets): This two-step process flow automatically updates a vehicle's status when it enters or exits the service department. In addition to that this functionality is demonstrated in the Service Ticket entity object (the source code for this object is included with the sample application but is not attached to the Service Ticket entity).
- Promoting Business Intelligence: The Aptify Framework includes a comprehensive set of reporting tools to help users and decision makers evaluate the data stored in the - system. This includes four types of views, support for Crystal Reports, and Dashboards, which consolidate related information into a single window for easy access. See Promoting Business Intelligence for for more information on developing views, reports, and dashboards. The sample application includes several examples of these - features.