SharePoint, Office 365, Azure, and Front end JS geek. – Chicago IL
SharePoint, Office 365, Azure, and Front end JS geek. – Chicago IL

January 2018

Microsoft Forms in the Office 365 App launcher (Feb 15)

The waffle menu will soon have a new icon.  Keep an eye out for mid-February on your tenant.  Cheers! 

Image result for microsoft forms 365


Microsoft Forms is a part of Office 365 that allows your users to quickly and easily create custom quizzes, surveys, questionnaires, registrations and more. When you create a quiz or form, you can invite others to respond to it using any web browser, even on mobile devices. As results are submitted, you can use built-in analytics to evaluate responses. Form data, such as quiz results, can be easily exported to Excel for additional analysis or grading.
What is the limit on the number of responses for Microsoft Forms?
You can receive up to 5,000 responses. If you require more, we recommend exporting existing responses to an Excel workbook, and then clearing these from your survey or quiz. This will enable you to collect more responses once cleared.

Will Microsoft Forms replace Microsoft InfoPath?
No. Microsoft InfoPath was a solution to create customizable forms that can enable automated workflows, whereas Microsoft Forms is a basic, lightweight app for quickly collecting information via surveys and quizzes.
Microsoft InfoPath is being replaced by SharePoint Lists, Flow, and PowerApps – modern solutions for digitizing traditional company forms, automating workflows, and transforming business processes. Learn more.



Image result for microsoft forms 365


FIXED – Workflow Manager Backend – Error 1067 / HTTP 500

Recently I came across Workflow errors and resolved by manually executing TSQL to update Workflow Resource and Workflow Instance tables.  Wild but true.  The SQL files can be found on the C:\ drive of the Workflow Manager server.  After running SQL, the windows service promptly started.

Details below on the error symptom and resolution.  Cheers! 


Error Symptoms

  1. Windows Service.  Error 1067 – The process terminated unexpectedly.
  2. HTTP 500 – Internal Server Error Occurred when opening http://workflow:12291 or https://workflow:12290 in a web browser
  3. Register-SPWorkflowService : An internal error occured. For more details, please see the server logs. Client ActivityId :3033487b-7c53-4f17-ae08-8516c2ec0bef.


  1. RDP to Workflow Manager
  2. Open “C:\Program Files\Workflow Manager\1.0\Workflow\” folder
  3. Open file “wfServerUpgradePolicy.config” and look for <wfupgrade targetVersion=””>
  4. Open SQL and execute “SELECT * FROM [StoreVersionTable]” on [WFResourceManagementDB]
  5. Compare CONFIG file to to SQL table versions
    1. They mismatch.  This the root cause of errors above.
  6. Open “C:\Program Files\Workflow Manager\1.0\Workflow\” folder
  7. Execute SQL scripts to update
    1. WorkflowServiceInstanceManagementDBUpgradeScript.sql
    2. WorkflowServiceResourceManagementDBUpgradeScript.sql
  8. Register-SPWorkflowService -SPSite http://sharepoint -WorkflowHostUri http://workflowserver:12291 -AllowOAuthHttp -Force
  9. Test to verify

Error Screenshots


Resolution Screenshots

enter image description here


FIXED – Cannot convert the JSON string … contains the duplicated keys ‘Id’ and ‘ID’

Recently I came across the error message below when download a SharePoint 2013 List item REST api call to PowerShell.  The cmdlet ConvertFrom-JSON does an excellent job.  However, it is case sensitive with property names.

The resolution I found was to first string replace (case sensitive) to rename one of the source property names.  Cheers! 


Screenshot – Before

ConvertFrom-Json : Cannot convert the JSON string because a dictionary that was converted from the string contains the duplicated keys ‘Id’ and ‘ID’.


Screenshot – After




# Config
$web = "http://portal/sites/team"
$list = "Test"

# Digest
$urlView = "$web/_api/contextinfo"
$req = Invoke-WebRequest $urlView -UseDefaultCredentials -UseBasicParsing -Method Post
[xml]$ctx = $req.Content
$digest = $ctx.GetContextWebInformation.FormDigestValue

# List Items
$urlItems = "$web/_api/web/lists/GetByTitle('$list')/getitems"
$json = "application/json; odata=verbose"
$headers = @{"Accept" = $json; "Content-Type" = $json; "X-RequestDigest" = $digest}
$body = '{"query":{}}'
$req = Invoke-WebRequest $urlItems -UseDefaultCredentials -UseBasicParsing -Method Post -Body $body -Headers $headers
$resp = $req.Content

### FIX - Case Sensitive Property Name Replacement ###
$resp = $resp.Replace("Id","Idd")

$json = $resp  | ConvertFrom-Json


What’s in that patch? Jan 2018

NOTE – PDF format updated to include both SharePoint 2013 and 2016 notes.

Ever wondered what fixes are inside of a given CU?   Please see attached PDF with full detail. I wanted a new format for easy reading.   Show management and make the business case for why downtime should be taken to apply CUs.  Also posted at

If you found this helpful, please leave a comment.   



What’s in that patch – Jan 2018.PDF

© Copyright 2016
@ SPJeff

Return to Top ▲Return to Top ▲