“Internet Explorer is required to use this feature.” Info Path form

We get above error even when we are using IE. IE 11 is not compatible with Infopath forms on premises. We cannot open the customize the form using IE 11, To fix this we need to follow below steps.

  • Go to IE
  • Hit F12
  • Then scroll down to the bottom of the page to find developer tools –
  • Change User agent string to IE 10 as shown below.

11

– Shree

Nintex Office 365 – add attachments in the Task process email body

Requirement – Requirement was to add attachments in the task process email ID. This was easy in Nintex 2013 as we just had to check the check box to include the attachments but this feature is not enabled in Nintex office 365. Since we dont have direct option to include attachments, we thought of including attachments links on the email body.

Below are the steps to include the attachments in the start task process email body.

123456789

Workflow looks like below. We get the attachment text using above steps and we need to place that in the “Start task process” email body.10

Hope this is helpful.

-Shree

SharePoint Search – Reset Index error “Sorry, something went wrong, request time out. “

Error – “Sorry, something went wrong, request time out. ”

Follow below steps –

  1. Start -> Run -> Services.msc
  2. Select and right click on “SharePoint Timer Service”.
  3. Select properties.
  4. Go to the Recovery tab and set all the Failures to “Take No Action”. This is very important.
  5. Stop “SharePoint Timer Service:” service.
  6. Do this for all SharePoint servers in the farm.
  7. Find the cache folder. It’s usually somewhere like C:\ProgramData\Microsoft\SharePoint\Config. Just do a search for the file cache.ini and that will be the right folder.
  8. Delete all the files in that folder EXCEPT Cache.ini.
  9. Open Cache.ini with Notepad and change the number to 1. You can make note of that number for later if you wish.
  10. Do this for all the SharePoint servers in the farm.
  11. No go back and turn on the “SharePoint Timer Service” on all the servers. You can put back the Failures their previous state at this time, too.
  12. Take a look in the cache folders and make sure they are filling up with new files. If you are ultra paranoid, you can compare the cache.ini number to the one you saved and make sure they are the same.

Try doing the Reset Index again and it should work.

Cheers….

Search has encountered a problem that prevents results from being returned. If the issue persists, please contact your administrator.

Error – Search has encountered a problem that prevents results from being returned. If the issue persists, please contact your administrator.

Search1

After searching in the internet, found this article helpful –

http://moresharepoints.blogspot.in/2015/07/search-has-encountered-problem-that.html”

Ran below commands to check if the search index partition is degraded on the search.

$searchApp= Get-SPEnterpriseSearchServiceApplication

Get-SPEnterpriseSearchStatus –SearchApplication $searchApp[0].Name

Search2

And found that Search index partition is degraded.

Then reset the index on the central admin

Search3

After Index reset and the full crawl, search started working perfectly.

Thank you Purna for saving my day…

 

PowerShell – Upload user pictures to AD and user profile

Below script helps to upload pictures to AD

[Code type=”PowerShell”]
function Upload-PhotosToSP
{

if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
Write-Host “Loading SharePoint assemblies…”
Add-PsSnapin Microsoft.SharePoint.PowerShell
}

