SDK For Processes Would Drastically Increase Productivity

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.

Thank you for your feedback. We are analyzing how to improve the experience for advanced users.

2 Likes