一步一步學習sharepoint2010 workflow 系列第二部分:sharepoint無代碼工作流 第3章 自定義工作流(Custom Designer workflows)


■比較SharePoint Designer中的不同類型工作流程
■構建SharePoint Designer工作流
■實現和測試你的第一個SharePoint Designer 工作流

 

SharePoint Designer(SPD)是一個強大的工具你可以使用來幫助你擴展SharePoint中開箱即用的功能。你可能想去使用SPD爲獨特的業務需要例如像設計一個自定義外觀和風格的公司logo,顏色和字體到你的SharePoint 站點。它可以共同使用和執行許多其他功能像建立自定義Web Part,修改頁面佈局,建立自定義工作流。

SPD有很強的能力去構建自定義工作流,能滿足複雜的業務需求和流程。SPD充分體現了工作流體系結構,通過產生XOML建立SharePoint工作流。 聲明式工作流標記語言我們在第一章簡要的提到。SPD發佈這個XOML到SharePoint,SharePoint Designer中的工作流通常被稱爲聲明性工作流, 而Visual Studio 工作流被稱作編譯型工作流。 

SPD最大的好處是非技術人員可以設計工作流,然後轉換成平臺需求以運行它們。SPD工作流有易用性和速度這兩個優勢 。

SPD工作流由幾個類型的組件構成,包括步驟(Step),動作(Action),和條件(condition)。這些組件是所有SPD工作流的基石。 步驟組織工作流從一個步驟流向另一個步驟,例如,你可以在步驟裏檢查條件。動作(Action)做一些工作,類似發送電子郵件或者創建列表項這些工作。這章將使用所有的組件去管理員工的支付審批流程請求。 

 

 

3.1 介紹SharePoint Designer的工作流 

在簡要中提到,SPD是一個用於定製你的SharePoint 站點極好的工具。特別是,SPD有一個強大的工作流引擎,你可以用來建立模型,添加邏輯 和發佈工作流到SharePoint給用戶交互。SharePoint Designer 2007 提供只有一種類型工作流,列表工作流。在SharePoint Designer2010 我們有很多選擇和更大的靈活性。這章將只覆蓋列表工作流詳細。無論你創建什麼類型的工作流,生產工藝和工具是一樣的。 下面是SharePoint Designer2010中所有可用的不同類型工作流。 

 3.1.1 列表工作流

列表工作流是類似SharePoint 2007中的定義。列表工作流創建去工作在指定的SharePoint列表上的數據, 一般使用一次性的情景,你需要運行指定設置動作一個單獨的列表。列表工作流也可以訪問其他列表中的數據, 就像你看到本章最後的例子。列表工作流不能輕易複製和使用其他SharePoint列表,但是他們很容易創建。 

 3.1.2 站點工作流

站點工作流不依賴一個單獨的列表的,相反,它們是創建在站點級別和可以從站點裏的任何列表的數據執行操作的。 當你需要運行進程涉及多個列表時,站點工作流是很有用的。例如一個站點工作流能分析所有的創建在站點的,某個時間範圍的數據(不管哪個列表)。因爲它們沒有依賴指定的列表,站點工作流不能自動啓動當列表項創建或修改,其他工作流可以。相反,它們必須手工以站點管理員 從查看所有內容中啓動。

3.13 可重用工作流 

可重用工作流是不關聯指定的列表,但關聯站點。當創建它,它們可以添加到任何類型的列表,使用列表設置屏幕。 默認審批工作流和收集簽名工作流使用同樣的方式添加到列表。因爲他們是重複使用的,它們可以添加到站點裏的許多必要列表。 如果默認工作流,如審批和收集簽名,不符合你的要求,你可以按你的需求通過可重用工作流創建你的版本。

 3.1.4 全局可重用工作流

全局可重用工作流是和可重用工作流相似的。除了它們可用於整個站點集,不只是單個站點。它們可以添加到 網站集內的任何列表,正常的可重用工作流只能在創建的站點中使用到列表。如果 你需要實現全部網站流程和需要站點集中所有站點去使用相同的工作流完成這個流程,全局可重用工作流將比較方便。

3.1.5 工作流模板

創建工作流後,你可以保存它爲模板,導出爲.WSP文件。工作流能不輸到另外的SharePoint站點或者Farm。 在此之前,這個只可能在Visual Studio 工作流實現。對於如何使用此模板,請參閱5.1節。 

