Redirecting SharePoint list's NewFormUrl and EditFormUrl to Power Apps

In this scenario, we have a Power Apps app that takes a query param() “AssetID” and determines whether the app should create a new item or update an existing item.

We want to change the SharePoint default New or Edit items on a modern SharePoint list to go to our App. The app is a landscape canvas application and not an integrated portrait application (so we can’t use SharePoint form setting to switch this).

Because SharePoint’s New and Edit forms must be server relative pages, we can create a redirect page.

Steps

  1. Use Param in Power Apps

  2. Create a simple redirect page

  3. Change SharePoint’s NewFormUrl and EditFormUrl to this redirect page

  4. Test: Redirect to PowerApps

  5. References

Use Param in Power Apps

https://powerapps.microsoft.com/en-us/blog/powerapps-deep-linking/

Create a simple redirect page

Create a redirect ASPX (HTML) page and upload it into the SitePage library. I saved this as "AssetEditForm.aspx"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ Page Language="C#" %>
<%@ Register tagprefix="SharePoint" namespace="Microsoft.SharePoint.WebControls" assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta name="WebPartPageExpansion" content="full" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Asset Form</title>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<SharePoint:CssRegistration Name="default" runat="server"/>
<script type="text/javascript">

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
//    console.log('Query variable %s not found', variable);
}
var play = "https://apps.powerapps.com/play/e3fdef18-2be5-4d25-ba04-3edf6411c0aa?tenantId=afa78dff-85bb-46f3-b036-b43bcf79c497";
var id = getQueryVariable("ID");
if (id) {
    window.location.replace(play+"&AssetID="+id);
}
else {
    window.location.replace(play);
}
</script>
</head>
<body>
<form id="form1" runat="server">
</form>
</body>
</html>


Change SharePoint’s NewFormUrl and EditFormUrl with PnP-PowerShell

Connect-PnPOnline -url https://johnliu365.sharepoint.com/
$list = Get-PnPList "Asset"
$list.ContentTypes[0]

# assuming list content type 0 == Item
# otherwise, you need to set this on the correct list content type

$list.ContentTypes[0].EditFormUrl = "SitePages/AssetEditForm.aspx"
$list.ContentTypes[0].NewFormUrl = "SitePages/AssetEditForm.aspx"
$list.ContentTypes[0].Update($false)

# no update child content types
# you may have to set $true if you have content types in your list

$context = Get-PnPContext
$context.ExecuteQuery()


Redirecting Magic

This will change the “New”, “Edit” behaviour on the SharePoint modern or classic list. Also, this will work in the edit menu. So if you want to redirect your users to the new Power Apps experience, this is one way to change the link everywhere.

Reference Reading

Please also read April Dunnam’s two part series on how to customize SharePoint via modern ListView JSON

True Governance of the Power Platform

track-2.jpg

It’s very early Sunday morning and I’ve just returned from an red-eye flight home from a week spent in Perth with Paul, Ashlee and Terrie Culmsee, meeting their many clients, participating in Perth App in a Day, and talking about PowerApps, Flow and Power Platform Governance.

It is testament to Paul’s nurturing of his clients that every company that I talk to on this trip have the same forward thinking mentality.

Many of the companies I had talked to online, or here in Sydney also shares these same traits. They want to implement proper governance of the power platform.

You might be on the same journey - I wish you the best, and I want to support you in this quest.

True Governance is about creating a partnership

The scenario is the same, over and over and over. Business wants agility, they want applications that traditional IT struggles to deliver.

IT already struggle with supporting existing applications created by Business - they worry this is yet another thing they need to support - these “citizen developed apps” will fall into their laps, not following best practices, not documented, and yet highly business critical.

Power Platform is an opportunity, to ride this wave and fix the partnership problem in your business.

True leadership, are the managers seizing this unique opportunity to (re)engage Business and IT

Because traditional IT has become the department of “No” - modern business units and IT doesn’t really want to talk. And in the last few years, many businesses rode the Microsoft Power Platform submarine to get applications developed under the radar to reach critical mass first. Always easier to ask for forgiveness than blessing.

In this paragraph, I want to speak to you - the business. You must understand, there is an virtual ceiling you are about to hit. Let me explain.

See - your empowered citizen developers are learning as they go, their first apps may not be that fantastic, while they solve critical business problems - there may be bugs and we see there will always be more incremental improvements needed.

