After troubleshooting an issue with SharePoint Designer, I wanted to document the fix for others. Installing the “DP.CustomActions” WSP from CodePlex worked well on SharePoint 2010 and 2013. However, with 2016 an issue occurs which requires additional [web.config] modification. Details below. Cheers!
Issue
WSP is fully deployed and installed
Custom Action workflow steps are visible in SharePoint Designer
Click action then suggestion menu disappears. No action sentence is visible on designer.
Resolution
Locate </targetFx> in [web.config] file
Add below XML code both before AND after </targetFx>
Appears that SharePoint 2016 leverages more Dot Net Framework versions (3.0, 3.5, 4.0, 4.5) and has a larger [web.config] to support backward compatibility with multiple Dot Net versions.
While working with SharePoint Designer and opening sites in Office 365 I came across the below cryptic error message. The root cause is lack of permission. Granting SCA fixed.
Cheers!
Error
After opening URL SharePoint Designer client displays “The version of Microsoft SharePoint Foundation running on the server is more recent than the version of SharePoint you are using. You need a more recent version of SharePoint Designer.”
Resolution
While unclear, the above is actually a permission denied error. Grant the user account more permissions, such as Site Collection Admin (SCA), and you will connect OK.
Want to use Design View on a 2013 site? Well, now you can.
With a Fiddler HTTP function we can adjust the server response to say “14” instead of “15” and open any SharePoint 2013 site with SharePoint Designer 2010 to have access to classic Design View. Obviously there are downsides to this approach (not formally supported), but it also can be useful in many scenarios. Check it out and please leave a comment if you find this helpful.
Copy the below code and add to your local CustomRules.JS file in the function OnBeforeResponse(oSession: Session).
// START BLOG POST from @spjeff
// https://www.spjeff.com/2014/05/08/get-design-view-back-on-sharepoint-2013-woohoo
//INF
if (oSession.oRequest["User-Agent"] == "Mozilla/4.0 (compatible; MS FrontPage 14.0)" &&
oSession.PathAndQuery == "/_vti_inf.html") {
// Remove any compression or chunking
oSession.utilDecodeResponse();
if (oSession.responseBodyBytes) {
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
// Replace strings
oBody = oBody.replace("FPVersion=\"15.00.0.000\"", "FPVersion=\"14.00.0.000\"");
oSession.utilSetResponseBody(oBody);
}
}
//RPC
if (oSession.oRequest["User-Agent"] == "MSFrontPage/14.0" &&
oSession.PathAndQuery == "/_vti_bin/shtml.dll/_vti_rpc") {
// Remove any compression or chunking
oSession.utilDecodeResponse();
if (oSession.responseBodyBytes) {
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
// Replace strings
oBody = oBody.replace("major ver=15", "major ver=14");
oSession.utilSetResponseBody(oBody);
}
}
//AUTHOR
var suffix = "/_vti_bin/_vti_aut/author.dll";
if (oSession.oRequest["User-Agent"] == "MSFrontPage/14.0" &&
oSession.PathAndQuery.indexOf(suffix, oSession.PathAndQuery.length - suffix.length) !== -1) {
if (oSession.responseBodyBytes) {
// Remove any compression or chunking
oSession.utilDecodeResponse();
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
// Replace strings
oBody = oBody.replace("
SR|15.0", "
SR|14.0");
oSession.utilSetResponseBody(oBody);
}
}
// END BLOG POST
Use Cases
Support upgraded 2010 sites. If you developed with SP Designer 2010, you might need Design View to support sites after upgrade to 2013.
New HTML and CSS creation. WYSIWYG can be great for making simple files to support new JavaScript development.
DataFormWebPart . Create blank ASPX page, add the DataFormWebPart and Conditional Formatting with WYSIWYG, then copy finished <DataFormWebPart> code tag into a 2013 native ASPX page.
Notes
Non intrusive approach. Fiddler runs local on the developer’s machine. No server changes or changes for end users.
This doesn’t give you Design View of any native 2013 ASPX page. Those are fundamentally different with new Minimal Download Strategy async load, new master page, and other stuff so it just shows a gray background.
Recently I needed to simulate a future lapse in time in order to manually trigger the “Pause Until” SharePoint Designer function. In the example below, the SharePoint server is a local DEV virtual machine running in Oracle VirtualBox. That means it receives time from the parent machine.
Action Steps
Move VM host clock forward 1 day (24hours)
Move VM guest clock forward 1 day (24 hours)
Run the Powershell command “Get-SPTimerJob | ? {$_.name –like ‘*workf*’} | Start-SPTimerJob”
What the above steps will do is to simulate a future date and then trigger the SharePoint workflow engine. If the engine finds any past-due activities (ex: “Pause Until ___”) then it will execute those immediately. Using this technique you can build “Pause Until ___” workflows and still test them to ensure everything completes as expected, without having to actually wait the full time.