3.1.6 SPD用戶界面 

任何人使用SharePoint Designer2010打開之前的版本將更改界面。微軟現在採用相同的界面到所有的Office2010產品。 這個界面包含新的文件標籤,它取代office orb和用來連接並打開站點。它也包含用戶界面,訪問工具命令。

首先你看當你打開SharePoint Designer2010是文件菜單。圖3.1顯示,包含打開和創建SharePoint站點的工具。

 圖3.1

 

 編輯界面,是連接到SharePoint站點後顯示,包括三個主要區域:Ribbon,站點對象在左邊,和“主頁”選項卡。見圖3.2的編輯界面的例子。Ribbon提供訪問SharePoint網站的工作和這本書的目的SharePoint工作流。站點對象區域是使用訪問SharePoint站點不同區域的。最後,“主頁”選項卡是你將要創建和編輯列表和工作流的地方。

 圖3.2

Ribbon是使用訪問工具和功能編輯SharePoint站點和工作流。Ribbon上顯示的選項將改變你的工作習慣。 例如,如果你是編輯一個列表,選項在列表上具體顯示。動態的Ribbon意味着你將花更少的時間尋找選項和工具, 你需要更多時間去創建功能。 

 圖3.3

 

網站對象面板(圖3.4)可以讓你訪問SharePoint2010站點中不同的組件。 這是你將去創建新頁面,新列表和新的內容類型的地方。它是讓你如何訪問存在的工作流和創建一個新的。 點擊不同的對象根據站點對象類型,將允許你工作在不同對象類型上。當你點擊了不同對象類型, 通知Ribbon主頁選項卡的變化,顯示給你相關選項。 

 圖3.4

 

在主頁選項卡和其他面板選項卡,你可以更改設置和編輯SharePoint對象。 圖3.5顯示主頁選項卡,當你首次打開SharePoint站點的地方。例如當你第一次鏈接到站點, 你可以改變網站名稱和修改安全在主頁選項卡。

  3.5

 

當編輯工作流,你能調整工作流是如何開始和如何開發工作流----都在這些選項卡上。 當你打開和工作在這些對象上,它們將作爲額外的選項卡在內容頂部的區域出現,讓你快速的切換它們。 

 

        3.2 SharePoint Designer 工作流中的組件

SPD工作流包含許多組件,包括步驟,條件和動作。 傳統的編程語言編寫的代碼,這些組件被使用控制工作流,它採取的行動和它的結果。幸運的是,對於非開發人員, 所以的組件都很容易添加和配置。此外,所有的組件都使用簡單的英文語句“Calculte 100 plus50” 計算100加50, 這使它們很容易配置,你在本章結束將看到工作中的一些列子。 

工作流的組件分爲6個功能種類: 

■步驟-幫助你組織工作流

■條件-添加到工作流的決策邏輯

■動作-讓工作流做事情

■變量-存儲臨時數據

■否則-如果條件-添加另外的決策

■表單-允許用戶提供數據給工作流

  3.2.1 步驟

步驟是任何工作流的基礎,允許你組織它到邏輯部分。 第一個步驟通常包括準備工作流之後需要使用的數據, 這可能包含準備變量,我們使用它存儲臨時數據(工作流在運行時從用戶收集的數據)。 而後的步驟是使用數據去工作流並處理命令。 這就是在工作流中大量數據工作流完成的地方,例如執行計算和等待用戶去完成數據更改。 最後的步驟通常是記錄工作流結果和發送通知給用戶或管理員如果有需求。 這個可能包含發送表明工作流結束的Email或爲故障排除記錄錯誤消息。 

雖然它是可能去創建一個大的工作流在僅有的一個步驟,打散它到多個步驟可以是它更簡單的理解和修改。

你的步驟的名字在工作流中應是易讀的。步驟可命名和重命名通過點擊已存在的標題。 此外,步驟能被移動或刪除使用上移,下移,和刪除鍵,如圖3.6 

 圖3.6

  在圖3.7,Finish Step被放置在Start Step之前,使用這個方法。 雖然不符合邏輯,它只是掩飾你可以重新安排你的工作流步驟在開發過程中的任何時間。

 圖3.7

 

同樣,如果你需要刪除一個步驟,點擊在步驟頭選擇它並點擊在Ribbon或者你的鍵盤的Delete按鈕。 圖3.6顯示Delete按鈕。請記住,沒有撤銷選項,所以確保你確實要刪除這個步驟。 