As the number of Power applications you create increases, your limited number of citizen developer will reach capacity. Without being able to properly support these apps, they can’t make more apps.

You still need more apps. But your citizen devs’ hands are now full. Worse, what happens if they take a role elsewhere? Who can support these apps?

The correct answer is, business should take a cost code to IT and ask IT to support these apps. IT should be paid to build internal capacity to understand, administer, and govern the Power Platform.

Ideally, someone that understands the Power Platform should lead this team and effort. They are the bridge that talks to Business and IT. The ultimate navigator that will unite the business and IT.

Look across to any successful enterprises now scaling to hundreds and thousands of Power Apps and Flows. This pattern is the same. Over and over.

IT must realize that part of governance is this great opportunity - go talk to your business. Find the super maker that is helping with adoption, and able to put together business plans that will include a maintenance support fee to IT. Stop being “free support” (see my previous blog post) and start being part of value generation in your business.

An emerging trend is that the internal super Power Platform maker joins the IT side of the business to be that navigator. Governance and adoption tools (I have a list near the end) support the quest of this navigator. Business pays IT to support and maintain more Power Apps and Flows.

Do you think this is not possible? This is a fairy tale? I saw these relationships, these bridges forming everywhere. Is this not your experience? Have a look around.

If you are an IT manager, rather than look at the Power Platform with fear, close your eyes, and reopen them and see it as the biggest opportunity you have ever had in the last decade.

A low code platform the Business wants, with tools and reports for IT to properly function and support this platform. Don’t squander this and drive your business away to some real Shadow IT platform and now you can’t even monitor that.

Governance tools are available - but true governance is People willing to talk

Business and IT not talking to each other is a problem. Here, is an opportunity to solve that. Take your off-shored IT back in-house. Be part of value generation.

If you want partnerships, I will help. There are many in the community that want to help you. Many Power platform champions are literally living this reality and working in this role. Borrow their job template and make it yours, initate the conversation - take it to your manager in business or in IT and say, hey, let’s do this.

I wanted to list a series of tools available. Some has (custom) tag and would need self assembly.

Build tools, build bridges

Disclaimer - I build Power Studio and Power Clarity. The point is, there are tools to provide governance on this platform. This is FAR better than choosing a different tool that IT has no means of providing any meaningful governance.

It would be somewhat easy for me to run purely on fear and say buy “my tools” - they will lock everything down and give you governance. Build a wall. You need a wall. Buy my wall.

If some snake oil salesman comes to you and say that, I want you to understand, real governance is not a wall. There is already enough of a chasm between business and IT.

Real governance is an opportunity to take this platform and transform your apps, yourself, your business and the relationships in your business. It’s hard, potentially very rewarding work.

What do you build your governance for?

Today, governance is a word thrown around without a care of what it actually means. We need to do governance - for what? No that’s all, we just need to do governance.

I wanted to share an article from Paul Culmsee. Those that sees governance as the goal, and not the means to an end, there’s something we all have to let go. Why do we implement governance? What outcome do we desire?

https://medium.com/@paulculmsee/how-to-doom-office365-governance-over-and-over-again-9feede8ef14a

If you have never thought about why you are implementing governance, and you don’t know what your end goal is, then take this quest:

We build governance, because our IT and Business must form a partnership. Our entire governance strategy is to make that partnership work.

The choices are yours, but I think you shouldn’t take forever to think about them

Do the right thing. Chances like this don’t come that often. Don’t look back and think, ah, I didn’t take that opportunity and initiate that conversation, and a decade later, I’m still only a cost center, still fighting shadow IT, and the board still wants to offshore my team.

That’d be unfortunate.

The Flow Studio journey - first lesson - seed money and salary

stanislav-kondratiev-MdexOj4D-MU-unsplash.jpg

I wanted to write a blog post because I don’t know, I guess you are a technical person that reads my blog, and you might be interested in my journey from a two decade consultant into a sole business owner building a product company.

It’s pretty exciting. Everyone should try this.

This blog post

I was talking to Elaine as she’s visiting Sydney and I was explaining a very critical lesson I’m in the middle of learning, now that my company “Flow Studio Solutions” is 3 months old.

