如果使用Sharepoint Designer 2007在Sharepoint列表中创建定制的工作流,会发现它是一个强大的工具。使用内嵌的工作流设计器,不写一行代码就可以创建一个还可以的工作流。使用这个工具可以简单的就像在Outlook中创建一个规则一样创建一个工作流。

在Sharepoint Designer 2007中有很多自带的工作流的动作,可以创建、修改列表,发送邮件,创建栏等等。但是如果想做其它的一些操作,怎么办呢? 比如和后台通讯,或者是执行一些高度定制的操作,怎么办呢?

那么你可以扩展Sharepoint Designer 2007, 你可以在设计器中直接引用你定制的动作。开发人员可以关注于建立一个工作流动作的库,业务分析员或管理员可以专注于在更高的层次上来使用它完成实际的工作。

WSS.ACTIONS
完成这个工作主要依靠Sharepoint Server中的一个文件WSS.ACTIONS,这个文件在目录12TEMPLATE33Workflow(中文是2052) 下。当在Sharepoint Designer中打开或者创建一个工作流的时候,都会首先打开并读取这个文件中的配置信息。这个文件声明了一些可以使用的工作流,以及展现规则,条件,特殊动作等详细信息。通过修改这个文件,可以在Sharepoint Designer中展现不同的工作流、动作。

在Sharepoint Designer中加入一个简单的动作的步骤如下:
1、 创建一个定制的动作
2、 签名、把这个dll加载到GAC中
3、 配置Sharepoint使他识别这个定制的动作
4、 建立一个.ACTIONS文件给Sharepoint Designer使用

创建一个定制的动作:
这个例子就是演示在系统日志中写入一条信息

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Diagnostics;
using System.Drawing;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;


namespace MyCustomActivity
{
  public partial class EventLogger: Activity
  {
    public EventLogger()
    {
      InitializeComponent();
    }

    public static DependencyProperty MessageProperty
      = System.Workflow.ComponentModel.DependencyProperty.Register(
      "Message", typeof(string), typeof(EventLogger));
    [Category("MyCustomActivity"), Browsable(true)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
    public string Message
    {
      get
      {
        return ((string)(base.GetValue(EventLogger.MessageProperty)));
      }
      set
      {
        base.SetValue(EventLogger.MessageProperty, value);
      }
    }

    protected override ActivityExecutionStatus
      Execute(ActivityExecutionContext executionContext)
    {
      using (EventLog log = new EventLog("MyCustomActivity"))
      {
        try
        {
          log.Source = "EventLogger Activity";
          log.WriteEntry(this.Message, EventLogEntryType.Information);
        }
        catch
        {
        }
      }
      return ActivityExecutionStatus.Closed;
    }
  }
}

这个例子中的Message我们可以在Sharepoint中给它赋值

注册这个动作
首先给这个库加入签名(在解决方案的工程上右键-)属性-〉签名),在把它复制到GAC中(类似于配置一个WebParts)
在Sharepoint网站的Web.config中加入如下节点:
<authorizedType Assembly="JohnHolliday.Workflow.EventLoggerActivity, Version=1.0.0.0,
      Culture=neutral, PublicKeyToken=0b97b340d4a71524"
      Namespace="MyCustomActivity" TypeName="*" Authorized="True" />

创建.ACTIONS文件
最后的步骤就是创建一个.ACTIONS文件。这是一个XML文件,你可以使用VS2005或其它XML编辑器。
以下是一个.ACTIONS文件的示例
<?xml version="1.0" encoding="utf-8" ?>
<WorkflowInfo>
<Actions Sequential="then" Parallel="and">
   <Action Name="Write Message To Event Log"
      ClassName="JohnHolliday.Workflow.EventLogger"
 Assembly="JohnHolliday.Workflow.EventLoggerActivity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0b97b340d4a71524"
      AppliesTo="all" Category="MyCustomActivities">
   <RuleDesigner Sentence="Write '%1' to the event log">
      <FieldBind Field="Message" DesignerType="TextArea" Id="1"/>
   </RuleDesigner>
   <Parameters>
      <Parameter Name="Message" Type="System.String, mscorlib" Direction="In"/>
   </Parameters>
