SharePoint State Machine Workflow +ASP.NET ASPX Form step by step(1)-创建Workflow Content Type

   2023-02-09 学习力0
核心提示:     在写这一系列文章的时候,先要谢一个人,那就是园子里的笑煞天,做Workflow有一段时间,先前也看了一些workflow的资料,可是SharePint Workflow的资料还是很少。看了这些资料,可还是很晕头晕脑的,真正让我对workflow有个比较清楚的认识的,还是笑

     在写这一系列文章的时候,先要谢一个人,那就是园子里的笑煞天,做Workflow有一段时间,先前也看了一些workflow的资料,可是SharePint Workflow的资料还是很少。看了这些资料,可还是很晕头晕脑的,真正让我对workflow有个比较清楚的认识的,还是笑煞天的那篇很详细的Sequential workflow的文章。

     无论是书上,还是网上,本身SharePoint Workflow就很少。除去使用SPD,绝大多数的是VS+Infopath,而且是Sequential类型的。State Machine+ASPX Form的很少很少。再经过一段时间的学习,现在想将自己学习到的一些经验分享出来。可能会分几篇。希望大家多多指教。

     在这个workflow中,我们假定一个很简单的场景,就是sending mail。但是这个workflow有两个不同的Task,一个Task是为这个Mail指定相应的MailBody,From,To。一个Task给出相应的一些comment。在有两个Task的情况下,我们需要创建两个不同的Content Type。

     1.在VS中建一个Class Library的Project,将其中的C#文件删除,建一个文件夹,在里面建三个XML文件,为了简单,所以这里的Cntent Type都比较简单。这里有个文件是大家很熟悉的Feature.xml,我们将会用一个Feature来安装我们的Content Type。另外的两个文件就是用来定义两个不同的Content Type。

                                                                                                         SharePoint State Machine Workflow +ASP.NET ASPX Form step by step(1)-创建Workflow Content Type

     2.MailBody Content Type

     首先最先要注意的是 ContentType ID。所有的workflow Cotent Type ID都是以0x01080开头,这里面牵涉到Content Type的继承问题,具体请看http://msdn.microsoft.com/en-us/library/ms452896.aspx。你在取名的时候,可以先是以 0x01080开头,然后跟两个00(不要问我为什么,我也很疑惑),再在后面跟一个GUID的字符串。至于ContentType中引用的FieldRfs,你只需要指定ID和Name,这个Name是内部使用的,你要尽可能的防止与原有的字段发生冲突,我们在List中看到的只是Display Name。至于对字段的定义,这里就是直接和Content Type写在一起,你也可以分开写在另外的一个文件里面。对Field的定义,参考http://msdn.microsoft.com/en-us/library/ms437580.aspx。在后面我们会自定义EditTask Form,但是这里还没有讲到,所以相应的一些字段就空着,但是并不影响我们安装使用以下的两个Content Type

19 

 

     3.MailComment ContentType

          


  <ContentType  ID="0x01080100DBDB07313A2549d5ABC363C906A9F72D"
      Name
="MailComment"
      Group
="MyContent"
      Version
="0"
      Hidden
="FALSE" Description="This Content Type is a Mail comment" >
    
<FieldRefs>
      
<FieldRef ID="{EDC78DAD-A984-4a81-BFA1-1047D231C05A}" Name="_MailComment" ShowInEditForm="TRUE" ShowInListSettings="TRUE" ReadOnly="FALSE"/>
      
<FieldRef ID="{8AAA2B01-2F49-4bb6-9A5C-87D992911CE9}" Name="_MailDate" ShowInEditForm="TRUE" ShowInListSettings="TRUE" ReadOnly="FALSE"/>
    
</FieldRefs>
  
</ContentType>
  
<Field ID="{EDC78DAD-A984-4a81-BFA1-1047D231C05A}" Name="_MailComment" Group="MyContent" DisplayName="Mail Comment" Type="Note" DisplaceOnUpgrade="True" Hidden="False" ReadOnly="False">

  
</Field>
  
<Field ID="{8AAA2B01-2F49-4bb6-9A5C-87D992911CE9}" Name="_MailDate" Group="MyContent" DisplayName="Mail Date" Type="DateTime" DisplaceOnUpgrade="True" Hidden="False" ReadOnly="False" />

</Elements>

 

     3.Feature.xml 大家对这个文件已经比较熟悉了,这里就不多做解释了。我前面有几篇也有涉及到Feature,大家要是有兴趣的话,可以去看看。

     


          Title="SendMailCT"
          Description
="My Content Type"
          Version
="12.0.0.0"
          Scope
