Hello,
I am aware of the custom activity SDK, as well as workflow analyzer and all other solutions which use code as of today. What I am asking about is the possibility of a fully integrated library/sdk into VB or C# that would allow me to never have to use UIPath Studio(X) ever again. I also realize that this might not make sense here because UIPath studio is the breadwinner around here, and is made the way it is for a reason. It definitely makes it very easy to create robotic processes, and it has been a tremendous help.
However!
I really, really hate having to do assigns as this massively involved step of creating a variable, making sure its in the right scope, setting its type, and then using an assign activity to give it a value once you’ve done some work. That and many other tasks I feel are fairly trivial and the only reason that they’re so verbose is because they’re “compiled” down into XAML. Surely having a visual-coding style application that creates XAML is more work than just having a library that creates XAML?
You could even create a proprietary language, call it PATH Script or something - that would then produce XAML. Don’t need to do anything crazy, just some kind of other means of creating the XAML than UIPath.
// C# following the style of custom activities
using ...;
using uiPath;
class CheckIfHoliday {
[Category("Input")]
[RequiredArgument]
public InArgument<string> inStrCalendarDir { get; set; }
[Category("Input")]
[RequiredArgument]
public InArgument<string> inStrCalendarFile { get; set; }
[Category("Output")]
[RequiredArgument]
public OutArgument<s.DateTime[]> outArrHolidays { get; set; }
protected override void Execute(CodeActivityContext context)
{
inStrCalendarDir = inStrCalendarDir.Get(context);
inStrCalendarFile = inStrCalendarDir.Get(context);
sd.DataTable dtCalendar;
uiPath.WriteLine(inStrCalendarDir + "\\" + inStrCalendarFile)
[DisplayName="Read HR Calendar File"]
dtCalendar.ReadRange(addHeaders: True, sheetName: "Calendar", workbookPath: inStrCalendarDir + "\\" + inStrCalendarFile)
// wow how simple is that assign
DateTime[] result = dtCalendar.AsEnumerable().Select((a) => a.Field("Date")).ToArray();
[DisplayName="Assign Holidays in to an Array"]
outArrHolidays.Set(context, result);
}
}
Or some kind of custom made-up pseudocode
CheckIfHoliday {
in:
inStrCalendarDir String
inStrCalendarFile String
out:
outArrHolidays DateTime[]
main:
CheckIfHoliday() {
dtCalendar DataTable
WriteLine(inStrCalendarDir + "\" + inStrCalendarFile)
[DisplayName="Read HR Calendar File"]
dtCalendar.ReadRange(addHeaders: True, sheetName: "Calendar", workbookPath: inStrCalendarDir + "\" + inStrCalendarFile)
[DisplayName="Assign Holidays in to an Array"]
outArrHolidays = dtCalendar.AsEnumerable().Select((a) => a.Field(Of Date)("Date")).ToArray()
}
}
Please consider it. I realize that it might not make business sense, but as someone who has years of experience in UI Automation libraries like Test Studio and Selenium, I would love another alternative.