2009-07-24 63 views
3

我是SharePoint新手,但我學得很快。如何通過僅更新列表項中的值(已批准,未批准)來觸發SharePoint工作流?

我想僅在列表項中更新值時觸發工作流,但不是每次更改項時都會觸發工作流。例如,我有一個批准/不批准的列,我希望這是觸發器而不是項目中的其他值。因此,如果有其他更改,工作流程將不會啓動,除非「批准」值爲。

所有幫助表示讚賞!

謝謝,

回答

3

如果你想以編程方式做到這一點...

  1. 創建ItemUpdating事件處理程序,並將其連接到你的目標名單。我會創建一個功能和功能接收器來完成附件。

  2. 在ItemUpdating事件處理程序中,有兩個值,你想看看: properties.ListItem [「審批」]這會給你原來值 properties.AfterProperties [「審批」]這是更新值

檢查,如果兩個值不相等,如果更新值等於「批准」。如果兩個都是真的,在列表項目啓動工作流programmatically-這裏有一些鏈接,幫你:

http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx

編碼愉快!

7

您可以在SharePoint Designer中執行此操作。

  • 打開您在SharePoint Designer網站
  • 單擊文件新的工作流程
  • 選擇列表/庫
  • 添加一個條件:比較LISTNAME現場(你可以在你的情況比較字段值的批准列)

希望它有幫助。

+0

阿里, 謝謝,但是這是我已經成立。問題在於,在更新值之後,每當項目發生更改(其他列觸發工作流程的那一列)時,工作流程就會重新執行,並且在我的情況下會重新發送一封電子郵件(它已設置爲操作:發送電子郵件)。其他建議? 謝謝, – Marius 2009-07-25 01:13:47

1

你可能需要兩個工作流,一個隱藏字段和「啓動另一個工作流活動」(可在CodePlex找到)

工作流程1是被設定,當一個項目發生變化,開始一個輔助的工作流程: 它檢查是否status等於隱藏字段 如果是出口 如果沒有,那麼啓動工作2和隱藏字段設置爲狀態的當前值

工作流程2是那麼真正的工作流程這是你想要的時候狀態是什麼改變了

1
  1. 首先創建一個名爲「工作流狀態」隱藏的數字字段設置爲默認值設置爲「0」

  2. 創建工作流程,將啓動雙方的創造和項目,並在修改

  3. 工作流程的第一步是將字段「工作流程狀態」增加「1」

  4. 第二步是驗證值是2,它應該表明工作流程第一次被修改d。

只是表示狀態。

工作流程狀態= 1:項目已創建 2:項目已經第一次修改 3:項目已被第二次修改。

1

@Marius:工作流中的第一步應該是比較字段值並提供邏輯分支。如果這個值等於你想要的值,那麼運行worlflow。如果沒有,請停止工作流程或執行其他操作。如果收到的電子郵件有任何修改,那麼你的流量就會出錯。

Martin的解決方案非常簡單,但您也可以通過使用內容類型進行擴展,以允許執行其他操作的審批流程。

相關問題