#Get site, web and profile manager objects
$LocalPath = “C:\Scripts\UPLOAD-ProfilePhotos\picture library test\”
$MySiteUrl = “http://mySite.com:82/”
$mySiteHostSite = Get-SPSite $MySiteUrl
$mySiteHostWeb = $mySiteHostSite.OpenWeb()
$context = Get-SPServiceContext $mySiteHostSite
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
try
{
#Get files from local folder
$localPhotosFolder = Get-ChildItem $LocalPath
#Get User Photos document library in the My Site host site
$spPhotosFolder = $mySiteHostWeb.GetFolder(“User Photos”)

#Upload each image file and configure user profiles
$localPhotosFolder | ForEach-Object {

#Generate file path for upload into SharePoint
$spFullPath = $spPhotosFolder.Url + “/” + $_.Name
#$Overwrite= true
$FilePath = $LocalPath + $_.Name

#Check if the file exists and the overwrite option is selected before adding the file
#if ((!$mySiteHostWeb.GetFile($spFullPath).Exists) -or ($Overwrite)) {
#Add file to the User Photos library
write-host “Copying” $_.Name “to” $spFullPath.Replace(“/” + $_.Name,””) “in” $mySiteHostWeb.Title “…” -foregroundcolor Green
$spFile = $spPhotosFolder.Files.Add($spFullPath, $_.OpenRead(), $true)
$spImagePath = $mySiteHostWeb.Url + “/” + $spFile.Url

#Get the domain and user name from the image file name
$domainName = $_.Name.Split(“_”)[0]
$userName = $_.Name.Split(“_”)[1].Replace($_.Extension, “”)
$adAccount = $domainName + “\” + $userName

#Check to see if user profile exists
if ($profileManager.UserExists($adAccount))
{
#Set picture in AD also
$image = [Byte[]](Get-Content $FilePath -Encoding byte)
Set-ADUser -Identity $userName -replace @{thumbnailPhoto=$image}
Set-ADUser -Identity $username -replace @{jpegPhoto=$image}
write-host “Uploading” $_.Name “picture to AD ” -foregroundcolor Green

#Get user profile and change the Picture URL value
$up = $profileManager.GetUserProfile($adAccount)
$up[“PictureURL”].Value = $spImagePath
$up.Commit()
}
else
{
write-host “Profile for user”$adAccount “cannot be found”
}
#}
#else
#{
# write-host “`nFile”$_.Name “already exists in” $spFullPath.Replace(“/” + $_.Name,””) “and shall not be uploaded” -foregroundcolor Red
#}
}

#Run the Update-SPProfilePhotoStore cmdlet to create image thumbnails and update user profiles
write-host “Waiting to update profile photo store – Please wait…”
Start-Sleep -s 60
Update-SPProfilePhotoStore –MySiteHostLocation $MySiteUrl
write-host “Profile photo store update run – please check thumbnails are present in Profile Pictures folder.”
}
catch
{
write-host “The script has stopped because there has been an error: “$_
}
finally
{
#Dispose of site and web objects
$mySiteHostWeb.Dispose()
$mySiteHostSite.Dispose()
}
}

Upload-PhotosToSP

PowerShell – DownLoad pictures from SharePoint

Below script helps to download the files from SharePoint library.

[Code type=”PowerShell”]

Remove-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue

######################## Variables #####################
$destination = “C:\Scripts\UPLOAD-ProfilePhotos\”
$webUrl = “http://mySite/IntranetServices/”
$listUrl = “http://mySite/IntranetServices/pictures/”
#####################################################

$web = Get-SPWeb -Identity $webUrl
$list = $web.GetList($listUrl)
function parseUser([string] $m ){
# function takes a lastname, firstname MI string and parses to match manager info. returns email address.

if ($m -ieq “”)
{
return $null
}
else
{
$split = $m.split(” “)
$fn = $split[0]
$ln = $split[1]
#$splitfn = $fnmi.split(” “)
#$fn = $splitfn[1]
$fi = $fn.substring(0,1)
$em = $fi + $ln #+ “@healthgrades.com”
#$validatedManager = checkManager($em)
return $em
}
}

function DownLoadImages($folderUrl)
{
$folder = $web.GetFolder($folderUrl)
foreach ($file in $folder.Files)
{
$UserID = parseUser($file.Name)
$UserID = “_” + $UserID

#Ensure destination directory
$destinationfolder = $destination + “/” + $folder.Url
if (!(Test-Path -path $destinationfolder))
{
$dest = New-Item $destinationfolder -type directory
}
#Downloading file
$binary = $file.OpenBinary()
$stream = New-Object System.IO.FileStream($destinationfolder + “/” + $UserID), Create
$writer = New-Object System.IO.BinaryWriter($stream)
$writer.write($binary)
$writer.Close()
}
}
try
{
#Download root files
DownLoadImages($list.RootFolder.Url)
#Download files in folders
foreach ($folder in $list.Folders) {
DownLoadImages($folder.Url)
}
}
catch
{
write-host $_.exception
}
finally
{
if($web -ne $null)
{
$web.Dispose()
}
}

[/code]

Cheers…

WorkFlow Error: The root of the certificate chain is not a trusted root authority

Error while running the command “Register-SPWorkflowService” in SharePoint 2013

