天天看點

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

本文講述VS2012 開發SharePoint 2013 聲明式workflow action 之 HelloWorld。

使用VS2012開發客戶化的workflow action是SharePoint 2013 自帶的action的一種補充,用于實作較為複雜的業務邏輯,需要它的理由有三:

1.滿足客戶複雜邏輯的定制化需求

2.可以由專業第三方的公司開發更多友好和适合特定行業的action庫,以滿足使用者需求,有利于構件更完善的SharePoint 2013 生态系統

3. 代碼和業務邏輯重用

下圖是Custom activity 所處的SharePoint 2013 workflow 的體系結構中的位置: 

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

接下來說明如何使用VS2012實作一個最簡單的聲明式workflow action (需求是接受一個message參數,将該message寫到Workflow history list中,實際工作中肯定不會有這種需求,這裡是舉個簡單的例子):

準備工作參考前一篇的準備工作: 

http://blog.csdn.net/abrahamcheng/article/details/12612481

外加安裝VS2012 + Office 2013 development tool

建立SharePoint 2013 solution

1.建立SharePoint 2013 empty solution(選擇farm solution或sandbox solution均可)

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

2. 建立Custom action

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

3. 添加輸入參數

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

4. 在Toolbox中搜尋WriteToHistory,并拖拽至 HelloWorldAction中

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

5. 将輸入參數HelloMessage設定為WriteToHistory的Message屬性

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

6. 編輯HelloWorldAction.actions4, 綁定輸入參數和RuleDesigner

<Action Name="HelloWorldAction" ClassName="HelloWorldAction.HelloWorldAction" Category="Custom" AppliesTo="all">
  <RuleDesigner Sentence="Hello message is %1">
    <!-- Define the UI widgets SharePoint designer should use for configuring this action -->
    <FieldBind Field="HelloMessage" Text="Hello message" Id="1" DesignerType="TextOnly" DisplayName="Hello message" />
  </RuleDesigner>
  <Parameters>
    <Parameter Name="HelloMessage" Type="System.String, mscorlib" Direction="In" DesignerType="TextOnly" Description="Set the HelloMessage" />   
  </Parameters>
</Action>
           

7. 使用VS部署該解決方案

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

在SharePoint designer 2013中使用custom action

1. 清空SharePoint designer 2013 的cache檔案 C:\Users\v-abchen\AppData\Local\Microsoft\WebsiteCache ,這是因為部署了新的action,否則使用SharePoint designer 2013 建立workflow時會出現如下錯誤:

Sever-side activities have been updated. You need to restart SharePoint designer to use the updated version of activities.

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

2.打開SharePoint  designer 2013 建立一個命名為TestHelloWordAction 的site workflow

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

3.在建立的workflow 中加入HelloWorldAction

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

4.設定Message參數

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

5.給workflow添加結束語句,并釋出

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

調試custom action

1. 在VS2012的activity 上設定調試斷點

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

2. 啟動VS2012調試

3. 到 http://SP2013Site/_layouts/15/workflow.aspx 頁面啟動site workflow TestHelloWordAction 

4. VS2012中的斷點将被激活

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

5.按F5工作流完成後可以看到我們寫入Workflow History 的HelloMessage

VS2012 開發SharePoint 2013 聲明式workflow action(activity)之 HelloWorld

繼續閱讀