├── .settings ├── Debug │ ├── settings-1a5b880a.json │ ├── settings-5190454b.json │ ├── settings-590bb27b.json │ ├── settings-82ca306a.json │ ├── settings-9e9290da.json │ ├── settings-a1b2dac1.json │ └── settings-afad0842.json └── Release │ ├── settings-1a5b880a.json │ ├── settings-5190454b.json │ ├── settings-590bb27b.json │ ├── settings-82ca306a.json │ ├── settings-9e9290da.json │ ├── settings-a1b2dac1.json │ └── settings-afad0842.json ├── .tmh └── config.json ├── Data ├── Assests.csv ├── Config.xlsx ├── Input │ └── placeholder.txt ├── Output │ └── placeholder.txt ├── Temp │ └── placeholder.txt └── Workflow-Analyzer-CLI-Script.ps1 ├── Main.xaml ├── README.md ├── Sequence.xaml ├── TestCase.xaml ├── azure-pipelines.yml └── project.json /.settings/Debug/settings-1a5b880a.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.UiAutomation.Activities.Generic.DelayBeforeMS": "200", 3 | "UiPath.UiAutomation.Activities.Generic.DelayAfterMS": "300", 4 | "UiPath.UiAutomation.Activities.Generic.TimeoutMS": "30000", 5 | "UiPath.UiAutomation.Activities.Generic.WaitForReady": "INTERACTIVE", 6 | "UiPath.UiAutomation.Activities.Generic.AlterIfDisabled": "False", 7 | "UiPath.UiAutomation.Activities.Browser.BrowserType": "IE", 8 | "UiPath.UiAutomation.Activities.Browser.Private": "False", 9 | "UiPath.UiAutomation.Activities.Browser.NewSession": "True", 10 | "UiPath.UiAutomation.Activities.Browser.Hidden": "False", 11 | "UiPath.UiAutomation.Activities.Browser.CommunicationMethod": "Native", 12 | "UiPath.UiAutomation.Activities.Browser.UserDataFolderMode": "Automatic", 13 | "UiPath.UiAutomation.Activities.Browser.UserDataFolderPath": "", 14 | "UiPath.UiAutomation.Activities.Callout.Timer": "0", 15 | "UiPath.UiAutomation.Activities.DataScrape.DelayBetweenPagesMS": "300", 16 | "UiPath.UiAutomation.Activities.Highlight.HighlightTime": "1000", 17 | "UiPath.UiAutomation.Activities.KeyboardEvents.SendWindowMessages": "False", 18 | "UiPath.UiAutomation.Activities.KeyboardEvents.ClickBeforeTyping": "False", 19 | "UiPath.UiAutomation.Activities.KeyboardEvents.EmptyField": "False", 20 | "UiPath.UiAutomation.Activities.KeyboardEvents.SimulateType": "False", 21 | "UiPath.UiAutomation.Activities.SendHotkey.SendWindowMessages": "False", 22 | "UiPath.UiAutomation.Activities.MouseEvents.SendWindowMessages": "False", 23 | "UiPath.UiAutomation.Activities.MouseEvents.SimulateClick": "False", 24 | "UiPath.UiAutomation.Activities.MouseEvents.SimulateHover": "False", 25 | "UiPath.UiAutomation.Activities.Screenshot.WaitBefore": "300", 26 | "UiPath.UiAutomation.Activities.ElementExists.TimeoutMS": "30000" 27 | } -------------------------------------------------------------------------------- /.settings/Debug/settings-5190454b.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.CV.Activities.GenericCV.DelayBeforeMS": "300", 3 | "UiPath.CV.Activities.GenericCV.DelayAfterMS": "0", 4 | "UiPath.CV.Activities.GenericCV.TimeoutMS": "30000", 5 | "UiPath.CV.Activities.GenericCV.DelayBetweenKeys": "100", 6 | "UiPath.CV.Activities.CvScope.Server": "https://cv.uipath.com", 7 | "UiPath.CV.Activities.CvScope.ApiKey": "", 8 | "UiPath.CV.Activities.CvScope.UseLocalServer": "False", 9 | "UiPath.CV.Activities.CvScope.CVMethod": "ElementDetection|OCR" 10 | } -------------------------------------------------------------------------------- /.settings/Debug/settings-590bb27b.json: -------------------------------------------------------------------------------- 1 | { 2 | "DefaultOCREngine": "UiPath.Core.Activities.GoogleOCR, UiPath.UiAutomation.Activities", 3 | "UiPath.UiAutomation.Activities.GoogleCloudOCR.ApiKey": "", 4 | "UiPath.UiAutomation.Activities.GoogleCloudOCR.Scale": "1", 5 | "UiPath.UiAutomation.Activities.GoogleCloudOCR.Language": null, 6 | "UiPath.UiAutomation.Activities.GoogleOCR.AllowedCharacters": "", 7 | "UiPath.UiAutomation.Activities.GoogleOCR.DeniedCharacters": "", 8 | "UiPath.UiAutomation.Activities.GoogleOCR.Invert": "False", 9 | "UiPath.UiAutomation.Activities.GoogleOCR.Profile": "Legacy", 10 | "UiPath.UiAutomation.Activities.GoogleOCR.Scale": "2", 11 | "UiPath.UiAutomation.Activities.GoogleOCR.Language": "eng", 12 | "UiPath.UiAutomation.Activities.MicrosoftOCR.Profile": "Legacy", 13 | "UiPath.UiAutomation.Activities.MicrosoftOCR.Scale": "1", 14 | "UiPath.UiAutomation.Activities.MicrosoftOCR.Language": "en", 15 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.ApiKey": "", 16 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.Endpoint": "", 17 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.Scale": "1", 18 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.Language": "AutoDetect", 19 | "UiPath.OCR.Activities.UiPathScreenOCR.Endpoint": "https://ocr.uipath.com/", 20 | "UiPath.OCR.Activities.UiPathScreenOCR.ApiKey": "", 21 | "UiPath.OCR.Activities.UiPathDocumentOCR.Endpoint": "https://du.uipath.com/ocr", 22 | "UiPath.OCR.Activities.UiPathDocumentOCR.ApiKey": "" 23 | } -------------------------------------------------------------------------------- /.settings/Debug/settings-82ca306a.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.Testing.Activities.Generic.KeepScreenshots": "False", 3 | "UiPath.Testing.Activities.Generic.ScreenshotsPath": "", 4 | "UiPath.Testing.Activities.VerifyActivitiesOutputFormat.VerifyExpressionOutputFormat": "", 5 | "UiPath.Testing.Activities.VerifyActivitiesOutputFormat.VerifyExpressionWithOperatorOutputFormat": "", 6 | "UiPath.Testing.Activities.VerifyActivitiesOutputFormat.VerifyControlAttributeOutputFormat": "" 7 | } -------------------------------------------------------------------------------- /.settings/Debug/settings-9e9290da.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.System.Activities.AddDataColumn.AllowDBNull": "True", 3 | "UiPath.System.Activities.AddDataColumn.AutoIncrement": "False", 4 | "UiPath.System.Activities.AddDataColumn.MaxLength": "100", 5 | "UiPath.System.Activities.AddDataColumn.Unique": "False", 6 | "UiPath.System.Activities.ReadTextFile.Encoding": "", 7 | "UiPath.System.Activities.WriteTextFile.Encoding": "", 8 | "UiPath.System.Activities.AppendLine.Encoding": "", 9 | "UiPath.System.Activities.FilterDataTable.FilterRowsMode": "Keep", 10 | "UiPath.System.Activities.InvokeWorkflowFile.Timeout": "0", 11 | "UiPath.System.Activities.LogMessage.Level": "Info", 12 | "UiPath.System.Activities.MessageBox.Buttons": "Ok", 13 | "UiPath.System.Activities.MessageBox.TopMost": "True", 14 | "UiPath.System.Activities.OrchestratorHTTPRequest.RelativeEndpoint": "", 15 | "UiPath.System.Activities.RetryScope.NumberOfRetries": "3", 16 | "UiPath.System.Activities.RetryScope.RetryInterval": "5000" 17 | } -------------------------------------------------------------------------------- /.settings/Debug/settings-a1b2dac1.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.UIAutomationNext.Activities.Generic.DelayAfter": "0.3", 3 | "UiPath.UIAutomationNext.Activities.Generic.DelayBefore": "0.2", 4 | "UiPath.UIAutomationNext.Activities.Generic.Timeout": "30", 5 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.InteractionMode": "Simulate", 6 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.FullSelector": "False", 7 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.FuzzySelector": "True", 8 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.Image": "True", 9 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.Anchors": "True", 10 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.IgnoreSelectorsWithIdx": "True", 11 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.FullSelector": "True", 12 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.FuzzySelector": "True", 13 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.Image": "True", 14 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.Anchors": "True", 15 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.IgnoreSelectorsWithIdx": "True", 16 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.FullSelector": "True", 17 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.FuzzySelector": "False", 18 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.Image": "False", 19 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.Anchors": "False", 20 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.IgnoreSelectorsWithIdx": "True", 21 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.FullSelector": "True", 22 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.FuzzySelector": "True", 23 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.Image": "True", 24 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.Anchors": "True", 25 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.IgnoreSelectorsWithIdx": "True", 26 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.FullSelector": "True", 27 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.FuzzySelector": "True", 28 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.Image": "True", 29 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.Anchors": "True", 30 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.IgnoreSelectorsWithIdx": "True", 31 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.FullSelector": "True", 32 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.FuzzySelector": "True", 33 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.Image": "True", 34 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.Anchors": "True", 35 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.IgnoreSelectorsWithIdx": "True", 36 | "UiPath.UIAutomationNext.Activities.ApplicationCard.CloseMode": "Never", 37 | "UiPath.UIAutomationNext.Activities.ApplicationCard.OpenMode": "IfNotOpen", 38 | "UiPath.UIAutomationNext.Activities.ApplicationCard.UserDataFolderMode": "Automatic", 39 | "UiPath.UIAutomationNext.Activities.ApplicationCard.UserDataFolderPath": "", 40 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.ClickBeforeMode": "Single", 41 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.DelayBetweenKeys": "0.02", 42 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.DelayBetweenShortcuts": "0.5", 43 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.EmptyFieldMode": "SingleLine", 44 | "UiPath.UIAutomationNext.Activities.CheckState.CheckStateTimeout": "5", 45 | "UiPath.UIAutomationNext.Activities.DataScrape.DelayBetweenPages": "1.5", 46 | "UiPath.UIAutomationNext.Activities.Highlight.HighlightTime": "2", 47 | "UiPath.UIAutomationNext.Activities.Hover.HoverTime": "1", 48 | "UiPath.UIAutomationNext.Activities.Logging.SearchLog": "False", 49 | "UiPath.UIAutomationNext.Activities.Logging.SearchPerformanceLog": "False", 50 | "UiPath.UIAutomationNext.Activities.Generic.WaitForReady": "Interactive", 51 | "UiPath.UIAutomationNext.Activities.VerifyExecution.Timeout": "10", 52 | "UiPath.UIAutomationNext.Activities.VerifyExecution.Retry": "True", 53 | "UiPath.UIAutomationNext.Activities.VerifyExecution.VerifyTypedText": "False", 54 | "UiPath.UIAutomationNext.Activities.ApplicationCard.ResizeWindow": "None" 55 | } -------------------------------------------------------------------------------- /.settings/Debug/settings-afad0842.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.Excel.Activities.StartExcel.LaunchExcelMethod": "Automation", 3 | "UiPath.Excel.Activities.StartExcel.LaunchExcelTimeout": "20", 4 | "UiPath.Excel.Activities.ExcelVisibility.ShowExcelWindow": "True", 5 | "UiPath.Excel.Activities.ExcelVisibility.DisplayAlerts": "False", 6 | "UiPath.Excel.Activities.UseExcelFile.ReadFormatting": "Default", 7 | "UiPath.Excel.Activities.ExcelAutoComplete.ExcelAutoCompleteType": "Default" 8 | } -------------------------------------------------------------------------------- /.settings/Release/settings-1a5b880a.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.UiAutomation.Activities.Generic.DelayBeforeMS": "200", 3 | "UiPath.UiAutomation.Activities.Generic.DelayAfterMS": "300", 4 | "UiPath.UiAutomation.Activities.Generic.TimeoutMS": "30000", 5 | "UiPath.UiAutomation.Activities.Generic.WaitForReady": "INTERACTIVE", 6 | "UiPath.UiAutomation.Activities.Generic.AlterIfDisabled": "False", 7 | "UiPath.UiAutomation.Activities.Browser.BrowserType": "IE", 8 | "UiPath.UiAutomation.Activities.Browser.Private": "False", 9 | "UiPath.UiAutomation.Activities.Browser.NewSession": "True", 10 | "UiPath.UiAutomation.Activities.Browser.Hidden": "False", 11 | "UiPath.UiAutomation.Activities.Browser.CommunicationMethod": "Native", 12 | "UiPath.UiAutomation.Activities.Browser.UserDataFolderMode": "Automatic", 13 | "UiPath.UiAutomation.Activities.Browser.UserDataFolderPath": "", 14 | "UiPath.UiAutomation.Activities.Callout.Timer": "0", 15 | "UiPath.UiAutomation.Activities.DataScrape.DelayBetweenPagesMS": "300", 16 | "UiPath.UiAutomation.Activities.Highlight.HighlightTime": "1000", 17 | "UiPath.UiAutomation.Activities.KeyboardEvents.SendWindowMessages": "False", 18 | "UiPath.UiAutomation.Activities.KeyboardEvents.ClickBeforeTyping": "False", 19 | "UiPath.UiAutomation.Activities.KeyboardEvents.EmptyField": "False", 20 | "UiPath.UiAutomation.Activities.KeyboardEvents.SimulateType": "False", 21 | "UiPath.UiAutomation.Activities.SendHotkey.SendWindowMessages": "False", 22 | "UiPath.UiAutomation.Activities.MouseEvents.SendWindowMessages": "False", 23 | "UiPath.UiAutomation.Activities.MouseEvents.SimulateClick": "False", 24 | "UiPath.UiAutomation.Activities.MouseEvents.SimulateHover": "False", 25 | "UiPath.UiAutomation.Activities.Screenshot.WaitBefore": "300", 26 | "UiPath.UiAutomation.Activities.ElementExists.TimeoutMS": "30000" 27 | } -------------------------------------------------------------------------------- /.settings/Release/settings-5190454b.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.CV.Activities.GenericCV.DelayBeforeMS": "300", 3 | "UiPath.CV.Activities.GenericCV.DelayAfterMS": "0", 4 | "UiPath.CV.Activities.GenericCV.TimeoutMS": "30000", 5 | "UiPath.CV.Activities.GenericCV.DelayBetweenKeys": "100", 6 | "UiPath.CV.Activities.CvScope.Server": "https://cv.uipath.com", 7 | "UiPath.CV.Activities.CvScope.ApiKey": "", 8 | "UiPath.CV.Activities.CvScope.UseLocalServer": "False", 9 | "UiPath.CV.Activities.CvScope.CVMethod": "ElementDetection|OCR" 10 | } -------------------------------------------------------------------------------- /.settings/Release/settings-590bb27b.json: -------------------------------------------------------------------------------- 1 | { 2 | "DefaultOCREngine": "UiPath.Core.Activities.GoogleOCR, UiPath.UiAutomation.Activities", 3 | "UiPath.UiAutomation.Activities.GoogleCloudOCR.ApiKey": "", 4 | "UiPath.UiAutomation.Activities.GoogleCloudOCR.Scale": "1", 5 | "UiPath.UiAutomation.Activities.GoogleCloudOCR.Language": null, 6 | "UiPath.UiAutomation.Activities.GoogleOCR.AllowedCharacters": "", 7 | "UiPath.UiAutomation.Activities.GoogleOCR.DeniedCharacters": "", 8 | "UiPath.UiAutomation.Activities.GoogleOCR.Invert": "False", 9 | "UiPath.UiAutomation.Activities.GoogleOCR.Profile": "Legacy", 10 | "UiPath.UiAutomation.Activities.GoogleOCR.Scale": "2", 11 | "UiPath.UiAutomation.Activities.GoogleOCR.Language": "eng", 12 | "UiPath.UiAutomation.Activities.MicrosoftOCR.Profile": "Legacy", 13 | "UiPath.UiAutomation.Activities.MicrosoftOCR.Scale": "1", 14 | "UiPath.UiAutomation.Activities.MicrosoftOCR.Language": "en", 15 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.ApiKey": "", 16 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.Endpoint": "", 17 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.Scale": "1", 18 | "UiPath.UiAutomation.Activities.MicrosoftAzureComputerVisionOCR.Language": "AutoDetect", 19 | "UiPath.OCR.Activities.UiPathScreenOCR.Endpoint": "https://ocr.uipath.com/", 20 | "UiPath.OCR.Activities.UiPathScreenOCR.ApiKey": "", 21 | "UiPath.OCR.Activities.UiPathDocumentOCR.Endpoint": "https://du.uipath.com/ocr", 22 | "UiPath.OCR.Activities.UiPathDocumentOCR.ApiKey": "" 23 | } -------------------------------------------------------------------------------- /.settings/Release/settings-82ca306a.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.Testing.Activities.Generic.KeepScreenshots": "False", 3 | "UiPath.Testing.Activities.Generic.ScreenshotsPath": "", 4 | "UiPath.Testing.Activities.VerifyActivitiesOutputFormat.VerifyExpressionOutputFormat": "", 5 | "UiPath.Testing.Activities.VerifyActivitiesOutputFormat.VerifyExpressionWithOperatorOutputFormat": "", 6 | "UiPath.Testing.Activities.VerifyActivitiesOutputFormat.VerifyControlAttributeOutputFormat": "" 7 | } -------------------------------------------------------------------------------- /.settings/Release/settings-9e9290da.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.System.Activities.AddDataColumn.AllowDBNull": "True", 3 | "UiPath.System.Activities.AddDataColumn.AutoIncrement": "False", 4 | "UiPath.System.Activities.AddDataColumn.MaxLength": "100", 5 | "UiPath.System.Activities.AddDataColumn.Unique": "False", 6 | "UiPath.System.Activities.ReadTextFile.Encoding": "", 7 | "UiPath.System.Activities.WriteTextFile.Encoding": "", 8 | "UiPath.System.Activities.AppendLine.Encoding": "", 9 | "UiPath.System.Activities.FilterDataTable.FilterRowsMode": "Keep", 10 | "UiPath.System.Activities.InvokeWorkflowFile.Timeout": "0", 11 | "UiPath.System.Activities.LogMessage.Level": "Info", 12 | "UiPath.System.Activities.MessageBox.Buttons": "Ok", 13 | "UiPath.System.Activities.MessageBox.TopMost": "True", 14 | "UiPath.System.Activities.OrchestratorHTTPRequest.RelativeEndpoint": "", 15 | "UiPath.System.Activities.RetryScope.NumberOfRetries": "3", 16 | "UiPath.System.Activities.RetryScope.RetryInterval": "5000" 17 | } -------------------------------------------------------------------------------- /.settings/Release/settings-a1b2dac1.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.UIAutomationNext.Activities.Generic.DelayAfter": "0.3", 3 | "UiPath.UIAutomationNext.Activities.Generic.DelayBefore": "0.2", 4 | "UiPath.UIAutomationNext.Activities.Generic.Timeout": "30", 5 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.InteractionMode": "Simulate", 6 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.FullSelector": "False", 7 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.FuzzySelector": "True", 8 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.Image": "True", 9 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.Anchors": "True", 10 | "UiPath.UIAutomationNext.Activities.SearchStepsWeb.IgnoreSelectorsWithIdx": "True", 11 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.FullSelector": "True", 12 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.FuzzySelector": "True", 13 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.Image": "True", 14 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.Anchors": "True", 15 | "UiPath.UIAutomationNext.Activities.SearchStepsJava.IgnoreSelectorsWithIdx": "True", 16 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.FullSelector": "True", 17 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.FuzzySelector": "False", 18 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.Image": "False", 19 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.Anchors": "False", 20 | "UiPath.UIAutomationNext.Activities.SearchStepsSAP.IgnoreSelectorsWithIdx": "True", 21 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.FullSelector": "True", 22 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.FuzzySelector": "True", 23 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.Image": "True", 24 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.Anchors": "True", 25 | "UiPath.UIAutomationNext.Activities.SearchStepsUIA.IgnoreSelectorsWithIdx": "True", 26 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.FullSelector": "True", 27 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.FuzzySelector": "True", 28 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.Image": "True", 29 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.Anchors": "True", 30 | "UiPath.UIAutomationNext.Activities.SearchStepsAA.IgnoreSelectorsWithIdx": "True", 31 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.FullSelector": "True", 32 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.FuzzySelector": "True", 33 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.Image": "True", 34 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.Anchors": "True", 35 | "UiPath.UIAutomationNext.Activities.SearchStepsWnd.IgnoreSelectorsWithIdx": "True", 36 | "UiPath.UIAutomationNext.Activities.ApplicationCard.CloseMode": "Never", 37 | "UiPath.UIAutomationNext.Activities.ApplicationCard.OpenMode": "IfNotOpen", 38 | "UiPath.UIAutomationNext.Activities.ApplicationCard.UserDataFolderMode": "Automatic", 39 | "UiPath.UIAutomationNext.Activities.ApplicationCard.UserDataFolderPath": "", 40 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.ClickBeforeMode": "Single", 41 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.DelayBetweenKeys": "0.02", 42 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.DelayBetweenShortcuts": "0.5", 43 | "UiPath.UIAutomationNext.Activities.KeyboardEvents.EmptyFieldMode": "SingleLine", 44 | "UiPath.UIAutomationNext.Activities.CheckState.CheckStateTimeout": "5", 45 | "UiPath.UIAutomationNext.Activities.DataScrape.DelayBetweenPages": "1.5", 46 | "UiPath.UIAutomationNext.Activities.Highlight.HighlightTime": "2", 47 | "UiPath.UIAutomationNext.Activities.Hover.HoverTime": "1", 48 | "UiPath.UIAutomationNext.Activities.Logging.SearchLog": "False", 49 | "UiPath.UIAutomationNext.Activities.Logging.SearchPerformanceLog": "False", 50 | "UiPath.UIAutomationNext.Activities.Generic.WaitForReady": "Interactive", 51 | "UiPath.UIAutomationNext.Activities.VerifyExecution.Timeout": "10", 52 | "UiPath.UIAutomationNext.Activities.VerifyExecution.Retry": "True", 53 | "UiPath.UIAutomationNext.Activities.VerifyExecution.VerifyTypedText": "False", 54 | "UiPath.UIAutomationNext.Activities.ApplicationCard.ResizeWindow": "None" 55 | } -------------------------------------------------------------------------------- /.settings/Release/settings-afad0842.json: -------------------------------------------------------------------------------- 1 | { 2 | "UiPath.Excel.Activities.StartExcel.LaunchExcelMethod": "Automation", 3 | "UiPath.Excel.Activities.StartExcel.LaunchExcelTimeout": "20", 4 | "UiPath.Excel.Activities.ExcelVisibility.ShowExcelWindow": "True", 5 | "UiPath.Excel.Activities.ExcelVisibility.DisplayAlerts": "False", 6 | "UiPath.Excel.Activities.UseExcelFile.ReadFormatting": "Default", 7 | "UiPath.Excel.Activities.ExcelAutoComplete.ExcelAutoCompleteType": "Default" 8 | } -------------------------------------------------------------------------------- /.tmh/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "issueKeyTestcaseValues": {} 3 | } -------------------------------------------------------------------------------- /Data/Assests.csv: -------------------------------------------------------------------------------- 1 | name,type,value 2 | config,text,data\config.xlsx 3 | -------------------------------------------------------------------------------- /Data/Config.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rpabotsworld/UiPathAzureDevOpsExample/945cd9bf655ffc59f7f1e9477b2f8b97d4ac900f/Data/Config.xlsx -------------------------------------------------------------------------------- /Data/Input/placeholder.txt: -------------------------------------------------------------------------------- 1 | Input folder should be used to store all input files of the process. -------------------------------------------------------------------------------- /Data/Output/placeholder.txt: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Data/Temp/placeholder.txt: -------------------------------------------------------------------------------- 1 | Temp folder should store the files while they are being processed. Once the processing part is done, the files should be removed from this folder. -------------------------------------------------------------------------------- /Data/Workflow-Analyzer-CLI-Script.ps1: -------------------------------------------------------------------------------- 1 | <# Run UiPath Studio's Workflow Analyzer via command line and pipe results to file #> 2 | 3 | param ( 4 | $ProjectFilePath=".\project.json", 5 | $ExecutableFilePath="C:\'Program Files (x86)'\UiPath\Studio\UiPath.Studio.CommandLine.exe", 6 | $OutputFilePath=".\$(Get-Date -Format 'yyyy-MM-dd-HH-mm-ss')-Workflow-Analysis.json" 7 | ) 8 | 9 | Write-Output "$(Get-Date -Format 'HH:mm:ss') - STARTED - Workflow Analyzer CLI Script" 10 | 11 | $Command = "$ExecutableFilePath analyze -p $ProjectFilePath" 12 | Invoke-Expression $Command | Out-File -FilePath $OutputFilePath 13 | 14 | Write-Output "$(Get-Date -Format 'HH:mm:ss') - COMPLETED - Workflow Analyzer CLI Script" -------------------------------------------------------------------------------- /Main.xaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 785.6,650.4 11 | Main2_1 12 | 13 | 14 | System.Activities 15 | System.Activities.Statements 16 | System.Activities.Expressions 17 | System.Activities.Validation 18 | System.Activities.XamlIntegration 19 | Microsoft.VisualBasic 20 | Microsoft.VisualBasic.Activities 21 | System 22 | System.Collections 23 | System.Collections.Generic 24 | System.Data 25 | System.Diagnostics 26 | System.Drawing 27 | System.IO 28 | System.Linq 29 | System.Net.Mail 30 | System.Xml 31 | System.Xml.Linq 32 | UiPath.Core 33 | UiPath.Core.Activities 34 | System.Windows.Markup 35 | System.Xml.Serialization 36 | Newtonsoft.Json.Linq 37 | Newtonsoft.Json 38 | Microsoft.VisualBasic.CompilerServices 39 | System.Net 40 | System.Collections.ObjectModel 41 | System.Activities.DynamicUpdate 42 | 43 | 44 | 45 | 46 | System.Activities 47 | Microsoft.VisualBasic 48 | mscorlib 49 | System.Data 50 | System 51 | System.Drawing 52 | System.Core 53 | System.Xml 54 | System.Xml.Linq 55 | PresentationFramework 56 | WindowsBase 57 | PresentationCore 58 | System.Xaml 59 | System.ComponentModel.Composition 60 | System.ServiceModel 61 | Microsoft.VisualStudio.Services.Common 62 | System.Data.DataSetExtensions 63 | Newtonsoft.Json 64 | UiPath.IntelligentOCR 65 | UiPath.Python 66 | UiPath.Excel 67 | UiPath.System.Activities 68 | UiPath.UiAutomation.Activities 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | True 79 | 80 | 81 | 82 | 83 | [first] 84 | 85 | 86 | [in_first] 87 | 88 | 89 | 90 | 91 | [last] 92 | 93 | 94 | [in_last] 95 | 96 | 97 | 98 | 99 | [sum] 100 | 101 | 102 | [in_first+in_last] 103 | 104 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UiPathAzureDevOpsExample 2 | Implementing CI CD Pipeline for UiPath 3 | 4 | ## CI/CD in Context of RPA Tool UiPath 5 | Although many organizations have started implementing a Digital Workforce into their business operations – only a few are fully in control of their RPA bots. 6 | 7 | Very few COE has already implemented the CI/CD (Continuous Integration, Continuous Delivery) pipeline that allows you to automate your robot delivery process. 8 | 9 | A typical pipeline for UiPath can be – 10 | 11 | 1. The pipeline will initiate the build from your version control system. 12 | 2. The pipeline will also perform the creation of various assets, config replacement, creating initial folders etc. 13 | 3. The pipelines will publish the package to Orchestrator. 14 | 4. It can further include workflow analyser to code review, approval workflow, integration with ITIL tools such as(service now) for change board approvals. 15 | 5. It can be further improved to Run test cases from Orchestrator. 16 | 17 | And many other stages as per your organisation need. 18 | -------------------------------------------------------------------------------- /Sequence.xaml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | System.Activities 13 | System.Activities.Statements 14 | System.Activities.Expressions 15 | System.Activities.Validation 16 | System.Activities.XamlIntegration 17 | Microsoft.VisualBasic 18 | Microsoft.VisualBasic.Activities 19 | System 20 | System.Collections 21 | System.Collections.Generic 22 | System.Data 23 | System.Diagnostics 24 | System.Drawing 25 | System.IO 26 | System.Linq 27 | System.Net.Mail 28 | System.Xml 29 | System.Xml.Linq 30 | UiPath.Core 31 | UiPath.Core.Activities 32 | System.Windows.Markup 33 | 34 | 35 | 36 | 37 | System.Activities 38 | Microsoft.VisualBasic 39 | mscorlib 40 | System.Data 41 | System.Data.DataSetExtensions 42 | System 43 | System.Drawing 44 | System.Core 45 | System.Xml 46 | System.Xml.Linq 47 | PresentationFramework 48 | WindowsBase 49 | PresentationCore 50 | System.Xaml 51 | UiPath.System.Activities 52 | UiPath.UiAutomation.Activities 53 | 54 | 55 | 56 | 57 | 58 | True 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /TestCase.xaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | System.Activities 5 | System.Activities.Statements 6 | System.Activities.Expressions 7 | System.Activities.Validation 8 | System.Activities.XamlIntegration 9 | Microsoft.VisualBasic 10 | Microsoft.VisualBasic.Activities 11 | System 12 | System.Collections 13 | System.Collections.Generic 14 | System.Data 15 | System.Diagnostics 16 | System.Drawing 17 | System.IO 18 | System.Linq 19 | System.Net.Mail 20 | System.Xml 21 | System.Xml.Linq 22 | UiPath.Core 23 | UiPath.Core.Activities 24 | System.Windows.Markup 25 | System.Runtime.Serialization 26 | UiPath.Testing 27 | UiPath.Testing.Activities 28 | System.Activities.DynamicUpdate 29 | UiPath.Shared.Activities 30 | 31 | 32 | 33 | 34 | System.Activities 35 | Microsoft.VisualBasic 36 | mscorlib 37 | System.Data 38 | System.Data.DataSetExtensions 39 | System 40 | System.Drawing 41 | System.Core 42 | System.Xml 43 | System.Xml.Linq 44 | PresentationFramework 45 | WindowsBase 46 | PresentationCore 47 | System.Xaml 48 | UiPath.System.Activities 49 | UiPath.UiAutomation.Activities 50 | System.Runtime.Serialization 51 | UiPath.System.Activities.Design 52 | System.ServiceModel 53 | Microsoft.Bcl.AsyncInterfaces 54 | System.ValueTuple 55 | System.ComponentModel.Composition 56 | UiPath.OCR.Activities.Design 57 | UiPath.Excel 58 | System.Memory 59 | UiPath.UIAutomationCore 60 | System.Runtime.WindowsRuntime 61 | UiPath.Testing 62 | UiPath.Testing.Activities 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | True 74 | 75 | 76 | 77 | 78 | 79 | True 80 | 81 | 82 | 83 | 84 | [f] 85 | 86 | 87 | 5 88 | 89 | 90 | 91 | 92 | [l] 93 | 94 | 95 | 10 96 | 97 | 98 | 99 | 100 | 101 | 102 | True 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | True 126 | 127 | 128 | 129 | 130 | [sum] 131 | 132 | 133 | [f+l] 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | trigger: 2 | - master 3 | variables: 4 | - group: DEV 5 | 6 | stages: 7 | - stage: Build 8 | displayName: Build Package 9 | jobs: 10 | - job: BuildPackage 11 | pool: LAPTOP-Q338O4FK 12 | steps: 13 | - task: UiPathPack@2 14 | inputs: 15 | versionType: 'AutoVersion' 16 | projectJsonPath: '$(Build.SourcesDirectory)\project.json' 17 | outputType: 'Process' 18 | orchestratorConnection: 'UiPath DEV' 19 | outputPath: '$(Build.ArtifactStagingDirectory)' 20 | - publish: $(Build.ArtifactStagingDirectory) 21 | artifact: drop 22 | 23 | - stage: Assest 24 | displayName: Create Assests 25 | jobs: 26 | - job: CreateAssests 27 | pool: LAPTOP-Q338O4FK 28 | steps: 29 | - task: UiPathAssets@2 30 | inputs: 31 | orchestratorConnection: 'UiPath DEV' 32 | folderName: 'Shared' 33 | assetActionType: 'Deploy' 34 | csvFile: '$(Build.SourcesDirectory)\Data\Assests.csv' 35 | 36 | - stage: DeployDEV 37 | displayName: Deploy build artifact to DEV 38 | dependsOn: Build 39 | condition: succeeded() 40 | jobs: 41 | - deployment: deployDEV 42 | displayName: Deploy package to DEV Orchestrator 43 | pool: LAPTOP-Q338O4FK 44 | environment: DEV 45 | strategy: 46 | runOnce: 47 | deploy: 48 | steps: 49 | - task: UiPathDeploy@2 50 | inputs: 51 | orchestratorConnection: 'UiPath DEV' 52 | packagesPath: '$(Pipeline.Workspace)\drop\' 53 | folderName: 'Shared' 54 | 55 | - stage: WorkflowAnalyser 56 | displayName: RunWorkflow Analyser 57 | dependsOn: Build 58 | condition: succeeded() 59 | jobs: 60 | - job: WorkflowAnalyser 61 | displayName: AnalyseProject Using Workflow Cli 62 | pool: LAPTOP-Q338O4FK 63 | steps: 64 | - task: PowerShell@2 65 | inputs: 66 | targetType: filePath 67 | filePath: $(Build.SourcesDirectory)\Data\Workflow-Analyzer-CLI-Script 68 | arguments: > # Use this to avoid newline characters in multiline string 69 | -ProjectFilePath $(Build.SourcesDirectory)\project.json 70 | -ExecutableFilePath "C:\Users\prasa\AppData\Local\UiPath\app-21.4.4\UiPath.Studio.CommandLine.exe" 71 | -OutputFilePath '$(Pipeline.Workspace)\drop\Workflow-Analysis.json' 72 | workingDirectory: $(Build.SourcesDirectory) 73 | displayName: 'Analyse Project' 74 | 75 | - stage : CodeQuality 76 | displayName: Check Code Analysis 77 | dependsOn: Build 78 | condition: succeeded() 79 | jobs: 80 | - job : CodeQuality 81 | steps: 82 | - task: SonarCloudPrepare@1 83 | inputs: 84 | SonarCloud: 'Sonar' 85 | organization: 'rpabotsworld' 86 | scannerMode: 'CLI' 87 | configMode: 'manual' 88 | cliProjectKey: 'rpabotsworld_UiPathAzureDevOpsExample' 89 | cliProjectName: 'UiPathAzureDevOpsExample' 90 | cliSources: '.' 91 | - task: SonarCloudAnalyze@1 92 | - task: SonarCloudPublish@1 93 | inputs: 94 | pollingTimeoutSec: '300' 95 | 96 | 97 | - stage: TestDEV 98 | displayName: Test After Publish 99 | dependsOn: DeployDEV 100 | condition: succeeded() 101 | jobs: 102 | - job: TestDEV 103 | pool: LAPTOP-Q338O4FK 104 | steps: 105 | - task: UiPathTest@2 106 | inputs: 107 | testTarget: 'TestSet' 108 | orchestratorConnection: 'UiPATH RPABOTSWORLD' 109 | testSet: 'UiPathAzureDevOps_Tests' 110 | folderName: 'Shared' 111 | testReportDestination: '$(Pipeline.Workspace)\drop\' 112 | 113 | -------------------------------------------------------------------------------- /project.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "UiPathAzureDevOps", 3 | "description": "Publish Packages to orchestrators with Azure DevOps", 4 | "main": "Main.xaml", 5 | "dependencies": { 6 | "UiPath.Excel.Activities": "[2.10.4]", 7 | "UiPath.System.Activities": "[21.4.1]", 8 | "UiPath.Testing.Activities": "[1.3.3]", 9 | "UiPath.UIAutomation.Activities": "[21.4.4]" 10 | }, 11 | "webServices": [], 12 | "entitiesStores": [], 13 | "schemaVersion": "4.0", 14 | "studioVersion": "20.10.0.0", 15 | "projectVersion": "1.0.77451864", 16 | "runtimeOptions": { 17 | "autoDispose": false, 18 | "isPausable": true, 19 | "requiresUserInteraction": true, 20 | "supportsPersistence": false, 21 | "excludedLoggedData": [ 22 | "Private:*", 23 | "*password*" 24 | ], 25 | "executionType": "Workflow", 26 | "readyForPiP": false, 27 | "startsInPiP": false 28 | }, 29 | "designOptions": { 30 | "projectProfile": "Developement", 31 | "outputType": "Process", 32 | "libraryOptions": { 33 | "includeOriginalXaml": false, 34 | "privateWorkflows": [] 35 | }, 36 | "processOptions": { 37 | "ignoredFiles": [] 38 | }, 39 | "fileInfoCollection": [ 40 | { 41 | "editingStatus": "Publishable", 42 | "testCaseId": "0cfc1331-4bce-41dd-be70-6e416508755a", 43 | "fileName": "TestCase.xaml" 44 | } 45 | ], 46 | "modernBehavior": false 47 | }, 48 | "expressionLanguage": "VisualBasic", 49 | "entryPoints": [ 50 | { 51 | "filePath": "Main.xaml", 52 | "uniqueId": "ee55f915-89a9-4f2f-a8be-b70d2e26fe79", 53 | "input": [], 54 | "output": [] 55 | } 56 | ], 57 | "isTemplate": false, 58 | "templateProjectData": {}, 59 | "publishData": {}, 60 | "targetFramework": "Legacy" 61 | } --------------------------------------------------------------------------------