嵌套的步驟如圖3.8所示。這些允許你組織你的工作流到主步驟和子步驟中。由於你的工作流變得更加複雜, 嵌套步驟將允許你一次性移動整個命令,似的你的工作流開發和修改更容易。 

 圖3.8

 

並行塊是另一個的步驟層。並行塊是類似的步驟,除非他們讓你連續運行多個動作。 對於一個複雜的工作流不一定互相依賴許多步驟,並行快將允許你完成工作流或至少進展下一個非平行活動。 注意並行塊只能在步驟上創建。你可以放置步驟在一個並行塊上圖3.9 

 圖3.9

 

 3.2.2 條件

條件允許工作流去做決定和響應基於不同的SharePoint列表或最終用戶提供的數據。 在本章末尾的例子顯示如果經理批准一個項目如何執行和如果項目被拒絕採取不同的行動。 當你需要執行一系列命令,多個步驟能被包含在條件裏。 

隨着在SPD2010中條件的定義。一些只適用確定類型的工作流。如站點工作流,他們是少一些條件的,因爲他們不依賴於指定的列表。

常見的條件:這些條件是你最常用的

■ If any value equals value(如果任何值等於值)-允許你去比較一個值從任何數據源。如圖3.10 這寫數據源可以包括從SharePoint數據列表,變量或者靜態值。 

 圖3.10

  ■ If field equals value(如果字段等於值)-允許你比較當前項目中的字段值與任何其他數據源的值。 這種情況和之前的條件不一樣,因爲它必須從項目中比較數據。在創建網站工作流此條件不可用,因爲它必須使用一個列表項。

 其他條件:

■Created by a specific person(創建通過特定的人)-檢查當前項目是否由指定的人創建。 

■Created in a specific data span(創建在一個特定數據範圍)-檢查當前項目是否創建在一定範圍內的數據 

■Modified by a specific person(通過特定的人修改)-檢查當前項目是否由指定的人修改 

■Modified in a specific data span(修改在一個指定數據範圍)— 檢查當前項目是否修改在一定範圍內的數據 

        ■Person is a valid SharePoint User(用戶是否是有效的SharePoint用戶)-檢查指定的用戶是否經過SharePoint驗證
■Title field contains keywords(標題字段包含關鍵字)-檢查當前項目的標題字段中是否包含指定的字符

因爲他們是爲某一特定目的配置的,它們更快、更容易的去配置。但是,因爲他們是相當具體的,你可能不會經常使用它們。 條件能被配置給檢查工作流數據,哪些類型數據可以被工作流使用,包含從列表項的數據, 變量或者其他數據源。 此工作流數據可以與靜態錄入信息比較,當工作流是寫入。

 對於這些條件,類型的比較,同樣知道的操作(圖3.10),是可以允許爲其他類型的比較而改變。默認情況下,操作設置爲等於,但是你能改變它到其他選項,通過點擊當前使用的操作,並選擇一個不同的操作。

  這裏有你數據類型比較可用的操作列表。例如,當比較一個值與一個日期或時間字段,開始和結束操作無法使用。 在SPD 工作流中的可以用操作定義:

■ Equals(等於)-檢查2個值是否完全相等,工作在所有的數據類型。條件的大小寫敏感。 -Summer Equals Summer=True -Summer Equals summer=False(提醒小寫的s) 

■ Not Equals(不等於)-檢查2個值是否不相等,工作在所有的數據類型。 -Summer not Equals Winter=True

■ Is Empty(是空)-檢查引用字段是空值。

■ Is Not Empty(是非空)-檢查引用字段不是空值。

■Begins With(開始於)-檢查字段開始於一個值 -Summer Begin With Sum=True

■Does Not Begin With(不開始於)-檢查第一個字符不是匹配的字符 -Summer Does Not Begin With Wint=True

■Ends With (結束於)-檢查字段結束於一個值 -Summer Ends With er=True

■Does Not End With(不結束於)-檢查字符串不結束於另一個字符串 -Summer Does Not End with ter=True

■Contains(包含)-檢查一個字符串包含另一個字符串 -Summer Contains int=False

■Does Not Contain(不包含)-檢查是否不包含另一個字符串 -Sumer Does Not Contain int=True

■Matches Regular Expression(匹配正則表達式)-字符串匹配格式。

■Equals(ignoring case)等於(忽略大小寫)-不比較大小寫的字符串匹配 -Summer equals(ignoring case)summer=True

