I have Few Questions regarding Uipath
1)How you reduce time taken to dispatch bulk items without using “add bulk queue items”?
2)what are the methods to compensate the simulate click and send window methods?
3)How can you change the retry number for the 4th queue item?
4)How the end user can run the project from his side if he doesn’t have orchestrator?
5) Under which activity, executing macro needs to be placed ?
6)how can you read pdf text with coordinates?
I’ll try to answer your questions from my experience.
I suggest implementing the ‘Add Bulk Queue Items’ into your Framework and all projects. Although, in the past, I have had issues getting some of the fields to work and it would put them in as ‘SpecificContent’ (which is fine, if you account for that when you check for certain values)
Regardless of which method you use, you will want to ‘Get Queue Items’ and filter your items you want to add to the ones that have not been added yet (either Successful, Failed, Retried, or New states) prior to adding them into the Queue. But, I believe using ‘Add Queue Item’ to add them individual will still take time, for example, if you have thousands of transactions to add. (‘Add Bulk Queue Items’ is the way to go)
I don’t know if I understand your question, but always use ‘Simulate Click’ whenever possible because it allows the automation to work even if the window is not on the screen or minimized. This doesn’t always work for the application you are interacting with, and in those scenarios, try to use ‘Set Web Attribute’ or ‘Inject Js’. For unattended processes, this isn’t as important though, but still recommended.
I don’t recommend using the transaction number as the criteria for your retry mechanism. Essentially, and to keep things simple, you will have two types of exceptions. ‘Application/System Exceptions’ which mean something is wrong with the application, usually caused randomly, and ‘BusinessRule Exceptions’ which mean something is wrong with the data used such as credentials or excel file information. If you set it up correctly, you can throw BREs for when you don’t want retries to occur.
You usually don’t want to complicate it by having different retry counts for different transactions. But, if this is a requirement, I would suggest deciding what the criteria is for the different retry number and add that in to the transaction when you add it to the Queue. Then, you can pull that value in during your check with the ‘MaxRetryNumber’.
There are various solutions for this, but I can’t say I have explored all options, personally.
One thing I do have experience with is using an Email from the end user. A bot runs every 15mins and picks up the emails with the process name in the subject and a whitelist of users to ensure the user is authorized to start that process, then the Email job uses API (or you can use the Orchestrator activities) to start the process.
Alternatively, you would need to use API and create an application or a chat bot that the end user can use to trigger that call.
Hopefully, in the future, it becomes easier for end users to interact with their unattended automations with no security concerns.
Not sure I understand your question. If you mean an Excel macro, then you can use the ‘Execute Macro’ inside the Excel Scope, and it should start it inside that file referenced by the scope.
If you require position-based PDF reading, then you will need to use Document Understanding / AI Fabric, as far as I know. UiPath has a product solution for this, but I think the more popular solution right now is using Abbyy’s Flexicapture.
But, you don’t necessarily need to use DU, because you can use string manipulation to extract the text you want from the PDF, as long as when you digitize the text, it is in a format that can easily be delimited. If it’s text-based PDF, you can digitize it with ‘Read PDF Text’, but if it’s image-based, then you can use any OCR engine (like Omnipage or Abbyy) to digitize the text. To extract the value you want from the text, you can use .net to split it by specific keywords or you can use Regex patterns which sometimes are more versatile.
Using String manipulation isn’t necessarily the low-code solution and occasionally requires some maintenance.
Most of the time a popup will show in a consistent position in your automation sequence. Then, you can place a Click or Close Window at that spot and set the ‘ContinueOnError’ to True if it doesn’t show.
Sometimes, however, there are popups not associated with the application you are interacting with, and it’s difficult to know when the popup will appear. In this scenario, it is usually good to have good error handling retry mechanism, and ensure the application that the popup associates with is included in either the Kill Processes or Close Application .xaml part of your project. This way, the popup gets closed, when it causes an error to occur, and the transaction or part of your process that failed gets a retry attempt.
For parallelism-type solutions, where random popups are being watching concurrent to the process running, do some searches on the forums. However, in my own experience, I have not seen or used a solution like this.