分類存檔: SharePoint 工作流

過早的工作流啟動 — 非醫療解決方案

更新: 請參閱此 MSDN 的討論, 特別是最後一項: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. 它描述了一個可能短路這整件事的條件. 在短, 它可能使至少一個欄位強制一樣簡單.

我有一個文件庫,支援八個內容類型.

我有一個 SharePoint 設計師工作流,想要計算和分配"提醒日期" 通過簡單地減去 30 另一列從天, "截止日期". 這應該只發生為內容類型之一, "保險". 企業目標是產生一個顯示兩個類別的保險單據的 KPI: "即將過期" 和"過期。" (您可以閱讀更多關於這種 KPI 和更多堅固下鑽取 在這裡).

已配置了要火當創建新專案和修改專案時的工作流. 想法是,當一份保險的檔上傳, 我們計算"警告日期" 基於到期日期. 一雙視圖與 KPI 清單,當使用者點擊其主頁時突出顯示這些條件有關的工作.

這一戰略不能當上傳文檔.

我上傳的文檔和我被介紹元資料輸入螢幕. 在這一點, 我已經麻煩. SharePoint 已經, 過早地從我的視角, 發射工作流. 我還沒有機會來選取正確的內容類型,也不指定截止日期. 在同一時間, 工作流不會觸發,當我在這個時候按下提交按鈕. 還有一些內置的邏輯,"相信" 那第一次提交是的一部分"創建" 事件. 所以 … 我的工作流已發射並執行它的時候, 傳遞給它的中繼資料的預設值.

最佳解決方式就我知道的是插入"暫停直到" 工作流中的活動. 我有為工作流暫停 1 分鐘. 雖然它暫停, 我選擇的正確的內容類型, 輸入中繼資料和提交. 暫停的時間完成和工作流收益根據需要. (請注意,在我的環境, 從 SPD 的計時器工作流活動不能開箱即用. 你可能會有同樣的麻煩. 請參閱 在這裡 更多詳細資訊).

我不喜歡"魔法延遲" 工作周圍. 如果使用者上傳的文檔和電話響了,隨後的交談中,會發生什麼經久暫停? 我可以做更長的停頓, 但我還是不喜歡它.

我在這裡在 MSDN 論壇上寫了這: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1

快速和簡單: 嵌入超連結通過電子郵件發送從 SharePoint 設計師工作流

每月一次或兩次, 有人張貼論壇問題: "如何包括指向是從 SharePoint 設計器電子郵件可點擊的 URL 的超連結?"

提交不進一步評論: (很好, 其實有進一步的評論意見後圖像):

圖像

貝基 Isserman 跟進一個有用的解釋如何在電子郵件中嵌入到專案的連結: http://www.sharepointblogs.com/mosslover/archive/2007/11/20/addition-to-paul-galvin-s-post-about-sending-an-e-mail-with-hyperlinks-in-spd.aspx

快速和簡單: 啟用設計師 SharePoint 工作流,以更新 InfoPath 表單

方案: 我有一個 InfoPath 表單,前端使用 SharePoint 設計器來實現工作流過程. 在一個點, 經理必須批准形式. 既然不能指望工作流歷史記錄,以滿足我審核要求, 我決定我自己的審核消息存儲直接在表單本身上.

概述:

設計表單並將其作為發佈 內容類型 和表單本身到文件庫. 馬克所需表單欄位作為更新從青苔. 表單綁的內容類型和內容類型"附加" 表單庫 (或多, 如果需要幫助,). 寫一個工作流,更新的欄位.