I was also recently talking to Brett and Sandy who gave me a lot of insights into an early day of a founder. Brett asked me several questions and boy he’s a wizard how does he know that’s exactly what I have been doing the whole time.

And there is FIRST LESSON I’m rapidly learning.

When you decided to take part time or taking some time off and start doing your business, you have this tendency to think Oh, the business isn’t taking in enough income, so I’ll just not take a salary for this month. I’ll live off my savings in my personal account.

This is Brent’s wise words to me. Paraphrased

I modified those words into this trick - with the bank details added in.
Please do over. It’s a most simple trick.

  1. Make your business bank account. You should have this anyway, otherwise people can’t pay you.

  2. Transfer money from your savings that you intend to live on, into your business

  3. Give yourself a salary and sent that back to your personal savings every month (to pay your bills)

Now suddenly, you can claim expenses, tax deductions and have a clear idea how much money the business needs to continue paying you that salary.

Also, when you want to seek funding or grants - it is very clear to proof how much does the business need to operate, and how much existing seed money had already been injected into this business.

You can’t proof “oh here’s my savings account I need about $5000 a month” that isn’t your business, that’s your lavish/hermit lifestyle, nobody cares about that but you. But if you had your business sending you a $5000 salary, you can easily provide that as clear proof that’s the cost of the business, every month.

So, that is the first lesson.

Move your savings into your business, pay yourself a living salary, and work on your business, not in your business.

I’m grateful for Brent and Elaine for these conversations.

History

For the details which might make sense why there are different dates in the Flow Studio journey. He’s a rough timeline.

2018 April - Flow Studio the product started as a side project
2018 November - Started accepting Stripe subscriptions
2019 June - Until June, Flow Studio operated under a sole trader business registration in Australia
2019 July - incorporated Flow Studio Solutions - a product company that does a side consulting to build the product.
2019 October - first quarter. This update.

M365 Developer Bootcamp and M365 Saturday Sydney

There are two events coming up soon in Sydney regarding the SharePoint, Office 365 and Microsoft 365 community and ecosystem.

M365 Developer Bootcamp Sydney

The M365 Developer Bootcamp is the return of the popular Global Office 365 Developer Bootcamp. This is when the Office 365 MVPs and community experts help everyone and anyone that wants to have a crack at solving any Office 365 (and M365) related coding challenges.

https___cdn.evbuc.com_images_71120587_230532921863_1_original.jpg

Whether it is to build a SPFx webpart, extend Microsoft Teams, explore Microsoft Graph. The format this year will be lighter on talks, and more focused on helping you pick a challenge you want to do, and help you complete that project.

Friday, October 18 at the Microsoft Reactor in Level 10, 11 York Street, Sydney (above Wynyard Station in the Sydney Startup Hub).

https://www.eventbrite.com.au/e/global-microsoft-365-developer-bootcamp-sydney-2019-tickets-71607805875

M365 Saturday

The SharePoint Saturday / O365 Saturday Sydney returns this year as M365 Saturday.

Administrators, end users, architects, developers, and other professionals that work with Microsoft 365 Technologies will meet for the 11th SPS Events Sydney event!

This event is aimed to cover best practices, product/feature usage, and getting the most from the platform and discovering what is possible rather than deep diving into "how to" development topics. Developer topics will be covered more in the M365 Developer Bootcamp above.

Saturday, October 26 at the Microsoft Reactor

http://www.spsevents.org/city/Sydney

Call for speakers is still open for M365 Saturday

https://sessionize.com/m365-saturday-sydney-2019


Help us spread the word, and let us know if you would like to present something!

How do you bring your content to your readers?

matthew-guay-Q7wDdmgCBFg-unsplash.jpg

Hi, today’s post isn’t a technical post, this is probably more of a “I need your help post”. So this is something I find really difficult to write about, because I really don't see myself doing well at this.  But it's something that I have given quite a bit of thought, and perhaps, by writing and seeing it all written down, I can streamline my thoughts and enlist You to tell me better ideas of your perspectives and how you managed to do all these things.


My Problem (May be also Your Problem?)

I am a curious person, and I’m a community person. I explore and share what I find. As a result - I create useful content with Microsoft Flow, Power Platform, Office 365, SharePoint, JavaScript, Angular and more.

The content is created on different platforms.

Not all my users are on that one platform - so I need a way to bring the content to them.

