Document Understanding Process - New Studio Template

Hello everyone!

:fireworks: :loudspeaker: :sparkler: We are very excited to announce the new studio template for Document Understanding. You can find the Document Understanding Process template on the Official template feed - make sure Include Prerelease is checked. To get started, simply create a new project in UiPath Studio and select it.

We recommend to carefully read the enclosed User Guide, even if you’re already familiar with the solution. The Guide can be found here.

We are working on new intro & quick-start videos. In the mean time, while a little dated, the existing quick-start video is still relevant for an overview and dispatcher setup.

Features of the Document Understanding Process:

  • Queue Integration (Requires Orchestrator 20.10.8 or newer): Default for unattended, and optional for attended mode. Please do note that AutoRetries should not be activated on queues and that the Document Understanding Process was designed with the idea of ONE file per QueueItem!

  • Try / Catch and Error management: All important activities have a retry mechanisms or Try/Catches over them. If something goes wrong, it will be caught and reported in either ERR_Abortprocess.xaml or ERR_HandleDocumentError.xaml

  • Business and RPA friendly overview of the project: At a glance you are able to understand what happens where. This adds value by being easier to explain to business users what actually happens in the process, yet at the same time it simplifies the structure for ease of access in case of errors or feature requirements

  • Ability to use an attended or unattended bot with this process by selecting the correct main.xaml
    pic2

  • Classification retraining implemented directly in the workflow: It just works!

  • ReusableWorkflows folder with 2 implementations for Classification retraining:

  • Lock/Unlock file – default, already implemented.

  • Get/GiveUp Write Permission – requires manual implementation with a queue in Orchestrator.

pic3

If you managed to read up until here, I congratulate you and ask to provide any feedback either in this thread or directly making a pull request or opening an issue in our repository here. If you do create a new branch there, please be mindful of the naming conventions in the README.md file.

Cheers,

Alex and @Sergiu.Wittenberger

30 Likes

Hi @Alexandru-Luca,

Thanks to the team for releasing this framework. I am sure this will attract many others like me to try out Document Understanding in UiPath.

This is my first time trying out Document Understanding in UiPath and I was waiting until the feature is mature enough and has a good framework around it just like the REFramework. I have two issues to report.

1. Arguments lack documentation/annotations
The arguments in the workflows have no annotations. It makes is even more difficult to understand what the function of the argument is. This is not best practice for any enterprise automation. Since arguments are to be populated in invoke workflow, arguments need to be well described.

2. Workflow names
I understand that to keep some structure / order digits are used as the precursor in the workflow name. Is there any other reason? It just looks weird to me to invoke a workflow containing digits in file name. This means that if this framework has to be customized, there will be a lot referring back and forth to the name of the workflows or editing the workflow names by users.
image

4 Likes

Hi everyone, I’m trying for the first time
, but I’m facing an issue with out_Targetfile argument inside a process. Thing is I don’t understand where does this argument comes from.

Error message:
Assign - Get the TargetFile: The given key was not present in the dictionary.

Thank you very much in advance!

1 Like

Hi @carlacarnevali ,

You have to provide a Filepath into the out_TargetFile Argument.
If I’m not mistaken, it comes from the Main xaml workflow.

Kind Regards,
Ashwin A.K

1 Like

Hi @carlacarnevali!

That only happens when you enable queues for your process. In this case, you need to make sure that you pass the absolute path to the input file as “TargetFile” in the Queue Item’s Specific Contents.

If you don’t want to use queues, simply set Main.xamls’s (Attended ot ActionCenter, depending on your implementation) argument in_UseQueue = False

Cheers,
Alex.

1 Like

Thanks!

Hi again, sorry to bother but further down when I ran the process (Attended) I noticed it only gets and processes 1 Transaction Item. In the queue I have a few QueueItems, each one with a filepath.

I want to know how can I loop the process to get every Transaction Item. Thank you a lot in advance for your help!

In order to run this attended, do I need to set the ‘-Attended’ workflow as Main?

I tried to run the project as-in without making any changes, and I get the error:
An extension of type ‘UiPath.Activities.Contracts.Persistence.IPersistenceBookmarks’ must be configured in order to run this workflow.
image

According to this reply on a related thread, I assume I must be doing something wrong when trying to run it in attended mode.

Because DU Framework is a long running process it is also a linear framework meaning you can only process one queue item at a time (one job for each item in the queue).

1 Like

@Alexandru-Luca @Sergiu.Wittenberger any elegant way to use 2 queues, one that feeds the Classifier with paths to documents that are being classified and split (the split from extraction) and another queue where the classifier pours these items and the Extractor feeds on them?

Thinking on this just for more visibility in terms of queue items, this way you can always link an item in extraction with an item in classifier or be aware if any items did not pass the classifier.

As an example you can have a PDF with 10 invoices in it, this way the classifier queue will contain 10 items that are fed to the Extractor so you have visibility on which item was rejected in Classification or who knows what else :).

I hope what I wrote makes sense.

Thanks,
Cristian

@carlacarnevali - processing 1 queue item at a time is precisely the intended behaviour; you need to create your own dispatcher mechanism. Please check out the documentation.

@RPAForEveryone - Yes. You also need to disable Persistence. Please check out chapter Settings for Attended Processes in the User Guide.

@ctutu We played around with various scenarios involving multiple DU queues - including the one you mentioned. We found that debugging/managing/scaling become a nightmare very quickly. So, for now, we don’t have any plans to go in that direction.

2 Likes

Cheers Alex, much appreciated !

Short question: Can you explain what the purpose of the Config(“logKey”) is, maybe with an example when that is useful?

Wasn’t included in the previous version…

Thanks!

Hello @Alexandru-Luca can you also share the template as zip file? I am not able to find this template even after checked the Include Prerelease or is this available only in enterprise license?

Hello, i can’t fide this template on my Uipath . Why?

thanks

Hi all!

It seems that older versions of Studio don’t properly access/read the public templates feed. Sorry about that. You can find the Document Understanding Process template here. Just download the latest zip and extract the nupkg in the local templates feed - C:\Users<YOUR_WIN_USER>\Documents\UiPath\.templates

@MG2237 - this is done in order to make it very easy to find/filter all the logs coming from a certain job. Especially if you are using the Orchestrator GUI

2 Likes

Thanks for this :slight_smile:

Hi @jeevith!

Sorry for the late reply, I somehow missed your post until now.

1. Arguments lack documentation/annotations

Agreed. However, this release is not GA, it is a Preview release. While the functionality is all there, there are things to be added.

2. Workflow names

There is a mandatory execution order: Digitize, Classify, Validate, Extract, Validate, Export. It makes much more sense to have the workflows arranged like this than leave them in an alphabetically-sorted mess.

I would also like to point out that being familiar with Document Understanding itself is a prerequisite for using the template - I strongly recommend going through the Academy courses for that.

Hi @Alexandru-Luca,

I wanted to leave some constructive feedback to improve the template and as you requested in the release post.

I guess I was a little too excited to try this out. We will wait for the GA version. Meanwhile, as you rightly mentioned it’s probably good to invest some time and go through the academy course on Document Understanding.

That said, I do not see the following being mentioned anywhere in the release post

I would also like to point out that being familiar with Document Understanding itself is a prerequisite for using the template

If UiPath wants more enterprises to adopt DU then such statements will only deter developers who like to get their hands dirty (learning by doing) and figure the rest during the process of learning.