Patching just stopped

Recently we decided we’d like to start capture how much effort was expanded working on our tickets. Reason being, assumptions may be that tasks may take little time when instead they may actually consume far more time, recording this would allow us to demonstrate this via PowerBi reporting.

I quickly added a time estimate field to our tickets SharePoint list and thought we were home and house. It all looked as though things were patching, then today I noticed statuses weren’t updating, weird. As soon as I removed the field from the patch statement all worked again, seemed it didn’t like having a number text entry field, it wanted it to be a text field and have that converted to a number, queue X-Files theme music.

All part of the learning curve!

But which version are you running?

Ever since swapping away from my 365 account at work to a service account for PowerApps development we’ve experienced issues. Most notably, Power Automate flows just seem to fail where previously they never did. So, I rebuild these flows using the Service Account, reconnect everything within the PowerApp, and things just work once more. The flow doesn’t have a single step changed, or any new connectors, just ownership.

One thing that truly irks me with PowerApps development is adding a flow to your app, why when doing this must Microsoft insist on wiping out all other codes from the formula bar? It’s seriously annoying, right? Having to remember to copy your code prior to insertion of a new flow truly sucks the big one.

Caching

I recently was forced to replace one flow that was used to handle approvals as it kept flaking out on me. In creating the new one under the service account I decided to turn off the old one as this would then indicate to me if someone was running a cached version, which occurred today.

I decided there needed to be a way to highlight to our users when we’d updated our app, something we could announce to them for comparison. I eventually discovered how to go about achieving this, firstly adding the PowerApps for App Makers component. Through this component you’re then able to discover data about apps, pulling this into a collection.

ClearCollect(GetApps,PowerAppsforMakers.GetAppVersions(Last(Filter(PowerAppsforMakers.GetApps().value,properties.displayName = "My Apps Name")).name));
Set(theVersion, Lookup(GetApps, First(GetApps.id), properties.appVersion))

I found when collecting the apps data for my app I was getting several rows returned, the last row contained the most recent published version. I then use a lookup to store this into a variable which I later use within a label for display. The version data displays date and time the app was last published, this makes it easier I think for users to identify whether they’re using an up to date release, version numbers I think have less meaning.

Sadly, I can’t get around the catching issue and must get users to remember to either clear their cache or force refresh to ensure they’ve the most recent version. I’m about to publish a much more substantial update to our service desk that incorporates:

  • Tabbed interface
  • Variable-height galleries with rich text support for comments
  • Introduction of private work notes for our team
  • Dynamic save button (mainly to accommodate the new tabs – I didn’t want multiple save buttons – bleh!)
  • Smarter forms for task assignment

Looking forward to deploying this new release, I think the team will enjoy using it.

When Forms makes no sense

When I developed our Support Desk app our screens were developed using Forms, these offer certain benefits I required, particularly with handling attachments uploads. However, once we’ve moved to managing of tickets use of forms wasn’t strictly necessary and actually has become a hindrance.

Why? When it comes to assigning a ticket to one of our team members the dropdown needed to refer to data in a separate SharePoint list, something forms just won’t let me do. Thus, I’m now creating a new ticket management screen, including adding some new functionality at the same time.

What spurred this latest iteration for the app was my desire to allow quick ticket assignment of a ticket from within the gallery, just click a person icon and it assigns to you. This worked, however when I would then open the ticket and perform a task (after refreshing the data) the data actually resets to what it was before I’d made the assignment – weird!

So, I decided to abandon use of forms and take control and thereby gain greater functionality. I now have the ability to control who we can assign tasks to, previously we had to search a combo box. The negative with losing forms is of course being able to leverage the OnSuccess and OnFailure events, these are so useful.

I’m adding to this iteration tabs and work notes. The tabs will help us reduce scrolling to see comments blocks, especially as were now adding another comment block, tabs can be used to control visibility and improve usability. Still much to do and test, but liking where this is going.

App in a Day

Tomorrow I’ll be undertaking one of Microsoft’s free training programs, App in a day. It’s targeted towards those who’ve no experience in developing in PowerApps, so not exactly me, however it will also introduce me to other aspects I’ve not yet experienced, including model driven applications; common data service; power automate; and PowerBi (though I have basic exposure to this).

I’m also hoping to solve some niggling issues I have using filter with combo boxes associated with personnel. I’ve a few combo boxes throughout my serve desk app that request a person’s name, for instance who we’re assigning a ticket to. I would love to limit the list for that combo box to just my team, however to date haven’t managed to make that work 😞

The App in a day program is 8 hours in total spread across 4 days, looks like it will be an interesting program.

Frustrated enhancements

Following on from yesterday’s development efforts I continued enhancing our support desk app with further features and changes we were keen to implement.

