<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Service Quotation Generation Using Robotic Process Automation Technology</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Agne Paulauskaite-Taraseviciene</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vilius Kerutis</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Applied Informatics, Faculty of Informatics, Kaunas University of Technology</institution>
          ,
          <addr-line>Kaunas</addr-line>
          ,
          <country country="LT">Lithuania</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Faculty of Informatics, Kaunas University of Technology</institution>
          ,
          <addr-line>Kaunas</addr-line>
          ,
          <country country="LT">Lithuania</country>
        </aff>
      </contrib-group>
      <fpage>121</fpage>
      <lpage>127</lpage>
      <abstract>
        <p>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 diferent ways and for diferent 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-efectiveness of the proposed technology was tested with diferent amount of tasks (cases). Results obtained through automation are superior more than 2 times to those achieved by human labour.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;RPA</kwd>
        <kwd>service quotation generation</kwd>
        <kwd>robots</kwd>
        <kwd>SAP</kwd>
        <kwd>scripting technologies</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>© 2020 Copyright for this paper by its authors. Use permitted under Creative
CPWrEooUrckReshdoinpgs IhStpN:/c1e6u1r3-w-0s.o7r3g CCoEmUmoRns WLiceonrsekAsthtriobuptioPnr4o.0cIneteerdnaitniognasl ((CCC EBYU4R.0)-.WS.org)
2. Service quotation generation
process
has to approve his actions by pushing the button, but
he cannot do that for one reason or another, it will be
a system error. Queue items with system exceptions
are repeatable most often, up to three attempts.
Internal errors are associated with unpredictable cases,
when robots in a certain situation do not know how
to behave and consequently have to terminate their
job. These errors are visible in the processes
management part only. The biggest challenge is to predict all
the possible scenarios in process execution in order
to avoid terminations. The algorithm of the process
should handle diferent/new situations and to ensure
stable working process for all cases.</p>
      <p>Structured description of SQG process is divided into
7 steps and presented in Fig. 3, including the
explanation of four SAP transactions, VA05, VA03, VA21, and
YVAFE [20] involved in the process.</p>
      <sec id="sec-1-1">
        <title>Service Quotation Generation (SQG) - at a higher level,</title>
        <p>it is a process where quotations are created from
filtered orders (with detailed information) and then sent
to the clients. SQG can be designed in diferent ways
and for diferent purposes. The process of SQG
included in this research is described below.</p>
        <p>First of all, the whole process has to be separated
into smaller sub-processes to reach scalability. It is
separated into three sub-processes: “Populate Work
Queue”, “Main” and “Reporting”. The first sub-process
loads all filtered sales orders from SAP into the “Blue
Prism” control room queue. Only one software robot
(digital worker) is required for this task. The “Main”
sub-process is responsible for the process logic
controls. To ensure efectiveness 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
orto 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</p>
        <p>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
indeample, 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
inand 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</p>
        <p>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
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
create a quotation. It is the most dificult 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
transaction, then sets up an initial screen, where all fields
depend 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
material 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
initiated after completing the required fields and the
next actions are the same as in VA03 transaction with
tabs. The essential thing is that a robot has to write
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
number. A robot has to filter out quotation number from
the message using RegEx (regular expression) and save
it to the memory.</p>
      </sec>
      <sec id="sec-1-2">
        <title>6 step In this step RPA marketing material selection is performed. Here, the algorithm (see Fig. 1) for achieving part material is executed.</title>
        <p>Data from Logic Template .xls format file is included
in the customer_MAT. Meanwhile A, B or C is filtered
one row from the corresponding lists. If sign “X ” is
found in A column, material number is recorded.
Special case in MAT has two signs “X ”, therefore
additional checking is performed to verify part_MAT value
and the index. Additional checking is performed to
identify if there is a specific_Mat in the order. If the
returned value is true, part_MAT is added to selected_
MAT. “X “ sign denotes which part_MAT is selected
(see Fig. 2).
7 step The last step is to go to the YVAFE
transaction and send a quotation to the customer. The robot
needs to go to the transaction, write quotation
number, review quotation, write customer e-mail address,
send quotation to the written e-mail address and close
all confirmation pop-ups. These steps define the
procedure, how the quotation is created and sent to a
specific customer. The “Main” sub-process can be
executed with multi robots. All robots can take data from
diferent sales orders and create diferent quotations
independently at the same time.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>3. Realitazion</title>
      <p>All interactions with SAP are executed using SAP
