Monday, December 9, 2019

OMFG HOW I HATE FLOW / POWER AUTOMATE!!!!!!

I am angry.

Very angry.

I hate everyone involved in the creation of this tool.  Even if you are trying to make it better.

I just want you all to get space herpes.

Today's rant is brought to you by an entire team of people who suck at their jobs.  Or...perhaps some people who are being told to not make things easier for people working with SharePoint data and to focus on making it super-easy to use the CDS/Dataflex/Dataverse/whatever data store...

For the second time I have absolutely WASTED an hour of my time getting angrier and angrier as I roll back complex equations to something more simple over and over and over and just get terrible messages back from the platform.

I am forced to (time and again) break my code on purpose just to see how the error changes so I can see what the error ISN'T.  I have to copy pieces of code into lesser applications to bypass complex if/then structures.  I have to submit tests over and over while I just want to punch the lesser of my two identical monitors (you know who you are) and throw it out of my cube.

Today's adventure was:  Filtering a SharePoint list by Date.  Show me everything older than 7 days old.  That's it.

And nothing crazy here like using integer values counting seconds since date X.  I'm just filtering by the GODAAMMERUNG default Created field that is included in every single SharePoint list!!!!

Because of the worthless error message, I ran down multiple rabbit holes of trying to figure out if I needed to match time zones.  Then formats.  Then purposefully broke field names to figure out what in the world was wrong.  Then moved calculations out into variables just to prove I wasn't nuts.  Had multiple times where I tested and had the same error appear only to realize that I hadn't hit UPDATE on the "Expressions" tab before I hit Save.


"Oh, you want to change an Expression?  Well, you definitely have to hit UPDATE before we know you're seriously wanting to change an Expression.  Save definitely won't save what you've just done.  So you really need to hit UPDATE so we know you're serious.  Oh...and then hit Save.  Duuuuhr!"

Do you know what it was?

DO YOU KNOW WHAT IT WAS?!!!!?!!!

I left out the 'single quotes' around the date in my comparison.

That's it.

So I had:

Created lt @{addDays(utcNow(),-7)} <---WRONG!!! MORON!!!

When I should have had:
Created lt '@{addDays(utcNow(),-7)}'

Do this wrong and you will get a similar error:

{
"status": 400,
"message": "The expression \"Created lt 2019-12-02T17:44:42.4586847Z\" is not valid....(bunch of other stuff)"
}

And all it takes to fix this is to put the single quotes around the date function (as above) and it works.

Another One: Testing manual integer inputs

NOTE: They finally fixed this, but I am still so angry about it years later that I'm leaving this in.

God help you if you have a Flow you want to test and decide to manually enter the values.  At least if one of those values is an Integer.  You'll get something similar to this:
The inputs by default for ANYTHING you type into a variable input field are all string.  Even though it knows you're putting in an Integer, it says "Hey!  I don't know what to do w/ this String here buddy!".  Because it always...ALWAYS...puts quotes around whatever you put in as a favor for you.

Concurrency

DO NOT EVER CLICK THIS AND ENABLE IT!!!!!


I cannot hit enough people with a hammer to release the anger I have at how bad this feature is.  Oh sure, it "works" in that if you try it w/ some small data sets and just speed a few things up then everything fine.  Right up until it isn't.  And the reason you'd probably use this is for large data sets, which means, you've just f'd up thousands of rows of data.

And when I say f'd up, I mean completely and totally f'd it up.

Right now, I am just removing a 40,000 row SharePoint list because it wrote the wrong data to the wrong rows/columns that crossed Concurrent connections.  And while that is bad, what is worse is that SharePoint thinks the data is correct!!!!!

What I mean is, if you grab the data from SharePoint it is wrong.  But if you try to Update() the right data, then it does nothing.  I believe that SharePoint creates some kind of hash of the row and if the value(s) you send to update a row match that hash, then it doesn't update anything.  So even though I'm saying change a row where the data says "X" and I want it to now be "Y", nothing happens.  Manually change that row to anything else (even to A, then back to X), then it all works normally.

So Power Automate wrote the wrong data but also told SharePoint that it was the right data.

F*ck this tool.