■Contains(ignoring case)包含(忽略大小寫)-相同內容不比較大小寫。 -Sumer contains(ignoring case)MME=True

  當有疑問時,可以使用任何值等於任何值的比較,因爲它提供了最大的靈活性,可以讓你比較廣泛的數據。

  3.2.3 動作(Action)

到目前爲止,我們看到的只有在將一個工作流如何作決定。工作流只做決定,不執行任何操作是沒有用的。 爲了使我們的工作流有用,我們需要添加動作。SharePoint Designer2010中有很多可用的動作,每個動作設計執行不同的 功能。可用動作按種類可分爲6組,再加上最近使用過的動作爲第7組。 在添加動作到工作流使用Ribbon按鈕,如圖(3.11) 

 圖3.11

 

大多是動作都是自解釋的。一些更復雜的動作被包含在本章的例子中。 這裏是最流行的動作清單: 

 

SharePoint Designer2010 比SharePoint Designer 2007允許你執行更多類型的動作。核心和列表動作將經常被使用因爲它們允許你與SharePoint 數據交互(類似最終用戶交互的方式)。設置工作流變量動作是比較重要的,因爲它必須被用來捕捉外部來源的數據,然後你在執行更多複雜的動作,如做計算。

 

3.2.4 變量

如前所述,變量用於當工作流存儲和運行數據。各自新工作流實例運行時,新的變量被設置使用, 即時如果多個工作流拷貝多個用戶初始化。當一個工作流完成,在變量中的數據將丟失,除非你第一時間將數據存儲 到SharePoint列表項的字段中或者保留數據到其他地方,例如把數據放在Email消息中。 

當你第一次創建工作流,它並不具有任何變量。在某些情況下,添加動作到你的工作流將自動創建變量。 例如,添加一個做計算動作將自動創建一個Calc變量。添加第二個計算動作將創建一個Calc1變量。 所有的變量必須具有唯一的名稱,所以SharePoint Designer添加數字到自動創建的變量之後以保證它們唯一。 你可以重命名任何變量,無論它是手動還是自動創建的,來滿足你的需求。 

變量設置允許僅有的一些類型的數據,叫數據類型。有些動作需要某些數據類型才能正常工作。 當創建工作流變量時,以下的數據類型是可用的: 

■ String—任何長度的文本字符串, ABC.  
■ Boolean—是或否.
■ Date.Time—1/1/2010 12:00:00 AM.
■ Integer—整型, 100.
■ List Item Id—列表項的唯一引用, 1.
■ Number—數字包含小數

這些都是不言自明的,除了列表項ID。這種數據類型允許你去存儲列表項的唯一標識符。 如果你需要在工作流中引用指定的列表項,這可能有用。 

你的工作流中的動作使用來分配值給變量。有些動作自動做這個事情,而另外的你需要使用設置工作流變量動作去分配你的值。 當動作本身分配值,你只需要去選擇變量在哪裏輸出就可以了。類型相同的變量會顯示,防止你選擇不同數據類型的變量。 

當使用設置工作流值動作,所有可用變量都會顯示,甚至它們不兼容。在這些情況下,有可能分配不兼容的值。這個叫強迫。當使用強迫分配一個值給變量,在查找對話康上的下拉列表讓它返回字符串,如圖3.12。

 圖3.12

 

 

這個可以選項在返回字段下拉列表依賴於變量的數據類型和從源下拉列表的字段類型。對於一些源字段和可變數據類型組合,強制轉換是不可能的,可返回字段的下拉列表將被設置只能可用類型和禁用。當強制轉換是可能的,下拉列表將彈出可能轉換的類型。在圖3.12,變量是字符串類型,源字段爲用戶ID類型。你看到它是可以轉換。由於組合比較多,最好的方法是在你的工作流中進行試驗哪些可以強制轉換。

並非所有的數據類型都可以轉換成其他數據類型的,即時這些數據類型在返回字段的下拉列表中, 你不能強制轉換一個字符串到列表項ID。設置工作流值的動作不會阻止你嘗試一個無效的轉換, 但,當你運行工作流時,你將在工作流歷史列表中收到錯誤,如圖3.13 

3.13

如果發生這樣的情況,你將需要調整你正在執行強制轉換的類型或者分配給變量輸入的數據類型。 

 3.2.5 Else-if branches(其他分支)
