Timeout Problem in Billing Application
The goal of this case study is to find a solution to the timeout problem users encounter when generating several invoices at once in the billing application. The process will be optimized in order to speed up responses and increase user productivity while still remaining compatible with various billing models.
Initially, users could generate invoices from proforma documents using the billing application. The system did not, however, allow for the simultaneous creation of multiple invoices. When users attempted to generate invoices in bulk, this limitation resulted in delays and timeouts. The system had trouble handling the additional data load, which resulted in slow pace response times and ongoing loading screens.
Pain Points and Obstacles
Widespread Concern: The timeout issue affected all clients creating bulk invoices, making it a pervasive issue. Extended waiting times had a negative impact on user productivity because they prevented users from performing other tasks on the same screen.
Optimizing without interfering with business operations: It was difficult to alter objects and procedures to boost performance without affecting ongoing business operations.
Limitations on time and testing effort: Changes needed to be made, and extensive testing, including regression scenarios, took a lot of time and effort.
Adapting to Various Billing Types: Each of the various billing types, including Lump Sum, Time and Material, Accrual, and Event billing, shared a number of objects. Multiple objects needed to have their code modified as a result.
Overcoming the challenges
The following remedies were put into practice to deal with the problems and streamline the procedure:
Logic of Parallel Processing: Parallel processing was developed to deal with the various data loads. For the purpose of processing the creation of invoices, asynchronous calls were made to servers within the RFC server group specified. With this method, multiple invoice creation requests could be processed concurrently, speeding up response times.
Billing Schedule Programme Job: To receive and handle numerous requests for the creation of invoices on a daily basis, a billing schedule program job was created. Through a dedicated tab in the billing screen, clients could add draught details and dates to the billing schedule list. The task would then use a specialized driver program to generate invoices.
Error Notifications and Resolution: The system has a mail-sending feature that notifies users when an invoice is successful or unsuccessful. Notifications with invoice information and explanations for errors were sent to clients. Users were able to take the necessary action and quickly address any problems thanks to this.
The solutions put into practice produced the following results:
Enhanced User Interface
Users now have access to a separate tab on the billing screen where they can enter draft details for invoices along with related dates. This simplified the procedure and enhanced user convenience.
Automated Job Processing
The billing schedule program job used the specialized driver program to generate invoices after gathering data from the billing schedule list. This increased efficiency and got rid of the need for manual initiation.
Parallel processing for multiple invoices
Users could choose several drafts from the invoice list screen and start the invoice creation action in parallel. Parallel processing was used to create multiple invoices at once, and a message indicating that the creation of the invoice was ongoing was displayed in the response payload from the backend. Users could interact with the screen in other ways without having to wait for each process to finish.
Error handling and notifications
The billing application successfully fixed the timeout problem during bulk invoice creation by implementing parallel processing logic, adding a billing schedule program job, and including error notifications. The enhanced user productivity, faster response times, and effective management of invoice creation for different billing types were all benefits of the optimized process.