浪涌保护器自定义工作流操作 — 字符串操作增强功能

大约一周前, 我开始了一个 codeplex 项目,提供一种将自定义操作功能添加到工作流设计器 SharePoit 的简单和合理通用的方法. 它被描述在这里: http://www.codeplex.com/spdwfextensions. 除了简单地提供一个框架, 它还旨在提供一套有用的功能,将会使 SPD 更有用/灵活/强大.

这里是当前版本的计划的功能 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

如果任何人有任何兴趣在此项目中, 请留言或启动/添加到这里讨论: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

下面是当前的编码的功能集 (虽然不完全测试的作为 11/08/07):

函数 说明 (如果不相同.Net 功能,)
Num-条目() 返回数字的"条目" 根据指定的分隔符分隔的字符串中.

例如: 在一个字符串中的 Num 条目",b,c" 带分隔符"," = 3.

条目() 根据指定的分隔符分隔的字符串中返回的第 n 个标记.
长度 String.Length
替换() String.Replace()
包含() String.Contains()
返回"true 一词" 或者"虚假"一词.
子字符串(启动) String.Substring(启动)
子字符串(启动,结束) String.Substring(启动,结束)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
返回"true 一词" 或者"虚假"一词.
EndsWith() String.EndsWith()
返回"true 一词" 或者"虚假"一词.

快速 & 简单的 url 编码台式机实用程序

我一直需要到 url-编码这周的某些字符串和拼凑了一个小的实用程序,我以为会把 SkyDrive 为社区.

让这里的二进制: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

让这里的 visual studio 解决方案: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

这里是一个屏幕快照:

图像

快速而方便地: 将超链接嵌入到 XSLT 数据视图 web 部件

更新 (01/17/08): 这篇博客谈更多超链接 XSL 善良: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

概述和目标: 我已经创建了一个简单的条形图,作为仪表板上的组件. 我会保存详细信息构建图表的另一篇文章, 但不是我发明的技术 (也不是问号, 对于那件事). 原来有一个 bug,在图表中,而我固定的, 我藉此机会将一些标签转换成指着背后的图基础列表的超链接. 例如, 有了一个标签值与"封存". 我想要变成超链接的标签,以便用户可以点击它,深入查看其状态的值是"持有"列表中的特定条目.

步骤:

  1. 使用 visual studio 为 sharepoint 识别的智能感知.
  2. 复制到 visual studio 中的 XSLT DVWP (创建一个空白的项目, 向项目中添加一个 XSL 文件).
  3. 复制的链接您想要使用到剪贴板.
  4. 将它粘贴到在 XSL 中的正确位置.
  5. 转换从查询字符串的 URL 参数分隔符"&" 到"&"
  6. Url 编码的各个参数.
  7. 包装里面那 <href…> </一>

示例:

我有一个 URL:

http://[服务器]/[网站]/Lists/Open Positions/AllItems.aspx?视图 ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = 招聘人员&FilterValue1 = 举行

转换成:

     < href="Lists/Open Positions/AllItems.aspx?视图 = {84eea2f5-121B-40B7-946F-
0FA704A1DAA1%7 d&amp;FilterField1 = 招聘人员&amp;FilterValue1 = 举行"> 举行: </>

我手动改变了从第一个参数:

