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 將需要.

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

  1. 格裡 · 惠特沃思
    我依照他的指示,一切看起來工作,直到我在 SP 設計器中選擇的操作. 設計器在工作流中不將粘貼代碼. 發這傢伙,我猜他是太忙,無法回應.
    我解決了這個問題我自己.
    過去的"SpdGenericInterface.actions 從行動" 進入"WSS.actions" 檔和它的一切工作. 我希望這能説明別人.
    答覆
  2. Marco mancinelli
    聽起來不錯, 但我不能安裝擴展 =(
    我的設計師 con 看到它,但當我點擊它什麼都不顯示… 請説明… tnx.
    答覆
  3. Bernard 蘭貝斯

    我使用的替換此自訂活動() 功能. 該農場是 SharePoint 2007, 與負載平衡 web 前端. 我正在啟動錯誤的間歇性故障, 但在通常重新開機工作流 5 – 15 民. 我相信計時器作業的工作流和工作流容錯移轉重新開機工作流. 我回顧了 SharePoint 日誌, 最後抓到此錯誤.

    RunWorkflow: Microsoft.SharePoint.SPException:
    在 Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.LoadXomlAssembly(字串 assmNameIn, SPWeb web)
    在 Microsoft.SharePoint.Workflow.SPWinOeHostServices.CreateInstance(Guid trackingId, SPWorkflow 工作流)
    在 Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(Guid trackingId, SPWorkflowHostService 主機, SPWorkflow 工作流, 1 收集事件, TimeSpan 超時)
    在 Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow originalWorkflow, SPWorkflow 工作流, 1 收集事件, SPRunWorkflowOptions runOptions)

    我在另一篇博客上找到此錯誤的引用, http://www.kentd.com/index.php/all-blog/218-nivlag-and-spdgenericinterface. 撰文人表示他在用自訂少不了替換(), 以及. 你看過此錯誤嗎? 如何解決這個問題的任何建議嗎?

    答覆
    1. 保羅 · 高爾文 文章作者

      對不起,我永遠不會回答. 在 thi 的點, 它是可能沒有實際意義. 希望你能夠解決它.

      答覆

離開一個答覆 Marco mancinelli 取消回复

您的電子郵件地址不會被公開. 必需的地方已做標記 *