2024年10月如何结合SharePoint Designer 2010 与Visio 2010 创建工作流?如何:创建工作流 Activity 库
⑴如何结合SharePointDesigner与Visio创建工作流?如何:创建工作流Activity库
⑵如何结合SharePointDesigner与Visio创建工作流
⑶安装Visio开始之前,先要安装Visio,Visio的语言版本也分外中文版和英文版,建议和SharePointdesigner保持一致。如果你的SharePointdesigner是英文版的,那么就安装英文版的,如果是中文版的,那就安装中文版的。请参考如下安装界面。.新建VisioSharePointWorkflow模板.打开Visio,我们看到有一个专门的模板:MicrosoftSharePoint工作流从左边工具栏中拖拽对应的Action和条件。工作流一定要包含开始和结束,所以开始和结束不能缺少,其他都可以缺少,当然了,如果一个工作流只包含开始和结束,是没有实际意义的。我们可以新建一个简单的需求。在Task列表中,当一个任务分派给一个C时,如果Sum大于或等于,那么久将在Task创建一个新的任务给A,如果Sum小于的话,就会在Task创建一个新的任务给B。.导出VisioSharePointWorkflow模板将Visio的模板导入SharePointDesignerSharePointvisualstudioworkflow模板创建好之后,就可以将模板导入到SharePointdesigner中了..导入SharePointdesigner后,开始改写workflow的步骤和内容.改写后的workflow如下图发布SharePointDesignerworkflow发布之后效果验证注意事项SharePointdesigner自带的审核、收集签名、收集数据三个工作流请不要删除,如果删除了,在导入Visio的模板的时候就会报错。错误如下ThisworkflowcannotbeimportedbecauseitwascreatedinSharePointDesignerforadifferentsite,ortheoriginalworkflowhasbeenmovedordeleted.Tomoveaworkflowbetweensites,useSaveastemplate(.wspfile)insteadofaVisioworkflowdrawing.
⑷如何:创建工作流Activity库
⑸在“文件”菜单上指向“新建”,然后选择“项目”。此时将打开“新建项目”对话框。在“项目类型”窗格中,选择“VisualC#”或“VisualBasic”(位于“其他语言”下,然后选择“工作流”。在“模板”窗格中,选择“工作流Activity库”。在“名称”框中,输入项目的描述性名称以便于识别。在“位置”框中,输入要将项目保存到的目录,或单击“浏览”以定位目录。如果要为项目创建一个解决方案目录,请选择“创建解决方案的目录”复选框,然后在“解决方案名称”框中输入一个名称。单击“确定”。
⑹用Jirawebhook和Jenkins创建自动审批工作流
⑺由于工作的原因,需要写一个自动审批的工作流,看了下网上的分享,资料不多;经过几天的踩坑,决定写这篇分享,不对之处欢迎指正
⑻ManageJenkins-》ManagePlugin-》JIRATriggerPlugin
⑼ManageJenkins-》ConfigureSystem-》JIRATriggerConfiguration
⑽完成前面两部之后,开始创建webhookJira-》系统-》高级-》webhook点击右上角创建webhook
⑾保存之后,在浏览器输入刚刚webhook的URL,回车后如果提示这是一个POST请求
⑿则表示webhook设置成功了!
⒀总结一下webhook的工作原理:
⒁也就是创建流水线的job,随便命名后,看到BuildTriggers
⒂其实到这里,整个webhook就可以用了,改变某个issue到指定状态,此job应当是会自动构建的,如果没有自动构建,那么要么是URL写错,要么是状态变更的错误,具体问题具体分析了。
⒃前面说到webhook发起的是POST请求,很有意思的一件事请就是参数是如何传的呢?
⒄webhook页面,URL下面写了可以在URL中使用下面的额外变量,我以为只要点击某个变量,加到URL后,即可传递此参数,可是事实是加上参数后URL甚至都不能用了。不知道是不是我使用的姿势有问题,看了很多网上的分享,我了解到webhook的URL被请求后,实际上是默认会传issue的key过去的,我们选择一个已经构建的jobrebuild一次,可以看到确实传了参数issuekey
⒅那么其实其他的参数都是没有用的么?也许是有用的,可能是我引用的参数不对,目前为止,我只发现不传参的时候URL是可以被自动调用的(欢迎指正可是这个issuekey其实已经足够有用了,你可以通过调jira的api获得你想要的信息,下一篇讲如何在pipline中使用参数
⒆如何:为需求管理创建ProjectServer工作流
⒇确定需求,然后设计工作流。将工作流组织到阶段和容器,并确定工作流将使用的自定义域。在ProjectWebApp中,创建工作流需要的实体:查看现有工作流阶段;创建必要的阶段。创建工作流将使用的企业自定义域。自定义域必须由工作流控制才能在工作流容器使用。或创建您的工作流容器将用于收集项目信息的项目详细信息页(PDP)。在本示例中,容器将使用为包含新的自定义域的默认PDP。创建必要的工作流容器,然后将每个工作流容器与对应的阶段关联。在SharePointDesigner中,通过在“基于文本的设计器”中使用声明性语句来构造工作流:注释还可以切换到SharePointDesigner中的“可视化设计器”,或者从Visio中导入现有工作流。按照下列步骤操作可使用“基于文本的设计器”:打开ProjectWebApp网站,然后创建使用“SharePoint工作流-ProjectServer”工作流平台的网站工作流。添加工作流使用的容器。插入每个容器中所需的工作流步骤、条件、操作和循环。检查任何工作流错误并纠正您找到的所有错误。(可选将视图切换到“可视化设计器”,或者将工作流导出到Visio文件。可以修改Visio视图并保存对当前工作流所做的更改。可以Visio文件并将其导入SharePointDesigner中来创建其他工作流。发布工作流。在发布工作流后,该工作流将显示在ProjectWebApp网站的工作流列表中。在ProjectWebApp中,使用针对项目建议的需求管理的工作流:创建使用工作流的企业项目模板(EPT)。在“项目中心”页上,创建使用工作流的EPT的项目,然后继续完成其他工作流容器。全面测试工作流。将工作流部署到生产服务器。
⒈工作流的创建,需要的数据库如何设计
⒉工作流引擎有自己的数据库表的,像activiti,jbpm,只需要设计自己的业务表
⒊activity工作流怎么创建任务实例
⒋右击本地服务器上的“数据库”节点,然后选择“新建数据库”。将新数据库命名为WFGettingStartedTutorial,接受所有其他值,然后选择“确定”。注意在创建数据库前,确保您在本地服务器上具有创建数据库权限。从“文件”菜单中选择“打开”,然后单...
⒌如何开发工作流管理系统
⒍ZeroPoint为您设计流后,可以开始将团队成员分配到其任务及其相应的完成路由。一旦您开始处理项目并且您的工作流程生效,就开始审查人们如何利用系统,其中的流程,并衡量其在项目每个阶段的结果。百度回答谢邀。
⒎如何:创建和运行长时间运行的工作流
⒏右击本地服务器上的“数据库”节点,然后选择“新建数据库”。将新数据库命名为WFGettingStartedTutorial,接受所有其他值,然后选择“确定”。注意在创建数据库前,确保您在本地服务器上具有创建数据库权限。从“文件”菜单中选择“打开”,然后单击“文件”。浏览到:C:WindowsMicrosoft.Framework..sqlen以下文件夹选择以下两个文件,然后单击“打开”。SqlWorkflowInstanceStoreLogic.sqlSqlWorkflowInstanceStoreSchema.sql从”窗口“菜单选择“SqlWorkflowInstanceStoreSchema.sql”。从“查询”菜单确保“WFGettingStartedTutorial”选择“可用数据库”下拉菜单,然后选择“执行”。从”窗口“菜单选择“SqlWorkflowInstanceStoreLogic.sql”。从“查询”菜单确保“WFGettingStartedTutorial”选择“可用数据库”下拉菜单,然后选择“执行”。注意按正确的顺序执行前面的两个步骤,这一点非常重要。如果不按顺序执行查询,系统会发生错误,并且持久性数据库会配置不正确。向DurableInstancing程序集中添加引用在“解决方案资源管理器”中右击“NumberGuessWorkflowHost”,然后选择“添加引用”。在“添加引用”列表中选择“程序集”,并在“搜索程序集”框中键入DurableInstancing。这会筛选程序集,并使所需引用更便于选择。从“搜索结果”列表检查旁边的复选框“System.Activities.DurableInstancing”和“System.Runtime.DurableInstancing”,然后单击“确定”。创建工作流宿主窗体注意此过程中的步骤描述了如何手动添加和配置窗体。如果需要,可以下载教程的解决方案文件,并将完成的窗体添加至项目中。下载教程文件,请参见WindowsWorkflowFoundation(WF)-入门教程。文件下载后,在“解决方案资源管理器”中右击“NumberGuessWorkflowHost”,并选择“添加”,“现有项”。浏览至项目文件中的Asset文件夹,并选择“WorkflowHostForm”。在“解决方案资源管理器”中右击“NumberGuessWorkflowHost”并选择“添加”,“新项目”。在“已安装”模板列表中,选择“Windows窗体”,在“名称”框中键入WorkflowHostForm,并单击“添加”。配置窗体上的以下属性。属性ValueFormBorderStyleFixedSingleMaximizeBoxFalse大小,按指定的顺序将以下控件添加到窗体中,并按照需要配置属性。控制属性Value按钮名称btnNew位置,大小,Text新游戏标签位置,Text猜测一个数字从至boBox名称cboRangeDropDownStyleDropDownList项位置,大小,标签位置,Text工作流类型boBox名称cboTypeDropDownStyleDropDownList项StateMachineNumberGuessWorkflowFlowchartNumberGuessWorkflowSequentialNumberGuessWorkflow位置,大小,标签名称lblVersion位置,Text工作流版本GroupBox位置,大小,TextGame注意以下控件包含在“GroupBox”中。在将它们添加至窗体时,将它们放到“GroupBox”上。标签位置,Text工作流实例IdboBox名称cboInstanceIdDropDownStyleDropDownList位置,大小,标签位置,Text猜测TextBox名称txtGuess位置,大小,按钮名称btnGuess位置,大小,Text转至按钮名称btnQuit位置,大小,Text退出TextBox名称txtStatus位置,MultilirueReadOnlyTrueScrollBars垂直大小,将窗体的“AeptButton”属性设置为“btnGuess”。下面的示例阐释已完成的窗体。添加窗体的属性和帮助器方法本节的步骤将属性和帮助器添加至窗体类,此窗体类将配置窗体的UI,以支持运行和继续执行数字猜测工作流。在“解决方案资源管理器”中右击“WorkflowHostForm”并选择“查看代码”。添加以下using(或Imports语句和另一些using(或Imports语句到文件的顶部。usingSystem.Activities.DurableInstancing;usingSystem.Activities;usingSystem.Data.SqlClient;usingSystem.IO;将以下成员声明添加到“WorkflowHostForm”类中。conststringconnectionString=“Server=.\SQLEXPRESS;InitialCatalog=WFGettingStartedTutorial;IntegratedSecurity=SSPI“;SqlWorkflowInstanceStorestore;boolWorkflowStarting;注意如果您的连接字符串不同,请更新connectionString引用数据库。将WorkflowInstanceId属性添加到WorkflowFormHost类中。publicGuidWorkflowInstanceId{get{returncboInstanceId.SelectedIndex==-?Guid.Empty:(Guid)cboInstanceId.SelectedItem;}}cboInstanceId组合框显示保留的工作流实例ID列表,且WorkflowInstanceId属性返回当前选定的工作流。为窗体Load事件添加下面的处理程序。若要添加处理程序,则切换到窗体的“设计视图”,单击“属性”窗口顶部的“事件”图标,并双击“加载”。privatevoidWorkflowHostForm_Load(objectsender,EventArgse){//Initializethestoreandconfigureitsothatitcanbeusedfor//multipleWorkflowApplicationinstances.store=newSqlWorkflowInstanceStore(connectionString);WorkflowApplication.CreateDefaultInstanceOwner(store,null,WorkflowIdentityFilter.Any);//SetdefaultboBoxselections.cboRange.SelectedIndex=;cboType.SelectedIndex=;ListPersistedWorkflows();}在窗体加载时,SqlWorkflowInstanceStore进行配置,范围和工作流类型组合框将会设置为默认值,且保留的工作流实例将添加到cboInstanceIds中。为cboInstanceId添加以下SelectedIndexChanged处理程序。若要添加处理程序,则切换到窗体的“设计视图”,选择cboInstanceId组合框,单击“属性”窗口顶部的“事件”图标,并双击“SelectedIndexChanged”。无论用户何时使用组合框选择工作流,此处理程序均更新状态窗口。privatevoidcboInstanceId_SelectedIndexChanged(objectsender,EventArgse){if(cboInstanceId.SelectedItem==null){return;}//Clearthestatuswindow.txtStatus.Clear();//Gettheworkflowversionanddisplayit.//Iftheworkflowisjuststartingthenthisinfowillnot//beavailableinthepersistencestoresodonottryandretrieveit.if(!WorkflowStarting){WorkflowApplicationInstanceinstance=WorkflowApplication.GetInstance(this.WorkflowInstanceId,store);lblVersion.Text=WorkflowVersionMap.GetIdentityDescription(instance.DefinitionIdentity);//Unloadtheinstance.instance.Abandon();}}将下面的ListPersistedWorkflows方法添加到窗体类中。privatevoidListPersistedWorkflows(){using(SqlConnectionlocalCon=newSqlConnection(connectionString)){stringlocalCmd=“Select;}publicstaticstringGetIdentityDescription(WorkflowIdentityidentity){returnidentity.ToString();}}WorkflowVersionMap包含三个工作流标识,这些工作流标识从本教程映射到三个工作流定义,且在工作流启动和继续执行时用于以下小节。启动新工作流为btnNew添加Click处理程序。若要添加处理程序,则切换到窗体的“设计视图”,并双击btnNew。系统将添加btnNew_Click处理程序,且视图切换到窗体的代码视图。无论用户何时单击此按钮,均会启动新工作流。privatevoidbtnNew_Click(objectsender,EventArgse){//Startanewworkflow.}将下面的代码添加到单击处理程序中。此代码可创建由工作流的输入参数组成的字典,由参数名称进行键控。此字典有一个项,包含在范围组合框中检索的随机生成数的范围。varinputs=newDictionary《string,object》();inputs.Add(“MaxNumber“,Convert.ToInt(cboRange.SelectedItem));接下来添加以下启动工作流的代码。使用WorkflowVersionMap帮助器类来检索WorkflowIdentity以及与选定工作流的类型对应的工作流定义。接下来,使用工作流定义、WorkflowIdentity和由输入参数组成的字典来创建新的WorkflowApplication实例。WorkflowIdentityidentity=null;switch(cboType.SelectedItem.ToString()){case“SequentialNumberGuessWorkflow“:identity=WorkflowVersionMap.SequentialNumberGuessIdentity;break;case“StateMachineNumberGuessWorkflow“:identity=WorkflowVersionMap.StateMachineNumberGuessIdentity;break;case“FlowchartNumberGuessWorkflow“:identity=WorkflowVersionMap.FlowchartNumberGuessIdentity;break;};Activitywf=WorkflowVersionMap.GetWorkflowDefinition(identity);WorkflowApplicationwfApp=newWorkflowApplication(wf,inputs,identity);接下来,添加以下代码,此代码将工作流添加到工作流列表中,并在窗体上显示工作流的版本信息。//Addtheworkflowtothelistanddisplaytheversioninformation.WorkflowStarting=true;cboInstanceId.SelectedIndex=cboInstanceId.Items.Add(wfApp.Id);lblVersion.Text=identity.ToString();WorkflowStarting=false;调用ConfigureWorkflowApplication为此WorkflowApplication实例配置实例存储区、扩展和工作流生命周期处理程序。//Configuretheinstancestore,extensions,and//workflowlifecyclehandlers.ConfigureWorkflowApplication(wfApp);最后,调用Run。//Starttheworkflow.wfApp.Run();以下示例是完整的btnNew_Click处理程序。privatevoidbtnNew_Click(objectsender,EventArgse){//Startanewworkflow.varinputs=newDictionary《string,object》();inputs.Add(“MaxNumber“,Convert.ToInt(cboRange.SelectedItem));WorkflowIdentityidentity=null;switch(cboType.SelectedItem.ToString()){case“SequentialNumberGuessWorkflow“:identity=WorkflowVersionMap.SequentialNumberGuessIdentity;break;case“StateMachineNumberGuessWorkflow“:identity=WorkflowVersionMap.StateMachineNumberGuessIdentity;break;case“FlowchartNumberGuessWorkflow“:identity=WorkflowVersionMap.FlowchartNumberGuessIdentity;break;};Activitywf=WorkflowVersionMap.GetWorkflowDefinition(identity);WorkflowApplicationwfApp=newWorkflowApplication(wf,inputs,identity);//Addtheworkflowtothelistanddisplaytheversioninformation.WorkflowStarting=true;cboInstanceId.SelectedIndex=cboInstanceId.Items.Add(wfApp.Id);lblVersion.Text=identity.ToString();WorkflowStarting=false;//Configuretheinstancestore,extensions,and//workflowlifecyclehandlers.ConfigureWorkflowApplication(wfApp);//Starttheworkflow.wfApp.Run();}继续执行工作流为btnGuess添加Click处理程序。若要添加处理程序,则切换到窗体的“设计视图”,并双击btnGuess。无论用户何时单击此按钮,均会继续执行工作流。privatevoidbtnGuess_Click(objectsender,EventArgse){}添加以下代码,以确保在工作流列表中选择工作流,且用户的猜测是有效的。if(this.WorkflowInstanceId==Guid.Empty){MessageBox.Show(“Pleaseselectaworkflow.“);return;}intguess;if(!Int.TryParse(txtGuess.Text,outguess)){MessageBox.Show(“Pleaseenteraninteger.“);txtGuess.SelectAll();txtGuess.Focus();return;}接下来,检索已保留工作流实例的WorkflowApplicationInstance。WorkflowApplicationInstance表示保留的工作流实例,此工作流实例还未与工作流定义关联。WorkflowApplicationInstance的DefinitionIdentity包含已保留工作流实例的WorkflowIdentity。本教程中使用WorkflowVersionMap实用工具类,将WorkflowIdentity映射到正确的工作流定义。对工作流定义进行检索后,即可使用正确的工作流定义创建WorkflowApplication。WorkflowApplicationInstanceinstance=WorkflowApplication.GetInstance(this.WorkflowInstanceId,store);//UsethepersistedWorkflowIdentitytoretrievethecorrectworkflow//definitionfromthedictionary.Activitywf=WorkflowVersionMap.GetWorkflowDefinition(instance.DefinitionIdentity);//AssociatetheWorkflowApplicationwiththecorrectdefinitionWorkflowApplicationwfApp=newWorkflowApplication(wf,instance.DefinitionIdentity);创建WorkflowApplication后,即可通过调用ConfigureWorkflowApplication来配置实例存储区、工作流生命周期处理程序和扩展。这些步骤必须在每次创建新的WorkflowApplication时执行,且必须在将工作流实例加载到WorkflowApplication中之前执行。在加载工作流后,此工作流通过用户的猜测继续执行。//Configuretheextensionsandlifecyclehandlers.//Dothisbeforetheinstanceisloaded.Oncetheinstanceis//loadeditistoolatetoaddextensions.ConfigureWorkflowApplication(wfApp);//Loadtheworkflow.wfApp.Load(instance);//Resumetheworkflow.wfApp.ResumeBookmark(“EnterGuess“,guess);最后,清除猜测文本框,并使窗体准备接受其他猜测。//CleartheGuesstextbox.txtGuess.Clear();txtGuess.Focus();以下示例是完整的btnGuess_Click处理程序。privatevoidbtnGuess_Click(objectsender,EventArgse){if(this.WorkflowInstanceId==Guid.Empty){MessageBox.Show(“Pleaseselectaworkflow.“);return;}intguess;if(!Int.TryParse(txtGuess.Text,outguess)){MessageBox.Show(“Pleaseenteraninteger.“);txtGuess.SelectAll();txtGuess.Focus();return;}WorkflowApplicationInstanceinstance=WorkflowApplication.GetInstance(this.WorkflowInstanceId,store);//UsethepersistedWorkflowIdentitytoretrievethecorrectworkflow//definitionfromthedictionary.Activitywf=WorkflowVersionMap.GetWorkflowDefinition(instance.DefinitionIdentity);//AssociatetheWorkflowApplicationwiththecorrectdefinitionWorkflowApplicationwfApp=newWorkflowApplication(wf,instance.DefinitionIdentity);//Configuretheextensionsandlifecyclehandlers.//Dothisbeforetheinstanceisloaded.Oncetheinstanceis//loadeditistoolate
⒐如何:创建工作流控制台应用程序
⒑在“文件”菜单上,指向“新建”,然后选择“项目…”。此时将打开“新建项目”对话框。在“已安装的模板”窗格中,根据您的首选语言从“VisualC#”或“VisualBasic”组选择“工作流”。在中间窗格中,选择“工作流控制台应用程序”。在“名称”框中,输入项目的描述性名称以便于识别。在“位置”框中,输入要保存项目的目录,或者单击“浏览”以导航到该目录。在“解决方案”框中,输入新解决方案的名称。单击“确定”创建应用程序。注意:如果要向现有解决方案添加工作流控制台应用程序,请在VisualStudio打开该解决方案,在“解决方案资源管理器”右击该解决方案,然后选择“添加”、“新建项目…”以打开“新建项目”对话框。按照此过程中的上述步骤继续操作。该项目模板将在XAML中创建一个工作流定义并在源代码中创建控制台应用程序定义。工作流设计器将打开并显示所创建工作流的画布。若要编写工作流,请将活动或其他工作流项从工具箱拖到工作流中的设计图面。