码迷,mamicode.com
首页 > 其他好文 > 详细

sharepoint 2013中infopath使用GetUserProfileByName一直报错5566解决方案

时间:2016-05-05 12:52:28      阅读:440      评论:0      收藏:0      [点我收藏+]

标签:

最近折磨了很久的sharepoint关于infopath 表单调用数据库中的GetUserProfileByName数据总是报错5566.至少弄了2个月。现在把sharepoint 203的配置方法写一遍出来。分享给大家。

1:安装infopath ,在开始菜单里面找到office 2013 选择 infopath designer 2013.

技术分享

第一步:用SharePoint表单库模板新建一个InfoPath表单

技术分享

第二步:为UserProfileService建立数据连接

在功能区中选择数据连接:

技术分享

在数据连接对话框中点击添加按钮:

技术分享

在数据连接向导第一页选择新建连接->接收数据:

技术分享

在数据连接向导第二页选择SOAP Web服务:

技术分享

在数据连接向导第三页输入UserProfileService的网址:http://ServerName/_vti_bin/UserProfileService.asmx

技术分享

在数据连接向导第四页,选中GetUserProfileByName:

技术分享

在数据连接向导第五页,不用设置,直接点下一步:

技术分享

在数据连接向导第六页,保持复选框为非选择状态:

技术分享

在数据连接向导最后一页,保持默认选项,完成向导:

技术分享

添加完数据连接后,数据连接对话框变成如下,关闭此对话框:

技术分享

第三步:建立域用于存放当前用户的LoginName

在域面板中:

技术分享

添加一字符串域CreaterLoginName:

技术分享

然后再打开域属性:

技术分享

设置默认值,点默认值后面的按钮fx:

技术分享

在插入公式中,点击插入域或组。在域下拉框中选择GetUserProfileByName,然后选中myFields\dataFields\tns:GetUserProfilePyNameResponse\GetUserProfileByNameResult\PropertyData\Values\ValueData\Value。如下图所示:

技术分享

再点击筛选数据:

技术分享

点击添加按钮:

技术分享

在第一个下拉框中选择”选择域或组“,在域下拉框中选择GetUserProfileByName,然后选中myFields\dataFields\tns:GetUserProfilePyNameResponse\GetUserProfileByNameResult\PropertyData\Name。如下图所示:

技术分享

在第二个下拉框中选择”等于“,在第三个下拉框中,选择”键入文本…“,输入”AccountName“:

技术分享

点击几次确定,关闭对话框,回到”域或组属性对话框“中,去掉”重新计算公式时刷新值“前面的钩:

技术分享

第四步:使用LoginName

就看您需要怎么样用LoginName了,我这里简单将CreaterLoginName显示在表单中,看看预览效果:

技术分享

写在最后:

如果需要获取其他用户的Profile,则只要在获取数据之前给GetUserProfileByName中设置AccountName的值,再获取数据,就能够获取到其他用户的Profile:

技术分享

如果需要获取其他Profile的值,只需要将AccountName改成其他属性值。可用的属性值有:

UserProfile_GUID AccountName FirstName LastName PreferredName WorkPhone Office Department Title Manager AboutMe PersonalSpace PictureURL UserName QuickLinks WebSite PublicSiteRedirect SPS-Dotted-line SPS-Peers SPS-Responsibility SPS-Skills SPS-PastProjects SPS-Interests SPS-School SPS-SipAddress SPS-Birthday SPS-MySiteUpgrade SPS-DontSuggestList SPS-ProxyAddresses SPS-HireDate SPS-LastColleagueAdded SPS-OWAUrl SPS-ResourceAccountName SPS-MasterAccountName Assistant WorkEmail CellPhone Fax HomePhone

二:虽然上面已经设好了值,但是在sharepoint里面发布之后就会报错,报什么错呢:5566

1:点发布

技术分享

2:选择服务器

技术分享

3:输入你要发布的服务器地址:

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

看看,可爱的5566出来了。

技术分享

怎么解决呢!

一: Sharepoint服务器上面找到sharepoint2013 管理中心

技术分享

2找到一般应用程序设置

技术分享

配置:infopath forms services

技术分享

3:把里面所有地方都打勾,然后确定。数字部分一个都不要动,不要修改。都打勾就行

技术分享

然后配置 Infopath forms services web 代理

技术分享

和上面一样,全部打勾,按确定

技术分享

配置好了然后再配置安全数据连接。

打开管理服务应用程序

技术分享

查看此服务是否有启动,没有启动还要启动此服务。启动了就直接鼠标点击 secure store service

技术分享

进去以后新建一个目标程序ID

技术分享

点击新建好,输入一个ID名字。和显示名称。还有邮箱点下一步。

技术分享

然后直接点下一步。不需要隐藏用户名,

技术分享

然后输入权限。我给了administrator 和另一个场和sql的管理员权限。成员就是给您需要谁访问。我给了每个人。

技术分享

然后点完成。

完成后一定要注意设置凭证。这里非常重要。最好具有管理员权限的账号。

技术分享

我给的权限是administrator。我使用过其他全新。会导致访问web出错。也是5566所以我后面改成场管理员了。

技术分享

设置好这些参数后,别急。还有。

回到infopath 表单这里来,打开sharepoint 首页,找到刚刚存放表单库的子网站,然后在此网站里面建立一个新的名字为test5的数据连接库。

技术分享

3创建好了数据连接库之后,找到刚刚存储的infopath表单。鼠标右键点设计,打开表单。点数据连接

技术分享

输入一个地址,这个地址就是刚刚新建的数据连接库地址。取个名字,随便取。自己知道是

干嘛的就可以了。

技术分享

转换完了按确定就好了。然后用路径方式打开刚刚存放文件的数据连接库。怎么打开呢。找到刚刚新建的test5数据连接库,然后新建项目。从资源管理器里面打开。

技术分享

看看,这就是路径。直接复制windows 路径里面就可以打开了。

技术分享

然后里面有刚刚做的ABC.udcx文件。用记事本或者Notepad ++软件打开记事本打开有时候更改保存后会被注释掉。让换修改这几处。

技术分享

那个AppId就是我们在服务器场新建立的安全数据库的ID。AppId=‘InfoPathWebService‘ CredentialType=‘NTLM 改好之后保存就ok了。希望能帮到大家。处理好这个问题。

不知道为什么图片上传就模糊了。需要原文版的可以留下邮箱。我可以发邮件给你们。也可以给我写邮件

tao.chen@tyintech.com

sharepoint 2013中infopath使用GetUserProfileByName一直报错5566解决方案

标签:

原文地址:http://www.cnblogs.com/itom/p/5461203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!