/ACME-Dispatcher-Performer-Invoice-Check-Bot-RPA

This repository hosts a UiPath automation solution with separate Dispatcher and Performer sub-processes. The Dispatcher bot adds queue items to Orchestrator Queue, while the Performer bot searches invoices, extracts and compares data. Leveraging UiPath REFramework, this workflow provides a robust scalable solution for invoice checking tasks.

MIT LicenseMIT

UiPath REFramework Exercise

ACME Dispatcher-Performer Invoice Check Bot

GitHub License: MIT Platform - UiPath RPA


This repository hosts an UiPath automation solution designed to address the REFramework exercise outlined in the requirements below.

Instructions

In this exercise, you will create a UiPath automation that performs the steps below.

To achieve this, you will use the Robotic Enterprise Framework (REFramework) as the starting template and follow the UiPath development best practices.

The solution has to be scalable, so create two separate projects (sub-processes):

  • One for the Dispatcher (add to queue).
  • Another one for the Performer (consume queue).
  • Make sure you use a connection to the UiPath Orchestrator for testing.

Here are the steps performed by the Robot in the Dispatcher:

  1. Login to https://www.acme-test.com
  2. On the landing page, Dashboard, click or hover the invoices menu item and then on Search for Invoice.
  3. Scrape the data from the whole table displayed.
  4. For each row in the datatable, Add a Queue Item containing the Invoice Number, Vendor TaxID and Date.
  5. Close ACME System 1.

Here are the steps performed by the Robot in the Performer:

  1. Login to https://www.acme-test.com
  2. For each Queue Item:
    • Click or hover the invoices menu item and then click on Search for Invoice
    • Type the Invoice Number retrieved from the queue item into the Invoice Number field
    • Click on Search
    • Extract the values for Vendor TaxID and Date and compare them with the values from the queue item (check for EXACT match for all fields!)
    • If the values are not matching, this should be categorized as a Business Rule Exception, and the queue item should have the status set accordingly
    • If the values match, the transaction is successful

Note: Navigation can be achieved in multiple ways by the robot – choose whichever you find best.

Constraints to follow in the development, using the REFramework:

  1. TransactionItem datatype should be a QueueItem. The process should recover and retry 2 times in case of errors in navigation between Invoice Search and Invoices – Search Results pages. One transaction is the action of navigating to the Invoices Search page, searching for the Invoice Number and scraping the values from the resulting one row table.
  2. Create a separate workflow file for the Login to ACME. File input arguments: URL <String>, Username <String>, Password <SecureString>.
  3. Create a separate workflow file closing ACME.
  4. Add the ACME_URL and ACME_Credential to the Excel Config file.
  5. Populate InitAllApplications.xaml from the Framework folder with Invoking the Login to ACME.
  6. Populate CloseAllApplications.xaml from the Framework folder with Invoking the Close ACME.
  7. Populate KillAllProcesses.xaml from the Framework folder with killing the process used.
  8. Populate the Process.xaml file with the following actions: Navigation, Searching for Invoice Number, Scraping, Checking if the values match, Handling the Business Rule Exception.

Important Note: Don’t use external file references outside of the project folder (including Orchestrator Assets). Place all the used files within the project folder only.

You can check out the automation demo video for the solution by clicking on the badge below:

View Demo - ACME-Dispatcher-Performer-Invoice-Check-Bot


Installation

Before installing UiPath Softwares, please make sure your system meets the hardware and software requirements outlined in the UiPath documentation.

The Uipath Platform includes the following tools:

  • UiPath Studio
  • UiPath Assistant
  • UiPath Automation Cloud, including UiPath Orchestrator
To run this project successfully, please follow these steps to install UiPath Studio:

Step 1 : Visit uipath.com and click Try UiPath Free button.

Step 2: Sign up for a personal account.

Step 3: Verify your account in email.

Step 4: Log into the UiPath Automation Cloud using your account, and click the Download Uipath Studio button.

Step 5: Click Sign in.

Step 6: Select UiPath Studio Pro.

Step 7: Follow the system instructions to complete the installation of UiPath Studio Pro.

Please also follow these steps below to connect your local machine to the UiPath Automation Cloud for accessing the UiPath Orchestrator Queue or deploying this workflow (if desired):

Step 1: Sign up and log into UiPath Automation Cloud.

Step 2: Add a Tenant.

Step 3: Edit the user and assign the Automation Users role to grant them permission to execute processes.

Step 4: Go to the Orchestrator interface and click on Tenant in the left pane.

Choose Folders and then click the + icon to create a new folder.

Step 5: Navigate back to Tenant interface and follow the steps below to start adding an Automation User for Unattended Robot in Manage Access.

a) Scroll down to locate the target user, then assign the Automation User role to grant them the necessary permissions. Click Next button to move on to the next page.

b) In the Personal automations setup page, select the options to Enable user to run automations and Create a personal workspace for this user and enable optimal Studio Web experience, then click on the Next button.

c) On the Unattended setup page, check the option to Enable this user to run unattended automations, choose Specific Windows credentials for local machine connection to Orchestrator, provide Domain\Username of your user account on local machine (which can be found by executing whoami in Command Prompt), and enter the Password for accessing your local machine. Finally, click on the Update button.

Step 6: Now, go to the Machines page where you should see the workspace machine for the target user already created. Click the ellipsis to select Edit Machine.

Enter 1 for both the Production (Unattended) and Testing fields, then click the Update button.

Step 7: Now return to the newly created folder, choose the Machines menu, and click Manage Machines in Folder button to assign the machine you just configured to the folder.

You should now have both the User and Machine assigned to the new folder.

Step 8: Open UiPath Assistant and click Sign In. If you see the green circle in the top right corner, you’ve successfully connected your local UiPath Studio to the UiPath Automation Cloud.

You can confirm the connection by opening UiPath Studio and checking for a green circle at the bottom.


To publish a process from UiPath Studio to Orchestrator, switch to the new folder you just created in the Orchestrator, and then click to Publish the process as a package.

To learn more about other best practices on Orchestrator, please refer to the Orchestrator User Guide.


Usage

To run the RPA workflow on your local machine, follow these steps:

  1. Either download this repository to your local machine or clone it directly within your UiPath Studio.
  2. Open the UiPath Studio software on your machine.
  3. Locate and open the Main.xaml file from the downloaded repository in UiPath Studio.
  4. Run the Main.xaml file to start the RPA process.

Acknowledgement

I would like to express my gratitude to the UiPath community for providing resources, tutorials, and a platform for automation enthusiasts to learn and collaborate.


License

This project is licensed under the MIT License, which means you're free to modify, distribute, and use the code in your own projects.