具體步驟:

  1. 創建文件庫. 這將舉行你 InfoPath 範本.
  2. 創建表單庫.
  3. 創建 InfoPath 表單. 包含一個文字欄位, "審核消息".
  4. 作為內容類型發佈表單 (不是文檔).
  5. 同時填寫發佈對話方塊:
    一) .Xsn 檔保存到文件庫 (一步 #1).
    b) 發佈的"審核消息" 欄位,並將標記真實: "允許使用者編輯此欄位中的資料,通過使用資料表或屬性頁".
    c) 創建新的內容類型,並給它一個適當的名稱.
  6. 訪問表單庫.
    一) 轉到其先進的設置並啟用要管理內容類型的表單庫.
    b) 選擇新創建的內容類型 (5c 以上). 它將在"Microsoft InfoPath 下分組" (或類似).
    c) 刪除預設的"表單" 圖書館的內容類型.
    d) 標記要"頁顯示為 web 頁的庫" 這樣,表單將推出從 SharePoint 和不在 InfoPath 工作站用戶端.
  7. 回到正確的表單庫,然後按一下"新建" 只是驗證所需的表單是正確過帳和代理.
  8. 火了 SharePoint 設計器,然後導航到網站承載您的表單庫 (從步驟 2).
  9. 創建新的工作流附加到表單庫.
  10. 添加單個操作"在當前專案中設置欄位". 你應該期望 SharePoint 設計器向清單中你就是你的領域, "審核消息". 將它分配一個值.
  11. 按一下完成,返回到表單庫.
  12. 創建一個新表單和一些測試的值放入"審核消息" 欄位.
  13. 將其保存並返回到表單庫.
  14. 用滑鼠右鍵按一下, 選擇"工作流" 和您的工作流的啟動.
  15. 它應該幾乎立即運行. 拉起表單 (從步驟 12) 如果所有已經計畫, "審核消息" 已分配您在步驟中提供的任何值 10.

備註:

並非所有控制項都可以都配置為此雙向通信. 舉個例子, 它似乎並不執行修改文字欄位重複節包裹的 SPD 工作流.

其中一個關鍵去的這裡的是我們真的已經創建的內容類型與關聯的範本. 這也使我們能夠在相同的表單庫中存儲多個 InfoPath 表單範本.

這就要求表單伺服器. 它最肯定不去工作在 WSS 3.0 環境,甚至可能需要企業 SharePoint 環境.

SharePoint 設計器 — 執行使用者定義的 C# 函數的自訂活動

更新: 這在這裡已發放到 CodePlex: http://www.codeplex.com/spdwfextensions

更新: 在這裡看到的最新版本說明: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

更新: 在這裡看到的商業化這一專案的思考: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

這個專案提供了在 SharePoint 設計器中的自訂活動. 使用此自訂活動調用 (調度) 你納入連結程式集任何 C# 函數.

從 10 月下旬起, 2007, 這只是專案的初始版本. 我打算擴大它與大量的附加功能, 包括的子字串, 索引, 替換, 調用 web 服務和任何看上去有用或有趣的東西. 我還打算把它張貼到 codeplex 一旦我對我的行為在一起那前面. 這也將是作為一種解決方案在某些點部署.

如果您有任何意見, 問題或建議, 請在評論中留下他們或電子郵件通知我.

免責聲明:

我讓絕對沒有要求以這為任何目的的適用性. 使用您自擔風險.

安裝步驟 (為伺服器場中的每個 WFE 遵循):

1. 下載.zip 和提取.

2. 到 gac 中安裝.DLL 檔案. 我通常打開 c:\windowsassembly 使用 windows 資源管理器和複製它那裡.

3. 修改 web.config 要將程式集添加到安全控制項:

<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>

<大會 authorizedType ="SpdGenericInterface, 版本 = 1.0.0.0, 文化 = 中性, Publickeytoken) = abe076fd8125f3c4" Namespace ="Nivlag" TypeName ="*" 授權 ="True" />

4. 複製"SpdGenericInterface.actions" 到 C:\程式必須使用 Sharedweb 伺服器 extensions12TEMPLATE1033Workflow

請注意上述地點是特定于英語語言安裝.

5. 關閉 SharePoint 設計器 (如果已經打開).

6. iisreset

7. 打開 SPD 並創建新的工作流.

如果一切進展順利, 你應該得到的報酬與一類新的行動:

圖像

備註:

