With the push to get us to create new automations as Windows instead of Windows Legacy, it can be challenging to find replacements for activity packages that do not have versions for the newer platform. One such activity package that I use heavily in my automations is the Microsoft “Workflow Manager Activities” (Microsoft.Activities 1.0.1).
Does anyone have suggestions for a Windows compatible activity package that has the functions that Workflow Manager Activities" included?
In particular, I often use IsTrue or IsFalse for the condition in Retry loops. Many of the other Expressions and Dictionary/Collection management functions are also very useful.
I think we already have alternative ways for activities of the package.
For example, we can use CheckTrue or CheckFalse instead of IsTrue or IsFalse in conditon of RetryScope.
And we can use Assign and InvokeMethod as alternative of Dictionary/Collection management activities. (InvokeMethod is not very easy…)
If there is an activity which is difficult to alternate, can you share it?
@Yoichi , thanks for the reply. I agree that Check True/Check False can now be used in the Retry Scope condition. Seems like in some older versions of Studio, it wasn’t allowed, but I’m glad it works now.
Do you know replacement for Get elapsed days/time? I can write it on my own but just wondering if there is anything else available
I have also a question for some replacement of Alphabet package - is there any working solution for capturing root/parent name of the container (sequence/workflow) for catching that during execution. I know that there is get Current job info, but I would love to get parent name like it was before.
Hi @Yameso ,
I have never used the old Get Elapsed days.time. I have always just used variables of type StopWatch or DateTime along with all the built-in functionality that those types support.
For StopWatch:
declare a var of type StopWatch (e.g. myTimer).
Assign: myTimer = myTimer.StartNew
to get elapsed at some point:
Assign saveTotalSeconds (a Double) = myTimer.Elapsed.TotalSeconds
For Dates, I’ve used DateDiff and the like:
“The diff between date 1 " + datetime1.ToShortDateString + " and date2 " + datetime2.ToShortDateString + " is " + DateDiff(“d”,datetime1,datetime2).ToString + " days.”
I have never used the Alphabet.Workflow.GetParentActivityName / GetRootActivityName, but they look like great functions. I hope Markus Werner can publish a new Windows version of these utilities soon–I would definitely use them.
In my case, the Check True/ Check False aren’t really perfect alternatives, as they forcibly throw an exception if the expression does not match the condition.
Hi @Mombas ,
When using Check True/Check False in Retry loops as the Condition, they do not throw an exception, but otherwise they do. I guess you could put them inside a Try/Catch.
Hi @Bill_Richardson ,
I tried this in the newest studio version, but after 3 iterations of the retry scope it still throws an exception because of the Check True/False activity.
Next to that, it would be weird that an activity shows differente behavior within certain activities and ‘outsdide’ these particular activities.
Hi @jeremiederuijter ,
Apologies–yes–Check True/False do throw an exception within the condition of a Retry, but what I should have said is that you should use an outer Try/Catch around the Retry and that way you are handling the situation where the Retry is unsuccessful.
No worries, I actually just found my solution since I don’t want to use a Try/Catch around the retry scope because I do want it to throw the necessary errors when running into them.
Instead of the prior Is True / Is False activity I’m using Exists in Collection activity to replicate the Is True / Is False activities. You only would need to create an array variable of type Boolean and assign a default value of {True}. Then with Exists in Collection you can validate if your Boolean is True or False and use it as a condition in your Retry Scope activity.
Hi @jeremiederuijter ,
I really like your solution with Exists in Collection; however, I recently noticed in Studio 2023.10.3 with all the latest libraries, Exists in Collection is no longer allowed as an activity in the Condition. Have you run into this? Have you found a better solution?
I know this is an old thread, but (again) I came here via Google and a similar question. Good to know how CheckTrue can replace IsTrue!
Regarding the expression: Maybe a robust approach with AndAlso can help. For example I am retrying a SalesForce ExecuteSoql. If successful the activity returns a SalesforceStatus.Success set to true. On the way to this a lot can go wrong, like a connection error preventing ExecuteSoql to even be executed. Long story short: A simple condition for SfSoqlSfStatus.Success does not work.
However, with the variable SfSoqlSfStatus declared (but not initialized) then in the retry scope condition I can have SfSoqlSfStatus IsNot Nothing AndAlso SfSoqlSfStatus.GetType().GetProperty("Success") IsNot Nothing AndAlso SfSoqlSfStatus.Success = True
I use such oneliner expressions a lot, GenAI helps to generate them if I don’t fully remember the syntax, I find them quite readable, and in case of a check on a dictionary the 2nd criteria is even shorter with a .ContainsKey