每月档案: 10 月 2007

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 标签: , ,

没有为你的汤! 思科 NLB 汤纳粹产品吗??

今天, 我试图访问通过 windows 资源管理器中的文档库. 此文档库生活里面包括两个 WFE 负载平衡通过某种思科 NLB 解决方案系统. (如果网络向导告诉我它是什么, 我将更新这个帖子).

Windows 资源管理器无法连接. 做了一些研究,并最终, 网络向导说, WebDAV 被禁用的 / 不受支持 / NLB 尊严.

所以, 假设网络向导不刚刚告诉我的"散步长下短桥"相当于网络向导, 我很纳闷 — 没有 NLB, 由性质, 禁用 WebDAV? 到 SharePoint,我们失去我们 windows 文件资源管理器界面? 是思科 汤纳粹?

Web 应用程序的策略, 安全站点和安全修整 — 知道您的配置

(更新 11/29 解释如何访问 web 应用程序策略设置通过用户界面)

我有一个的那些"为什么苔藓这样做对我来说????" 今天的时刻. 在结束, 它是我的错.

我们有企业 MOSS 项目继续下去,我们想要确保安全"的地方持有人" 所以,没有用户可以访问它,或者看看它的网站. 那很容易:

  1. 转到此网站.
  2. 中断安全继承.
  3. 从网站的权限删除每个用户/组.

上述应留下只是网站集管理员权限的用户看到网站.

如果其他人登录, 他们应该不再看到该网站,它应安全修整从所有一般的地方.

但 … 它不是. 在同一时间, 突然意识到,我"乔用户" 没有上一页不受限制的读访问权限的标准用户测试帐户具有"站点的操作" 无论去哪里他都选择. 我双重检查一事,双重检查别的东西. 拿起电话打电话给一位同事, 但是把它放下,检查别的东西. 我去散步,然后一切再试遍. 我打电话给一位同事,留个口信. 然后, 最后, 我觉得在这 伊森的博客, 他开放图使它很简单:

苔藓 2007 一项新功能被称为 Web 应用程序策略. 这些都是绑定到 Web 应用程序的安全权限. 这些安全设置重写任何设置在网站集或站点的安全设置 (网站) 该用户的级别.

Web 应用的政策表明,"NT Authorityauthenticated 用户快速访问" 曾被授予完全读取. 从名单上删除它们,一切终于开始工作,按预期. 我相信他们由人造成错误的印象,那是最好的方法来读取访问权限授予在企业中的每个人都添加放在第一位. 它, 但, 对应变报价, "这并不意味着你认为它意味着什么。"

这种方式访问 web 应用程序策略:

  1. 转到中央管理
  2. 选择应用程序管理
  3. 选择"Web 应用程序的策略"
  4. 在屏幕上, 确保选择正确的 web 应用程序. 对我来说, 其默认值为中央管理这可能不是您想的要的 web 应用程序.

当时这个问题, 以下短语中搜索的结果,并得到了令人惊讶没有直接帮助在这个问题上:

对所有用户可见的站点操作

对所有用户可见的站点操作

网站操作不是安全修整

安全的藓类植物的站点

moss 安全简介

Technorati 标签:

快速和简单: 使用固定的核心搜索结果中的关键字查询

快速和简单的说明:

编辑页面,并添加搜索核心成果 web 部件.

编辑该 web 部件并展开"固定关键字查询".

添加固定的关键字查询 (例如:. ContentType:"培训发票" TrainingInvoiceNumber:1111)

展开结果查询选项和更改"跨 Web 部件查询 ID" 为非"用户查询的值" (例如:. "查询 2").

备注:

使用核心搜索结果以这种方式让我创建一个页面,显示从另一个网站集的信息. 客户端有两个主要网站集合: 各部门和产品.

产品网站集合中包含, 很自然地, 产品信息. 网站集合中的每个产品总量的来自多个源的数据.

一个部门, 代码和测试, 在这种源. 当用户访问产品 XYZ, 他们应该直接在 XYZ 主要页面上看到代码和测试数据. 自编码和测试位于另一个站点集合中, 它是有点尴尬. 我们决定使用核心搜索结果 web 部件,因为搜索跨越网站集. 代码和测试管理产品数据通过受到特定内容类型的自定义列表. 首先使用自定义列表中的内容类型,然后缩小到单个行搜索的产品编号的 Aa 关键字查询.

上述关键字查询是和. 它返回文档的内容类型"培训发票" 和其中的发票编号等于"1111".

从这种方法的好处: 我们可以编辑 XSL,从核心搜索结果 web 部件和生成任何我们想要的格式.

在这里看到 (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) 关于这一主题的另一个博客讨论.

</结束>订阅我的博客.

告诉我有关你的博客!

如果你保持至少微连接到 SharePoint 的博客, 请让我知道在评论. 我想加上你的我 博客列表.

如果你保持一个博客,没有连接到 SharePoint 但想让我将它添加到反正, 让我知道. 我将可能会创建一个单独的博客列表.

请给:

  • 你的博客网址 (很明显)
  • 你的博客的简短描述.

我想要保留链接到"活动" 博客, 其中我大致定义作为一个员额及每周最少三个月大. 如果你不能满足这一要求"" 无论如何将您的姓名添加到评论. 它具有 * 我 * 列出所以我可以打破我自己的规则,如果我想.

谢谢!

员工培训计划和材料模板 — 在模板中的减量 bug

客户端发现一个 bug 今天与上述模板.

