Workflow Activity
Represents a compiled class that is used as a part of the modular steps in a workflow. An activity is used as part of a workflow action that will be executed. Workflow activities run as server-side code when used as activities within SharePoint Products and Technologies.
Real World Example
A commonly requested activity is to send an e-mail message to a user’s manager as part of a workflow. This is implemented as a new custom workflow activity and then is made available to all custom and no-code workflows.
Technical Details
Workflow activities are composed of an assembly and metadata that describes how a workflow designer will represent the action. The metadata and class information is referenced by the system global WSS.ACTIONS file.
The following is an example workflow activity included in the WSS.ACTIONS file built into SharePoint Products and Technologies, with the class and assembly references:
<WorkflowInfo Language="en-us"> … <Actions Sequential="then" Parallel="and"> … <Action Name="Pause Until Date" ClassName="Microsoft.SharePoint.WorkflowActions.DelayUntilActivity" Assembly="Microsoft.SharePoint.WorkflowActions, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" AppliesTo="all" Category="Core Actions"> <RuleDesigner Sentence="Pause until %1"> <FieldBind Field="Until" Text="this time" Id="1" DesignerType="Date"/> </RuleDesigner> <Parameters> <Parameter Name="Until" Type="System.DateTime, mscorlib" Direction="Optional" /> <Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions" /> </Parameters> </Action> … </Actions> … </WorkflowInfo>
You must update the WSS.ACTIONS file in the following path with the information about the new workflow activities to make it available to workflows designed in Microsoft Office SharePoint Designer 2007:
%COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\12\TEMPLATE\1033\Workflow
Support Details
You could use workflow activities globally in all workflows, both coded and no-code, in the SharePoint environment, but there is no simple way of determining where they are referenced. This can lead to issues regarding upgrade or retraction activities, so you should thoroughly test any activity for any potential performance issues at maximum scale before deploying it.
You must install workflow activity assemblies in the global assembly cache and list them in the Safe Controls list so that they will function. As such, they will run with full trust, so you should also carefully examine them for potential security issues.