- Overview
- Document Processing Contracts
- About the Document Processing Contracts
- Box Class
- IPersistedActivity Interface
- PrettyBoxConverter Class
- IClassifierActivity Interface
- IClassifierCapabilitiesProvider Interface
- ClassifierDocumentType Class
- ClassifierResult Class
- ClassifierCodeActivity Class
- ClassifierNativeActivity Class
- ClassifierAsyncCodeActivity Class
- ClassifierDocumentTypeCapability Class
- ExtractorAsyncCodeActivity Class
- ExtractorCodeActivity Class
- ExtractorDocumentType Class
- ExtractorDocumentTypeCapabilities Class
- ExtractorFieldCapability Class
- ExtractorNativeActivity Class
- ExtractorResult Class
- ICapabilitiesProvider Interface
- IExtractorActivity Interface
- ExtractorPayload Class
- DocumentActionPriority Enum
- DocumentActionData Class
- DocumentActionStatus Enum
- DocumentActionType Enum
- DocumentClassificationActionData Class
- DocumentValidationActionData Class
- UserData Class
- Document Class
- DocumentSplittingResult Class
- DomExtensions Class
- Page Class
- PageSection Class
- Polygon Class
- PolygonConverter Class
- Metadata Class
- WordGroup Class
- Word Class
- ProcessingSource Enum
- ResultsTableCell Class
- ResultsTableValue Class
- ResultsTableColumnInfo Class
- ResultsTable Class
- Rotation Enum
- SectionType Enum
- WordGroupType Enum
- IDocumentTextProjection Interface
- ClassificationResult Class
- ExtractionResult Class
- ResultsDocument Class
- ResultsDocumentBounds Class
- ResultsDataPoint Class
- ResultsValue Class
- ResultsContentReference Class
- ResultsValueTokens Class
- ResultsDerivedField Class
- ResultsDataSource Enum
- ResultConstants Class
- SimpleFieldValue Class
- TableFieldValue Class
- DocumentGroup Class
- DocumentTaxonomy Class
- DocumentType Class
- Field Class
- FieldType Enum
- LanguageInfo Class
- MetadataEntry Class
- TextType Enum
- TypeField Class
- ITrackingActivity Interface
- ITrainableActivity Interface
- ITrainableClassifierActivity Interface
- ITrainableExtractorActivity Interface
- TrainableClassifierAsyncCodeActivity Class
- TrainableClassifierCodeActivity Class
- TrainableClassifierNativeActivity Class
- TrainableExtractorAsyncCodeActivity Class
- TrainableExtractorCodeActivity Class
- TrainableExtractorNativeActivity Class
- Document Understanding Digitizer
- Document Understanding ML
- Document Understanding OCR Local Server
- Document Understanding Process - Studio Template
- Document Understanding Activities
- About the Document Understanding Package
- Project Compatibility
- Set PDF Password
- Merge PDFs
- Get PDF Page Count
- Extract PDF Text
- Extract PDF Images
- Extract PDF Page Range
- Extract Document Data
- Create Validation Task and Wait
- Wait for Validation Task and Resume
- Create Validation Task
- Classify Document
- Create Classification Validation Task
- Create Classification Validation Task and Wait
- Wait for Classification Validation Task and Resume
- Intelligent OCR
- About the IntelligentOCR Activities Package
- Project Compatibility
- Load Taxonomy
- Digitize Document
- Classify Document Scope
- Keyword Based Classifier
- Intelligent Keyword Classifier
- Present Classification Station
- Create Document Classification Action
- Wait for Document Classification Action and Resume
- Train Classifiers Scope
- Keyword Based Classifier Trainer
- Intelligent Keyword Classifier Trainer
- Data Extraction Scope
- RegEx Based Extractor
- Form Extractor
- Intelligent Form Extractor
- Present Validation Station
- Create Document Validation Action
- Wait for Document Validation Action and Resume
- Train Extractors Scope
- Export Extraction Results
- ML Services
- OCR
- OCR Contracts
- Release Notes
- About the OCR Contracts
- Project Compatibility
- IOCRActivity Interface
- OCRAsyncCodeActivity Class
- OCRCodeActivity Class
- OCRNativeActivity Class
- Character Class
- OCRResult Class
- Word Class
- FontStyles Enum
- OCRRotation Enum
- OCRCapabilities Class
- OCRScrapeBase Class
- OCRScrapeFactory Class
- ScrapeControlBase Class
- ScrapeEngineUsages Enum
- ScrapeEngineBase
- ScrapeEngineFactory Class
- ScrapeEngineProvider Class
- OmniPage
- PDF
- [Unlisted] Abbyy
- Release Notes
- About the Abbyy Activities Package
- Project Compatibility
- Document Processing Using FlexiCapture Scope
- Document Processing Using FlexiCapture Scope and Language Detection
- FlexiCapture Integration
- [Unlisted] Abbyy Embedded
Document Processing Using FlexiCapture Scope
.xlsx
file is created, including the final output. It presents activities such as Validate Document, FlexiCapture Scope, Get Field, Get Table, and Classify Document. You can find these activities in the UiPath.Abbyy.Activities package.
This is how the automation process can be built:
- Open Studio and create a new Process named by default Main.
-
Drag a Sequence container in the Workflow Designer and create the following variable:
Variable Name
Variable Type
Default Value
filePaths
System.String[]
 data
