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

[经验分享] sharepoint 工作流 infopath任务表单中 重复表数据的读写

[复制链接]

尚未签到

发表于 2019-2-4 14:22:09 | 显示全部楼层 |阅读模式
  用户在设计sharepoint工作流的任务表单时,若只需带出一些简单字段的初始值,通常采用辅助数据源的办法来实现,但是如果想要带出infopath重复表初始值就很困难了,因为辅助数据源不支持复杂的数据结构。
  要解决此问题,只能通过对infopath任务表单添加初始化代码的方法了。
使用此方法,还必须对xml有一定了解,因为你的重复表中的数据就是xml,
思路是
1.仍旧需要定义辅助数据源,但是对重复表单部分,不用对重复表内的每个字段逐一定义对应字段,只用为重复表部分整体上定义一个就可以了。假如你的重复表最外一层的数据源为:data,
你的结构是:
data
datas
name
sex
age
datas
data
在辅助数据源中你可以定义ows_repeat 对应这个data,名字没有限制,而data里面的子字段就不用管了。
2.在你的工作流中产生重复表中需要xml内容,例如:strXMLofRepeat,仍旧通过Task1_Properties.ExtendedProperties[repeat]=strXMLofRepeat; 来赋值。
3.在设计任务表单时,选择工具-〉编程-〉loading事件
public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
if (this.DataSources == null)
{
return;
}

XPathNavigator xmlSource = this.DataSources["ItemMetadata"].CreateNavigator();

XPathNavigator mydata = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:data", NamespaceManager);
mydata.InnerXml = xmlSource.SelectSingleNode("/z:row/@ows_repeat", NamespaceManager).InnerXml;
}
4.任务表单发布时,要特别注意由于添加了代码,产生一个dll文件,这个dll文件也要发布到工作流模版所载的目录下。
这个dll文件的路径你可以通过infopath表单设计模式下工具->表单选项->编程-> Visual Basic 和C#代码项目位置这个地方找到,将它拷贝到你的工作流模版发布的目录中,假设你的工作流名称为mywf, 那么就拷到c:\program files\common files\microsoft shared\web server extensions\12\TEMPLATE\FEATUES\mywf目录中,然后iisreset一下。
如果记不住这个目录,那就等运行中报错吧,抱错时也会提示你这个目录的位置的。:)

正常情况下就可以了。
  通常容易出错的是第二步,也就是你在工作流中要生成这个xml,这是最难的。
infopath对xml要求很严,字段结构不能有一点错误,包括大小写都不能搞错,也不能弄错名字空间的。 要解决这个问题的好办法先作本地测试,就是直接在infopath环境下通过F5测试,而不要在工作流中测试。
  当然测试前要对源代码作一点修改:
你首先可以编写一个你最终想在工作流中产生的Xml字符串,如 string strmyXML = "zhangsanmale18;"
将mydatas.InnerXml = xmlSource.SelectSingleNode("/z:row/@ows_repeat", NamespaceManager).InnerXml;
改成,mydatas.InnerXml = strmyXML;
测试通过了之后再在真正的工作流环境中试验。
  另外,这里简单提一下 innerXml outerXml innerText的区别
以刚才的将xml字符串
zhangsanmale18 符给 任务表单为例:
对于data节点,它的 innerHtml 就是
zhangsanmale18
  它的outerhtml就是
zhangsanmale18
  它的innerText就是
zhangsanmale18
  现在看出区别来了吗?




运维网声明 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-671799-1-1.html 上篇帖子: sharepoint 使用gantt view时报错 下篇帖子: Sharepoint工作流运行中的审批人更换方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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