- Overview
- Callout
- Complex Scenarios
- Credentials
- Data Service
- Form
- Release notes
- Project compatibility
- Real Time Forms
- Updating form data
- Running forms using JavaScript
- Customizing Forms Using CSS
- Conditional components
- Adding multiple components on the same row in Columns
- Using the Data Table component
- Get File/Folder path
- Reading cell values from a Data Grid component
- Displaying PDF files
- Displaying images in forms
- Scrolling through Data Grids
- Using Dev Tools with forms
- Calculate form component values
- Managing dates in forms
- Opening hyperlinks inside forms
- Displaying a default tab in forms
- Displaying the full label of a component
- Searching long strings in drop-down lists
- About the pre 23.4 Form experience
- Project Compatibility
- Real Time Forms
- Dynamic Checkboxes
- Conditional Dropdowns
- Displaying a Default Tab
- Displaying Images
- Displaying PDF Files
- Displaying the Full Label
- Dynamic HTML Elements
- Managing Dates
- Searching Long Strings in Drop-downs
- Customizing Forms Using Local CSS Files
- Executing Do Block On Checkbox Change
- Customizing Columns Width
- Updating Form Data
- Resetting Collection Data
- Advanced Logic
- Executing Do Block on Dropdown Option Change
- Reading Cell Values From a Data Grid Component
- Conditional Components
- Scrolling Through Data Grid Components
- Using the Grid Component
- Dev Tools
- Calculated Value
- Dynamic Dropdowns
- Switching Tabs With Button Click
- Opening Hyperlinks Inside Form
- FTP
- IPC
- Persistence
- Release notes
- Project compatibility
- About the Persistence activity package
- Bulk Form Designer
- Start Job And Get Reference
- Wait For Job And Resume
- Add Queue Item And Get Reference
- Wait For Queue Item And Resume
- Wait For Form Task And Resume
- Resume After Delay
- Assign Tasks
- Create External Task
- Wait For External Task And Resume
- Complete Task
- Forward Task
- Get Form Tasks
- Get Task Data
- Get App Tasks
- Add Task Comment
- Update Task Labels
- Create App Task
- Wait For App Task And Resume
- Configure task timer
- Working with App tasks
- Building Your First Form Action
- Advanced Controls for Drop-downs
- Embedding Objects in Form Actions
- Allowing Users to Upload Files to the Storage Bucket
- Adding Advanced Logic Using Java Script
- Setting a Default Tab
- Removing the Delete button from Edit Grid using custom CSS
- Customizing Edit Grid templates
- Using buttons to trigger custom logic
- Using an External Form Layout
- Dynamically expanding form components at runtime
- Aligning the content of a form component from left to right using JSON attributes
- Sample Workflows
- Automation Ops Pipelines
- System
- Release notes
- About the System activity package
- Project compatibility
- Supported character encoding
- RegEx Builder Wizard
- Add Data Column
- Add Data Row
- Add Log Fields
- Add or Subtract from Date
- Add Transaction Item
- Add Queue Item
- Append Item to Collection
- Append Item to List
- Append Line
- Beep
- Break / Exit Loop
- Browse for File
- Browse for Folder
- Build Collection
- Build Data Table
- Bulk Add Queue Items
- Change Case for Text
- Change Type
- Check False
- Check True
- Clear Data Table
- Collection to Data Table
- Comment
- Compress/Zip Files
- Copy File
- Copy Folder
- Combine text
- Comment Out / Disabled Activities
- Continue / Skip Current
- Create File
- Create Folder
- Create List
- Custom Input
- Delete
- Delete File
- Delete Folder
- Delete Storage File
- Delete Queue Items
- Disable Local Trigger
- Do While
- Download file from URL
- Download Storage File
- Enable Local Trigger
- Evaluate Business Rule
- Exists in Collection
- Extract/Unzip Files
- Extract Date and Time from Text
- Extract Text
- File Change Trigger
- File Exists
- Filter Collection
- Filter Data Table
- Folder Exists
- For Each
- For Each File in Folder
- File Change Trigger V3
- Find and Replace
- Find Matching Patterns
- For Each Folder in Folder
- For Each Row in Data Table
- Format Date as Text
- Format Value
- Generate Data Table From Text
- Get Asset
- Get Credential / Get Orchestrator Credential
- Get Current Job Info
- Get Environment Folder
- Get Environment Variable
- Get File Info
- Get Folder Info
- Get Jobs
- Get Processes
- Get Row Item
- Get Transaction Item
- Get Username/Password
- Get Queue Items
- Global Variable Changed Trigger
- Input Dialog
- Invoke Code
- Invoke Com Method
- Invoke Power Shell
- Invoke Process
- Invoke VBScript
- Invoke Workflow File
- Is Text Matching
- Join Data Tables
- Kill Process
- Launch Workflow Interactive
- List Storage Files
- Log Message
- Lookup Data Table
- Manual Trigger
- Merge Collections
- Merge Data Table
- Message Box
- Modify Date
- Modify Text
- Move File
- Move Folder
- Multiple Assign
- New Item Added to Queue
- Notify Global Variable Changed
- Orchestrator HTTP Request
- Output Data Table
- Path Exists
- Postpone Transaction Item
- Process End Trigger
- Process Start Trigger
- Raise Alert
- Read List Item
- Read Text File
- Read Storage Text
- Remove Data Column
- Remove Data Row
- Remove Duplicate Rows
- Remove From Collection
- Remove Log Fields
- Replace Matching Patterns
- Repeat Number of Times
- Repeat Trigger
- Rename File
- Rename Folder
- Report Status
- Reset Timer
- Resume Timer
- Retry Scope
- Return
- Run Parallel Process
- Set Asset
- Set Credential
- Set Environment Variable
- Set Transaction Progress
- Set Transaction Status
- Should Stop
- Split Text
- Sort Data Table
- Run Local Triggers
- Start Timer
- Start Job
- Stop Job
- Stop Local Triggers
- Stop Timer
- Text to Left/Right
- Text to Upper/Lowercase
- Time Trigger
- Trigger Scope
- Timeout Scope
- Update Row Item
- Update List Item
- Upload Storage File
- Wait for Download
- Wait Queue Item
- While
- Workflow Placeholder
- Write Storage Text
- Write Text File
- AddDataRow
- AddQueueItem
- AddTransactionItem
- AppendLine
- BulkAddQueueItems
- ClearDataTable
- CompressZipFiles
- CopyFile
- CreateFile
- CreateFolder
- DeleteFileOrFolder
- DeleteQueueItems
- DeleteStorageFile
- DownloadStorageFile
- ExtractUnzipFiles
- FilterDataTable
- GetAsset
- GetCredential
- GetJobs
- GetQueueItem
- GetQueueItems
- GetResourceForLocalPath
- GetRowItem
- GetTransactionItem
- InvokeProcess
- JoinDataTables
- ListStorageFiles
- LookUpDataTable
- MergeDataTable
- MoveFile
- OrchestratorHTTPRequest
- OutputDataTable
- PathExists
- PostponeTransactionItem
- ReadStorageText
- ReadTextFile
- RemoveDataColumn
- RemoveDuplicateRows
- Replace
- SetAsset
- SetCredential
- SetTransactionProgress
- SetTransactionStatus
- SortDataTable
- StartJob
- StopJob
- UpdateRowItem
- UploadStorageFile
- WaitQueueItem
- WriteStorageText
- WriteTextFile
- Testing
- Release notes
- About the Testing activity package
- Project compatibility
- Project Settings
- Add Test Data Queue Item
- Address
- Attach Document
- Bulk Add Test Data Queue Items
- Create Comparison Rule
- Delete Test Data Queue Items
- Get Test Data Queue Item
- Get Test Data Queue Items
- Given Name
- Last Name
- Random Date
- Random Number
- Random String
- Random Value
- Verify Control Attribute
- Verify Documents Equivalence
- Verify Expression
- Verify Expression With Operator
- Verify Range
- Verify Text Equivalence
- Address
- AddTestDataQueueItem
- AttachDocument
- BulkAddTestDataQueueItems
- DeleteTestDataQueueItems
- GetTestDataQueueItem
- GetTestDataQueueItems
- GivenName
- LastName
- RandomDate
- RandomNumber
- RandomString
- RandomValue
- VerifyAreEqual
- VerifyAreNotEqual
- VerifyContains
- VerifyExpression
- VerifyExpressionWithOperator
- VerifyIsGreater
- VerifyIsGreaterOrEqual
- VerifyIsLess
- VerifyIsLessOrEqual
- VerifyIsRegexMatch
- VerifyRange
- Workflow Events
- Workflow Foundation
Manipulate Tables
The example below explains how to build a table, merge it, sort the data and remove duplicates. It uses activities such as Merge Data Table, Sort Data Table, and Remove Duplicate Rows. You can find these activities in the UiPath.System.Activities package.
This is how the automation process can be built:
- Open Studio and create a new Process.
-
Drag a Sequence container in the Workflow Designer.
-
Create the following variables:
Variable Name
Variable Type
Default Value
DT1
DataTable
DT2
DataTable
DataTableString
String
-
-
Drag a Build Data Table activity inside the Sequence container.
- In the Properties panel, add the variable
DT1
in the DataTable field.
- In the Properties panel, add the variable
-
Click the DataTable button from the Build Data Table activity.
- Click the Add Column button and add a new column.
- Click the Edit Column button from the first column and add the value
Name
in the ColumnName field. - Select the String option from the Data Type drop-down list.
- Select the check box for the Allow Null option.
- Add the value
-1
in the Max Length field. - Click the OK option for closing the window.
- Click the Edit Column button from the second column and add the value
Surname
in the ColumnName field. - Select the String option from the Data Type drop-down list.
- Select the check box for the Allow Null option.
- Add the value
-1
in the Max Length field. - Click the OK option for closing the window.
- Click the Edit Column button from the third column and add the value
Grade
in the ColumnName field. - Select the Int32 option from the Data Type drop-down list.
- Select the check box for the Allow Null option.
- Add the value
-1
in the Max Length field. - Fill in the fields with names, surnames and grades.
- Click the OK button for closing the window.
- Click the OK button again.
-
Here is how the Build Data Table should look:
-
Drag another Build Data Table activity below the previous Build Data Table activity.
- In the Properties panel, add the variable
DT2
in the DataTable field.
- In the Properties panel, add the variable
-
Click the DataTable button from the Build Data Table activity.
- Click the Add Column button and add a new column.
- Add the value
Name
in the ColumnName field. - Select the String option from the Data Type drop-down list.
- Select the check box for the Allow Null option.
- Add the value
-1
in the Max Length field. - Click the OK option for closing the window.
- Click the Edit Column button from the second column and add the value
Surname
in the ColumnName field. - Select the String option from the Data Type drop-down list.
- Select the check box for the Allow Null option.
- Add the value
-1
in the Max Length field. - Click the OK option for closing the window.
- Click the Edit Column button from the third column and add the value
Grade
in the ColumnName field. - Select the Int32 option from the Data Type drop-down list.
- Select the check box for the Allow Null option.
- Add the value
-1
in the Max Length field. - Fill in the fields with names, surnames and grades.
- Click the OK button for closing the window.
- Click the OK button again.
-
Here is how the Build Data Table should look:
- Place a new Sequence container below the Build Data Table activity and name it Merge.
-
Drag a Merge Data Table activity inside the Merge container.
- In the Properties panel, add the variable
DT1
in the Destination field. - Select the Add option from the MissingSchemaAction drop-down list.
- Add the variable
DT2
in the Source field.
- In the Properties panel, add the variable
-
Drag an Output Data Table activity below the Merge Data Table activity.
- In the Properties panel, add the variable
DT1
in the DataTable field. - Add the variable
DataTableString
in the Text field.
- In the Properties panel, add the variable
-
Place a Write Line activity under the Output Data Table activity.
- Add the expression
"Merged DataTable:"
in the Text field.
- Add the expression
-
Place another Write Line activity under the previous one.
- Add the variable
DataTableString
in the Text field.
- Add the variable
-
Drag a new Sequence container and place it below the Merge container.
- In the Properties panel, add the value
Sort Descending by Grade
in the DisplayName field.
- In the Properties panel, add the value
-
Drag a Sort Data Table activity inside the Sort Descending by Grade container.
- In the Properties panel, add the variable
DT1
in the DataTable field. - Add the variable
DT1
in the DataTable field. - Add the value
"Grade"
in the Name field. - Select the Descending option from the Order drop-down list.
- In the Properties panel, add the variable
-
Drag an Output Data Table activity below the Sort Data Table activity.
- In the Properties panel, add the variable
DT1
in the DataTable field. - Add the variable
DataTableString
in the Text field.
- In the Properties panel, add the variable
-
Place a Write Line activity under the Output Data Table activity.
- Add the expression
"Sorted DataTable:"
in the Text field.
- Add the expression
-
Place a Write Line activity below the previous one.
- Add the variable
DataTableString
in the Text field.
- Add the variable
-
Drag a new Sequence container and place it below the Sort Descending by Grade container.
- In the Properties panel, add the value
Remove Duplicates
in the DisplayName field.
- In the Properties panel, add the value
-
Place a Remove Duplicate Rows activity inside the Remove Duplicates container.
- In the Properties panel, add the variable
DT1
in the DataTable field. - Add the variable
DT1
in the DataTable field.
- In the Properties panel, add the variable
-
Drag an Output Data Table activity below the Remove Duplicate Rows activity.
- In the Properties panel, add the variable
DT1
in the DataTable field. - Add the variable
DataTableString
in the Text field.
- In the Properties panel, add the variable
-
Place a Write Line activity under the Output Data Table activity.
- Add the expression
"Remove Duplicates DataTable:"
in the Text field.
- Add the expression
-
Place a Write Line activity below the previous one.
- Add the variable
DataTableString
in the Text field. -
This is how the workflow should look:
- Add the variable
- Run the process. The robot builds a table, merges it, sorts the data and removes the duplicates.
Here you can download an example.