分类存档: 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 设计师工作流

每月一次或两次, 有人张贴论坛问题: "如何包含超链接的 URL,都可以点击从 SharePoint 设计器的电子邮件?"

提交不进一步评论: (好, 其实后图像是进一步的评论意见):

图像

一个有用的解释跟进 Becky 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:\使用 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 将需要.

展能就业科的工作流的自定义操作 – 获取 <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 标签: