SharePoint PowerShell 启动工作流

  前言

  最近,有个需求,就是需要批量更新列表内容,平时这些操作,都用powershell去完成,但是,powershell需要在服务器上操作,而服务器权限需要通过客户的层层把关,所以,这次就考虑不用命令了,而改用SharePoint网站工作流,然后,用powershell命令去创建任务计划。

  这样,以后有需求修改,直接在客户端就能做了,而任务计划,是始终不会变的。

  1.创建网站工作流,这个就比较简单了,我们就不多少了,直接在SharePoint Designer里干就好了;

  2.启动网站工作流的PowerShell代码段,这个显然是本文的重中之重;

# SharePoint.Workflow.Start-SPSiteWorkflow

param (
   [string]$Url = "http://sharepoint/demos/workflow",
   [string]$Workflow = "Sample Site Workflow"
 )

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction
SilentlyContinue
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

# get the workflow assocation from the target site/web
$site = Get-SPSite $Url
$culture = [System.Globalization.CultureInfo]::InvariantCulture
$wfAssociation = $site.RootWeb.WorkflowAssociations.GetAssociationByName($Workflow,$culture)

if ( $wfAssociation )
{
    # initialize and optionally update association data
    $assocData = $wfAssociation.AssociationData

    # start the workflow
    $wfRunOption = [Microsoft.SharePoint.Workflow.SPWorkflowRunOptions]::Asynchronous
    $site.WorkflowManager.StartWorkflow($site, $wfAssociation, $assocData,$wfRunOption)
}
else
{
    Write-Error "Workflow association not found on target web site."
}

  3.保存成ps1文件,然后,创建一个任务计划定时去执行就好了;

  4.创建任务计划可以参考:

  https://www.cnblogs.com/jianyus/p/10341253.html

  结束语

  SharePoint的好处就在于是个平台,很多功能有多种多样的方式来完成,而我们可以根据需求,选中最最适合我们场景的那一个。

  当然,这些就需要我们对SharePoint有这深入的了解,方方面面的功能都很熟悉了。

原文地址:https://www.cnblogs.com/jianyus/p/10361010.html

时间: 2024-10-14 05:00:24

SharePoint PowerShell 启动工作流的相关文章

SharePoint 2016 配置工作流环境

前言 SharePoint 2016 默认创建工作流的时候,工作流平台只包含2010版本,如果想要使用状态机工作流,需要单独安装workflow manager 1.0才可以,下面,我们为大家介绍一下如何为环境安装workflow manager 1.0. SharePoint Designer 2013创建SharePoint 2016可重用工作流截图,只包含SharePoint 2010工作流版本. 工作流环境的安装主要包括两种,一种是使用Microsoft Web Platform Ins

SharePoint 2013 可视化工作流设计图解

SharePoint 2013 可视化工作流设计图解 地点:西宁: SharePoint 2013 加BI 项目. 平台环境:SharePoint2013   系统环境windows server2012: 开发工具:SharePoint designer 2013   前提:服务器安装完成Visio 2013 旗舰版: 使用账户有权限 1,打开 SPD2013 --打开SharePoint 2013 网站--在导航菜单里找到 List Workflow 如下图:本实例 创建文档工作流. 2,单

SharePoint 2013 状态机工作流之日常报销示例

原文:SharePoint 2013 状态机工作流之日常报销示例 简单介绍下状态机工作流,状态机工作流提供了一系列的状态.工作流从初始状态开始,到终止状态结束.两个状态之间定义行为进行过渡.通常情况下,状态机工作流对事件作出反应,事件的发生将会使状态发生改变. 1.新建项目,选择SharePoint解决方案,创建空项目: 2.选择调试站点,部署为场解决方案,如下图: 3.添加新项,选择“Office/SharePoint”下面的“状态机工作流(仅场解决方案)”: 4.选择列表工作流,修改工作流名

SharePoint无代码工作流设计开发实例——交通费报销流程(三)

SharePoint无代码工作流设计开发实例——交通费报销流程(三) 分类: SharePoint2012-07-21 01:28 8512人阅读 评论(7) 收藏 举报 sharepoint工作交通任务开发工具 4.SharePoint Designer无代码工作流的设计 开发工具为SharePoint Designer 2010 新建“列表工作流”,绑定“交通费报销单”表单库 设置工作流启动选项“创建项目时自动启动工作流” 编辑工作流 (关于以下工作流详细设计可参考http://blog.c

在InfoPath表单内提交表单并启动工作流

在InfoPath表单内提交表单并启动工作流 MOSS中对工作流的强大支持,让我们可以做很多应用. 举个例子,我们可以用表单库做审批表单,然后给这个表单库附加一个流程. 我们可能希望用户在填写表单的时候,在表单中填一些在启动工作流时需要用的信息,比如设置审批人等等. 我们的表单会像下面这样,包括待审批内容,和设置审批者等其他工作流设置. 我们也希望用户在点“保存”的时候,提交表单并同时根据用户设置的审批人来启动工作流. ( MOSS默认的模式是,提交完表单以后,在另一个页面启动工作流,需要做两步

sharepoint powershell 根据报错的GUID查询错误

打开sharepoint powershell Get-splogevent | ?{$_.Correlation -eq "GUID"}  | select Area,category,Level,EventID,Message | Format-List > c:\errlog.txt 把GUID替换成爆出错误的GUID

SharePoint 2013 状态机工作流之UpdateItemActivity

原文:SharePoint 2013 状态机工作流之UpdateItemActivity 没什么可说的,一个Activity的使用介绍,其他类似的Activity也可以参考这个使用. 1.添加ApplyActivation和UpdateItemActivity,在onWorkflowActivated1节点的下面,setStateActivity1节点的上面,如下图: 2.配置ApplyActivation的_Context,新建字段,记得是字段,不是属性: 3.配置ApplyActivatio

sharepoint 2013 使用SharePoint powershell 2013更改搜索服务器方法

$hostA = Get-SPEnterpriseSearchServiceInstance -Identity "DevSearch2013" Start-SPEnterpriseSearchServiceInstance -Identity $hostA Get-SPEnterpriseSearchServiceInstance -Identity $hostA $ssa = Get-SPEnterpriseSearchServiceApplication $newTopology

在Powershell ISE中添加sharepoint的智能提示,Enable SharePoint PowerShell Commandlets in the PowerShell ISE

Powershell ISE在默认状态下有一个不好的地方就是不会显示关于SharePoint的一些智能提示,例如你写一个"get-"后面提示的选项里没有sp开头的一些对象.于是找了一下解决方案. 首先打开Powershell ISE, 把下面的代码拷贝到ISE中 1 if (!(test-path $profile )) 2 { 3 new-item -type file -path $profile -force 4 } 5 6 7 $cmd = 'if((Get-PSSnapin