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

[经验分享] SharePoint:扩展DVWP

[复制链接]

尚未签到

发表于 2015-9-29 13:17:26 | 显示全部楼层 |阅读模式
  上一次我们讨论了在挂接工作流之前列表表单操作链接的组成形式。在本文中,让我们看一下在创建好工作流后发生了哪些变化。
  继续上一次未完成的操作,创建一个简单的工作流,其中要用到所有的表单字段。(具体做什么操作都无所谓,只要用到所有的表单字段就可以了。因为不论如何,我们都要修改该工作流操作。)
  现在,我们已经创建好一个工作流了,让我们看一看该操作链接HREF中的 JavaScript调用现在变成什么样的了。
  之后



<a href="javascript: {ddwrt:GenFireServerEvent(concat('__workflowStart={{A50B3A56-0C82-43E3-917E-D37E2E036F3B},New,{F6244C84-AAE5-45E0-9C71-60F6AB31F584},ff1_x007b__x0024_Pos_x007d_={ff1',$Pos,'}*ff2_x007b__x0024_Pos_x007d_={ff2',$Pos,'}*ff3_x007b__x0024_Pos_x007d_={ff3',$Pos,'}*ff4_x007b__x0024_Pos_x007d_={ff4',$Pos,'}*ff5_x007b__x0024_Pos_x007d_={ff5',$Pos,'}*ff6_x007b__x0024_Pos_x007d_={ff6',$Pos,'}*ff7_x007b__x0024_Pos_x007d_={ff7',$Pos,'}*};__commit'))}">保存文件</a>

  哇哦!真是多了不少的代码。但还是让我们将其拆分开,看个究竟。
  这里实际上只多了一个concat()函数,其目的只是传递一些变量,以便在运行commit函数的同时触发自定义操作(__workflowStart):
  1、ddwrt:GenFireServerEvent() - 这个在之前的代码中也见过。之前它是接收一个字符串。在这里仍旧是接收一个字符串,只不过这次的字符串变得有点长。
  2、concat() - 连接一大堆由逗号分隔的字符串和/或变量,并输出成一个长字符串。在该函数内,我们可以看到所有的操作都作为连接体的一部分,并且以创建工作流时我们设置的顺序排列:
  I. __workflowStart - workflowStart函数需要4个参数:
  i.该工作流的GUID
  ii.一个字符串:‘New'(有人知道这里有哪些可用的选项吗?)
  iii. 另一个GUID(有人知道它代表了什么吗?)
  iv. 一长串由星号分隔的若干个名值对,代表了该表单的字段及其所包含的值——谢天谢地,这一部分正是我们所关心的。这一长串参数使用如下语法:
  fieldname1=value1*fieldname2=value2*…fieldnameN=valueN*
  II.__commit - 和之前见到的一样,这是一个简单的函数,用于将我们的修改提交回数据库。
  所以,第四个参数是这样的:



ff1_x007b__x0024_Pos_x007d_={ff1',$Pos,'}*ff2_x007b__x0024_Pos_x007d_={ff2',$Pos,'}*ff3_x007b__x0024_Pos_x007d_={ff3',$Pos,'}*ff4_x007b__x0024_Pos_x007d_={ff4',$Pos,'}*ff5_x007b__x0024_Pos_x007d_={ff5',$Pos,'}*ff6_x007b__x0024_Pos_x007d_={ff6',$Pos,'}*ff7_x007b__x0024_Pos_x007d_={ff7',$Pos,'}*

  
或者如下,重新排版,以便更易于阅读:



ff1_x007b__x0024_Pos_x007d_={ff1',$Pos,'}*
ff2_x007b__x0024_Pos_x007d_={ff2',$Pos,'}*
ff3_x007b__x0024_Pos_x007d_={ff3',$Pos,'}*
. . .
ff7_x007b__x0024_Pos_x007d_={ff7',$Pos,'}*

  每个名值对都具有如下规律:
  一个很长的SharePoint生成的字段名,以ff和一个数字(n)开头。数字代表了其在页面中的顺序={ffn_1}
  其中"_1"的部分来源于参数$Pos,该参数在客户端会替换成"_1"。然后当它传递给工作流后,表单字段ffn_1的实际值会被插进来,因为它位于{}内,{}内的内容会被页面上相应字段的实际值所替换。
  换句话说:如果ff1代表了Name栏,且该表单域的值为“John”...当该名值对传递到工作流中时,应该是下面的样子:
  ff1_x007b__x0024_Pos_x007d_=John
  (不用担心l类似x00XX的符号。只是转换后的字符串,同样也是为了方便工作流使用。如果从方便人类阅读的角度来看,转换回来应该为ff1(_$Pos),但这似乎并没有使其更具可读性。)
  设置处理器样式失败???
   DSC0000.png

  你是不是遇到这样的错误信息?
  下一次:在接下来的扩展DVWP系列中,我们将讨论为何出现这样的错误,其中的关键点在哪里,以及如何修复它。
  参考资料
  SharePoint: Extending the DVWP – Part 8: Creating a Form Action Workflow – The After Math

运维网声明 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-120514-1-1.html 上篇帖子: SharePoint:扩展DVWP 下篇帖子: SharePoint:扩展DVWP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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