Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.
Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.

SharePoint Designer

FIXED – SPDActivities Custom Action (SharePoint 2016 )

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!  

shades_smile

Issue

  1. WSP is fully deployed and installed
  2. Custom Action workflow steps are visible in SharePoint Designer
  3. Click action then suggestion menu disappears.   No action sentence is visible on designer.

image

Resolution

  1. Locate </targetFx> in [web.config] file
  2. Add below XML code both before AND after </targetFx>

<authorizedType Assembly=”DP.Sharepoint.Workflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0298457208daed83″ Namespace=”DP.Sharepoint.Workflow” TypeName=”*” Authorized=”True” />

  1. IISRESET
  2. Clear SharePoint Designer client cache https://stackoverflow.com/questions/43113666/how-to-clear-cache-in-sharepoint-designer-site
  3. Test
image

Root Cause

  • 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.

FIXED – The version of Microsoft SharePoint Foundation running on the server is more recent than…

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!

shades_smile

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.”

image

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.


Get Design View back on SharePoint 2013 (woohoo!)

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.

 

Instructions

  1. Download Fiddler http://www.telerik.com/fiddler
  2. Download SP Designer 2010 http://www.microsoft.com/en-us/download/details.aspx?id=16573
  3. Launch Fiddler, press Ctrl + R, and update the Custom Rules JS file with the code below
  4. Launch SP Designer 2010 and open site URL
  5. Have fun!

Fiddler

You need to add Custom Rules to Fiddler.  There are two options:

  1. Download CustomRules.JS with custom logic
  2. 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.
    • Not formally supported.
    • Cool way to support SP2010 upgraded sites.

    References

     

    homer-computer-woohoo

     

    5-8-2014 3-41-29 PM

    Manually Run “Pause Until” SharePoint Designer Workflows

    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

    1. Move VM host clock forward 1 day (24hours)
    2. Move VM guest clock forward 1 day (24 hours)
    3. 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. 

    Smile

     

    image
    image
    image
    image

    © Copyright 2016
    @ SPJeff

    Return to Top ▲Return to Top ▲