课程经理创建课程. 当创建课程, 经理指定最大可用座位数.

该模板提供自助服务报名. 我注册和工作流附加到注册列表递减"可用座位" 该课程与关联.

个人也可能注销从一门课程. Bug 就在这里. 从课程注销并不增加可用座位计数器. 结果, 座位是不准确的. 这个 bug 雪上加霜的事实,当可用座位递减为零, 允许没有更多的自助服务注册.

幸运的是, 微软为这一进程提供工作流. 甚至更好, 它是通过 SharePoint 设计器创建的简单直接的工作流.

这些高层次的步骤来修复它:

  1. SDP 点燃.
  2. 基于关闭培训模板的网站的访问.
  3. 访问"与会者注销" 工作流.
  4. 插入这些步骤 (我要求他们的前两个步骤):
    1. 计算 课程:填充的席位 减号 1 (输出到 变量:除垢)
    2. (然后) 更新项目中 课程

单击完成您就完成.

屏幕截图:


SharePoint 设计器:

图像

完成工作流:

图像

计算深入:

图像

在课程中更新项目:

图像

经常给好消息; 早给坏消息

我已经很多年了现在有一名顾问,作为任何有经验的顾问知道, 良好的沟通是一个项目的成功交付的关键支柱之一. 它是如此的明显, 它是真的几乎无聊谈谈. 这不是一般的通信篇. 相反, 我正在写关于通信的黑暗一面 — 传达坏消息.

不用说好消息给客户端并完成所有的时间, 尽可能多. 谁不想给好消息? 谁不喜欢听到的好消息?

在另一面, 坏消息一点都不好玩. 总是纠结过这. 在我的职业生涯的早期日子, 我就知道有人出岔子与一个项目,而不是告诉客户端, 我会工作更长的时间来试图解决这个问题. 我会吩咐我的团队努力工作. 它是一种足够自然冲动想超人类的努力可以保存一天. 有时这作品, 有时它并不. 即使它"工作" 它往往是喜忧参半. 是的可交付结果真的到规范时关键部分质量已在几个 60 自 80 小时周?

处理坏消息的最佳方式是什么? 答案是: 早告诉. 不要等到一周之前将消耗项目预算. 如果你知道六个星期了,只是没有足够的时间来提供一些承诺功能, 就在那时告诉客户端. 客户端可能会生气 (可能会), 可能有罪名和指控,伤害感情. 但, 当情绪冷静下来, 在该项目上那里剩仍然六个星期. 六个星期是时间的一块很好. 还有时间来调整计划, 更改日程安排, 拿到球滚动预算扩展 (祝你好运!) 和只是一般正视与在地面上的事实"" 和制定新的计划,仍会导致一个成功的项目.

典型的例子: 我正在研究的特点是一个项目:

  • T&E 预算与上限"不超过" 美元数额.
  • "最佳将作出努力," 保证提供 X, Y 和 Z 的项目的结束.
  • 缺乏承诺的关键资源,在客户端上. 这些资源不被故意隐瞒, 也没有任何"坏" 原因, 但他们被扣留.
  • 作为该项目曙光实现传递的中途点,我们不会能提供"Z" (主要是因为所承诺的资源不是实际可用).
  • 定期状态报告和"就学" 支持我们的文档 (咨询团队) 向上.
  • 与来自咨询组织的成员紧密编织实施团队 (我的公司) 和客户端.
  • 遥远的管理团队, 隐喻和物理意义上说. 管理团队是侧重于另一个大型企业的项目以及由于空间的限制, 实施团队被安置在一所独立建筑在校园, 下一个小山和相对较远的方式从"文明".

与大约六个星期离开项目预算, 我们 (执行团队) 知道我们是麻烦. 合同说,我们需要提供"Z". 即使项目是时间 & 材料,即使我们只承诺"尽最大努力" 交付 Z,甚至我们虽然缺少交付大理由 … 底线是,它并不看起来很好 — 我们不会提供 Z 形状中质量的会让人感到骄傲.

认识到这一点, 我们去管理,并告诉他们,项目预算由某一特定日期会被消耗掉,而我们则在 Z 的麻烦.

迷你风暴爆发在接下来的几天里.

一天 1: 管理团队中及其工作人员的一次特别会议呼叫 (我们, 顾问公司未受邀). 打印合同并发放到每个人都和-逐行审查接着而来. 管理人员成员放在防守上. 我不认为这句话 "斯德哥尔摩综合征" 是 * 实际上 * 使用, 但是你图片. 我们是一个紧密的团体, 毕竟, 和工作人员一直与我们顾问每天进进出出的几个月现在.

一天 2: 管理调用另一工作人员会议. 他们感觉好一点. 他们想要的选项和想法向前. 他们意识到,仍然是当前的项目预算中剩余的六个星期, 这是仍然体面一点时间. 行动项目之一: 附表充分执行团队会议 (包括顾问).

一天 5: 完整团队开会, 建设性的会议随后和一个新的可行计划投入的地方. 甚至更好, 我们已经开始讨论第二阶段和客户端邀请我们准备阶段立即建议.

如果我们等到依然是只是三个星期, 甚至更糟, 一周或两周, 本来多不同. 而不是一次建设性的会议,重新调整该项目, 我们将会被拉出状态报告, 解析合同和复习旧的邮件来证明这或那的决定. 我们会有"赢了" 但它真的"赢了" 在这种情况下?

所以, 如果你要让坏消息, 早给它. 给出了迟到的坏消息并不只是坏, 它很可怕.