Windows Workflow Foundation and UIPath


#1

Hi guys I have a few questions about the philosophy behind UiPath:

First of all, after working with the Studio for a while, it seems to me that UiPath is built on top of the Windows Workflow Foundation software created by Microsoft, and UiPath has created it’s own custom activities for its users. I am a bit concerned about this because WF doesn’t seem like it is a very active community or all that well supported by Microsoft. Most of the posts I can find for it are from 2015 or earlier, with a couple of posts from last year, but nothing within the last few months really. Here are a few of the posts I was able to find when I look it up Stack Overflow, is workflow foundation dead?, the Wikipedia page also seems fairly dated, it hasn’t been edited much lately and most of the refrences are very old wiki link. These are just a couple of examples of what you find on the first page of a google search when you search for “Windows Workflow Foundation” or “Windows Workflow Foundation support”.

So my first question is, can anyone explain to me why WF is the right choice for RPA implementations?

A few things that go with working in WF that I’ve noticed:

  • There is a fairly steep learning curve on appropriate use of activities and WF in general. It isn’t immediately user friendly. Beyond UI Automation, especially for things like data manipulation or validation, I find that using the Invoke Code activity is simply better because navigating hand written code is easier for complex logic than WF’s visual representations using activities and decisions and loop activities. This is somewhat counter to the idea of WF though.

  • I know it is possible to create custom UiPath activities because WF is an extendable tool that allows custom activities, and UiPath has documented how to create one which is helpful. One thing that I find surprising though is that UiPath is requiring it’s users to use a second licensed tool Visual Studio from Microsoft (there is a cost associated with this at the enterprise level) to be able to use UiPath fully. Shouldn’t this be built in to the tool natively?

  • A corollary of UiPath using WF is that UiPath is using and promoting the use of VB.NET programming. This is from the .NET blog from Microsoft. It implies that Microsoft is moving towards C# a lot more than VB.NET due to popular demand.

The core activities provided by UiPath with the highest value to me are the UI Automation activities such as click, type into, send hotkey, etc. I find the idea of selectors to be a powerful addition to pre-existing scripting tools like python, powershell, and other scripting languages. Beyond data retrieval and data input into systems through their UI’s, it seems to me that WF activities should generally be avoided, since it is more readable and comfortable for a developer to work with code, especially when there is complex logic. It can be cumbersome to try to click each activity to see what one line of code it is performing, and nested ifs can become a nightmare. I see RPA scripts looking something like this:

Retrieve data from UIs
run a script for all data manipulation
input data into UIs

I’m wondering if people generally have had a similar experience with this? If so, does WF really make sense? Would UiPath ever build their own custom interface that links more closely to written code while maybe keeping some of the useful UI components of using prebuilt activities like clicking? If the purpose of WF is to make things “easier to use” and more “user friendly” so you don’t need to have a developer background and so “anyone” can do it, I think that is a bit dishonest. From what I’ve seen, a user with no development background making anything in WF ends up with a giant mess that is not very supportable or maintainable that often won’t even work.

Let me know if anyone has had a similar experience as me with any of this. Maybe someone can help to shed some light on this choice and make me better understand.


#2

Cant agree more. Most of the points are absolutely true. Extensibility of uipath is not easy given the steep learning curve of WF4. So with VB.NET.
However when it comes using it as it is, I would still call it user friendly compared to other two leading RPA tools in the market. And TAT for development is also on the lower side , with very high community support and knowledge base availabile openly.


#3

Most of what you said is spot on in my opinion.
RPA developers who try to use every single activity provided to execute every little action results in a great mess of a workflow. There needs to be a combination of both coding and visual elements for the most immersive and maintainable workflow, which brings also a more user-friendly experience while debugging and navigating the design.

Like for example, you need to verify that something is a number before comparing it to a value, so instead of embeding many If activities or cluttering the flow with multiple decisions, you can simply use some coding: If(IsNumeric(var), CDbl(var)=0, False)

I don’t think we should shy away from placing coding snippets into your design as such either, because everyone is capable of learning these tricks (you don’t have to know everything and can look it up quickly) and that it improves the overall robustness of your project when you can account for user error in so many ways while not sacrificing the readability and simplicity/organization of the automated process.