我最近将SharePoint Web服务提交功能添加到自定义(InfoPath)列表表单(而不是xml表单库表单),因此用户可以将项目从当前表单添加到另一个SharePoint列表。效果很好。从XML数据连接模板设置重复表,并将数据提交到Lists.asmx中的UpdateListItems方法。
但是,用户必须将所有字段值输入到提交给Lists.asmx Web服务的重复表中。我想使用来自InfoPath表单其他部分的派生值和值预先填充重复表的某些行。
我尝试过的几种方法都不起作用:
创建规则以在重复表的Field元素中设置值(即:将Field设置为“myvalue”)。这不起作用,因为它为所有行填充Field元素。找不到定位一行的方法(即:将字段设置为“是”,其中Name属性= Field1)。
在Manifest.xsf中添加了规则过滤器,用于设置字段值以尝试定位重复表的特定行。试图用@符号过滤,因为我试图过滤属性(即:Field [@Name =“Field1”])。也试过没有@符号(即:Field [Name =“Field1”])。两者都没有按预期工作。
创建要在submit中发送的字符串字段,并使用concat来汇编UpdateListItems期望的XML。收到SOAP错误消息:
似乎是一件简单的事情,但无法让它发挥作用。我错过了什么吗?首先想到的是代码隐藏,但这是一个列表形式,而不是XML表单库形式(不能在列表表单模板中进行代码隐藏)。
是否有其他人成功自动填充某些数据值并提交给SharePoint Web服务以添加或更新其他SharePoint列表?