請參閱 在這裡 (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) 對於創建的過程很棒概述, 安裝和配置一個像這樣的解決方案.

.Zip 旨在直接向您提取:\ 磁碟機. 如果你這樣做, 您可以打開該專案和所有路徑都將保持一致.

在 visual studio 中使用此, 您可能需要安裝"Windows WF 為擴展".

初始上載包含只是一個"調度程式功能", "ToLower()". 若要添加更多的功能, 將它添加到的 Execute 方法,如圖所示:

 受保護 重寫 ActivityExecutionStatus
          執行(ActivityExecutionCoNtext executionCoNtext)
        {

            字串 functionToDispatch;
            functionToDispatch = .DispatchFunction.ToLower();

            開關 (functionToDispatch)
            {
                案例 "tolower()":
                    {
                        .OutResult1 = .InParam1.ToLower();
                        休息;
                    }

                預設:
                    {
                        .OutResult1 = "未知的函數: [" + .DispatchFunction + "].";
                        休息;
                    }
            }

            返回 ActivityExecutionStatus.關閉;
        } // ActivityExecutionStatus

    }

然後, 重新生成專案並將程式集複製到 gac 中. 我期望 iisreset 將需要.

SPD 工作流的自訂操作 – 獲取 <WorkflowInfo> 標記權利,避免挫折

創建自訂操作為 SharePoint 設計器中涉及到的過程的一部分創建".actions" 檔.

我已經發現並試圖使用一個示例範本,作為啟動關閉:

<?xml 版本="1.0" 編碼="utf-8" ?>
<
WorkflowInfo xmlns="http://schemas.microsoft.com/sharepoint/">
<
行動 序貫="然後" 並行="">

不過, 那 xmlns 屬性防止我從工作的環境. 我的行為不會顯示在 SPD.

解決方法是去掉 xmlns 屬性, 做 iisreset 和關閉/重新-開 SPD.

SharePoint 設計器, “從使用者處收集資料” 和使用這些結果.

使用"收集資料從使用者" 行動,創建並將任務分配給使用者提示他們輸入資料. 除其他外, 我已經用它來提示使用者批准或拒絕請求,並輸入一些評論.

這一行動所採取的形式:

收集 資料此使用者 (輸出到 變數: collect1)

點擊 資料 拉了一系列的對話方塊,在其中指定哪些資料,使用者應提供什麼時候完成任務和 此使用者 很明顯.

輸出部分 (變數: collect1) 保存任務的 ID. 您使用此工作流中提取使用者的實際回應通過"比較任何資料來源" 條件.

狀態顯示為

如果 欄位 合計 價值

請按一下 欄位 然後 f(x) 圖示和它拉起另一個對話方塊. 使用此廣義的對話方塊告訴 SPD 兩個事情;

1. 什麼是你想要比較的值的清單和列.

2. 工作流引擎如何在該清單中定位特定行?

若要執行此操作:

  1. 更改"源" 下拉清單中,指向正確的工作清單. 請注意,該對話方塊將展開以顯示"查找清單項" 一節.
  2. 在查找詳細資訊欄位下拉清單中, 選擇您希望其值的域的名稱 (此架構映射到您從上面的收集資料對話方塊中的調用).
  3. 在"查找清單項" 一節, 選擇"任務:ID" 在欄位下拉清單中.
  4. 在值欄位中, 按一下 f(x). 這將打開另一個對話方塊.
  5. 更改"工作流資料來源"
  6. 選擇工作流變數,匹配到"輸出到變數" 從收集資料操作.
  7. 按一下確定 / 確定,你完成.

它看起來像這對我來說:

圖像

在這一點, 您現在可以使用該值作為所需工作流中.

附加說明:

作為簡短的一邊, 我始終創建類型的適當命名工作流變數"清單項 ID" 和使用,而不是自動生成的"collect1".

這個"比較的任何資料來源" 對話方塊的設置用於在 SPD 中的幾個不同的地方,很值得把握.

= = 結束

Technorati 標籤: