递归在算法在工作流程引擎中的应用
递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象.递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写程序能使程序变得简洁和清晰.。
递归在工作流程引擎中有广泛的应用,以以下事例来说明:
应用一:退回到指定的节点,要把当前节电与退回节点之间的节点数据清空。
/// <summary>
/// 递ÌY归¨¦删¦?除y两¢?个?节¨²点Ì?之?间?的Ì?数ºy据Y
/// </summary>
/// <param name="nds">到Ì?达ä?的Ì?节¨²点Ì?集¡¥合?</param>
publicvoid DeleteToNodesData(Nodes nds)
{
/*开a始º?遍À¨¦历¤¨²到Ì?达ä?的Ì?节¨²点Ì?集¡¥合?*/
foreach (Node nd in nds)
{
Work wk = nd.HisWork;
wk.OID = this.WorkID;
if (wk.Delete() == 0)
{
wk.FID = this.WorkID;
if (wk.Delete(WorkAttr.FID, this.WorkID) == 0)
continue;
}
/*说¦Ì明¡Â:已°?经-删¦?除y该?节¨²点Ì?数ºy据Y。¡ê*/
DBAccess.RunSQL("DELETE WF_GenerWorkerList WHERE (WorkID=" + this.WorkID + " OR FID=" + this.WorkID + ") AND FK_Node=" + nd.NodeID);
//删¦?除y正y常¡ê的Ì?垃¤?圾?数ºy据Y。¡ê
DBAccess.RunSQL("DELETE WF_GenerWorkFlow WHERE WorkID NOT IN (SELECT WorkID FROM WF_GenerWorkerList )");
DBAccess.RunSQL("DELETE WF_GenerFH WHERE FID NOT IN (SELECT FID FROM WF_GenerWorkerList)");
DeleteToNodesData(nd.HisToNodes);
}
}
|
应用二:在分合流程过程中,流程结束时,要根据用户的需要判断并杀掉没有完成的进程。
/// <summary>
/// 结¨¢束º?流¢¡Â程¨¬
/// </summary>
/// <returns></returns>
publicstring DoFlowOver()
{
// 建¡§立¢¡é流¢¡Â程¨¬事º?例¤y。¡ê
GenerWorkFlow gwf = newGenerWorkFlow(this.WorkID);
Node nd = newNode(gwf.FK_Node);
string msg = this.BeforeFlowOver();
//先¨¨让¨?它¨¹的Ì?子Á¨®流¢¡Â程¨¬结¨¢束º?。¡ê
WorkerLists wls = newWorkerLists();
wls.Retrieve(WorkerListAttr.FID, this.WorkID);
foreach (WorkerList wl in wls)
{
WorkFlow wf = newWorkFlow(wl.FK_Flow, wl.WorkID);
wf.DoFlowOver();
}
。。。。。。。。。。。。。。
}
|
应用三:根据当前节点的ID,向上追溯一个分流节点。
/// <summary>
/// 获?取¨?它¨¹的Ì?上¦?一°?步?的Ì?分¤?流¢¡Â点Ì?
/// </summary>
privateNode _GetHisPriFLNode(Nodes nds)
{
foreach (Node mynd in nds)
{
if (mynd.IsHL)
return mynd;
else
return _GetHisPriFLNode(mynd.HisFromNodes);
}
returnnull;
}
/// <summary>
/// 它¨¹的Ì?上¦?一°?步?分¤?流¢¡Â节¨²点Ì?
/// </summary>
publicNode HisPriFLNode
{
get
{
return _GetHisPriFLNode(this.HisFromNodes);
}
}
|
分享到:
相关推荐
网络爬虫:通过Python实现新浪...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
如果您下载了本程序,但是该程序...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
采用docker部署爬虫模块、量化...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
试题爬取通过WebCollector爬虫...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
爬虫(影视数据和用户数据),...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
使用ETL工具将数据存储到分布式...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
作为互联网应用中最具技术含量的应用之一,优秀的搜索引擎需要复杂的架构 和算法,以此来支撑对海量数据的获取、 存储,以及对用户查询的快速而准确 地响应。 从架构层面,搜索引擎需要能够对以百亿计的海量网页进行...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...