SharePoint2013 Online中InfoPath 无法调用WebService
Posted on 2013-07-23 16:48 为之则易 阅读(1011) 评论(4) 编辑 收藏 举报传说微软office365中国区服务器已经迁移到国内,试了下速度果然比之前快了很多,不过随后测试了个简单的功能,还是直接被打击了。
准备在online版本中做一个简单的报销流程测试测试,于是先用InfoPath做了一张简单的报销申请单
单据做好后,然后像之前玩Infopath一样,建立辅助连接,以便于获取当前用户的一些信息,本例是想获取用户姓名自动填充到“报销人”文本框中。
添加辅助连接
连接地址写online的webservice地址,https://xxx.sharepoint.com/_vti_bin/userprofileService.asmx
函数这里选择GetUserProfileByName
然后表单中对字段域的默认值进行配置,以便获取到该数据集中想要的字段值。
将发布表单到Sharepoint,点击“新建文档”新建,提示“查询数据源时出现错误”,如下图所示:
由于是online版本,也无法去查看系统日志,所以就悲剧了,最后找到一些资料,说online版本默认启用了“环回保护”,所以无法在页面加载时再去回调webservice获取数据,原文如下:
由于在 SharePoint Online 环境中启用了环回的保护,就会出现此问题。InfoPath 表单,以便能够连接到 SharePoint Online 的 web 服务,则必须禁用环回的保护。
对进行调用时所在的服务器从 InfoPath 窗体中,任何时候请求循环回。此操作仅在已禁用环回保护时。出于安全原因,在 SharePoint Online 始终启用环回保护。这是在 Office 365 SharePoint Online 的环境中,InfoPath 表单的已知的限制,并且没有解决此问题的方法。
原文链接:http://support.microsoft.com/kb/2674193/zh-cn
注意最后一句话,sharepoint online的环境中,并没有解决此问题的方法,国外的论坛里关于这个问题的帖子都是一大堆的very disapointing...
结论是:做online版本的开发,各种限制(我们称之为坑)还是得提前调研好,不然坑了自己也坑了客户。