Else-if 分支直接參與條件工作爲了更好的做出決策。 它們可以設置去執行前面條件爲False的判定(類似於Else語句)。 要做到這一點,在現有的條件下放置光標,然後點擊Ribbon上的Else If語句塊。 使用Else-if分支無需額外的配置。圖3.14顯示Else-if添加到條件。

 圖3.14

 

如果一個額外比較,可以使用Else-if塊,你可以添加其他的條件,再點擊條件按鈕。 你選擇可用條件的任何類型並不需要和初始條件相同。圖3.15顯示Else-if被添加到條件。

 圖3.15

 

最後,你可以比較多個數據在一個條件上。這是通過在已存在條件後立即添加另外條件和更改必要的操作。 SharePoint Designer2010 將自動合併成一個單一的塊。如圖3.16 

 圖3.16

 3.2.6 Workflow forms(工作流表單)

用戶可以通過表單和工作流進行交互。表單是通過瀏覽器進行頁面查看,允許用戶添加額外的數據給工作流。 最簡單的方法是使用表單去添加初始化參數給你的工作流。初始化參數類似於變量,除非它們手工啓動時顯示給用戶。 用戶可以選擇鍵入數據到參數,變量。另一方面,使用列表中數據可以不允許直接與數據進行交互。 表單在第7章和第10章中詳細涵蓋。

 3.3 創建你的第一個SharePoint Designer 工作流

 現在你已經瞭解了SPD工作流的核心組件,現在我們將獲取一些實踐經驗。我們將使用SharePoint列表和工作流創建一個PTO請求系統。這個例子分爲幾個部分,側重於不同工作流組件。此外,每一節都建立在前一節的基礎上,所以一定要保證按順序完成例子。

第一部分將集中精力建立所需的列表去支持PTO工作流。在第二街,我們將創建一個簡單的日誌記錄工作流。 然後添加基本功能處理當一個PTO請求被提交時的通知,最後,我們將添加高級功能跟蹤PTO可用的時間。 

 

3.3.1 配置PTO日曆

PTO請求日曆將允許員工到日曆創建一個新的項目(這個項目涵蓋他們要求的時間長度)。 工作流(下一節創建)將路由請求給員工的經理。但是我們在創建工作流之前,我們首先需要創建日曆,並設置要批准的內容。 按照在鏢3.1的步驟去創建這個PTO日曆列表。 

 

  隨着PTO日曆設置完成,員工們可以開始提交他們的PTO請求了。 現在我們建立工作流來幫助促進他們的審批.

 3.3.2 創建一個新的工作流,它的日誌記錄到歷史列表

在我們的日曆列表,我們現在可以建立PTO請求工作流,在添加工作流的邏輯之前,讓我們建立一個簡單工作流 它將執行日誌記錄和發佈工作流到日曆列表。按照表3.2步驟創建一個基本的SPD工作流,併發布這個工作流到PTO日曆。
表3.2

 

 

 

 

 

 

 

 

 圖3.17

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

 這裏要注意,很多人和我一樣,都喜歡在學習的時候用系統賬戶,就是你登陸SharePoint後,顯示System的賬戶,請注意,如果你使用System去創建PTO Calendar的新項的話,工作流不會自動啓動,請使用非系統賬戶,也就是你自己多申請幾個賬戶,以做測試用。 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

我們現在有一個簡單的工作流部署到我們PTO Calendar。這個工作流的功能並不強大。事實上它只是記錄日誌到歷史記錄。現在的時間將開始發送電子郵件,當PTO請求被提交。

 

 3.3.3 添加通知到自定義的PTO請求工作流

現在這個工作流是自動運行和日誌記錄成功的。現在添加更多高級功能。我們將添加條件和動作去通知用戶的經理, 當一個用戶申請PTO請求時。我們也將添加邏輯和動作通知用戶該請求是被批准還是被拒絕。最後,我們將在這個例子中添加錯誤處理。 該PTO請求審批將完成。按照表3.3的步驟添加管理審批PTO請求工作流。 

表3.3 

 

 

 

到這裏,我們要暫停工作流,直到用戶的經理批准或拒絕PTO請求。我們還需要檢查項上的審批狀態字段(知道經理如何響應的) 需要注意的是審批狀態的值是特定的一些字符文本。它們需要使用等於進行比較。你可以使用包含,但是等於會更有效。 因爲它並不需要逐個檢查字符串中的字符。 

