I’ve been working slowly through the Robotic Enterprise Framework outline and walkthrough. The Dispatcher runs, the InitAllApplications runs, the TransactionFlow will run once it has the arguments from settings. I tested the Main Workflow, and while the queue has the items added, they’re not processing. The UiDemo application will open, it will log in, and then it will eventually close, with “No more transaction data detected” displaying in UiPath Studio. I believe the issue is with GetTransactionData.xaml, but I’m not sure. I’ve uploaded both the zip file of my entire workflow and GetTransactionData.xaml separately. Thanks in advance.
UiPath_REFramework_Demo.zip (1.7 MB)
GetTransactionData.xaml (9.8 KB)
In your GetTransactionData.xaml file, why not use the Add Queue Item that originally came with the framework? In this process state, only 1 transaction item should be loaded at a time. If this is the GetTransactionData.xaml from the Dispatcher state machine, the data to add to the Performer queue should be added in the Process state. The Get Transaction state is meant for getting the next transaction item of the Dispatcher if this is the Dispatcher state machine.
For example, if I’m scraping data from a website to be used bye the Performer, a transaction of the Dispatcher might be a page of data. That said, with this example, the Dispatcher will get all of the data in the Init state, and the Get Transaction Item state will iterate over the table of data. The Process state will load each row individually.
Alternatively, with the Bulk Queue Items activity added to UiPath Studio 2019, you could just make the table itself the only transaction in the Dispatcher, and load the whole table in one step. Either way is acceptable.
Thanks for the response Anthony,
Ah, so the Dispatcher workflow needs to be invoked in the Initialization state of the state machine, and an Add Queue Item would replace the Invoke activity in the GetTransactionData workflow?
Alternatively, when you say Bulk Queue Items, do you mean Get Queue Items? I don’t see Bulk as an option, unless it’s part of a package I don’t have installed.
Your Dispatcher and Performer should be in completely separate state machines: One REFramework for the Dispatcher and a different one for the Performer.
Oh, I misunderstood that part when I was following the walkthrough. They need to be separate frameworks, because uploading the data to the queue, then processing it is two different states, correct?
I’ll try that.
Exactly. You’ll also find that when you build a business process, having a separate Dispatcher and Performer will save you a lot of time coding, since multiple processes might get their data from a similar source, such as how data fetched from the Vendors page in the ACME example.
I just tried Bulk Add Queue, worked like a charm. Since that’s the only step, would that mean I could jump straight to Invoking the Dispatcher workflow?
You could jump into the Performer at this point, yes. The Dispatcher in this example is pretty straightforward.