一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则

        下面练习中,你将添加表单加载规则,将四个文本框域和图片控件与用户配置文件web service连接。当使用用户配置文件web service时,你需要将控件和来自web service合适的域绑定。这个过程需要用户配置文件架构的导航和筛选,来抽取合适的数据。你将在下个练习完成那些步骤。

        查询用户配置文件web service时,它返回表单第二个数据源中重复PropertyData节点中的用户配置文件信息。名称域保存属性名。对应值包含在值域中,ValueData节点内。这项技术现在可能令人困惑且抽象,但你在练习中添加几次连接后就变得明朗。必要地,你将传递一个筛选参数告诉web service你想要那个用户配置文件属性----例如“Work Phone”。每个你想用配置文集属性填充的空间都需要这样连接到web service;典型地,规则是完成此任务的最高效的方法。

        准备:在InfoPath Designer,打开Event Registration表单。也可以打开练习文件中Event Registration Post Exercise 1.xsn。本练习假设你可以访问带用户配置文件的SharePoint服务器。

1.      在功能区“数据”选项卡,点击“表单加载”按钮。

2.      创建新的操作规则Populate User Information。

        不需要任何条件,因为你想让表单每次加载都运行此规则。

3.      在“运行这些操作”点击“添加按钮”,选择“查询数据”。这将查询GetUserProfileByName第二数据连接,这样数据在表单中才可用。


4.      选择“GetUserProfileByName”数据连接,点击“确定”。


5.      下面要添加五个“设置域值”操作,分别为你五个从用户配置文件web service抽取的用户数据域。

        每个步骤操作都将要求你连接来自web service的XML节点和相应控件。添加一个“设置域值”步骤,然后从主数据源选择Attendee域作为你要使用的。


6.      添加“从web service到规则详细信息的域值”正确进入点。点击公式按钮,选择“插入域或组”。

7.      改变下拉框为“GetUserProfileByName(辅助)”数据源。

8.      在dataFields文件夹,展开树内所有直到你看到Value域,选择它,但不要点“确定”。

        为获得与Attendee匹配的指定数据域,Value域要求你传递一个筛选数据。


9.      点击“筛选数据”按钮,点击“添加”。在第一个下拉,点击“选择域或组”。Name域是我们为所有用户配置文件属性筛选的。选择PropertyData文件夹中Name域,点击“确定”。


10.  第二个为“等于”,第三个选择“键入文本”。

        这个域中你将输入想从用户配置文件抽取的指定数据属性。Attendee文本框最适合的是PreferredName,因为它基本上是通用的“first name last name”格式。因此,输入PreferredName,点击Tab键。

        小贴士:InfoPath自动给你输入的文本加双引号,所以不用自己输入。


11.  多次点击“确定”回到设计界面。

        如果你现在预览表单,你应该看到Attendee域被填入当前登录的用户账户。记住,你需要是在刻意使用用户配置文件的SharePoint服务器上,表单才能正常工作。

        小贴士:前面的步骤必须精确执行;web service在你导航和连接它的方式上很特定。如果你需要重新尝试几次来确保做好所有的事,不要灰心丧气。


12.  现在你需要添加额外四个操作步骤到规则,重复步骤5-11添加用户数据域。当你到达步骤10时,条件筛选器中PreferredName文本用以下值代替:


        做完以上步骤后,规则窗格中规则应该是:


13.  预览表单。

        小贴士:注意Manager数据以SharePoint用户账户名格式(域用户名)出现。这个选项对当前登录用户是可用的。如果你宁愿以帐户名格式获得当前用户名,而不是标准名称的话,在筛选条件使用“AccountName”而不是“PreferredName”。


        你现在已经有了一个事件注册表单,它可以用SharePoint用户配置文件Service的用户数据预填充五个域。

原文地址:https://www.cnblogs.com/crazygolf/p/3856917.html