Question

As part of my SharePoint Server 2013 setup I sometimes need to integrate the new workflow infrastructure into the farm. I've followed the documentation starting from the SharePoint side of things:

From here I installed and configured the components based on the linked documentation (this part is not SharePoint specific):

Based on the information in the SharePoint docs I will have to run the following command to allow communication (for my example I use HTTP on sharepoint and workflow manager):

Register-SPWorkflowService –SPSite "http://collab/" –WorkflowHostUri "http://sp2013-01:12291" –AllowOAuthHttp

Here's the command that worked for my environment where my SharePoint URL is http://sp.apple.com and the Web Front End server where I installed Workflow Manager is named sharepointwfe. Register-SPWorkflowService -SPSite "http://sp.apple.com" -WorkflowHostUri "http://sharepointwfe:12291" -AllowOAuthHttp


Reading the documentation for this cmdlet i'm not sure I have to execute this command for all site collections that should run the on new workflow infrastructure (non SP2010 WF).

Configures the SharePoint host to use a workflow service

Parameters:

SPSite | Required | Microsoft.SharePoint.PowerShell.SPSitePipeBind | Specifies a site collection to configure

Questions:

  • Do i need to execute this command once and the site collection will store some config information?
  • or Do i need to run this command on every site collection that should use the new workflow infrastructure?

Infrastructure details:

  • Windows Server 2012 Standard English
  • SharePoint Server 2013 English
  • MS SQL 2012 SP1 Standard English
  • Workflow Manager 1.0
  • 1x Domain Controller
  • 1x SharePoint Box running also Wokflow Manager
  • 1x SQL Server
Was it helpful?

Solution

Register the service by selecting one of your Web Applications as per the example you provided above. After you have registered it for (in this case, for "Collab"), you should be able to verify that 2013 Workflows now work within SharePoint Designer 2013 for any site residing within the "Collab" Web Application.

If you have other Web Applications where you have customized the service applications then you need to enable them like any other shared service. If you have other web applications with default services, then the 2013 Workflow service should be working. So no, you do not run the command multiple times. One time only. Then manage the service within SharePoint Central Admin.

I summarized this in my blog post here:

http://forte-design.com/?p=1

Chuck LaForte Forte Design

OTHER TIPS

You need to execute Register-SPWorkflowService only once for the entire farm.

I have many cases where this did not work though due to some other factors in addition to the Proxy issue mentioned in the earlier response.

  1. SharePoint web applications are using https and the root of their cert is not in Workflow Manager server trusted root authority (MMC Snap-in, Certificates, Local computer)

  2. Test user publishing the workflow is a system account.

  3. Test user does not have an entry in User Profile or does not have an email.

  4. App Management or subscription service is not properly provisioned (no configuration required for App management though).

  5. Workflow Manager endpoint Public key (.Cer) is not registered in SharePoint as Trusted Root Authority (New-SPTrustedRootAuthority) if the communication will be entirely over HTTPS (i.e. Not allowing HTTP).

The 'Register-SPWorkflowService' command creates the service proxy connection for the whole farm, but this proxy connection gets only added to the service connection group of the current web app. If you only have one service connection configuration, you are good to go now.

If you have additional proxy groups configured in your farm, it is not added there and you cannot simply check the box to add it. You need to add the workflow service to these groups, e.g. with the following script snippet:

$appProxyDisplayName = "Workflow Service Application Proxy"

$proxyGroup = "your proxy group name here, look up in ca - web app - service connections"

# https://hughajwood.wordpress.com/2013/08/22/starting-a-service-application-proxy-via-powershell/
$appProxy = Get-SPServiceApplicationProxy | Where-Object {$_.DisplayName -eq $appProxyDisplayName}

# Add workflow Service to an existing service group
# https://technet.microsoft.com/en-us/library/ee704550.aspx
# Add-SPServiceApplicationProxyGroupMember -Identity < the service application proxy group > -Member <members to add to the service application proxy group>

Add-SPServiceApplicationProxyGroupMember -Identity $proxyGroup -Member $appProxy
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top