设为首页 收藏本站
查看: 925|回复: 0

[经验分享] 自定义一个SharePoint Designer Workflow 所用的Activity

[复制链接]

尚未签到

发表于 2015-9-28 08:16:32 | 显示全部楼层 |阅读模式
  如果你要做的workflow不是那么的通用的,也不是那么的复杂,那么SharePoint Designer是你的一个非常好的选择。通过它,你能够不用写一行代码就可以做出一些像模像样的workflow。Designer里面内置一些Activaty,但是这些在有的时候并不能完全满足你的要求,这个时候,也许你想自己写一个特殊的Activaty来满足自己的需求。在我的这个Activity中,我实现的功能是从一个list中得到最大的ID,然后返回。
  1.我用的是VS2008.File->New->Project->C#->workflow->Workflow Activity Library
  2.强签名,因为这个dll要放到GAC中。在Solution Explorer中右键点击Project->Properties->Signing->New->输入一个name,不要勾选复选框。
  3.对workflow中需要用到的变量进行定义,这里只是输出一个int类型的变量。
  

DSC0000.gif DSC0001.gif Code
public static DependencyProperty IDNumberProperty = DependencyProperty.Register("IDNumber",typeof(int),typeof(GetID));


        [Category("Customer"),Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public int IDNumber
        {
            get { return ((int)base.GetValue(GetID.IDNumberProperty)); }
            set { base.SetValue(GetID.IDNumberProperty, value); }
        }  4. 对于一个Activaty,真正做事情的是下面这个函数,你只需要重写这个函数就可以。对于返回值,ActivityExecutionStatus.Closed是正常情况下的一个返回值,其它的情况,请查看MSDN。
  

Code
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
           
            //Do Everything you like.
            return ActivityExecutionStatus.Closed;
        }  
  5.Build这个Project。可以将dll放置到GAC下。
  6.在你想使用这个Activity的web application下的web.config文件的<authorizedTypes>中加入下面一行。你可以用Reflector得到相应的信息。
  

Code
<authorizedType Assembly="**, Version=1.0.0.0, Culture=neutral, PublicKeyToken=<Insert Your PublicKeyToken Here> " Namespace="**" TypeName="*" Authorized="True" />   
  7.到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\1033\Workflow 打开wss.actions文件,在<actions></actions>中加入以下
  

Code
<Action Name="Get the ID number form the Task list"
      ClassName="**"
      Assembly="**"
      Category="Customer"
      AppliesTo="all">
  <RuleDesigner Sentence="Set the ID number to %1">//%1 就像printf中的%s类似,只不过%1代表第一个参数,下一行Id=1的参数就是和%1相对应
    <FieldBind Field="IDNumber" Text="The number of ID" DesignerType="ParameterNames" Id="1"/>
  </RuleDesigner>
  <Parameters>
    <Parameter Name="IDNumber" Type="System.Int32,mscorlib" Direction="Out"/>
  </Parameters>
</Action>  
  好了,你可以在SharePoint Designer中使用这个Activity了
DSC0002.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119683-1-1.html 上篇帖子: SharePoint 2013 新功能探索 之 标注控件 下篇帖子: Sharepoint学习笔记—Ribbon系列-- Reference : Sharepoint 2010 Ribbon Locations
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表