</Action>
</Actions>
</WorkflowInfo>
(每一个节点的意思我就不翻译了,可以去查看原文,其实很简单,猜一下应该就知道了)
然后把这个文件复制到服务器(可以直接在WSS.ACTIONS中加入),再打开Sharepoint Designer的工作流设计窗口,就可以如下看到这个动作了:

[an error occurred while processing this directive]

转载于:https://www.cnblogs.com/jiania1224/archive/2008/06/06/1214943.html

在Sharepoint Designer 2007 中加入定制的工作流动作相关推荐

  1. Office SharePoint Server 2007 中的 Workflow

    由于Office SharePoint Server 2007中使用了WinWF来作为工作流引擎,所以Office SharePoint Server 2007具备了非常强大的工作流功能.作为技术人员 ...

  2. Microsoft Office SharePoint Designer 2007 (FrontPage) 2007 介绍

    原名为FrontPage Office SharePoint Designer 2007 提供的工具可使业务流程实现自动化.在 Microsoft SharePoint 平台上构建有效的应用程序,以及 ...

  3. SharePoint Designer 2007发布WorkFlow的小bug

    今天,在用SharePoint Designer 2007里做工作流遇到了一个问题,一直找不到原因,具体情况就是发布WorkFlow的时候,会报一个错误, 这就导致发布的这个WorkFlow里面不能生 ...

  4. Professional Microsoft Office SharePoint Designer 2007

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任. http://blog.csdn.net/topmvp - topmvp   Chann ...

  5. SharePoint site down when I used sharepoint designer 2007

    一直运行得很好,我下了SharePoint Designer2007来修改一些页面文件后,整个网站挂掉了,报错: Description: An error occurred during the p ...

  6. 如何结合SharePoint Designer 2010 与Visio 2010 创建工作流?

    本文引自于:http://social.technet.microsoft.com/Forums/zh-CN/configurationdeployment/thread/6cad9b95-c74e- ...

  7. SharePoint designer 2013 中新的workflow action(操作)

    在SharePoint designer 2013 新增了很多强大的action(操作): Assign a Task 给一个组或者一个用户分配一个任务,只产生一个任务,如果是分配给一个组,只要一个人 ...

  8. Sharepoint Designer 2007 Workflow

    参考 http://office.microsoft.com/en-us/sharepoint-designer-help/collect-data-from-a-user-in-a-workflow ...

  9. SharePoint Designer 2007 IS NOW FREE

    download from http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=baa3ad86-b ...

最新文章

  1. WWISE 交互式音频库
  2. 图像处理--线line 提取
  3. 不同类型社交应用发展分析
  4. 如何编写 Cloud9 JavaScript IDE 的功能扩展
  5. Android之如何成为Android高手
  6. C++细节系列(零):零散记录
  7. python 遍历矩阵_Python3算法之十:矩阵旋转
  8. Matlab 实现串口助手
  9. 大学十年(一个程序员的路程)(林锐博士)《1----9》【林锐的大学10年】
  10. vue在按钮上绑定enter键
  11. poj 1064 java_poj 1064(二分答案)
  12. miniSD卡分区后的再次完成格式化
  13. 人类dna信息量_古人类DNA揭人类演化史 白肤碧眼1万年前才出现
  14. python普遍工资-python平均工资
  15. VS2010 学习C++动态链接库的创建与使用(带实例代码)
  16. 批量修改AD账号的UPN后缀(同适用于解决外网自动配置Exchange邮箱)
  17. ubuntu配置DNS代理
  18. 2021年中国研究生数学建模竞赛C题——帕金森病的脑深部电刺激治疗建模研究
  19. 音频频率和体验知识汇总-【音频质量专题】
  20. WebRTC音频处理流程概述

热门文章

  1. open() api
  2. 一个箱子的梦想_我的世界全自动甘蔗收割机,不用动手,轻松收获一箱子甘蔗...
  3. 腾跃计算机二级vfp培训,计算机二级:在VFP中实现进度条
  4. element ui 菜单右侧展开_Elementui Vue 菜单固定展开的问题
  5. mysql 季度最后一天,MYSQL中取目前年份的第一天和当前周,月,季度的第一天/最后一天...
  6. 加载项找不到java,未显示自定义Outlook加载项
  7. Android之哭笑不得的BUG--xml设置的padding不起作用,幕后黑手竟然是?
  8. Java @override报错的解决方法
  9. 阿里巴巴十周年庆(预告)
  10. 给Nodejs回调加超时限制