Service Quotation Generation Using Robotic Process Automation Technology Agne Paulauskaite-Tarasevicienea , Vilius Kerutisb a Department of Applied Informatics, Faculty of Informatics, Kaunas University of Technology, Kaunas, Lithuania b Faculty of Informatics, Kaunas University of Technology, Kaunas, Lithuania Abstract Robotic Process Automation (RPA) is one of the fastest growing segments in the enterprise IT space enabling the automation of repetitive tasks performed by humans. RPA is usually applied to various business processes and activities in sales, customer relationship management, support functions, etc. A service quotation generation (SQG) is a process often used in sales market for creating a service quotation, tracking it, and, after acceptance, transferring it to a service order. SQG can be designed in different ways and for different purposes, but in general it is repetitive and rule based process thus a good candidate for RPA. In this paper RPA approach is proposed for automated service quotation generation. The time-effectiveness of the proposed technology was tested with different amount of tasks (cases). Results obtained through automation are superior more than 2 times to those achieved by human labour. Keywords RPA, service quotation generation, robots, SAP, scripting technologies 1. Introduction Summarizing all approaches it can be concluded that most important criteria for assessing RPA suitability Robotic Process Automation (RPA) is a new technol- are − rule based and repetitive process, usually includ- ogy utilising software robots for automation of repet- ing low-complexity tasks, high transaction volume and itive back-office processes. It finds applicability across availability of digital data [13, 14]. industries and business functions [1, 2]. The main goals RPA is the fastest-growing enterprise software cat- of RPA are the following: (1) eliminate the need for a egory, therefore there are numerous RPA tools and ap- human to work on repetitive tasks; (2) speeding-up a proaches available in the market [15, 16]. But choos- process; (3) remove human faults; and (4) achieve 100% ing one could be a challenge, because they can differ accuracy of a robot. The applications for RPA are nu- in features provided (drag & drop functionality, text merous and growing every year, but some of the most recognition, intelligent automation, scraping solution common RPA tasks include banks and financial opera- and etc.), OS support, architecture, platform and cost. tions [3, 4] insurance functions [5], tour enquiries [6] Recently, the most popular RPA tools are “Blue Prism” and logistics services [7]. However, the identification [17], “UiPath” [18], “Automation Anywhere” [19] be- of candidate tasks suitable for robotic process automa- cause of the platform independency, smart technolo- tion can be estimated under various features and tech- gies and industry type. niques [8]. The identification of automation degree of A service quotation is a specific document of the tasks described in a textual process description fea- service order, which is often used in sales market in or- tures can be analysed using machine learning tech- der to track it, and, after acceptance, transfer it to a ser- niques [9, 10]. vice order. Service quotation generation is a rule based Business Process Model and Notation (BNMN) sche- process, not dependent on human judgment, standard- mes can be created and later analysed for RPA suit- ized and repetitive, thus it is a good candidate for au- ability [11]. Mouse actions and keyboard strokes per- tomation using RPA technologies. To evaluate the pro- formed by users combined with a sequence of screen cess automation effectiveness, this paper presents an images can be employed to evaluate RPA demand in RPA approach for automated service quotation gen- non-invasive manner [12]. eration incorporating “Blue Prism” and SAP scripting technologies. The experiments have been carried out IVUS 2020: Information Society and University Studies, 23 April 2020, to estimate how stable, faultless and fast the automa- KTU Santaka Valley, Kaunas, Lithuania tion process is comparing to a human labour. " agne.paulauskaite-taraseviciene@ktu.lt (A. Paulauskaite-Taraseviciene); vilius.kerutis@ktu.lt (V. Kerutis)  © 2020 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings http://ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) 2. Service quotation generation has to approve his actions by pushing the button, but he cannot do that for one reason or another, it will be process a system error. Queue items with system exceptions Service Quotation Generation (SQG) - at a higher level, are repeatable most often, up to three attempts. In- it is a process where quotations are created from fil- ternal errors are associated with unpredictable cases, tered orders (with detailed information) and then sent when robots in a certain situation do not know how to the clients. SQG can be designed in different ways to behave and consequently have to terminate their and for different purposes. The process of SQG in- job. These errors are visible in the processes manage- cluded in this research is described below. ment part only. The biggest challenge is to predict all First of all, the whole process has to be separated the possible scenarios in process execution in order into smaller sub-processes to reach scalability. It is to avoid terminations. The algorithm of the process separated into three sub-processes: “Populate Work should handle different/new situations and to ensure Queue”, “Main” and “Reporting”. The first sub-process stable working process for all cases. loads all filtered sales orders from SAP into the “Blue Structured description of SQG process is divided into Prism” control room queue. Only one software robot 7 steps and presented in Fig. 3, including the explana- (digital worker) is required for this task. The “Main” tion of four SAP transactions, VA05, VA03, VA21, and sub-process is responsible for the process logic con- YVAFE [20] involved in the process. trols. To ensure effectiveness multiple robots should be involved in this sub-process. Items from the queue 1/2 steps The first SAP transaction VA05 is used for are taken one by one and independent quotations are getting, filtering and adding sales orders to the queue. generated. The process automation needs one robot The two steps are pretty simple: go to transaction, set to create a queue, and the particular number of other company code and date period of sales orders, get all robots to do all tasks form the “Main” sub-process. The sales orders, add three more informational columns: last sub-process “Reporting” stands for storing infor- material, description, order quantity. Filtering provides mation related to the current state of tasks. It takes all all sales orders by material numbers, but before this data from the working queue, reads significant infor- step it is necessary to read material numbers from .xml mation and makes a report. This report is transferred format file. The next step is to add all filtered sales or- to human workers who are responsible for operating ders to the queue. The sub-process “Populate Work the robot. To complete all tasks of the “Reporting” sub- Queue” uses only one SAP transaction to do its task. process one software robot is required. This sub-process cannot be performed by multi–robots After execution, the responsible persons can find all because there will be created duplicates in a queue and required information about the queue items. For ex- the whole process cannot be separated in several inde- ample, it can be identified whether it has been a suc- pendent parts. cessful execution or not, which is marked as a green check symbol or a red flag respectively. In case of suc- 3 step The “Main” sub-process needs the other three cess, customers only care about execution parameters SAP transactions (VA03, VA21, YVAFE) to execute the like quotation number, Purchase Order (PO) number process. The first transaction is used for getting in- and other quotation related data. Moreover, employ- formation about the client (his/her e-mail and name). ees, who are responsible for operating the robot, have In this step there might be some business exceptions, to be sure that approved cases are certainly successful because the robot may encounter missing values of an and there are no logical mistakes in execution. In the e-mail address or name. Here, the robot first of all goes case of an exceptional – unsuccessful operation, ex- to this transaction and writes a sales order document ception type must be verified. There are three types of number. Next, it tries to go to the “Partners” tab to get exceptions: business, system and internal. Business ex- an e-mail address. There is more than one tab and by ceptions include data errors. For example, if the robot default. Usually, the robot goes to the eighth tab, reads instead of information in e-mail address format gets its name and if there is a “Partners” tab, the robot tries information with unknown/wrong format, it will be to get an e-mail address. If there is no such tab, it goes considered as a business exception. from the beginning of tabs one by one to find the “Part- Queue items with business exceptions are non- re- ners” tab. When a robot finds an e-mail field, it reads peatable because it makes no sense to repeat it as the it and saves into memory. If there is no email (after data will not change. System exceptions are associated all searches) – it is considered as a business exception. with application based errors. For example, if the robot The same actions are performed while searching for 122 the customer’s name, but by default, robot is initially placed to the tenth “Order Data” tab. 4 step RPA service product analysis is performed in this step and it follows the actions, described in step 3. 5 step The second transaction VA21 is used to cre- ate a quotation. It is the most difficult transaction for a robot to perform. A digital worker has to write all data from VA05 and VA03 transactions very carefully and correctly. First of all, the robot goes to VA21 transac- tion, then sets up an initial screen, where all fields de- pend on the company and are always constant. Next, the digital worker has to fill in all the required fields to create a quotation. Required fields usually include - the purchase order number, document date, valid to date, some fields about company parameters and mate- Figure 1: RPA marketing material selection algorithm rial numbers (must be read from .xls format file before writing). In this transaction, the robot has to enter the customer’s name from the VA03 transaction, which is cific customer. The “Main” sub-process can be exe- initiated after completing the required fields and the cuted with multi robots. All robots can take data from next actions are the same as in VA03 transaction with different sales orders and create different quotations tabs. The essential thing is that a robot has to write independently at the same time. the customer’s name – not to read. If this action is performed correctly, SAP will display a message with information about the created quotation and its num- 3. Realitazion ber. A robot has to filter out quotation number from the message using RegEx (regular expression) and save All interactions with SAP are executed using SAP scrip- it to the memory. ting. SAP buttons, tabs, fields, windows, tables and other elements have their references. Using “Blue Pri- sm” code stages and SAP references, robots can inter- 6 step In this step RPA marketing material selec- act with elements in every possible way. For example, tion is performed. Here, the algorithm (see Fig. 1) for if there is a button, the robot can press it using the code achieving part material is executed. stage press method. The biggest difficulties arise when Data from Logic Template .xls format file is included there is a need to read the whole data table (all sales in the customer_MAT. Meanwhile A, B or C is filtered orders) into one data set called a collection. Collec- one row from the corresponding lists. If sign “X ” is tion in “Blue Prism” is like a two-dimensional array/ found in A column, material number is recorded. Spe- a hash table mix, like a two-dimensional array with a cial case in MAT has two signs “X ”, therefore addi- header. To use SAP scripting IDs of the session and tional checking is performed to verify part_MAT value connections must be known, but these IDs are always and the index. Additional checking is performed to the same and usually are equal to zero. Connection identify if there is a specific_Mat in the order. If the re- ID always depends on how many users are connected turned value is true, part_MAT is added to selected_ to the same resource computer. The whole process MAT. “X “ sign denotes which part_MAT is selected should be done by one user and thus the connection (see Fig. 2). ID should always be equal to zero. Session ID depends on how many SAP windows are open. It means that all 7 step The last step is to go to the YVAFE transac- transactions can be opened in different windows and tion and send a quotation to the customer. The robot have different session IDs. Using best practices, the needs to go to the transaction, write quotation num- robot always does its job in a transaction and goes to ber, review quotation, write customer e-mail address, another transaction from the same window. As a re- send quotation to the written e-mail address and close sult, the session ID always remains the same number all confirmation pop-ups. These steps define the pro- and equal to zero. cedure, how the quotation is created and sent to a spe- The main goal of this process it time optimization. 123 Figure 2: The example of a special case: having two material 1501328 and 1501331 only part material 8044342 is selected Figure 3: Scheme of automated service creation (original: agent quotation support) The digital worker can generate one quotation much cess execution. However, there is a possibility to im- faster than physical human employee. Robots can work mediately stop the process. In the control room we twenty-four hours per day, seven days a week without can request the stop for the current process and then any pauses and breaks or holidays. Even one robot the robot will stop process execution after it finishes can increase the process of service quotation and re- a current case. There also are some certain variables, duce costs significantly. There is a need only for one called “Session variables”. Values of variables might be physical human to ensure that digital worker operates changed in the control room even when the process is properly. in execution stage. It is very important to denote general robot behav- 3.1. Rules and Constrains ior rules and reaction to the information predefined in the settings file. However, such rules may be modified When the RPA process is executed, we cannot change according to the required changing needs. any steps of the robot but we can do monitoring from Rules according to the settings file: the control room. There we can see the current robot step. Different applications such as “VNC Viewer” can 1. Customer email must be found in a first choice be used to monitor real-time execution processes. “VNC line, if not – then in a second choice line, if not – Viewer” is a program for logging into another virtual then in a third choice line. If no email is found in environment allowing to view the processes from the all choice lines – business exception is recorded outside. In case of an emergency, there is a possibility and the case is ended. to untick “View only” checkbox from “VNC Viewer” 2. Quotation must be sent by email to primary re- parameters and make some changes in real-time pro- sponsible person and 124 3. to the customer, if there is a “yes” option selected (Question: “send a service quotation to the pri- mary responsible person as well”) in settings. If no email is found in the “Primary Responsible” line – business exception must be thrown. 4. Text from the settings must be added to PO (Pur- chase Order) number in quotation. 5. The date of PO must be selected from two op- tions: (1) actual date or; (2) the date from the sales document. 6. The date must be validated by the value of the field “ Valid to” calculated using formula: 𝑉𝑎𝑙𝑖𝑑_𝑡𝑜_𝑑𝑎𝑡𝑒 = 𝑃𝑂𝑑𝑎𝑡𝑒 + 𝑚 (1) Figure 4: Processing time of cases (5, 10, 15, 20 and 25) per- formed by humans. where 𝑚 denotes the number of months. 7. Customer cannot get another quotation if the inter-time 𝑡𝑖𝑗 between two consecutive quota- tions 𝑖 and 𝑗 (set in settings file) did not pass. In other words, the customer after one received quotation has to wait for a time period 𝑡𝑖𝑗 (for example 7 days). The time duration 𝑡𝑖𝑗 is prede- fined in the settings file. 8. Quotation cannot be created and sent to cus- tomer if the customer’s number is included in a “Black list”. 9. Quotation must be sent only to the primary email of the responsible person in case the customer’s email is in a “Grey list”. Other Rules: Figure 5: Processing time of cases (5, 10, 15, 20 and 25) per- formed by robots. 1. If the robot cannot send a quotation to the cus- tomer because of “SAP” limits, the sending op- eration must be repeated in a few hours or on 2 Cores, 3.20 GB RAM, 3.20 GB of total physical mem- the next day. ory and 4.76 GB of virtual memory. SAP scripting, 2. Sales orders with the same document number “Blue Prims” and Visual Basic frameworks has been must be sent to the customers in one quotation. used for creating realization models. 3. Robot must find customer’s name, if it cannot do The evaluation of time efficiency of the implemented that – a business exception must be thrown. RPA experiments have been performed using different 4. Robot must save all the data (customer’s email, number of cases implemented into 5 scenarios. The primary responsible person’s email, quotation same scenarios have been tested with humans - 20 par- number and other data required for quotation ticipants have been involved in this research asking generation) for report. them to complete the tasks ensuring the same work- 5. The Robot having order materials must find all ing conditions. part materials according to the algorithm describ- In Fig. 4 the diagram representing the time results ed in Fig. 1. achieved by humans performing different number of cases: 5, 10, 15, 20 and 25 is included. For completing 5 cases the average time required for human is 13.22 4. Experiments minutes, thus 2.64 for one case. With the increasing number of cases, the average time to complete one case All the experiments have been carried out using the is increasing as well and estimating the time to com- computer with the following main parameters: Win- plete 25 cases, the average time to complete one case dows 10 Enterprise, Intel(R) Xeon(R) CPU E5-2690 v4, 125 unknown and conflicting situations. References [1] G. Capizzi, G. Lo Sciuto, C. Napoli, R. Shikler, M. Wozniak, Optimizing the organic solar cell manufacturing process by means of afm mea- surements and neural networks, Energies 11 (2018). [2] D. Połap, M. Woźniak, C. Napoli, E. Tramontana, Figure 6: Comparison or humans and robots time results Real-time cloud-based game management sys- achieved performing tasks. tem via cuckoo search algorithm, International Journal of Electronics and Telecommunications 61 (2015) 333–338. [3] R. Vedder, et al., Robotic process automation in is equal to 3.51 minutes. Meanwhile, estimating the the finance function of the future (2016. Available average time to complete the same cases for the robot online: https://insightsbenelux.com/ publica- the constant value of 1.264±4.6% to finish one case has tions/%2314_werkplaats_(ochtend)_EYFinance been observed (Fig. 5). _Robotics.pdf.). Comparing the time results of humans and robot, [4] Role of rpa and ai in transforming we can see that superiority of the robot increasing with banking operations (Hexaware and the increasing number of cases. With the small num- IBS Intelligence 2019. Available online: ber of cases the robot can complete all cases twice faster https://ibsintelligence.com/files/media_temp/ than the human. The gap between results is more sig- Hexaware-Role_of_AI nificant and reaches 2.82 times when the number of &RPA_in_transforming_Banking_Operations_ cases reaches 25 (Fig. 6). Performing the testing of the v9.pdf). RPA process no logical loops or other critical errors [5] C. Lamberton, D. Brigo, D. Hoy, Impact of have been observed. The whole process is fast, stable, robotics, rpa and ai on the insurance industry: ensures the task completeness and responds correctly challenges and opportunities, Journal of Finan- to all input data. cial Perspectives 4 (2017) 1–13. [6] Rpa’s impact on the travel industry (2017. Avail- 5. Conclusions able online https://www.uipath.com/blog/rpas- impact-on-the-travel-industry). This research paper has proposed an RPA approach [7] I. Karabegovic, E. Karabegovic, M. Mah- for automated service quotation generation. The time- mic, E. Husak, The application of ser- effectiveness of the proposed technology has been test- vice robots for logistics in manufacturing ed with different number of cases and compared with processes (Available online: http://apem- the results archived by humans. Comparing the time journal.org/Archives/2015/APEM10-4_185-194 results of humans and robot, we can see that superior- .pdf). ity of the robot is increasing with the increasing num- [8] F. Mazzenga, R. Giuliano, F. Vatalaro, Fttc-based ber of cases. With the small number of cases, the robot fronthaul for 5g dense/ultra-dense access net- can complete all cases ∼ 2 times faster than the human work: performance and costs in realistic scenar- (taking the average time values calculated from all ex- ios, Future Internet 9 (Oct. 2017) 1–21. periment participants). When the number of cases is [9] H. Leopold, H. Van der Aa, H. A. Reijers, Identify- equal to 25, the execution time of the robot is 2.82 ing candidate tasks for robotic process. automa- times faster. Such results prove that the application tion in textual process descriptions (Enterprise, of RPA is reasonable for the automated service quo- Business-Process and Information Systems Mod- tation generation and could be valuable for different eling (EMMSAD), 2018) 67–81. business companies, especially for those that have to [10] C. Napoli, E. Tramontana, An object-oriented complete a huge amount of operations every day. neural network toolbox based on design patterns, In future work, we plan to improve the rules of our in: International Conference on Information and approach in order to ensure stable performance under 126 Software Technologies, Springer, 2015, pp. 388– 399. [11] A. Bjorn, S. Gustav, Evaluating and developing methods to assess business process suitability for robotic process automation - a design research approach (Master Thesis, 2018. Available online: https://odr.chalmers.se/handle/20.500.12380/255 664). [12] A. Jimenez-Ramirez, H. Reijers, I. Barba, C. Del Valle, A method to improve the early stages of the robotic process automation lifecycle (In: CAiSE. Springer, 2019) 446—-461. [13] A. A., E. Penttinen, Turning robotic pro- cess automation into commercial success-case opus capita, Journal of Information Technology Teaching Cases 6 (2016) 67—-74. [14] J. Geyer-Klingeberg, J. Nakladal, F. Baldauf, F. Veit, Process mining and robotic pro- cess automation: A perfect match (2018. Available online: http://ceur-ws.org/Vol- 2196/BPM_2018_paper_28.pdf) 1–8. [15] J. Gao, S. van Zelst, X. Lu, W. van der Aalst, Automated robotic process automation: A self- learning approach (OTM 2019: On the Move to Meaningful Internet Systems: OTM 2019 Confer- ences) 95–112. [16] C. Martins, Robotic process automation: A lean approach to rpa (2018) 1–10. [17] Blue prism: Robotic process automation – rpa (Available online: https://www.blueprism.com/). [18] Uipath: Robotic process automation (Available online: www.uipath.com). [19] Automation anywhere: Global rpa solutions (Available online: https://www.automation any- where.com/). [20] Analytics for sap tcodes (Available online: https:// www.sap-tcodes.org/tcode/va05.html). 127