Nintex site workflow + lookup columns

Scenario: you have a Nintex workflow and you want to create an item in a list, where one of its column is a lookup column to another list. Background: this took *too* long to figure out. I had an initial version of a workflow; it was actually a list workflow, running on an item which already had the lookup value I needed. Using the ‘Create Item’ action to create an item in a different list (which had the same lookup column) was straight-forward; you simply reference the current item in a list lookup

Read more

ASP.NET Core OAuth Facebook cancel causes 500 fix

If you’re using ASP.NET Core built-in authentication to allow your users to sign up / login to your web application using alternative providers, Microsoft provides various out of the box, such as Microsoft, Google, Twitter and Facebook. Chances are you have something like the following in your startup.cs services.AddFacebook(options=> ...) This works pretty nicely. All you need are you keys and secrets (hello Urban Cookie Collective) and all should rock. However, an issue arises if your user clicks ‘Sign in with ’, which (if they are not already signed-in) takes them to that app to sign in, but if they then cancel that (e.

Read more

Visual Studio regex replace for 7 year old issue...

I still work on a lot of old technology. Today I was updating one of my client’s systems that consumes a (3rd party) web service - the service was moving from -gasp- anonymous auth to requiring a username and password. (Sent in plain text over non-SSL, mind, but… baby steps. I’m guessing this was good enough to close an audit point.) The original implementation used the old Visual Studio ‘Web Service reference’ (for old style SOAP .

Read more

Bulk delete items from SharePoint Document Library with Powershell - with filters

I recently posted some Powershell for bulk / batch emptying a SharePoint document library (https://www.matt-thornton.net/tech/sharepoint/bulk-delete-items-and-folders-from-sharepoint-document-library-using-powershell) which works nicely. (As long as you remember that the Batch Delete XML syntax is incredibly fiddly and sensitive! Case is important and backticks are required to escape stuff.) Anyway; it works great to empty an entire library, but you may prefer to just be tidying up really old stuff. Well, that’s what I was doing anyway, and therefore wanted to expand it a bit.

Read more

Troubleshooting Word Automation Services in SharePoint

Continuing the theme of obscure SharePoint issues; this one on a new topic - Word Automation Services. A client has a new requirement to automate some documents and using Word templates and converting them to PDF all from a Nintex workflow would be… nifty. So away we go. In Word, we created a Word document and then inserted some ‘Content Controls’ - have some options here, but for proof of concept, started with a simple text control.

Read more

Why I hate no-reply / unmonitored inboxes: British Airways

You know the story. You get an email from miscellaneous business that’s trying to coax you in to buying / clicking / agreeing to / on something. You look at the email. You have an issue. You -gasp- reply to the email. And instantly a response back is received - This is an unmonitored inbox. If you wish to contact us, please do so via our website. Or some variant on the above. This is hands-down one of the laziest, most-irritating behaviours these companies can have.

Read more

Ben Nevis, North Face via Tower Ridge

We (my Father and I) ascended Ben Nevis via Tower Ridge on 10th May 2019. We had a pretty hairy experience. I’ve been meaning to write this up since - but things have been busy so it… slipped. But news today that a climber died after being struck by lightning prompted me to do it because… well, read on. Nevertheless, my sincere condolences go out to all those affected by the recent tragedy. The Trip We had only a short trip.

Read more

Basic web scraping - Part 2: thoughts on debugging and Python3

Update: 2020-04-13. The main article has been overhauled and republished here! Includes Python3 updates, Dropbox uploading and a code repo. I’m leaving the below in place for info and posterity and for misc useful tidbits. A while ago, I posted a basic tutorial on how to do some simple web scraping in Python using requests and beautifulsoup. It obviously got found in Google because the hits were good. There were however, a couple of comments highlighting issues with it - Brett and Sean saying issues with “TypeError: ‘NoneType’ object is not callable”

Read more

Sharepoint - Open .eml files in Outlook

If you use email enabled document libraries or indeed any other method of storing email messages (commonly created in Exchange / Outlook) in Sharepoint document libraries then they are more than likely stored in .eml format (that first appeared in Outlook Express) as opposed to the more modern .msg format. .eml is a nice format, which was defined in MIME RFC 822 but because it’s so heavily ingrained in to a Windows environment there can be a less than desirable experience when operating with it in a Sharepoint context.

Read more

Basic web scraping with a Raspberry Pi, Python and Requests

Update: 2020-04-13. Article has been overhauled and republished here! Includes Python3 updates, Dropbox uploading and a code repo. I’m leaving the below in place for background, info and posterity and for misc useful tidbits. Update: 2019-05-13 - this has been edited to fix a little bug in the code transcript. There is also a follow-up article on working with Python3 here. _Update: 2019-12-16 - looks like MagPi have amended their page so the code as below won’t work directly.

Read more