Custom workflow Activity

Requirement: 我们在Workflow中发email的时候经常会连Current Item URL也要发过去。Current Item url在SharePoint Designer 做workflow是拿不到的,我们是可以通过hardcode的方式写,但是这样不好。怎么办?写一个custom activity来实现吧。

A, 新建一个SharePoint 2010的empty Project. 因为SharePoint Empty Project会帮我们生成feature和package.普通的library project这些都是要自己写的。

B, 在这个solution下新建一个workflow activity project。可以重新命名那个Activity文件的。

C, 修改其继承关系,定义变量,引入SharePoint相关dll.

Custom workflow Activity_第1张图片

D, 重写execute方法,把得到的url 赋给返回变量。

Custom workflow Activity_第2张图片

E, 到这里代码执行部分就已经完成,下面我们来配置。

Step1, 对其进行强命名。

Step2, 在Sharepoint空项目中加入Workfow mapping folder.

路径是:\14\TEMPLATE\1033\Workflow

Step3, 在Workflow folder下加入一个Action file.(XML格式)

GetUrl.actions

Step4, 添加setting.

Custom workflow Activity_第3张图片

<WorkflowInfo>
  <Actions Sequential="then" Parallel="and">
    <Action Name="Get Current Item url" ClassName="GetCurrentItem.GetCurrentItemActivity" Assembly="GetCurrentItem, Version=1.0.0.0, Culture=neutral, PublickeyToken=....">
      <RuleDesigner Sentence="Current Item Url: %1">
        <FieldBind Field="ItemURL" Text="Item url" DesignerType="ParameterNames" Id="1" />
      </RuleDesigner>
      <Parameters>
        <Parameter Name="_Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext" Direction="In"/>
        <Parameter Name="_ListId" Type="System.String, mscorlib" Direction="In"/>
        <Parameter Name="_ListItem" Type="System.Int32, mscorlib" Direction="In"/>
        <Parameter Name="ItemURL" Type="System.String, mscorlib" Direction="In"/>
        <Parameter Name="_ActivationProperties" Type="Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties, Microsoft.SharePoint" Direction="Out"/>
      </Parameters>
    </Action>
  </Actions>
</WorkflowInfo>

Step5, 添加一个feature然后重新命名,当然也可以不新命名。

Step6, 修改package把GetCurrenItem.dll也打包进去。

Step7, 给feature active 加一个event receiver.

Custom workflow Activity_第4张图片

Step 8, 把feature scope改为webApplication.

F, 然后就可以deploy了。如果是直接用VS2010 deploy就没有什么要说的了,如果是用命令deploy,要到center administration去active the feature.

现在我们可以在sharepoint designer下使用了。

Custom workflow Activity_第5张图片

你可能感兴趣的:(Activity)