需求:在工作流申请及审批需定制申请及审批表单,表单中的有些栏数据来源是重其他数据库中来的。
现有三个下拉框项目(数据来源为sharepoint的列表)用户部门(数据源为:gwsps03\sharepoint和安装sharepoint平台一台机器的数据库),成本中心(192.168.0.71另一台机器的数据库)
步骤:
- 先在spd中建一个工作流,并编辑该工作流,设置启动参数后发布,这是就会生成一个infopath表单
- 点击该表单进行设置并设置数据源后。
项目下来框中有数据,其他的报错,报错如下(在infopath中预览有数据,发布到shrepoint上没数据)。
该表单无法从 BASE_TAB_USER 中检索数据,因为这将违反跨域限制。为使此连接用于管理员审批的表单模板,可对表单模板启用完全信任,或者将此连接添加到数据连接库。对于用户表单模板,必须在 SharePoint 管理中心启用跨域连接,并且所有连接都必须位于数据连接库中。有关详细信息,请参阅 InfoPath Forms Services 的安全文档。(用户: xxx,表单名称: Template,IP: ,连接目标: ,请求: http://gwsps03/_layouts/IniWrkflIP.aspx?TemplateID={7efd6617-f982-4594-9fdd-448205d588cb}&Source=http://gwsps03/_layouts/workflow.aspx,表单 ID: urn:schemas-microsoft-com:office:infopath:workflowInitAssoc:-AutoGen-2013-03-26T06:33:01:431Z,类型: DataAdapterException,异常消息: 服务器的安全设置阻止使用一个或多个数据连接。)
于是经过上网查找,应该需要做这些方面的设置:
http://technet.microsoft.com/zh-cn/library/ee513088.aspx
-
表单模板安全级别未设置为完全信任(这个不要理他,工作流中的infopath表单和普通的表单有区别,找不到开发工作选项卡)。
-
未在数据连接文件中定义表单模板数据连接(这个必须要,先在sharepoint创建一个数据连接库,在到infopath中把链接数据库文件转成.udcx并保存到创建的数据连接库中)。
-
SharePoint 管理中心中禁用了用户表单模板的跨域数据访问(这个必须要,在管理中心的管理infopath 表单服务中设)。
然后经过多次测试还是不行,于是继续找。
http://www.cnblogs.com/dosboy/archive/2009/12/27/1633299.html#2605724 中提到
PS重要说明:本示例在本机上运行没有问题,但是如果把模板发布到网站上,使用基于浏览器的Forms Service时,要注意权限的问题,请确保您的IIS应用程序帐户可以读取、更新和写入您本地的SQL数据库
于是把sharepoint-80的验证用户用户设置成我自己的域账号并重新启动了IIS。
设置到这里应该OK了,可我的infopath表单还是不行,于是重启了机器后回家了,到家一看另外一个表单居然可以访问数据了,于是删除有问题的表单,重新又做了一遍,居然都可以了,哈哈。