DataTable
 i
int32
 table
DataTable
 -
Drag an Assign activity in the sequence container.
- Add the variable
filePaths
in the To field. - Add the expression .
directory.GetFiles(in_ImagesFolderPath)
in the Value field.
- Add the variable
-
Add a Build Data Table activity under the Assign activity.
- In the Properties panel, add the variable
data
in the DataTable field. - Click on the DataTable button to define your table columns.
- Click on the Add Column button. In the new window, add the name of the column in the Column Name field.
- Select the
String
value from the Data Type drop-down list. - Select the check box for the Allow Null option. This allows null values to be added in this column.
- Once all columns are added, select the OK button to close the window.
-
This is how your DataTable should look:
- In the Properties panel, add the variable
-
Drag a For Each activity below the Build Data Table activity.
- Add the name
file
in the Item field. - In the Properties panel, add the variable
filePaths
in the Values field and the variablei
in the Index field. - Select the
String
option from the TypeArgument drop-down list.
- Add the name
-
Add a FlexiCapture Scope activity in the body of the For Each activity.
-
Select the Do sequence from the activity's body and create the following variable:
Variable Name
Variable Type
Default Value
classification
String
 document
UiPath.Abbyy.Core.FlexiCapture.FCDocument
 field
UiPath.Abbyy.Core.FlexiCapture.FCField
Â
-
-
Drag an Add Data Row activity inside the Do container.
- In the Properties panel, add the expression
{}
in the ArrayRow field and the variabledata
in the DataTable field.
- In the Properties panel, add the expression
-
Place an Assign activity below the Add Data Row activity.
- Add the expression
data.Rows(i)("FileName")
in the To field and the namefile
in the Value field.
- Add the expression
-
Drag a Classify Document under the Assign activity.
- Insert the expression
{in_FCDotFilePath}
in the DefinitionFiles field. - Add the value
file
in the SourceDocument field. - Add the variable
classification
in the Result field.
- Insert the expression
-
Drag an Assign activity.
- Add the expression
data.Rows(i)("Classification")
in the To field and the variableclassification
in the Value field.
- Add the expression
-
Place a Process Document activity under the Assign activity.
- Add the expression
{in_FCDotFilePath}
in the DefinitionFiles field. - Add the value
file
in the Document field. - Add the variable
document
in the Result field.
- Add the expression
-
Place a Validate Document activity under the Process Document activity.
- Add the variable
document
in the Document field. - Add the variable
document
in the Result field.
- Add the variable
- Drag a Sequence container and name it
Company Name
. -
Drag a Get Field activity inside the Company Name sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"CompanyName"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Company Name")
in the To field and the expressionfield.Value
in the Value field.
-
-
Return to the Do container and drag a new Sequence activity under the Company Name container.
- Name the new sequence
Customer Number
.
- Name the new sequence
-
Drag a Get Field activity inside the Customer Number sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"CustomerNumber"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Customer Number")
in the To field and the expressionfield.Value
in the Value field.
-
-
Return to the Do container and drag a new Sequence activity under the Customer Number container.
- Name the new sequence
Email
.
- Name the new sequence
-
Drag a Get Field activity inside the Email sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"Email"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Email")
in the To field and the expressionfield.Value
in the Value field.
-
-
Return to the Do container and drag a new Sequence activity under the Email container.
- Name the new sequence
Date
.
- Name the new sequence
-
Drag a Get Field activity inside the Date sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"Date"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Date")
in the To field and the expressionfield.Value
in the Value field.
-
-
Return to the Do container and drag a new Sequence activity under the Date container.
- Name the new sequence
Delivery Address
.
- Name the new sequence
-
Drag a Get Field activity inside the Delivery Address sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"DeliveryAddress"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Delivery Address")
in the To field and the expressionfield.Value
in the Value field.
-
-
Return to the Do container and drag a new Sequence activity under the Delivery Address container.
- Name the new sequence
Billing Address
.
- Name the new sequence
-
Drag a Get Field activity inside the Billing Address sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"BillingAddress"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Billing Address")
in the To field and the expressionfield.Value
in the Value field.
-
-
Return to the Do container and drag a new Sequence activity under the Billing Address container.
- Name the new sequence
Invoice Number
.
- Name the new sequence
-
Drag a Get Field activity inside the Invoice Number sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"InvoiceNumber"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Invoice Number")
in the To field and the expressionfield.Value
in the Value field.
-
-
Return to the Do container and drag a new Sequence activity under the Invoice Number container.
- Name the new sequence
Total CHF
.
- Name the new sequence
-
Drag a Get Field activity inside the Total CHF sequence.
- In the Properties panel, add the variable
document
in the Document field. - Add the expression
"TotalCHF"
in the Name field. - Add the variable
field
in the Result field.
- In the Properties panel, add the variable
-
Drag an Assign activity under the Get Field activity.
-
Add the value
data.Rows(i)("Total CHF")
in the To field and the expressionfield.Value
in the Value field.
-
- Return to the main Sequence container.
-
Drag an Excel Write Range activity under the For each activity.
- In the Properties panel, add the value
"Sheet1"
in the SheetName field. - Add the value
"A1"
in the StartingCell field. - Add the variable
data
in the DataTable field. - Add the expression
"OCR_Results.xlsx"
in the WorkbookPath field. - Select the AddHeaders check box for considering the first row of the table a header.
- In the Properties panel, add the value
-
Drag a FlexiCapture Scope activity below the Write Range activity and create the following variable:
Variable Name
Variable Type
Default Value
doc
UiPath.IntelligentOCR.FC.FCDocument
 -
Place a Process Document activity inside the Do container of the IntelligentOCR Scope activity.
- Add the expression
{in_FCDotFilePath}
in the DefinitionFiles field. - Add the expression
filePaths(0)
in the Document field. - Add the variable
doc
in the Result field.
- Add the expression
-
Drag a Get Table activity under the Process Document activity.
- Add the variable
doc
in the Document field. - Add the expression
"LineItems"
in the Name field. - Add the variable
table
in the Result field.
- Add the variable
-
Drag a Write Range activity under the IntelligentOCR Scope activity.
- In the Properties panel, add the value
"Table Example"
in the SheetName field. - Add the value
"A1"
in the StartingCell field. - Add the variable
table
in the DataTable field. - Add the path
"OCR_Results.xlsx"
in the WorkbookPath field. - Select the AddHeaders check box for considering the first row of the table a header.
- In the Properties panel, add the value
- Run the workflow. The automation process creates a new workbook with all classified, processed, and validated data.
Download example from here.