Final Thoughts

I did this exact same thing about a year ago and also got equally as mad.  How can this team be this bad w/ recognizing a problem that is so obvious to fix and that comes with every single SharePoint list by default?

And don't get me started on the fact that they have a "Limit columns by View" in the Advanced section of the SharePoint Get Items step that doesn't actually apply any filters in the View (that would be too obvious) but only filters WHICH COLUMNS and nothing else.  I mean...I get that you explicitly have it stated to say "limit columns".  However, anybody would assume that if I'm looking at a View vs. a full list, then I'd want ALL THE PARAMETERS OF THE VIEW APPLIED.

OMFG DO I HATE YOU PEOPLE!!!!!

And now I'm going to go back to making all of this work the way it should have 2 hours ago.

10 comments:

  1. I couldn't agree with you more.
    The people that created Power Automate are morons!
    Untill recently I thought that SharePoint was the worst Microsoft product ever. I found out I was terribly wrong.
    Power Automate has no logic, no consistency, no user friendliness, no pretty much everything you are looking for in any product...

    ReplyDelete
  2. Features that should exist just don't. It doesn't make sense that I can't apply a flow to my entire organisation. And why do I have to make a flow for each DevOps board? I just want it applied across ALL of them.

    Absolutely retarded.

    ReplyDelete
  3. Power Automate is a piece of junk

    ReplyDelete
  4. The whole GD “Power Universe” sucks. I loved and worked in SPD and InfoPath religiously for years. Then they got rid of the Preview mode. I am not a “coder” and don’t want to be. Then they introduce PowerApps -“It’ll be easy for Power users!” they said.

    Simply put: bullshit

    Nothing in the PowerApp interface is even REMOTELY INTUITIVE. The “formulas” crap - don’t even get me started. The whole MS universe can burn in Hell for all I care now.

    ReplyDelete
    Replies
    1. I think a lot of the dumpster-fire we see relating to aspects of the Power Platform to be an example of how they are moving VERY QUICKLY in this space. It is difficult to 100% rely on certain aspects of the platform except to know that they'll be rapidly changing things. HOWEVER, the problem is that sometimes these aren't iterations, but massive changes. I think they are conceding some aspect of the Power FX language might still be too difficult for business-facing workers. See their announcement per Power Apps Ideas: https://powerapps.microsoft.com/en-us/blog/introducing-power-apps-ideas-ai-powered-assistance-now-helps-anyone-create-apps-using-natural-language/

      I will say that it gives me some small level of hope that they're acknowledging that the Power FX language within PowerApps is still not living up to the "low code" dream.

      Delete
  5. The whole GD “Power Universe” sucks. I loved and worked in SPD and InfoPath religiously for years. Then they got rid of the Preview mode. I am not a “coder” and don’t want to be. Then they introduce PowerApps -“It’ll be easy for Power users!” they said.

    Simply put: bullshit

    Nothing in the PowerApp interface is even REMOTELY INTUITIVE. The “formulas” crap - don’t even get me started. The whole MS universe can burn in Hell for all I care now.

    ReplyDelete
  6. Microsoft is going from low code —-> Retard 😞

    ReplyDelete
  7. Three years later and it still sucks. I love this rant. I hate power automate....we moved to Nintex. Fuck power automate!

    ReplyDelete
  8. it still sucks/ In fact, I notice that, after an hour of working on Power automate scripts, anything that seems to not work right on a completely different area of my computer, I immediately want to blame on PA. Flows that have inscrutable rules - they do tell me when I can't do something, but why can't I initialize a variable in the middle of an Apply To Each, instead of only in the first step! I can't think of a good intensifier for clunky, but if I could I would use it.

    Every time I want to do a change to a simple calendar view for my group's PTO, I break out in a cold sweat. This coming from someone who writes code for major pieces of automation equipment in a warehouse, written in Jython which is Java-based python 2.7 - that is ridiculous but I can make it work, but Power Automate reduces me to tears every time I want to just change the order of a person's username.

    ReplyDelete

Because some d-bag is throwing 'bot posts at my blog I've turned on full Moderation. If your comment doesn't show up immediately then that's why.

DIAF Visualpath team