如果郵件不可用,使用日誌記錄到歷史列表來替代發送郵件動作。爲確保設計工作,日誌消息包含所有引用字段。 

繼續進入表步驟:

 

 

 

 

 

如果審批狀態字段是不等於審批或者拒絕的,那麼工作流出現問題了。最重要的是要讓用戶知道,而不是停止工作流。 在現實世界,它也將通知維護工作流的人。這個通知可以被加入另一個否則條件。 發佈工作流,創建兩個測試項。經理會收到兩封電子郵件。作爲經理,批准一個請求,拒絕另外一個。測試用戶 收到兩個電子郵件通知。 

管理審批更多選項
有很多方法去獲取工作流審批。這個例子使用內置的內容審批功能,但是我們可以使用開箱即用的審批工作流去替代。在這種情況下,經理會被分配一個新的任務在任務列表,而不是發送電子郵件。經理可以使用批准或拒絕PTO請求的任務。 

 

 

3.3.4 添加計算邏輯到工作流 

最後步驟將配置第二個列表來跟蹤剩餘的PTO時間。這份名單將幫助經理決定是否批准或拒絕請求,因爲 它跟蹤每個用戶的累積和剩餘PTO小時數。如果PTO申請被批准,這個新的列表將被跟新, 以反映用於請求PTO小時數。 

在開始前,讓我們先設置PTO跟蹤列表。在SharePoint Designer中,點擊站點對象菜單下的列表和庫。 點擊在Ribbon上的自定義列表按鈕去創建一個新的自定義列表名字叫PTO Tracker. 

創建列表後,添加一個人員或組類型的列,取名 叫Employee。 點擊確認去保存Employee列。切回到SharePoint Designer,然後添加兩列數字類型的列到PTO Tracker列表。 一個列叫Available Hours,另外一個列叫Used Hours(見圖3.18)

 圖3.18

 

在SharePoint Designer做出的列表更改知道你按下保存按鈕纔會生效。其結果就是任何你正在編輯的工作流,將不知道新增加的列表或列, 直到列表的更改被保存。在SharePoint上的直接操作,這些更改是直接生效的,保存按鈕不是必須的。這些不同的行爲可能會造成混淆, 所以當使用SharePoint Designer時,更改後進行保存,成爲你的習慣。

點擊“保存”按鈕去保存列表的更改。在SharePoint打開PTO Tracker列表,爲測試用戶添加一項, 設置可用時間爲80小時,使用小時數爲0小時,並保存此項(圖3.19) 

 圖3.19

 

從PTO Tracker列表中去使用和修改這些數據在你的工作流,你需要捕捉到數據使用變量。然後,這些變量可以根據需要 修改並最終應用於PTO Tracker列表。你還可以添加這些變量到郵件消息的主題,這樣經理能夠在電子郵件中看到 如果PTO請求者確實有PTO餘額。按照表3.4的步驟設置這些執行PTO Tacker列表的變量,並在電子郵件正文中引用他們。 

表3.4 

 

 

 

 

 圖3.20

  郵件給經理顯示和更新的數據,你需要獲取經理響應。如果經理批准請求, 請求PTO時間需要從PTO 跟蹤列表中扣除。按照在表3.5的步驟完成這個動作。

 

表3.5

   

現在你已經更新好變量中的數據,你需要將數據寫回到PTO Tracker列表永久存儲它。請記住,當工作流完成, 變量中的數據將丟失。使用更新列表項動作,你可以設置多個字段值。如果PTO被批准,你只要去保存 數據到PTO Tracker裂口表。如果它被拒絕,你不需要保存數據。執行如下動作去保存數據到PTO Tracker 列表。 

表3.5(續)

 

 

 

發佈這個工作流,並在PTO Calendar使用測試用戶創建一個新項。 使用測試用戶經理批准此項。 在PTO Tracker列表,你應該通知可用和使用過的時間已經正確更新(圖3.21)

 圖3.21

 

本章結束 

 下一章

一步一步學習sharepoint2010 workflow 系列第二部分:sharepoint無代碼工作流 第4章 SharePoint Designer工作流中的任務處理

 本人聲明

 
  本博客內的文字和圖片除標明出處和轉貼的外,均系本人原創作品,如轉載或使用,不是用於盈利目的,盡請使用,但請註明引自這裏和作者的名字;有商業用途的,請與本人聯繫,協商後再作使用,否則我將採取法律手段維護自己的利益。謝謝合作。[email protected]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章