Invoice Plane Automation Demo
Invoice Plane Automation Demo
Introduction
InvoicePlane Sample suggests the way to automate web application by performing action inside internet browser.
The purpose of automation is to extract product list from web page and store it as datastore. The target application is InvoicePlane (https://www.invoiceplane.com/) which is freely distributed open-source software for managing invoices and related data.
Prerequisites
In order to successfully set up and run Invoice Plane Automation Demo:
- InvoicePlane can be installed locally. To download the latest version please visit https://www.invoiceplane.com/downloads. Installation steps are described in https://github.com/InvoicePlane/InvoicePlane/blob/master/README.md.
- Ensure that you have a running node with the "SELENIUM" and "AP_RUN" capabilities.
- Upload the Invoice Plane Automation Demo package to the Control Server. The package can be found in the following directory: https://<CS URL>/nexus/repository/rpaplatform/eu/ibagroup/samples/ap/easy-rpa-invoiceplane-ap/<version>/easy-rpa-invoiceplane-ap-<version>-bin.zip.
The souce code can be found here: https://code.easyrpa.eu/easyrpa/easy-rpa-samples/-/tree/dev/easy-rpa-invoiceplane/easy-rpa-invoiceplane-ap - Ensure the following details are provided for the Invoice Plane Automation Demo automation process in the Automation Process Details tab:
Configuration Parameters for Invoice Plane Automation Demo:
Key | Default value | Is required | Description |
---|---|---|---|
invoiceplane.client.url | http://ci.rpaplatform.org:8085/index.php/sessions/login | no | path to InvoicePlane login page |
inputFolder | invoice_plane_sample/input | no | path on storage server where invoice input json are |
fileFilter | .*.json | no | input json file filter to use |
cleanUpDemo | true | no | clean up invoice plane flag |
notificationTemplate | Invoice Plane Email Template | no | Invoice Plane Email Template |
notificationChannel | Invoice Plane Notification Channel | no | The channel to send notification, should be created by administrator. |
Datastores for Invoice Plane Automation Demo:
Name | Columns |
---|---|
INVOICE_PLANE_INVOICE | invoice_number,client,invoice_date,status,due_date,amount,balance |
Secret vault for Invoice Plane Automation Demo:
Alias | Value |
---|---|
invoiceplane.secrets | {"user": "admin@ibagroup.eu", "password": "o66Lc1Jn6Z"} |
Included Steps
Here are the sample steps:
The demo check the storage data/invoice_plane_sample/input/*.json, the split execution for every input invoice json.
RPA
First Login Page opens. The bot authenticates here using credentials provided under invoiceplane.secrets
alias
After successful authentication the dashboard opens Invoices/Create Invoice for every input invoice:
After all the invoices has been created, the demo goes to the Invoices/View Invoices and obtain all invoices exist in the application. The demo import the existing invoices into INVOICE_PLANE_INVOICE datastore.
Generate and send email report
For the collected invoices stored in datastore, the demo generates Excel file report and sent via notification.
Here we go! AP is finished and if no errors occured then the product extraction result can be viewed in 'product' datastore.
Launching Demo in standalone mode (from executable Jar, no CS involved)
Here are steps to launch Invoice Plane Automation Demo in standalone mode:
Generate standalone executable jar by issuing following command line for the easy-rpa-invoiceplane-ap project :
mvn clean package -Pstandalone-jar
Copy generated /easy-rpa-invoiceplane-ap/target/easy-rpa-invoiceplane-ap-<VERSION>-standalone.jar to a launch directory
- In the launch directory create sub-directory 'file_storage'
- Copy input files (e.g. '/easy-rpa-invoiceplane-ap/package/storage/data' content) to the sub-directory 'file_storage'
- Copy standalone run license file to the launch directory (please contact an EasyRpa representative person for obtaining standalone run license)
- Create 'apm_run.properties' in the launch directory
- In the 'apm_run.properties' specify 'SELENIUM_HUB_URL=local' option to use local web driver for Selenium calls
- If needed - download Selenium web driver for the actual version of the Chrome browser (see WebDriver Version Update for details )
- Add the rest of the Configuration Parameters
- Optionally create "vault.properties" in the launch directory to specify custom invoiceplane.secrets
Run with the command line like below
java -Dwebdriver.chrome.driver=<PATH_TO_THE_CHROME_DRIVER> -jar easy-rpa-invoiceplane-ap-<VERSION>-full.jar.jar
Example of the console output (same output duplicated to the "logs un.log" file):
15:15:38.708 [main] INFO eu.ibagroup.easyrpa.engine.boot.ApModuleRunner - No runUUID specified, use generated 21145fbe-51e5-4131-885c-11c98baf427e. 15:15:38.717 [main] INFO eu.ibagroup.easyrpa.engine.boot.ApModuleRunner - No config module specified, use STANDALONE. 15:15:38.717 [main] INFO eu.ibagroup.easyrpa.engine.boot.ApModuleRunner - No ApModuleClass specified, scanning jar to define. 15:15:38.717 [main] INFO eu.ibagroup.easyrpa.engine.boot.ApModuleRunner - Scanning class path to find ApModuleClass to run. 15:15:38.720 [main] INFO eu.ibagroup.easyrpa.engine.boot.ApModuleRunner - Found class eu.ibagroup.easyrpa.ap.invoiceplane.InvoicePlaneSampleAp module class candidate for launch. 15:15:38.721 [main] INFO eu.ibagroup.easyrpa.engine.boot.ApModuleRunner - Scanning class path to find ConfigurationModule to run, using profile 'standalone'. 15:15:38.726 [main] INFO eu.ibagroup.easyrpa.engine.boot.ApModuleRunner - Added eu.ibagroup.easyrpa.engine.boot.configuration.StandaloneConfigurationModule@954b04f configuration module into the launch configuration. 2023-08-25 15:15:38,811 INFO e.i.e.engine.boot.ApModuleRunner [main] [] [] - platform api version 2.9.0-SNAPSHOT-86612-cfa91df2 2023-08-25 15:15:38,948 INFO e.i.e.e.s.i.FileSystemObjectStorageServiceImpl [main] [] [] - Created local storage D:\easy_rpa\data\git\easy-rpa-samples\easy-rpa-invoiceplane\easy-rpa-invoiceplane-ap\object_storage\21145fbe-51e5-4131-885c-11c98baf427e 2023-08-25 15:15:39,361 INFO e.i.e.engine.boot.ApModuleRunner [main] [] [] - platform engine version 2.9.0-SNAPSHOT-86612-cfa91df2 2023-08-25 15:15:39,362 INFO e.i.e.engine.boot.ApModuleRunner [main] [] [] - Running runClass: eu.ibagroup.easyrpa.ap.invoiceplane.InvoicePlaneSampleAp runUuid: 21145fbe-51e5-4131-885c-11c98baf427e taskUuid: null configuration [eu.ibagroup.easyrpa.engine.boot.configuration.StandaloneConfigurationModule@954b04f] 2023-08-25 15:15:39,409 INFO e.i.e.e.a.RemoteExecutionService [main] [21145fbe-51e5-4131-885c-11c98baf427e] [19cf7932-5263-40c0-a185-48525da9e46c] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.GetDocumentsFromStorageTask:19cf7932-5263-40c0-a185-48525da9e46c is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:15:39,413 INFO e.i.e.e.s.i.StandaloneStorageManager [main] [21145fbe-51e5-4131-885c-11c98baf427e] [19cf7932-5263-40c0-a185-48525da9e46c] - Created local storage D:\easy_rpa\data\git\easy-rpa-samples\easy-rpa-invoiceplane\easy-rpa-invoiceplane-ap\file_storage 2023-08-25 15:15:39,416 INFO e.i.e.a.i.t.GetDocumentsFromStorageTask [main] [21145fbe-51e5-4131-885c-11c98baf427e] [19cf7932-5263-40c0-a185-48525da9e46c] - Scanning S3 path file:///D:/easy_rpa/data/git/easy-rpa-samples/easy-rpa-invoiceplane/easy-rpa-invoiceplane-ap/file_storage/data/invoice_plane_sample/input 2023-08-25 15:15:39,418 INFO e.i.e.a.i.t.GetDocumentsFromStorageTask [main] [21145fbe-51e5-4131-885c-11c98baf427e] [19cf7932-5263-40c0-a185-48525da9e46c] - There are 5 documents found to process on S3: file:///D:/easy_rpa/data/git/easy-rpa-samples/easy-rpa-invoiceplane/easy-rpa-invoiceplane-ap/file_storage/data/invoice_plane_sample/input 2023-08-25 15:15:42,494 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-7] [21145fbe-51e5-4131-885c-11c98baf427e] [190ccca3-8daf-4930-9569-a39da27c4cf6] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.AddInvoiceTask:190ccca3-8daf-4930-9569-a39da27c4cf6 is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:15:42,496 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-6] [21145fbe-51e5-4131-885c-11c98baf427e] [18fe67f3-5644-4d60-858e-7765cc8f7b29] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.AddInvoiceTask:18fe67f3-5644-4d60-858e-7765cc8f7b29 is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:15:42,506 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-5] [21145fbe-51e5-4131-885c-11c98baf427e] [b04d17aa-5b87-481f-acfb-039442683d0c] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.AddInvoiceTask:b04d17aa-5b87-481f-acfb-039442683d0c is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:15:42,508 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-4] [21145fbe-51e5-4131-885c-11c98baf427e] [9062d971-f7f2-47aa-910a-c6ef7e29d29f] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.AddInvoiceTask:9062d971-f7f2-47aa-910a-c6ef7e29d29f is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:15:42,513 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-3] [21145fbe-51e5-4131-885c-11c98baf427e] [fadc3b15-0610-437d-8601-641008f86ae2] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.AddInvoiceTask:fadc3b15-0610-437d-8601-641008f86ae2 is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:16:07,707 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-2] [21145fbe-51e5-4131-885c-11c98baf427e] [d0c706a9-5447-4fbc-b778-59fa484af057] - Task class eu.ibagroup.easyrpa.engine.apflow.DefaultParallelGateway:d0c706a9-5447-4fbc-b778-59fa484af057 is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:16:07,717 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-2] [21145fbe-51e5-4131-885c-11c98baf427e] [62d3ab27-4c2e-4c7f-b7ba-1fdf5e6c834e] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.CollectIInvoicesTask:62d3ab27-4c2e-4c7f-b7ba-1fdf5e6c834e is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:16:14,586 INFO e.i.e.e.a.RemoteExecutionService [pool-1-thread-2] [21145fbe-51e5-4131-885c-11c98baf427e] [0536b250-49b8-4bdf-92e1-bc013db2b4db] - Task class eu.ibagroup.easyrpa.ap.invoiceplane.task.GenerateAndSendReportTask:0536b250-49b8-4bdf-92e1-bc013db2b4db is executing synchronously on the ORCHESTRATION node. 2023-08-25 15:16:16,246 INFO e.i.e.engine.boot.ApModuleRunner [main] [] [] - Run [21145fbe-51e5-4131-885c-11c98baf427e,null] completed with OK 2023-08-25 15:16:16,247 DEBUG e.i.e.e.a.RemoteExecutionService [main] [] [] - All task notification received