为之则易 不为则难

如果不能改变环境,那么就去适应环境

导航

SharePoint2013 Online中InfoPath 无法调用WebService

Posted on 2013-07-23 16:48  为之则易  阅读(1007)  评论(4编辑  收藏  举报

传说微软office365中国区服务器已经迁移到国内,试了下速度果然比之前快了很多,不过随后测试了个简单的功能,还是直接被打击了。

准备在online版本中做一个简单的报销流程测试测试,于是先用InfoPath做了一张简单的报销申请单

image

单据做好后,然后像之前玩Infopath一样,建立辅助连接,以便于获取当前用户的一些信息,本例是想获取用户姓名自动填充到“报销人”文本框中。

添加辅助连接

image

连接地址写online的webservice地址,https://xxx.sharepoint.com/_vti_bin/userprofileService.asmx

image

函数这里选择GetUserProfileByName

image

然后表单中对字段域的默认值进行配置,以便获取到该数据集中想要的字段值。

将发布表单到Sharepoint,点击“新建文档”新建,提示“查询数据源时出现错误”,如下图所示:

image

由于是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版本的开发,各种限制(我们称之为坑)还是得提前调研好,不然坑了自己也坑了客户。