ACME System 1 – Work Item 5: Retrieves client data (ID, Name, Country), computes a SHA1 security hash, and updates each work item via the site's UI.
Documentation is included in the Documentation/ folder.
This automation is built with UiPath REFramework and processes ACME System 1 work items of type WI5. At a high level, it:
- Logs into the web application.
- Filters and selects Open WI5 tasks.
- Extracts client data from the details page.
- Computes a SHA1 hash of
ClientID-ClientName-ClientCountry. - Updates the work item with the hash and status "Completed".
- Repeats until all WI5 items are processed.
All steps are defined in the official Process Design Document: Calculate Client Security Hash.
“This process design document describes the sequence of steps performed… serves as a base documentation for developers…” :contentReference[oaicite:1]{index=1}
This project is based on the Robotic Enterprise Framework (REFramework) template:
- A state machine layout covering Init → Transaction → Close states
- Supports high-level logging, structured exception handling, and retry logic
- Centralized Config.xlsx for settings and uses Orchestrator asset credentials
- Manages transaction status (Success, Business Rule Exception, System Exception)
- Automatically takes screenshots on unhandled exceptions :contentReference[oaicite:2]{index=2}
| State | Description |
|---|---|
| Initialize | InitAllSettings loads Config.xlsx & Orchestrator assetsGetAppCredential retrieves credentialsInitAllApplications opens & signs into ACME |
| GetTransactionData | Retrieves WI5 items from Orchestrator queue (configurable via Config("OrchestratorQueueName")) |
| Process | Executes the main hash computation workflow Updates transaction status using SetTransactionStatus |
| End Process | CloseAllApplications logs out and closes applications gracefully |
๐ ACME_System/
├── ACMESystem1_CloseWindow.xaml
├── ACMESystem1_EmailInvalidCreds.xaml
├── ACMESystem1_Launch.xaml
├── ACMESystem1_Login.xaml
├── ACMESystem1_Logout.xaml
├── ACMESystem1_NavigateToWorkItems.xaml
├── ACMESystem1_NavigateToWl.xaml
├── ACMESystem1_ReadWlClientInfo.xaml
├── ACMESystem1_ReadWiTable.xaml
├── ACMESystem1_NavigateToUpdateWorkItem.xaml
├── ACMESystem1-WriteUpdateWorkItemDetails.xaml
├── ACMESystem1-UpdateWorkItem.xaml
└── ACMESystem1-CloseUpdateWorkItemWindow.xaml
๐ SHA1/
├── SHA1-launch.xaml
├── SHA1-CloseWindow.xaml
└── SHA1-PerformHashing.xaml
๐ Data/
├── Input/
├── Output/
└── Config.xlsx
๐ Framework/
├── InitAllSettings.xaml
├── InitAllApplications.xaml
├── CloseAllApplications.xaml
├── GetTransactionData.xaml
├── Process.xaml
├── RetryCurrentTransaction.xaml
├── SetTransactionStatus.xaml
└── TakeScreenshot.xaml
๐ Exceptions_Screenshots/
๐ Documentation/
๐ Tests/
Main.xaml
Install the following packages via Manage Packages → Official UiPath feed:
UiPath.System.ActivitiesUiPath.UIAutomation.ActivitiesUiPath.Excel.Activities- REFramework core (workflows included in Framework folder)
- Update
Orchestratorwith:System1_URL,SHA1_URL,CredentialName,Email Credentials,ACMEReport_EmailReceiver
- Store your login credentials in UiPath Orchestrator as a Credential Asset
- Run Dispatcher: Enqueues WI5 transactions based on filtered data
- Run Performer: Processes each transaction, computes SHA1 hash, and updates status
- Verify the ACME System UI:
- Each work item should show status Completed
- SHA1 hash appears in the comments section
- Review and update
Config.xlsxfields: URLs, credentials, queue name, etc. - Ensure
InitAllApplications.xamlandCloseAllApplications.xamlmatch the login/logout process of ACME System - Modify
GetTransactionData.xamlandSetTransactionStatus.xamlif you're not using Orchestrator queues - Implement or adjust the logic inside
Process.xamlto:- Navigate to the WI5 page
- Extract client data
- Calculate SHA1 hash (
ClientID-ClientName-ClientCountry) - Post result back into each work item
- Use
RetryCurrentTransaction.xamlandTakeScreenshot.xamlfor error handling and recovery
๐ก Tip: Use UiPath Assistant or publish to Orchestrator for production-like deployment
- Developed for the UiPath RPA Developer Advanced Certification
- Based on the official REFramework template provided by UiPath
- Challenge sourced from ACME System 1
๐ Download Official PDD
Created by Karim Adel A solution for the Calculate Client Security Hash – WI5 challenge using UiPath REFramework.
UiPath • RPA • ACME System 1 • SHA1 • WI5 • REFramework • WorkItem5