地震数据专家[DataEQ]地震会商技术系统

DatistEQ之条件分支

2021-09-26  本文已影响0人  了无_数据科学

前天培训过程中,小厉同学提出一个需求。在流程运行过程中,常使用数据库、FTP等节点,然而由于网络不稳定,使得数据源得不到保证,导致整个流程中止运行。希望能够起用一个备用分支,让流程能够正常发出消息,通知用户流程的运行状况。

需求类似于DatistEQ中条件分支流程。条件分支,由IF设置节点与运行器(文件收集器、顺序运行器、条件运行器)相结合,共同组建分支流程。
IF节点为数据处理节点,必须位于数据源节点之后,依据节点所在数据情况,运行相应的分支流程。
运行器节点,需运行方式设置为分支流程。

示例流程中,IF节点与文件收集器构成条件分支。其中,上面条件分支流程,设置的条件为当前节点有数据时运行;下面分支为ELSE分支。运行时,因上面条件分支没有数据,运行时执行ELSE分支。

条件分支流程
伪代码解释如下:

If(IF1节点 有数据) //示例中,为假,不运行
{
    运行:X1节点->文件收集器
}
ELSE
{
    运行:X2节点->文件收集器
} 
运行时

小厉同学需求基本与条件分支相当。分支的范畴也超出了分支语句的运行基础,IF条件的位置,需求扩展到数据源节点之中。V2021 Q3中,对数据源节点进行升级,使它们具有IF节点的能力,可以与运行器共同组件分支流程。

条件分支节点 示例

若多个条件分支存在时,新版中增加了“仅执行第一个满足条件的分支”。

伪代码解释如下:
默认,不勾选:

If(IF1节点 有数据)
{
    运行:X1节点->文件收集器
}

If(IF2节点 有数据)
{
    运行:X1节点->文件收集器
}
ELSE
{
    运行:X2节点->文件收集器
} 

勾选:
If(IF1节点 有数据)
{
    运行:X1节点->文件收集器
}
ELSE If(IF2节点 有数据)  //<-差异
{
    运行:X1节点->文件收集器
}
ELSE
{
    运行:X2节点->文件收集器
} 

此外,若运行器存在多个前节点,且运行器的运行模式设置成了分支流程。在分支流程列表中,未勾选的分支流程,将不被执行。

上一篇下一篇

猜你喜欢

热点阅读