Skip to main content

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:

  1. 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.
  2. Ensure that you have a running node with the "SELENIUM" and "AP_RUN" capabilities.
  3. 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
  4. Ensure the following details are provided for the Invoice Plane Automation Demo automation process in the Automation Process Details tab:

Module class: eu.ibagroup.easyrpa.ap.invoiceplane.InvoicePlaneSampleAp

Group Id: eu.ibagroup.samples.ap

Artifact Id: easy-rpa-invoiceplane-ap

Version Id: <EasyRPA version>


Configuration Parameters for Invoice Plane Automation Demo:

KeyDefault valueIs requiredDescription
invoiceplane.client.urlhttp://ci.rpaplatform.org:8085/index.php/sessions/loginnopath to InvoicePlane login page
inputFolderinvoice_plane_sample/inputnopath on storage server where invoice input json are
fileFilter.*.jsonnoinput json file filter to use
cleanUpDemotruenoclean up invoice plane flag
notificationTemplateInvoice Plane Email TemplatenoInvoice Plane Email Template
notificationChannelInvoice Plane Notification ChannelnoThe channel to send notification, should be created by administrator.

Datastores for Invoice Plane Automation Demo:

NameColumns
INVOICE_PLANE_INVOICEinvoice_number,client,invoice_date,status,due_date,amount,balance


Secret vault for Invoice Plane Automation Demo:

AliasValue
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:

  1. Generate standalone executable jar by issuing following command line for the easy-rpa-invoiceplane-ap project :

    mvn clean package -Pstandalone-jar
  2. Copy generated /easy-rpa-invoiceplane-ap/target/easy-rpa-invoiceplane-ap-<VERSION>-standalone.jar to a launch directory

  3. In the launch directory create sub-directory 'file_storage'
  4. Copy input files (e.g. '/easy-rpa-invoiceplane-ap/package/storage/data' content) to the sub-directory 'file_storage'
  5. Copy standalone run license file to the launch directory (please contact an EasyRpa representative person for obtaining standalone run license)
  6. Create 'apm_run.properties' in the launch directory
  7. In the 'apm_run.properties' specify 'SELENIUM_HUB_URL=local' option to use local web driver for Selenium calls
  8. If needed - download Selenium web driver for the actual version of the Chrome browser (see  WebDriver Version Update for details )
  9. Add the rest of the Configuration Parameters
  10. Optionally create "vault.properties" in the launch directory to specify custom invoiceplane.secrets
  11. 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