I was not getting SharePoint 2013 workflow template type in SharePoint Designer 2013, so configured workflow manager and was trying to register SPWorkflowService by running below command but received below error .

Command – Register-SPWorkflowService –SPSite “http://server/sites/” –WorkflowHostUri “https://server:12290/”

workflowerror3

did multiple trial and errors but nothing worked, then got the solution in below blog.

http://blog.binarybits.net/programming/sharepoint/error-the-root-of-the-certificate-chain-is-not-a-trusted-root-authority-register-spworkflowservice-sharepoint-2013/

Steps –

There are 2 things to check.

  1. Check if the WorkflowHostUri is having a Fully Qualified Domain (FQD) instead of machine name.
  2. Check if the SharePoint server trusts the workflow site’s certificate

1. Use FQD. Hence instead of using machine name for WorkflowHostUri, use full domain name, like https://wfserver.domain.com:12290/
2. Make sure the SharePoint Server trusts the certificate of Workflow site. For that do the following

  1. In the server browse the site https://wfserver.domain.com:12290/ and check if you get Certificate trust error, if so proceed to next point
  2. Start Management Power Shell as Administrator in the workflow server and run the following 2 commands
  3. $rootCert = (Get-SPCertificateAuthority).RootCertificate
  4. $rootCert.Export(“Cert”) | Set-Content C:\SharePointRootAuthority.cer -Encoding byte
  5. Navigate to the SharePoint Server and open run or command prompt and type MMC and hit Enter. This will open Console1.
  6. In Console1 navigate to file in the ribbon menu and select “Add/Remove snap-in”
  7. Add “Certificates” to the right hand side and then click “OK”. You will prompted with the Certificates snap-in. I selected “Computer account”>Next>Local computer>Finish>OK
  8. Import the certificate “C:\SharePointRootAuthority.cer” into “Trusted root certification authority” location. You can complete this by right clicking on “Trusted root certification authority” and selecting All Tasks > Import
  9. Then run the register command again and check the Designer for SharePoint 2013 template.

Register-SPWorkflowService -SPSite “http://server/site ” -WorkflowHostUri “http://server:12290/” -AllowOAuthHttp -Force -ScopeName “SharePoint”

Enjoy exploring…

 

Workflow error – System.InvalidOperationException: Operation failed with error Microsoft.Workflow.Client.ScopeNotFoundException: Scope ‘/SharePoint/default’ was not found. HTTP headers received from the server – ActivityId: . NodeId: server1. Scope: /SharePoint/default/. Client ActivityId : . —> System.Net.WebException: The remote server returned an error: (404) Not Found. at Microsoft.Workflow.C

Error – In SharePoint 2013 on premises, I was trying to publish the workflow and received below error

“System.InvalidOperationException: Operation failed with error Microsoft.Workflow.Client.ScopeNotFoundException: Scope ‘/SharePoint/default’ was not found.  HTTP headers received from the server – ActivityId: 0f2a45dd-abc8-4c5b-bd44-229f27e1090a. NodeId: server1. Scope: /SharePoint/default/c02de6f4-c3ce-405b-8d51-3be3fbf0755a. Client ActivityId : 7c53c79d-f6f8-a073-cc84-45a75a835626. —> System.Net.WebException: The remote server returned an error: (404) Not Found.    at Microsoft.Workflow.C”

Solution: Register the workflow by setting the scope as shown below and it worked like a charm 🙂

workflowerror1

Steps – Open SharePoint 2013 Management shell and run below command to register the workflow by setting the scope.

Register-SPWorkflowService -SPSite “http://server/site ” -WorkflowHostUri “http://server:12291/” -AllowOAuthHttp -Force -ScopeName “SharePoint”

Thank you so much to Karthick https://social.msdn.microsoft.com/Forums/sharepoint/en-US/fe913695-fb3e-4b5a-a229-f5bcd80fbbc9/sharepoint-2013-workflow-error?forum=sharepointcustomization

Enjoy learning…

 

 

 

“InfoPath failed to publish because the default content type in the document library is not based on the Form content type.”

Solution: 

Activate the below feature to resolve the issue-

  1. Go to Site Actions -> Site Settings -> Manage site features
  2. Activate the feature “Team Collaboration Lists”

Then publish the form to a new form library and delete the old library.

Enjoy Learning…