Friday, August 18, 2017

SharePoint 2013/ Office 365: SharePoint designer workflow fails to assign task to SharePoint group.

I faced the weird issue, that SharePoint designer workflow which we have created to assign task to all the members of the SharePoint group. Which was working fine for some group and suddenly started failing for the newly created SharePoint group.

I spend some time on research , debugged the workflow no luck there, then at last thought to compare the group settings as it works for few. That did a trick and come to know that relation of Group Visibility settings in SharePoint workflow.

If the Group Visibility is set to "Group Members" - Workflow will fail for this group, it will not assign the tasks or other group related operations will fail.

Workflow requires to have Group Visibility set to "Everyone". else it will fail.

I came to know two scenarios where it fails if visibility is not "Everyone"

1. When we assign task to SharePoint Group.
2. When we try to check from workflow that user belongs to particular SharePoint group or not.

I hope this small piece of information will save your time!

SharePoint Online / Office 365 : Steps for Adding Search Result Webpart in Pagelayout


Recently, while working on a SharePoint online project I faced the requirement to add the Configured Search result webpart in PageLayout. Which should show the result based on the one of other taxonomy field on the page.

Steps to include the Search Result Webpart in Pagelayout:

1.Create one page and configure the Search Result Webpart there. (Tip: Create the separate result source, so no dependency on changing the query later in pagelayout if any modification.)

2. Export the webpart, open the exported file in any editor. Which will look something like below image. We will require all these property value to configure the webpart in layout.


3.  Create the page layout and set up the basic design.
4.  Register the following assembly at the top of your Pagelayout.
<%@ Register Tagprefix="SearchWebControls" Namespace="Microsoft.Office.Server.Search.WebControls" Assembly="Microsoft.Office.Server.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 5. Now find the desire <ZoneTemplate>  where there is requirement to add the search webpart and add the following piece of code inside that. change the property value from the export file of configured search result webpart.

<SearchWebControls:ResultScriptWebPart runat="server" DataProviderJSON=" {'QueryGroupName':'Default','QueryPropertiesTemplateUrl':'sitesearch://webroot <Copy the property value from exported webpart>}" BypassResultTypes="<Copy the property value from exported webpart>" ItemTemplateId="<Copy the property value from exported webpart>" ItemBodyTemplateId="<Copy the property value from exported webpart>" ResultTypeId="<Copy the property value from exported webpart>" SelectedPropertiesJson="<Copy the property value from exported webpart>" HitHighlightedPropertiesJson="<Copy the property value from exported webpart>" AvailableSortsJson="<Copy the property value from exported webpart>" ShowLanguageOptions="<Copy the property value from exported webpart>" ShowPaging="<Copy the property value from exported webpart>" ShowBestBets="<Copy the property value from exported webpart>" ShowPersonalFavorites="<Copy the property value from exported webpart>" ShowDidYouMean="<Copy the property value from exported webpart>" ShowAdvancedLink="<Copy the property value from exported webpart>" ShowPreferencesLink="<Copy the property value from exported webpart>" ShowResultCount="<Copy the property value from exported webpart>" ShowResults="<Copy the property value from exported webpart>" PreloadedItemTemplateIdsJson="<Copy the property value from exported webpart>" ShowAlertMe="<Copy the property value from exported webpart>" QueryGroupName="<Copy the property value from exported webpart>" RenderTemplateId="<Copy the property value from exported webpart>" StatesJson="{}" ServerIncludeScriptsJson="" Title="Tools" Description="Displays the search results and the properties associated with them." AllowRemove="" AllowZoneChange="True" AllowMinimize="False" AllowConnect="True" AllowEdit="False" AllowHide="True" ChromeType="TitleOnly" ChromeState="Normal" HelpMode="Modeless" WebPart="true" ></SearchWebControls:ResultScriptWebPart>

You can add the other properties value like above from the exported webpart.

6. Save and publish the pagelayout. based on your result source/query it will start showing the result when you create new page using this pagelayout.


Happy Coding!