scripting. SAP buttons, tabs, fields, windows, tables and
other elements have their references. Using “Blue
Prism” code stages and SAP references, robots can
interact with elements in every possible way. For example,
if there is a button, the robot can press it using the code
stage press method. The biggest dificulties arise when
there is a need to read the whole data table (all sales
orders) into one data set called a collection.
Collection in “Blue Prism” is like a two-dimensional array/
a hash table mix, like a two-dimensional array with a
header. To use SAP scripting IDs of the session and
connections must be known, but these IDs are always
the same and usually are equal to zero. Connection
ID always depends on how many users are connected
to the same resource computer. The whole process
should be done by one user and thus the connection
ID should always be equal to zero. Session ID depends
on how many SAP windows are open. It means that all
transactions can be opened in diferent windows and
have diferent session IDs. Using best practices, the
robot always does its job in a transaction and goes to
another transaction from the same window. As a
result, the session ID always remains the same number
and equal to zero.</p>
      <p>The main goal of this process it time optimization.
The digital worker can generate one quotation much cess execution. However, there is a possibility to
imfaster 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.</p>
      <p>It is very important to denote general robot
behav3.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. Diferent 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
reparameters and make some changes in real-time pro- sponsible person and
3. to the customer, if there is a “yes” option selected
(Question: “send a service quotation to the
primary 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</p>
      <p>chase Order) number in quotation.
5. The date of PO must be selected from two
options: (1) actual date or; (2) the date from the
sales document.
6. The date must be validated by the value of the
ifeld “ Valid to” calculated using formula:
 
_ _
=   
+ 
(1) Figure 4: Processing time of cases (5, 10, 15, 20 and 25)
per</p>
      <p>formed by humans.</p>
      <p>where  denotes the number of months.
7. Customer cannot get another quotation if the
inter-time   between two consecutive
quotations  and  (set in settings file) did not pass.</p>
      <p>In other words, the customer after one received
quotation has to wait for a time period   (for
example 7 days). The time duration   is
predeifned in the settings file.
8. Quotation cannot be created and sent to
customer 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”.</p>
      <p>Other Rules:
1. If the robot cannot send a quotation to the
customer because of “SAP” limits, the sending
operation must be repeated in a few hours or on
the next day.
2. Sales orders with the same document number</p>
      <p>must be sent to the customers in one quotation.
3. Robot must find customer’s name, if it cannot do</p>
      <p>that – a business exception must be thrown.
4. Robot must save all the data (customer’s email,
primary responsible person’s email, quotation
number and other data required for quotation
generation) for report.
5. The Robot having order materials must find all
part materials according to the algorithm
described in Fig. 1.</p>
    </sec>
    <sec id="sec-3">
      <title>4. Experiments</title>
      <sec id="sec-3-1">
        <title>All the experiments have been carried out using the computer with the following main parameters: Windows 10 Enterprise, Intel(R) Xeon(R) CPU E5-2690 v4,</title>
        <p>2 Cores, 3.20 GB RAM, 3.20 GB of total physical
memory and 4.76 GB of virtual memory. SAP scripting,
“Blue Prims” and Visual Basic frameworks has been
used for creating realization models.</p>
        <p>The evaluation of time eficiency of the implemented
RPA experiments have been performed using diferent
number of cases implemented into 5 scenarios. The
same scenarios have been tested with humans - 20
participants have been involved in this research asking
them to complete the tasks ensuring the same
working conditions.</p>
        <p>In Fig. 4 the diagram representing the time results
achieved by humans performing diferent number of
cases: 5, 10, 15, 20 and 25 is included. For completing
5 cases the average time required for human is 13.22
minutes, thus 2.64 for one case. With the increasing
number of cases, the average time to complete one case
is increasing as well and estimating the time to
complete 25 cases, the average time to complete one case
unknown and conflicting situations.
[1] G. Capizzi, G. Lo Sciuto, C. Napoli, R. Shikler,</p>
        <p>M. Wozniak, Optimizing the organic solar cell
