Sharepoint Tips And Tricks
Sharepoint Tips And Tricks is Ishai Sagi's sharepoint information blog. It specializes in Microsoft SharePoint technologies, including web parts, development, configuration, customization, and best practices for the use of Microsoft SharePoint Server and Windows SharePoint Services. It also provides some related Office Information, including VSTO and VSTA and other office application development tips.
Monday, August 04, 2025
Content types missing in Site Pages library "New" dropdown, and not able to create pages
Thursday, April 21, 2022
Copying sharepoint multi user field values from one item to another in powerapps
'Target Field Name':ForAll(varSourceItem.'Source Field Name',{
'@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
Claims: Claims,
Department: Department,
DisplayName: DisplayName,
Email: Email,
JobTitle: JobTitle,
Picture: Picture
})
Tuesday, March 29, 2022
Mass-changing powerapps controls settings
- Install VSCode and the powerapps extension in vscode (Power Apps Guide - Code - The new easier way to pack and unpack canvas app source code - Power Apps Guide - Blog)
- download your app, and extract it using the extension (see link above for detailed instructions):
pac canvas unpack --msapp .\myapp.msapp --sources .\myapp\ - Decide on a single label that will be your master label, or a variable name that will contain your defaults. we will need the name of that label or the variable for later - lets call it XYZ for now.
- open the app folder in vs code, and do a find and replace with the following settings:
pac canvas pack --sources .\ --msapp c:\code\myapp.msapp
Wednesday, March 24, 2021
Making the workbench full width
Wednesday, March 17, 2021
Getting user ID by email in REACT SPFX web part
Wednesday, June 12, 2019
Restricting a User Picker field to only selecting SharePoint groups
To change a person field in sharepoint that is configured to allow "users and groups" to only allow groups, you need to inject code that changes the picker settings after the page is loaded.
Code below:
Sunday, November 18, 2018
User is in SharePoint Group but doesn't get permissions
One explanation to this that I found is when the user was added to the group using the API (REST, JSOM, CSOM) by specifying the user's login name (domain\username). Turns out that adds the user to the group, but not the correct user....so it looks right, but it isn't. what is the correct user? you have to add the claims token "i:0#.w|" before the domain\username to properly add the user.
This off course applies to the code that adds the users. As far as I can tell you will have to remove the incorrect users, and then add them again either manually or using code.
Tuesday, July 25, 2017
When Cumulative doesn't mean Cumulative
Surprisingly, the SharePoint configuration wizard told me off, saying the server is missing the December 2016 CU.
Yes, that is right - the April 2017 CU does not include the CU that was released 5 months before it...Cumulative? nope!
Monday, June 01, 2015
Taxonomy field value doesnt set
We had a puzzle today, which we were sure was an issue with the document property parser in SharePoint. Every time we tried to set the value of a specific column using either our existing powershell script or an event handler that works on every other library in the system, the document would be updated with the property value, but after a second we'd refresh the page and see the value went back to null.
It was frustrating! I was sure it was because the document had an empty value in the document properties that was overriding the value from my code - despite the fact that my code is implemented with a delay to ensure it runs after the parser.
We troubleshooted several ways and couldn't find the solution...until we noticed something weird when we were looking at the content type schema - the taxonomy field was set to support multiple values! our code was specifically written for that field, which is not supposed to support multiple values. Some nasty little elf went into the column setting in the library and changed my precious from its normal settings. Setting it back and everything went to normal.
Thursday, June 12, 2014
Creating links to documents inside document sets - BUG
The issue is when you create a link to a document inside a document set. If you are not familiar with this - users can create links inside document libraries, using a content type called "Link To Document". You can also create document sets - which is a special type of folder. To do so, add the two content types to a document library:
You then also have to configure the document set content type to accept links to documents in the document set settings under the content type settings:
The problem is when you create a document set, and in it you then create a link to document:
The result is that the users get redirected to the wrong URL, and instead of seeing the actual document set they started from, with the new link (or any document that is already in the document set) the users see a default view of a generic document set - not the one they started from:
The reason for this is different in 2010 and 2013. I have yet to pinpoint the reason for the issue in 2013, but in 2010 the issue is that the URL when creating a new link to document has two "RootFolder" parameters, and that confuses the server when the users click "OK" to save the link and to get redirected back. Instead of seeing the document set, they see the default document set home page - with no parameter to tell the server which document set to actually display the contents of.
I have created a workaround for 2010, and am yet to modify it for 2013 (since the behaviour in 2013 is slightly different, though the results are the same). The workaround is to use javascript to detect if we got to the current page from the edit form, and if the current page is a document set home page and if the current page parameters have two question marks in them. If so, redirect the user, removing the second "&RootFolder=" parameter. This will not work in 2013 since the url there doesnt have parameters after creating the link to document.
Here is an example of the code. To inject it I used a farm level feature that added a ScriptLink to all pages in the farm. The script link was to a .js file that contained the following code:
function FixDocumentSetRedirect() { if (document.referrer.indexOf("EditForm.aspx") > 0 && document.location.href.toLowerCase().indexOf("docsethomepage.aspx?id=") > 0 && document.location.href.toLowerCase().indexOf("docsethomepage.aspx?id=") < document.location.href.indexOf("?")) { var source = document.referrer; source = source.substring(source.indexOf("Source=") + "Source=".length); var firstRootFolder = source.indexOf("&RootFolder="); var secondRootFolder = source.indexOf("&RootFolder=", firstRootFolder + 1); if (secondRootFolder > firstRootFolder) { source = source.substring(0, secondRootFolder); } alert(source); document.location.href = source; } } _spBodyOnLoadFunctionNames.push("FixDocumentSetRedirect");