From Blog, Twitter, LinkedIn to newsletters and YouTube channels.  The simple goal is to make use of the content as much as I can - so how do we amplify that goal and bring our content to more channels, and thus, a wider reach?

Blog

I started blogging a while ago, first blogs I wrote were basically for myself.  I love blogging, because blogging gives me a place to write down the complex solution we ended up with, the journey and justifications to get here, and ultimately, like every blogger could testify - we end up searching online for a solution, and arrive back on our own blogs.  This is a sign of success.  The past me, invested in knowledge management, for the future me. Thank you so so much, past me.

In the dawn of the Internet - owning a blog was a way everyone could express ourselves.  Highly searchable, and not blocked by paywalls, registration, or even a subscription or promotion model (looking at you Medium) that required everyone to pay before you could get your content promoted, or others can get access to your content.

Microsoft's many community forums, other bloggers and Stack Overflow continues to be a direct source of incoming traffic sending new readers to your blog. In conversations, people will say John, I saw that in your blog. Sometimes years later, someone sends you an email out of nowhere - I saw something in your blog about this problem I have today, and I thought, thanks John, and I send you this email to check on how you are doing these days.

Wonderful wonderful fuzzy feelings. Blogs are the best. 

My scorecard: 8
(This is a score card of realistically how much effort I should put into this content platform)

Blogging works - as the backbone of your content distribution.  Keep blogging.  Blog more regularly.  Perhaps, even write a blog for everything you do elsewhere.

If you have not started a blog, or blogs infrequently, then blog but focus on more timeless content.  Content that makes sense today in 2019 just as it did last year or 2009.  And configure your blog URL and title not to show dates.

Blog syndication?  I think they should have access to a summary, but ultimately, the extended value of the blog is the conversations with you.  If the conversations were happening outside of your view, then they are talking about you, not with you. Try avoid that. 

Twitter

I started Twitter as a way to reach more people, have that conversation - and some of the best conversations (and some of the not so great ones) were had on Twitter.

In the era of Microsoft Flow, as a low code and very visual platform - I started doing essentially micro-blogging of Flow lifehacks on Twitter - these are highly shared and easily promoted by Microsoft community managers, product accounts and even key Microsoft engineers working on that product.

My scorecard: 7

Micro-blogging is fun, but Twitter has one of the worst search experiences, and practically no guarantee of content delivery - you are at the whim of Twitter's relevant content algorithm which artificially decides what should appear or disappear on your follower's timeline.

When I crossed 100 Flow lifehacks, I decided that I need to re-invest those content into proper blog posts - some have pretty serious expressions and formulas behind them.  Others needs a further introduction to why this was a problem in the first place and why this formula solves that problem.

Ultimately, Twitter remains one of the best places to meet and have conversations and see what others are sharing.  Very easy to ask a question and be directed to an answer (hopefully a good answer!)

Use a automated content distribution scheduler - Buffer, Tweetdeck, or something else.  Schedule retweets of your own content in an opposite timezone.

LinkedIn

I come to LinkedIn quite late in the game - there is a specific reason why - see, for the longest time I thought people visit LinkedIn when they are about to change jobs - they go and update their CV. 

I've come to realize this is not the case.  LinkedIn has a mini-community of its own, similar to Twitter, but in which everyone is operating on their own personal accounts and brands.  That means conversations are generally more civilized, and the motive of each person in the community is apparent in the profile they present.  Are they a product vendor?  Are they a consultant?  Are they an outsource company?

Conversations are also generally work related - so even though it feels like social banter - it’s targetted banter related to work topics. Social like Twitter, but without all the random noise related to everything “not work”.

People tend to put on a more polite face when they use that face to sell their services.

My scorecard: 7

Use an automated content distribution tool like Buffer - but make sure you engage and connect with people to extend your circle, and answer messages.

Live Coding / Live Stream

Live coding is something I REALLY wanted to do - because of the Flow lifehacks that I do are basically hour-ish quick hacks with Flow and we can see some immediate results.  I always wanted to record that and turn that into a stream-able content. 

I actually tried live coding / live streaming Flow lifehacks several times, each time with very few attendees. 

If you do this well, I want to know! 

My thoughts on this - to build a following for live streaming, you must advertise, advertise, advertise that you are going to do this at a specific time, so people can plan and join you in that time.  Make it regular is good, but it must be advertised.  Have a set plan of how long you will go on air, what problem you want to solve, and what outcome you want to have.  This may be easy or hard, really depends on what you do.