="Site"
          xmlns
="http://schemas.microsoft.com/sharepoint/">
  
<ElementManifests>
    
<ElementManifest Location="MailBody.xml" />
    
<ElementManifest Location="MailComment.xml" />
  
</ElementManifests>
</Feature>

 

     4.下面是安装好后的一些图片效果。

     SharePoint State Machine Workflow +ASP.NET ASPX Form step by step(1)-创建Workflow Content Type

     可以在Site Content Types里面看到我们新建的两个Content Type

SharePoint State Machine Workflow +ASP.NET ASPX Form step by step(1)-创建Workflow Content Type

     可以在Site Columns里面看到我们新建的四个Content Type

     SharePoint State Machine Workflow +ASP.NET ASPX Form step by step(1)-创建Workflow Content Type

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 使用WebClient自动填写并提交ASP.NET页面表单的源代码
    使用WebClient自动填写并提交ASP.NET页面表单的
    转自:http://www.cnblogs.com/anjou/archive/2007/03/07/667253.html 在.NET中通过程序填写和提交表单还是比较简单。比如,要提交一个如下图所示的登录表单:           填写和提交以上表单的代码如下:       // 要提交表单的URI字符串
    02-09
  • asp.net mvc多条件+分页查询解决方案
    


            
asp.net mvc多条件+分页查询解决方案
    asp.net mvc多条件+分页查询解决方案
    http://www.cnblogs.com/nickppa/p/3232535.html开发环境vs2010css:bootstrapjs:jquery    bootstrap paginator原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了MVC多条件+分页查询因为美工不是很好,所以用的是
    02-09
  • ASP.NET操作Cookies的问题(Bug or Not)
    以下存和取都是在不同的页面中,如果是在同一个页面也没必要用cookies了。 Test1: 给Cookies赋值: const string AAA="aaa"; Response.Cookies[AAA].Value = "111;222;333"; 取值: string value = Request.Cookies[AAA].Value; // value为111 Test2: 给Cooki
    02-09
  • Asp.Net Core 自定义验证属性
      很多时候,在模型上的验证需要自己定义一些特定于我们需求的验证属性。所以这一篇我们就来介绍一下怎么自定义验证属性。  我们来实现一个验证邮箱域名的自定义验证属性,当然,最重要的是需要定义一个继承自ValidationAttribute的类,然后在实现其IsVal
    02-09
  • Asp.Net 之 枚举类型的下拉列表绑定
    有这样一个学科枚举类型:/// 学科 /// /summary public enum Subject {None = 0,[Description("语文")]Chinese = 1,[Description("数学")]Mathematics = 2,[Description("英语")]English = 3,[Description("政治")]Politics = 4,[Description("物理&qu
    02-09
  • [ASP.NET笔记] 1.Web基础知识
         1:http协议:     2:web服务器:     3:静态网页的概念     4:动态网页的概念       http协议:http(hypertext transfer protocol) 即超文本传输协议,这个协议是在internet上进行信息传送的协议任何网页之间要相互沟通,必须要尊循
    02-09
  • ASP.NET邮件发送 .net 发送邮件
      今天做了个ASP.NET做发送邮件功能,发现QQ邮箱好奇怪,当你用QQ邮箱做服务器的时候什么邮件都发送不出去(QQ邮箱除外)。而且爆出这样的错误:"邮箱不可用。 服务器响应为: Error: content rejected.http://mail.qq.com/zh_CN/help/content/rejectedmail.ht
    02-09
  • 由ASP.NET Core根据路径下载文件异常引发的探究
    前言    最近在开发新的项目,使用的是ASP.NET Core6.0版本的框架。由于项目中存在文件下载功能,没有使用类似MinIO或OSS之类的分布式文件系统,而是下载本地文件,也就是根据本地文件路径进行下载。这其中遇到了一个问题,是关于如何提供文件路径的,通
    02-09
  • ASP.NET的运行原理与运行机制 ASP.NET的开发模式包括
    ASP.NET的运行原理与运行机制 ASP.NET的开发模
    在Asp.net4和4.5中,新增了WebPages Framework,编写页面代码使用了新的Razor语法,代码更加的简洁和符合Web标准,编写方式更接近于PHP和以前的Asp,和使用WebForms这种模仿Windows Form编程方式有了很大不同,不再有大量控件和控件生成的大量不够灵活的代码
    02-09
  • ASP.NET 后台接收前台POST过来的json数据方法
     ASP.NET前后台交互之JSON数据 https://www.cnblogs.com/ensleep/p/3319756.html
    02-09
点击排行