上一次我们讨论了在挂接工作流之前列表表单操作链接的组成形式。在本文中,让我们看一下在创建好工作流后发生了哪些变化。

继续上一次未完成的操作,创建一个简单的工作流,其中要用到所有的表单字段。(具体做什么操作都无所谓,只要用到所有的表单字段就可以了。因为不论如何,我们都要修改该工作流操作。)

现在,我们已经创建好一个工作流了,让我们看一看该操作链接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),但这似乎并没有使其更具可读性。)

设置处理器样式失败???


你是不是遇到这样的错误信息?

下一次:在接下来的扩展DVWP系列中,我们将讨论为何出现这样的错误,其中的关键点在哪里,以及如何修复它。

参考资料

SharePoint: Extending the DVWP – Part 8: Creating a Form Action Workflow – The After Math

SharePoint:扩展DVWP - 第8部分:挂接了工作流列表表单操作相关推荐

  1. SharePoint 2013 关于自定义显示列表表单的bug

    1.在SharePoint 2013中,我们隐藏列表Dispform页面的ListFormWebPart部件,转而使用自定义显示列表表单进行展示,因为这样更容易定制我们需要的显示: 2.之后发现文件夹 ...

  2. SharePoint 2013 配置InfoPath 列表表单

    转载来源:http://www.cnblogs.com/jianyus/p/3470113.html SharePoint列表,都是通过表单展示,有时候不太符合要求,这时候,我们可以通过定制表单,来是 ...

  3. SharePoint:扩展DVWP - 第21部分:实现可维护的三级联动下拉框

    上一次,我们通过几个简单的步骤实现了级联下拉框--一个下拉框可以过滤另一个的可选项. 但是,如果我们有三个下拉框需要做级联该怎么做呢?比如,国家-省-市.或者工作地点-组-职位. 接下来的步骤相对于前 ...

  4. SharePoint:扩展DVWP - 第34部分:使用图标形式的表单操作链接

    上一次,我们对我们的DVWP的外观进行了最后的加工,实现了下图中 1-5 的部分.这一次,我们将继续完成剩下的6 和 7 ,来为其添加一个图标. 在本系列中间的部分,Greg Schaefer提了一个 ...

  5. 一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...

    下面练习中,你将添加表单加载规则,将四个文本框域和图片控件与用户配置文件web service连接.当使用用户配置文件web service时,你需要将控件和来自web service合适的域绑定.这 ...

  6. 51单片机对SPI总线上挂接多个25AA040的读写操作+Proteus仿真

    51单片机对SPI总线上挂接多个X5045的读写操作+Proteus仿真 Proteus仿真图 实例代码 //对SPI总线上挂接多个25AA040的读写操作 #include<reg51.h&g ...

  7. 一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则

    下面练习中,你将添加表单加载规则,将四个文本框域和图片控件与用户配置文件web service连接.当使用用户配置文件web service时,你需要将控件和来自web service合适的域绑定.这 ...

  8. 51单片机对I2C总线上挂接多个AT24C02的读写操作+Proteus仿真

    51单片机对I2C总线上挂接多个AT24C02的读写操作+Proteus仿真 Proteus仿真图 实例代码 //对I2C总线上挂接多个AT24C02的读写操作 #include <reg51. ...

  9. SharePoint:扩展DVWP - 第15部分:通过网站栏实现可维护的下拉框

    本文的内容对于管理员来说都是些基础的SharePoint操作 ,目的是为接下来的DVWP扩展作准备.有经验的读者请略过. 为什么用网站栏实现下拉框? 网站栏可以用在多个地方.当使用查阅项类型的网站栏连 ...

最新文章

  1. 开源系统管理资源大合辑
  2. Scala里List(1,2,3)和(1,2,3)的区别
  3. eclipselink_EclipseLink MOXy作为JAXB提供者
  4. java class api 中文乱码_SpringMVC之springmvc原始api,请求中文乱码问题
  5. Windows Vista和局域网聊天的计算机
  6. CVPR2020 Oral|场景去遮挡新方法:港中文首次提出自监督新框架,已开源
  7. 接口类型的数组作为形参
  8. Spark.reducer.maxSizeInFlight 参数
  9. 基于VS快速排序的单元测试
  10. 软件dfmea_fmea软件|失效模式与效应分析(fmea)下载 v03.01.13.0中文版 - 121下载站
  11. (Win7重装)向官方Win7镜像注入驱动程序
  12. c语言斐波那契数列for循环数组,C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列...
  13. android studio systrace,Android Systrace 基础知识 -- Systrace 简介
  14. http://blog.csdn.net/lnb333666/article/details/8546497
  15. bindec() 函数
  16. 英语语法笔记——特殊句型(六)
  17. 如何检测新移动硬盘--HD Tune Pro硬盘工具
  18. 学python要有多少英语词汇量_学习英语到底多少词汇量够用,1年能学习到1000的词汇量吗?...
  19. catia v5r21保姆级下载安装教程
  20. codeblocks改变主题背景颜色

热门文章

  1. 日志分析(shell脚本)
  2. ubuntu文字界面与图形界面切换
  3. 完美的xslt数值函数与字符串函数
  4. autorun.inf删除方法
  5. [Ubuntu Error]鼠标指针闪烁的解决方法
  6. 程序控制流——Python基础语法
  7. Python实现聚类 KMeans算法
  8. 数据分析数据可视化(二)
  9. 华为否认鸿蒙为噱头网易,华为否认鸿蒙系统为噱头 必要可用于手机
  10. excel显著性检验_数据分析系列 10/32 | Excel方差分析之单因素方差分析