ABAP Project - Greenfield Implementation - of a list report travel app by Yoga Rafinika
This application provides a comprehensive solution for managing travel reports, making it easier to track and report travel-related activities.
- List Reports: View and manage travel reports in a list format.
- Detailed Views: Access detailed information about each travel report.
- Search Functionality: Quickly find specific travel reports using the search feature.
- User-Friendly Interface: Intuitive and easy-to-navigate user interface.
- ABAP Integration: Leverages the power of ABAP for efficient data processing and reporting.
The application follows the ABAP RESTful Application Programming Model (RAP), which includes the following components:
- Business Object (BO): Defines the data model and business logic.
- Service Definition: Exposes the BO as a service.
- Service Binding: Binds the service to a specific protocol (e.g., OData).
Here is the simplified flight data model for this app.
A Travel entity defines general travel data, such as the agency ID or customer ID, the status of the travel booking, and the price of travel. The travel data is stored in the database table ZYR_TRAVEL
.
A Booking entity comprises general flight-and booking data as well as the related customer ID and travel ID. The booking data is stored in the database table ZYR_BOOK
. The flight data model defines a 1:n cardinality between a Travel and the Booking entity.
An Agency entity defines travel agency data, such as the address and contact data. The corresponding data is stored in the database table /DMO/AGENCY
. The flight data model defines a 1:n cardinality between Agency and Travel.
A Flight entity defines general flight data for each connection. The flight data is stored in the database table /DMO/FLIGHT
. The flight data model defines a 1:n cardinality between the Connection and the Flight entity.
A Customer entity provides a detailed description of a flight customer (passenger) such as the name, the address, and contact data. The corresponding data is stored in the database table /DMO/CUSTOMER
. The flight data model defines a 1:n cardinality between Customer and Travel.
- SAP NetWeaver AS ABAP 7.52 or higher
- ABAP Development Tools (ADT) in Eclipse
- SAP BTP ABAP Environment Access (This project use the Trial version)
- Clone the repository to your local machine:
git clone https://github.com/rafinika/list-report-travel-app.git
-
Import the project into your ABAP development environment.
-
Activate all the objects in the project.
You can directly interact with the app using the following Fiori app link:
Screenshot from the Fiori App
Once the application is installed and deployed, you can start using it by following these steps:
- Access the application: Open the application through the provided URL or access point within your ABAP environment.
- Navigate through the interface: Click on the "Go" to show the list of existing data. Use the main menu to switch between different sections of the application.
- Create a new travel report: Click on the "Create" button and fill in the required details.
- View and manage existing reports: Use the list view to browse through existing travel reports. Click on any report to view more details.
-
Create a new Travel record: - Navigate to the Travel creation page. - Fill in the travel details with inconsistent values for the Agency ID, the Customer ID, and the Begin date and/or the End date. - Click on the "Save" button. - Verify that the corresponding error messages are shown for the inconsistent values.
-
Correct the values and save: - Correct the values for the Agency ID, the Customer ID, and the Begin date and/or the End date. - Click on the "Save" button again. - Verify that the validations pass successfully. - Verify that the determinations were executed, the Travel ID was calculated, and the Booking status was defaulted.
- Use the actions Accept and Reject: - On the Travel Object Page, use the "Accept" and "Reject" actions to verify the instance specific feature control.
-
Create a new booking instance: - On the Travel Object Page, navigate to the Booking table. - Click on "Create" to create a new booking instance for the travel. - Provide some valid entries for the booking. - Click on the "Save" button. - Navigate back to the Travel Object Page. - Verify that the header instance was not reloaded and the old Total price is shown.
-
Manual refresh: - Perform a manual refresh of the UI. - Verify that the updated Total Price is shown after the refresh.
- Delete the Travel instance: - On the Travel Object Page, click on "Delete" to delete the Travel instance. - Verify that the Travel instance is deleted successfully.
src/: Contains the source code for the application.
img/: Contains the source for the images.
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for more details.
If you have any questions, feel free to reach out to rafinika.
Feel free to let me know if you need any additional changes or information!