My personal scorecard: 4

Podcasts

Podcasts are an interesting thing - see in Sydney, we have a problem.  The rest of the world likes to run livestreams and community calls during our sleep time - the optimal time that these live events run is a time that covers America and Europe, this is basically between 1am and 4am Sydney time.

So many Sydney based MVPs face the same problem - we can't join product community calls, as that will destroy our next day and we'd be completely hopeless in our day jobs the day after. 

And if you stay up to present at these community calls, we salute you and think you are a machine.  In reality, your hair is white from lack of sleep, and you require the assistance of a barber that knows how to dye your hair back to black so you look like you went back through a time machine and lost 20 years. True story.

So instead, we often say well, we should start our own podcasts - Office Devs Down Under.  Do you know what happens when your Office Dev MVPs have a lot of time because Support is asleep during your work hours and you have to fix something for your customers because Vendor is unavailable?

We became extremely good at trouble shooting Vendor's problems, and have an extremely versatile perspective. Get stuff fixed with or without support

May be that's still going to be a thing.  Gosh, I want this to be a thing.  I really do.

My personal scorecard: 2

YouTube channel

As I progress in my thoughts - I wondered, OK, perhaps rather than making a scheduled effort to produce a regular live stream or podcast, I should make a series of videos and post them to YouTube but release them over time. 

Subscribe to John Liu, Flow Ninja channel

The tricky part here is not so much the recording, but the editing.  Producing content gets easier the more we record and practice, but it always takes extra time, sometimes a lot more time, to edit the video content to be consumable.

Sometimes, it might be easier to work with another MVP that's got a big following in this area and record something with them, and perhaps cross post that to your own channel. 

Dedicate your own channel, or partner with existing publishers? Hard questions - may be both, and add the shared videos to your play list so they appear on your own channel too.

My personal scorecard:

Newsletters

Ultimately, this is not something I realized until much later, as I'm expanding my reach to people that follow my work - an regular email newsletter is still the best way to reach your entire potential community, everywhere.

Whether you introduce them to your new YouTube channel.  Draw their attention to the latest Microsoft update and what that means for them.  A super new technique that they can use to really get the best outcome from their PowerApps or Flow investments on your blog post. 

An upcoming free event or paid conference.
A newsletter is the most basic form of content, and still the best way to reach your audience.

Make it genuine.  Make it you.  Be authentic.  Don't put a bunch of random advertising in it.  Especially don't let Meetup own your mailing list so now you can't reach your own audience that you sweated so hard to earn their trust to come to your user groups every month. 

My scorecard: 9

Subscribe to Flow Studio Newsletter! (sorry I can’t resist)

Summary

This, and more is what I really think about each of these platforms and what I really want to do with every one of them, (if I have all the time in the world).  But I think if there's anything you should take as the one thing from me, it is this - build up a mailing list for newsletters.  That's always useful.  Publish a digest of your own blog posts or YouTube and mail it out to your followers once a month. Add a subscribe to your newsletter link somewhere on your blog, and YouTube channel. 

Make it genuine, and make it you.

There's a few things I want you to help me:  first - fill in this survey to let me know how you consume content, and how you'd like to produce content. 

 

Second, please leave any comments below - especially if you really disagree with my assessment of how certain platform should be utilized.  I really want to know your perspective.  Because this is something that I think is bigger than all of us.

Thank You

Several people directly and indirectly helped me to write and review this blog post

  • Shiva Ford asked me to write something two months ago and I basically have this blog post in mind for two month, brooding how to write this. Some parts are really hard. But once you brooded over an article for two months, you can’t let it go to waste, all that brain cells given to this writing.

  • Marc Anderson - read Sympraxis Blogs - I asked Marc to review the blog post and you will not believe how fast Marc was able to correctly identify my “real” problem. He suggested that I look for a part time product / marketing manager to handle Flow Studio app. Marc is an ultra Gandalf-Yoda.

  • George Doubinski - we have a lot of chats over content platforms and extending our content several months back, and then again last week. Read CRM Tip of the Day and thinking about how do we bring that amount of content to our readers.

  • Reza and Leila - similar discussions for Power BI and AI related content over last week, which went into my thinking and writing.