使用自定义工作流方法
1.打开VS 创建项目中选择 workflow->工作流活动库
2.从工具箱中拖入一个Code于页面上 双击该Action 进入到代码视图,代码如下:
namespace WorkflowDemo
{
public partial class WriteFile: SequenceActivity
{
private string _Text = String.Empty;
public string Text
{
get { return _Text; }
set { _Text = value; }
}
public WriteFile()
{
InitializeComponent();
}
private void WriteFileAction_ExecuteCode(object sender, EventArgs e)
{
StreamWriter sw = new StreamWriter("c://event.txt");
sw.WriteLine(Text+DateTime.Now.ToString());
sw.Close();
}
}
}
3.对工程进行强签名
4.编译项目 将DLL复制到Sharepoint网站上 如此路径下:C:/Inetpub/wwwroot/wss/VirtualDirectories/9001/_app_bin
5.修改该网站的web.config
找到<System.Workflow.ComponentModel.WorkflowCompiler>节点在下面添加如下代码
<authorizedType Assembly="WorkflowDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c06b71c2f4d0996a" Namespace="WorkflowDemo" TypeName="*" Authorized="True" />
6.在此路径下找到 C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/2052/Workflow WSS.ACTIONS这个文件
在最后一个Action下再加入一个Action 如下所示:
Name代表Action的名字 Category代表类别名字 这两个名字是任意地
<Action Name="Write a File" ClassName="WorkflowDemo.WriteFile" Assembly="WorkflowDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c06b71c2f4d0996a" Category="WorkflowDemo" AppliesTo="all"> %1代表Text
<RuleDesigner Sentence="Write %1 to the file">
<FieldBind Field="Text" Text="this text" DesignerType="TextArea" Id="1"/>
</RuleDesigner>
<Parameters>
<Parameter Name="Text" Type="System.String, mscorlib" Direction="In" />
</Parameters>
</Action>
</Actions>
</WorkflowInfo>
7.重启IIS 运行iisreset
8.在Sharepoint Design中打开网站 新建工作流 下拉列表中选择文档 下一步 操作中选择"其它操作" 类别选择上面文件中定义的Category 操作选择上面文件中定义的Action Name的名字 完成
即可 若需重新编辑该工作流 只需找到XOML文件双击即可编辑
9.启动工作流
在文档中心的文档列表下上载一个文档, 选择文档下的工作流 点击Write a File 启动工作流即可在文件中加入信息