{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

自:

%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1%7 d

(在这, 到 { 的左大括号转换和关闭括号转换至 %7 d)

第二和第三个参数’ 参数 ("FilterField1 =招聘人员" 和"FilterValue1 =举行" 分别) 不需要进行 url 编码,因为它们不包含任何不安全的字符.

备注:

这种技术通常应工作任何您想要在哪里该超链接包含 url 参数如 XSLT 中嵌入超链接的地方:

http://[服务器]/[网站]/Lists/Open Positions/AllItems.aspx?视图 ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = 招聘人员&FilterValue1 = 举行

我有 URL 本身所访问的自定义列表和手动筛选在状态列上 (标记"招聘人员" 以上).

快速和简单: 启用设计器 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 环境.

小猎犬号已降落 (10 月 2007 问题)

(这是实际上有点老新闻, 但我最喜欢的消防局作为座右铭宣告, "亡羊补牢").

看看这里: http://www.sharepointbeagle.com/

如果你还没有, 一定要 登记.

答案是肯定的, 请务必阅读 我的文章 关于真实世界的 SharePoint 项目 (包括需求定义, KPI 的, 内容类型, 仪表板和更多) 以及 我的同事 篇文章的内容查询 web 部件.

也有很多其他好的东西.

如何删除 “查看所有网站内容” 链接

我被问这个问题几乎每个礼拜, 通常在安全讨论. 管理员/网站创建者已设置一个站点, 配置的安全, 被安排的 web 部件和自定义快速启动向最终用户提供的选项,所以完美集. 但, 开箱即用, 您不能删除"查看所有网站内容" 链接.

Mark Wagner 提供了答案 在这里 (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). 他广受好评的两个层次是太棒了. 它提供了对这个问题的答案, "如何删除查看所有网站内容" 链接? 然后, 它回答的即时的后续问题: 如何轻松地使所有网站内容都链接站点的站点的基础的视图?

作为奖金: 他的方法适用于 WSS, 不只是苔藓.

</结束>

订阅我的博客!

我自己的 CodePlex 项目: 工作流的 SharePoint 设计器扩展

更新: 在这里看到 (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!310.entry) 在这个项目上最新的.

我创建了一个 CodePlex 项目今天到房子的 SPD 泛型接口代码,在博客上写的 在这里 (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!275.entry).

看一看 在这里 (http://www.codeplex.com/spdwfextensions) 请参阅 CodePlex 项目和踢轮胎.

如果你和我一起工作对此感兴趣, 关闭电子邮件在火 mailto:galvin.paul@gmail.com

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.

快速和简单: 配置藓类搜索特定的文档库

请参阅更新 (我) 下面 (11/24/07) 关于 如何配置 Microsoft Office SharePoint 服务器 2007 索引和搜索的爬网网络文件夹

目标: 我想要执行的搜索限制到特定的文档库. 在此情况下, 文档库包含培训文档.

步骤:

1. 记录的文档库的 URL.

2. 创建一个范围:

转到中央行政管理.

SSP 的访问.

转到"搜索设置".

向下滚动到范围部分中,选择"查看范围".

创建一个新的范围. 给它一个名称和有用的描述.

3. 定义范围的爬网规则:

添加一个规则定义此范围的文档库.

选择"web 地址" "范围规则类型".

请输入您的文件夹的名称 (请参阅 #1 以上).

接受默认值的"包含".

等待更新的范围 (或手动启动).

4. 启用在网站集的范围.

转到网站集要使用此范围.

将您新的作用域添加到适当的显示组或组.

5. 搜索!

在这一点, 你完成. 假设范围是正确定义, 它将提供范围下拉菜单进行简单和高级搜索和使用该范围内搜索时, 你可以只是您预期的结果.

备注:

我写这篇博客是因为我翻的简单范围设置的搜索干使用短语喜欢:

  • 在 MOSS 中配置作用域
  • 配置搜索范围苔藓
  • 在 sharepoint 中的作用域 2007
  • 在 sharepoint 中的作用域
  • 搜索文档库苔藓
  • 作用域底漆苔藓

您可以在文件夹上创建搜索范围, 不只是整个文档库.

可以在多个站点集合之间共享范围 (因此, "共享的服务").

你可以在网站集级别本身创建范围. 不过, 我更喜欢去中央管理,因为我可以从那里开始爬网. 你不能从该网站集启动爬网.

更新 (我) 作为的 11/24/07:

凯尚拼凑一篇精彩博文题为 如何配置 Microsoft Office SharePoint 服务器 2007 索引和搜索的爬网网络文件夹 @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Technorati 标签: , ,