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:\使用 windows 资源管理器和副本的 windowsassembly 那里 it.

3. 修改 web.config 将程序集添加到安全控件:

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

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

4. 复制"SpdGenericInterface.actions" C:\程序主题 FilesMicrosoft Sharedweb 服务器 extensions12TEMPLATE1033Workflow

请注意上述地点是特定于英语语言安装.

5. 关闭 SharePoint 设计器 (如果已打开).

6. iisreset

7. 打开电涌保护器,并创建新的工作流.

如果一切顺利, 你应该得到回报的一类新的行动:

图像

备注:

请参阅 在这里 (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 取消回复

您的电子邮件地址不会被公开. 必需的地方已做标记 *