深入浅出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 文件结构如下放置

2011013016410345.jpg

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" 

 

转载于:https://www.cnblogs.com/mingle/archive/2011/01/30/1947930.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 932. 漂亮数组(分治递归/循环)

文章目录1. 题目2. 解题2.1 分治递归2.2 循环1. 题目 对于某些固定的 N&#xff0c;如果数组 A 是整数 1, 2, …, N 组成的排列&#xff0c;使得&#xff1a; 对于每个 i < j&#xff0c;都不存在 k 满足 i < k < j 使得 A[k] * 2 A[i] A[j]。 那么数组 A 是漂亮…

android 修改系统参数设置,2021-05-15 [RK3399][Android7.1] 调试笔记 ---显示参数动态设置接口...

系统环境&#xff1a;Platform: RK3399OS: Android 7.1Kernel: v4.4.83接口代码所在位置为&#xff1a;/frameworks/base/core/java/android/os/DisplayOutputManager.java如图&#xff1a;image.png1. 设置背光亮度public void setBrightness(int display, int brightness)设置…

Lucene.Net:关于索引的一些补充说明和总结

在前面的几篇关于lucene的文章中&#xff0c;我已经简要说明了如何利用lucene进行分词、索引和搜索。最近大部分时间耗在查资料上&#xff0c;看得比较多比较杂但是一贯的不够深入&#xff0c;还好多数都是不会影响编程实践的概念性的东西。有时候我自己也感觉到有心无力&#…

android wsdl封装,《android 解析WebService》

android端解析WebService我采用的是ksoap来完成的。ksoap相对来说也是比较简单的。代码如下package com.lv.test;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.t…

LeetCode 638. 大礼包(无限背包DP)

1. 题目 在LeetCode商店中&#xff0c; 有许多在售的物品。 然而&#xff0c;也有一些大礼包&#xff0c;每个大礼包以优惠的价格捆绑销售一组物品。 现给定每个物品的价格&#xff0c;每个大礼包包含物品的清单&#xff0c;以及待购物品清单。请输出确切完成待购清单的最低…

在2008 server安装vm server时发生的错误error1718、error1335……

;转载于:https://www.cnblogs.com/minglog/archive/2011/02/15/1955290.html

keepass2Android密码,Keepass2Android密码管理(快速解锁密码)

Keepass2Android密码管理能帮助我们保存各类网站、应用的密码&#xff0c;大家提前设置好之后每次输入密码的时候只需要输入很少的字符就能快速解锁密码&#xff0c;为大家的日常使用提供方便。软件特色* 几乎可与所有的Android 的浏览器结合使用 (见下文)*快速解锁&#xff1a…

LeetCode 845. 数组中的最长山脉(中心扩展)

1. 题目 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”&#xff1a; B.length > 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i1] > ... > B[B.length - 1] &#xff08;注意&#xff1a;B 可以是 A 的…

hibernate3.6.0日志配置

hibernate3 自带的默认的日志框架是slf4j&#xff0c;hibernate3的slf只是一个日志的接口&#xff0c;而hibernate3 自带默认的日志框架&#xff0c;在实际开发中很少有公司或者是项目中用到&#xff0c;这里记录一种使用log4j的日志框架来代替slf4j日志框架的实现&#xff0c;…

android stackview,Android StackView 使用示例

cell.xml 布局文件&#xff1a;xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/cellImage"android:layout_width"200dp"android:layout_height"200dp"/>主布局文件&#xff1a;android:id"id/activ…

LeetCode 1239. 串联字符串的最大长度(回溯/动态规划)

文章目录1. 题目2. 解题2.1 回溯超时解2.2 回溯优化2.3 动态规划1. 题目 给定一个字符串数组 arr&#xff0c;字符串 s 是将 arr 某一子序列字符串连接所得的字符串&#xff0c;如果 s 中的每一个字符都只出现过一次&#xff0c;那么它就是一个可行解。 请返回所有可行解 s 中…

android 伪造gps位置,在Android中使用GPS的假位置

您正在开发一个将设置坐标(经度和纬度)的应用程序.它必须显示我的位置,因为我在那个坐标.它类似于位置欺骗者.. http://www.androidzoom.com/android_applications/tools/location-spoofer_gkmc.html但我没有这样做..这是我的代码..请任何人帮助我.public class Mock extends M…

LeetCode 395. 至少有K个重复字符的最长子串(分治)

1. 题目 找到给定字符串&#xff08;由小写字符组成&#xff09;中的最长子串 T &#xff0c; 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。 示例 1: 输入: s "aaabb", k 3 输出: 3 最长子串为 "aaa" &#xff0c;其中 a 重复了 3 次。示…

WCF 体系结构图

转载于:https://www.cnblogs.com/agressivo/articles/1958858.html

android studio电影院选座,8排电影院选座最佳位置

8排电影院选座最佳位置在哪里呢&#xff1f;8排电影院属于小影厅&#xff0c;小影厅银幕宽度在10米以下&#xff0c;座位100以内&#xff0c;座位排数通常拥有8-14排&#xff0c;小影厅整体空间小&#xff0c;选座时要选中间稍靠后一些的位置。由于整体排数少&#xff0c;因此选…

LeetCode 1011. 在 D 天内送达包裹的能力(二分查找)

1. 题目 传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天&#xff0c;我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 D 天内将传送带上的所有包裹送达的船的…

仿Jquery链式操作的xml操作类

经常需要对xml文件进行操作&#xff0c;参考了Jquery的链式操作后实现了xmlHelper类。代码usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Xml;namespaceConfigUpdate{ ///<summary>///调用非静态的操作方法的 ///</summary>publiccla…

4月17日鸿蒙开发者大会,4月17日这天,将载入华为史册

文/笨鸟原创不易&#xff0c;禁止抄袭、洗稿&#xff0c;违者必究&#xff01;万众瞩目的华为鸿蒙系统对于国人来说&#xff0c;一部智能手机只有实现了芯片和系统技术的自主化&#xff0c;才能被称之为真正的国产手机。而就目前的国内手机市场而言&#xff0c;除华为之外的所有…

LeetCode 875. 爱吃香蕉的珂珂(二分查找)

1. 题目 珂珂喜欢吃香蕉。这里有 N 堆香蕉&#xff0c;第 i 堆中有 piles[i] 根香蕉。警卫已经离开了&#xff0c;将在 H 小时后回来。 珂珂可以决定她吃香蕉的速度 K &#xff08;单位&#xff1a;根/小时&#xff09;。每个小时&#xff0c;她将会选择一堆香蕉&#xff0c;…

MsSql正反表达式

例子&#xff1a; UPDATE [Photo_Table] SET istopistop^1,IsTopDateTimegetdate() WHERE charindex(, rtrim(PHOTOID) , , , PHOTOIDLIST ,)>0转载于:https://www.cnblogs.com/yibinboy/archive/2011/02/22/1961675.html