manufacturing process by means of afm
measurements 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
sysachieved performing tasks. tem via cuckoo search algorithm, International
Journal of Electronics and Telecommunications
61 (2015) 333–338.
is equal to 3.51 minutes. Meanwhile, estimating the [3] R. Vedder, et al., Robotic process automation in
average time to complete the same cases for the robot the finance function of the future (2016. Available
online: https://insightsbenelux.com/
publicathe constant value of 1.264 ± 4.6% to finish one case has
been observed (Fig. 5). tions/%2314_werkplaats_(ochtend)_EYFinance</p>
        <p>Comparing the time results of humans and robot, _Robotics.pdf.).
we can see that superiority of the robot increasing with [4] Role of rpa and ai in transforming
the increasing number of cases. With the small num- banking operations (Hexaware and
ber of cases the robot can complete all cases twice faster IBS Intelligence 2019. Available online:
than the human. The gap between results is more sig- https://ibsintelligence.com/files/media_temp/
nificant and reaches 2.82 times when the number of Hexaware-Role_of_AI
cases reaches 25 (Fig. 6). Performing the testing of the &amp;RPA_in_transforming_Banking_Operations_
RPA process no logical loops or other critical errors v9.pdf).
have been observed. The whole process is fast, stable, [5] C. Lamberton, D. Brigo, D. Hoy, Impact of
ensures the task completeness and responds correctly robotics, rpa and ai on the insurance industry:
to all input data. challenges and opportunities, Journal of
Financial Perspectives 4 (2017) 1–13.
[6] Rpa’s impact on the travel industry (2017.
Avail5. Conclusions able online
https://www.uipath.com/blog/rpasimpact-on-the-travel-industry).</p>
        <p>This research paper has proposed an RPA approach [7] I. Karabegovic, E. Karabegovic, M.
Mahfor automated service quotation generation. The time- mic, E. Husak, The application of
serefectiveness of the proposed technology has been test- vice robots for logistics in manufacturing
ed with diferent number of cases and compared with processes (Available online:
http://apemthe 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
netcan 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,
Identifyequal to 25, the execution time of the robot is 2.82 ing candidate tasks for robotic process.
automatimes 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
Modtation generation and could be valuable for diferent 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,</p>
        <p>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</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Software</surname>
            <given-names>Technologies</given-names>
          </string-name>
          , Springer,
          <year>2015</year>
          , pp.
          <fpage>388</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          399. [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bjorn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gustav</surname>
          </string-name>
          , Evaluating and developing
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>approach (Master Thesis</surname>
          </string-name>
          ,
          <year>2018</year>
          . Available online:
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          https://odr.chalmers.
          <source>se/handle/20.500.12380/255</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          664). [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Jimenez-Ramirez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Reijers</surname>
          </string-name>
          , I. Barba,
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          (In: CAiSE. Springer,
          <year>2019</year>
          )
          <fpage>446</fpage>
          --
          <lpage>461</lpage>
          . [13]
          <string-name>
            <surname>A. A.</surname>
          </string-name>
          , E. Penttinen, Turning robotic pro-
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <source>Teaching Cases</source>
          <volume>6</volume>
          (
          <year>2016</year>
          )
          <fpage>67</fpage>
          --
          <lpage>74</lpage>
          . [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Geyer-Klingeberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Nakladal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Baldauf</surname>
          </string-name>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <article-title>cess automation: A perfect match (</article-title>
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          2196/BPM_2018_paper_28.pdf)
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. van Zelst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Lu</surname>
          </string-name>
          , W. van der Aalst,
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <source>learning approach (OTM</source>
          <year>2019</year>
          :
          <article-title>On the Move to</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <source>Meaningful Internet Systems: OTM 2019</source>
          Confer-
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          ences)
          <fpage>95</fpage>
          -
          <lpage>112</lpage>
          . [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Martins</surname>
          </string-name>
          ,
          <article-title>Robotic process automation: A lean</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          approach to rpa (
          <year>2018</year>
          )
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          . [17]
          <article-title>Blue prism: Robotic process automation - rpa</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          (Available online: https://www.blueprism.com/). [18]
          <string-name>
            <surname>Uipath</surname>
          </string-name>
          :
          <article-title>Robotic process automation (Available</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <source>online: www.uipath.com)</source>
          .
          <source>[19] Automation anywhere: Global rpa solutions</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          where.com/). [20]
          <article-title>Analytics for sap tcodes (Available online:</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>https:// www.sap-tcodes.org/tcode/va05.html).</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>