• 深入浅出InfoPath——让管理员来部署InfoPath表单


    应用场景

    我们(乙方)在给客户提供基于InfoPath表单(尤其是包含托管代码的)的工作流解决方案的时候,常常需要客户(甲方)的SharePoint管理员来帮忙在安装SharePoint Server的服务器上部署,而管理员不需要知道需要哪些步骤来完成InfoPath Service的部署,更不愿意看到通过繁琐的操作来完成预定的任务。大家都知道企业软件有个特点:尽可能少的Code。要想问题少的最好办法就使用尽可能少的代码。所以我们使用命令来部署InfoPath Service自动化部署InfoPath表单是最好的办法。

    基本原理:

    使用bat命令或者PowerShell来执行SharePoint管理命令。SharePoint为管理员提供了以下部署InfoPath表单的命令:
    %STSADM% -o RemoveFormTemplate -filename

    %STSADM% -o uploadformtemplate -filename

    %STSADM% -o deactivateformtemplate -url %SITEURL% -filename

    %STSADM% -o activateformtemplate -url %SITEURL% -filename

    参考方案

    我们现在需要客户的SharePoint管理员来重新部署我们提供的出差申请流程。

    1 文件结构如下放置

    2 bat脚本

    @SET STSADM="%programfiles%\Common Files\Microsoft Shared\web server extensions\12\BIN\STSADM.EXE"
    @
    SET SITEURL="https://www.cnblogs.com/sites/mingle"

    %STSADM% -o RemoveFormTemplate -filename
    "Mingle.FormTemplates\BusinessTripRequest.xsn"
    %STSADM% -o execadmsvcjobs

    %STSADM% -o uploadformtemplate -filename
    "Mingle.FormTemplates\BusinessTripRequest.xsn"
    %STSADM% -o execadmsvcjobs

    %STSADM% -o deactivateformtemplate -url %SITEURL% -filename
    "Mingle.FormTemplates\BusinessTripRequest.xsn"
    %STSADM% -o execadmsvcjobs

    %STSADM% -o activateformtemplate -url %SITEURL% -filename
    "Mingle.FormTemplates\BusinessTripRequest.xsn"
    %STSADM% -o execadmsvcjobs

    pause

    如果我们第一次部署InfoPath表单,可以仅使用uploadformtemplate和activateformtemplate即可。

    补充说明

    a、execadmsvcjobs此命令可以保证下达的任务马上执行。我们在实际部署中经常遇到部署后10多个小时,新的InfoPath设计才生效。

    b、为什么我们重新部署的时候需要先反激活InfoPath表单,然后再重新激活呢?因为InfoPath表单新的设计使用的站点不重新激活的话,新的设计信息将不生效。

    以上问题在我们手工部署InfoPath表单的时候也常常碰到同样的问题。

    扩展阅读

    在SharePoint2010中可以通过Feature来部署沙箱的InfoPath表单,以下命令可供使用

    Uninstall the existing solution (based on the from file name):
    Uninstall-SPInfoPathFormTemplate -Identity Exampleform.xsn
    Install the new solution (based on the from file name):
    Install-SPInfoPathFormTemplate -Path C:\Form.xsn
    Disable feature on site collection level
    Disable-SPInfoPathFormTemplate -Identity "Form.xsn" -Site http://SPSite 
    Enable feature on site collection level
    Enable-SPInfoPathFormTemplate -Identity "Form.xsn" -Site "http://SPSite" 

  • 相关阅读:
    SQLSERVER跨库访问
    Mybatis开发的几个主要事项
    jqGrid参数
    WPF 从当前层次遍历查找 子控件及父控件
    c# 获取图像像素
    异步FIFO的FPGA实现
    note5文档流
    note3css 的padding属性
    note3clip:rect('top', 'right', 'bottom', 'left')是什么意思
    怎样查看端口被占用情况
  • 原文地址:https://www.cnblogs.com/mingle/p/1947930.html
Copyright © 2020-2023  润新知