As I was developing it was frustrating the poor documentation on the PowerApps website, funnily enough there was the comment reflecting this from someone who mattered subtlety “incomplete documentation”. It’s poor they fail to document how to use features or attributes sufficiently, even sometimes at all, in this case I was looking for information relating to the ComboBox and setting default and defaultselected, there wasn’t a thing, you are expected to rely solely upon community documentation for support; thank heavens that exists, if you can find what you needed that is.

Today, I split functionality depending upon use when we look at ticket details, support team going straight to edit mode whilst users only view, thus we’re saving a click each time. Also, I added a new tickets list mode I should’ve thought to develop right up, active tickets. Having this listing makes such a difference now we have so many tickets in the system now.

My conte}{t

My development experience with PowerApps to-date has been somewhat limited, I’ve developed one application in late 2018 and am again developing another right now.

My first app

I work within a Research Office at a local university, and in 2018 the Australian Federal Government advised us that the way Category 1 research grants were to be determined was to changed, instead of their advising us of the list each year, the Australian Competitive Grants Register (ACGR), we would now follow a defined process to self-assess whether grants met these requirements. Thus, rather than relying upon spreadsheets we determined an online app using Office 365 tech was the go.

My first app took me four days to develop, thankfully I had the benefit of having sat with an external consultant on two occasions relating to a separate application’s development and had taken notes relating to tricks and techniques (e.g. use of collections) which helped me with my own development. Perhaps the most difficult thing for me, a web designer/developer of many years, was connecting with Flow, I found interacting with this difficult initially (and still do) as documentation is scant here on how to identify, how to remove a variable if you add a dynamic variable in Flow but no longer require it, and the list goes on.

My biggest gripes

Perhaps my biggest gripe in working with PowerApps has been the level of documentation that’s provided. I’m a PHP developer and am used to a plethora of documentation as well as good community support, contrast this to scant documentation provided by Microsoft for their product, seemingly relying upon their community to do their job for them. There’s nothing wrong with having a strong support community that enhances your documentation, however they should not be considered your documentation.

Not too far behind this is PowerApps itself, well rather the interface to be exact here. Is it not the pits to work with? I think so. That formula bar would have to be the worst thing I’ve ever interacted with since the VHS Video Recorder and having to rewind a tape. I would dearly love to see a full desktop application that supports multi-desktop in which design gets separated from code and error messages. Most developers do have multi-screen, so it makes good sense that we have the option to have a fully fledged developer app and one that gets rid of that damned awful single-line (that you have to drag to see all your code – WTAF!) and replaces with a full-screen code environment.

App Two

A few weeks ago I started developing my latest app, an issues tracking come support desk app that will be rolled out within our office. There have been days I have sat there and wanted to throw my Dell out the window, if I see another delegation error. My initial SharePoint lists design had been based upon how I would design using MySQL or Oracle databases, I have quickly discovered the limitations of working within a PowerApps and SharePoint environment, you get a bloodied head, quickly.

I started out with lists to represent our systems and our team, instead each has now been incorporated within the Tickets list as a Choice type (an enum type in traditional databases). This has allowed me to get around the delegations issues that plagued me, not to mention simplifying the structure. This past week I worked on implementing the ticketing top list whereby our managers and team leaders will be able to add up to 10 items, reorder their list, and remove from the list. I gave up on doing reordering within PowerApps, it could only handle first/last items, other placed items required my sending out to Flow (now Power Automate) to handle de-listing an item and then reordering.

I’m currently battling with adding attachments, I’ve got to discover the ID number of the added ticket as Flow creates my item as attachments cannot be added until the ID is know. Sometimes I think Everest seems smaller. I’ve only this coming week to complete development before they want to launch and need to also add additional Flows to notify of changes, our management of tickets, and potentially creation of a log which doesn’t exist, though that is simple.

A loss of rules

I was disappointed to hear Microsoft had decided to remove Rules from PowerApps. It is currently at deprecated status, thus your can turn this on within the settings area of the app at your own peril, however it is a disappointing loss. My first app needed to be re-coded as it relied heavily upon rules when developed and certainly made development easy once your wrapped your head around how they worked. Microsoft has said these were not commonly used and were poorly understood, hmm, I wonder if this was yet another case of crappy documentation?

Settings to enable the basics

One final thing before signing off my first post, I found it absurd that I needed to head into settings to turn on a setting to enable my app to support the use of Blank() so that I might write null values to a SharePoint list. Does anyone else find this absurd the inability to write blank values by default? This is default functionality in other languages but Microsoft seems to think otherwise and necessitates your enabling it. I might add, it is not obvious which setting you need to turn on, rather it is turn on all except rules and test. Poor form.