CN111667199A - 工作流构建方法、装置、计算机设备和存储介质 - Google Patents

工作流构建方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111667199A
CN111667199A CN202010611466.0A CN202010611466A CN111667199A CN 111667199 A CN111667199 A CN 111667199A CN 202010611466 A CN202010611466 A CN 202010611466A CN 111667199 A CN111667199 A CN 111667199A
Authority
CN
China
Prior art keywords
workflow
node
event
data
configuration file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010611466.0A
Other languages
English (en)
Inventor
李书东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010611466.0A priority Critical patent/CN111667199A/zh
Publication of CN111667199A publication Critical patent/CN111667199A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Abstract

本申请涉及大数据,提供了一种工作流构建方法、装置、计算机设备和存储介质。所述方法包括:获取工作流组件配置文件;根据所述工作流组件配置文件初始化得到工作流画布;获取节点数据源与连线数据源;根据所述工作流组件配置文件中的节点展示属性,确定所述节点数据源中每个节点数据对应的节点样式,并根据所述每个节点数据按照相应节点样式,在所述工作流画布上构建相应工作流节点;根据所述工作流组件配置文件中的连线展示属性、所述连线数据源中的每个连线数据,以及所述每个连线数据对应的工作流节点,在所述工作流画布上构建相应的工作流连线,得到相应的工作流。采用本方法能够提高工作流构建效率。

Description

工作流构建方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种工作流构建方法、装置、计算机设备和存储介质。
背景技术
工作流是一种能够可视化显示、且用于直观表征不同工作流节点之间的关联关系的节点集合,工作流广泛应用于医疗、金融、政务、交通、工业、物流与人工智能等各行各业,并具体广泛应用于任务依赖关系、数据依赖关系、继承关系与血缘关系等各种应用场景中。由此,如何构建工作流是值得关注的问题。目前,通常是基于jquery(一个JavaScript框架)和dom(Document Object Model,文档对象模型)进行工作流的手动绘制。但是,该种工作流构建方式,构建过程复杂,操作链路冗长,从而存在工作流构建效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高工作流构建效率的工作流构建方法、装置、计算机设备和存储介质。
一种工作流构建方法,所述方法包括:
获取工作流组件配置文件;
根据所述工作流组件配置文件初始化得到工作流画布;
获取节点数据源与连线数据源;
根据所述工作流组件配置文件中的节点展示属性,确定所述节点数据源中每个节点数据对应的节点样式,并根据所述每个节点数据按照相应节点样式,在所述工作流画布上构建相应工作流节点;
根据所述工作流组件配置文件中的连线展示属性、所述连线数据源中的每个连线数据,以及所述每个连线数据对应的工作流节点,在所述工作流画布上构建相应的工作流连线,得到相应的工作流。
一种工作流构建装置,所述装置包括:
第一获取模块,用于获取工作流组件配置文件;
画布构建模块,用于根据所述工作流组件配置文件初始化得到工作流画布;
第二获取模块,用于获取节点数据源与连线数据源;
节点构建模块,用于根据所述工作流组件配置文件中的节点展示属性,确定所述节点数据源中每个节点数据对应的节点样式,并根据所述每个节点数据按照相应节点样式,在所述工作流画布上构建相应工作流节点;
工作流构建模块,用于根据所述工作流组件配置文件中的连线展示属性、所述连线数据源中的每个连线数据,以及所述每个连线数据对应的工作流节点,在所述工作流画布上构建相应的工作流连线,得到相应的工作流。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取工作流组件配置文件;
根据所述工作流组件配置文件初始化得到工作流画布;
获取节点数据源与连线数据源;
根据所述工作流组件配置文件中的节点展示属性,确定所述节点数据源中每个节点数据对应的节点样式,并根据所述每个节点数据按照相应节点样式,在所述工作流画布上构建相应工作流节点;
根据所述工作流组件配置文件中的连线展示属性、所述连线数据源中的每个连线数据,以及所述每个连线数据对应的工作流节点,在所述工作流画布上构建相应的工作流连线,得到相应的工作流。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取工作流组件配置文件;
根据所述工作流组件配置文件初始化得到工作流画布;
获取节点数据源与连线数据源;
根据所述工作流组件配置文件中的节点展示属性,确定所述节点数据源中每个节点数据对应的节点样式,并根据所述每个节点数据按照相应节点样式,在所述工作流画布上构建相应工作流节点;
根据所述工作流组件配置文件中的连线展示属性、所述连线数据源中的每个连线数据,以及所述每个连线数据对应的工作流节点,在所述工作流画布上构建相应的工作流连线,得到相应的工作流。
上述工作流构建方法、装置、计算机设备和存储介质,根据预先配置得到的工作流组件配置文件自动初始化得到工作流画布,针对所获取到的节点数据源与连线数据源,根据该工作流组件配置文件中的节点展示属性确定节点样式,并根据节点数据源中的每个节点数据按照相应节点样式,在初始化得到的工作流画布上自动构建相应工作流节点,进一步地,根据工作流组件配置文件中的连线展示属性与连线数据源中的每个连线数据,在工作流画布上自动构建相应的工作流连线,以通过工作流连线将相应的工作流节点进行连接得到所构建的工作流。这样,基于工作流组件配置文件自动初始化得到工作流画布,并基于节点展示属性与连线展示属性,按照节点数据源与连线数据源在工作流画布上自动构建工作流,能够降低操作复杂度与操作链路,从而提高工作流构建效率。
附图说明
图1为一个实施例中工作流构建方法的应用环境图;
图2为一个实施例中工作流构建方法的流程示意图;
图3为一个实施例中工作流节点分组示意图;
图4为一个实施例中基于节点展示属性与连线展示属性构建工作流的原理示意图;
图5为一个实施例中基于事件对工作流进行管理的原理示意图;
图6为一个实施例中基于局部更新与函数节流对工作流进行更新优化的原理示意图;
图7为一个实施例中基于局部更新对工作流进行更新优化的效果示意图;
图8为另一个实施例中工作流构建方法的流程示意图;
图9为一个实施例中对工作流进行全生命周期管理的原理示意图;
图10为一个实施例中工作流组件的界面示意图;
图11为一个实施例中按照工作流节点对工作流进行拓展的效果示意图;
图12为一个实施例中对工作流进行自动排布的效果示意图;
图13为一个实施例中对工作流进行快捷操作的效果示意图;
图14为一个实施例中对节点样式进行更新的效果示意图;
图15为一个实施例中工作流组件存在海量工作流节点时的展示界面图;
图16为一个实施例中工作流构建装置的结构框图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的工作流构建方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102获取工作流组件配置文件,根据该工作流组件配置文件初始化得到工作流画布,获取节点数据源与连线数据源,根据工作流组件配置文件中的节点展示属性确定节点样式,根据节点数据源中每个节点数据按照相应节点样式,在工作流画布上构建相应的工作流节点,并根据工作流组件配置文件中的连线展示属性、连线数据源中的每个连线数据,以及每个连线数据对应的工作流节点,在工作流画布上构建相应的工作流连线,以通过所构建的工作流连线将相应的工作流节点进行连接,得到相应的工作流。其中,终端102可从服务器104获取工作流组件配置文件、节点数据源与连线数据源等,还可将所构建得到的工作流存储至服务器104。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种工作流构建方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,获取工作流组件配置文件。
其中,工作流组件配置文件是指工作流组件对应的配置文件。工作流组件配置文件可包括支持工作流组件实现工作流的构建与管理等相关操作的程序代码与工具,具体可包括节点展示属性与连线展示属性,还可包括多个工作流事件,以及每个工作流事件对应的事件响应函数。工作流组件是用于构建工作流的组件或工具。可以理解,组件是前端一系列组件化功能的组合,在进行前端开发时,可通过简单的组件组合快速完成页面的开发。
具体地,终端动态检测用户的工作流构建触发操作,当检测到工作流构建触发操作时,根据所检测到的工作流构建触发操作获取相应的工作流组件配置文件。工作流构建触发操作是指用于触发工作流构建流程的操作,具体可以是用户请求访问用于构建工作流的浏览器或浏览器中的网页,也即是用户请求终端加载并展示用于构建工作流的浏览器或浏览器中的网页。
在一个实施例中,终端从服务器获取工作流组件配置文件。若终端本地预存储有工作流组件配置文件,终端也可获取本地预存储的工作流组件配置文件。工作流组件配置文件是在工作流组件的配置过程中动态配置得到的。
在一个实施例中,工作流组件的配置过程中所涉及的环境要求包括:操作系统为v10以上的MacOS系统(一种运行于苹果系列电脑的操作系统),或者,win7及其以上的windows系统(一种微软操作系统),用于配置工作流组件的配置设备的内存需大于或等于2G,所涉及的软件或工具包括Nodejs(一种运行/开发环境)、Npm包管理工具/库(NodePackage Manager,即node包管理器,一个程序包管理和分发的管理工具)、VSCode(VisualStudio Code,一种轻量级代码编辑器)与React(一种基于javascript(一种编程语言)、支持多种类型dom或移动设备UI(User Interface,用户界面)节点输出的前端框架)。工作流组件配置过程所涉及的环境搭建流程可包括:新建并打开文件夹,通过vscode编辑器初始化包依赖配置和项目目录,安装依赖包,运行开发环境,并在文件夹下新建组件文件等。
在一个实施例中,工作流组件配置文件也可理解为组件库,通过安装组件库与引入组件等操作能够将组件库引入页面中,以便于基于该组件库初始化得到工作流组件。
步骤204,根据工作流组件配置文件初始化得到工作流画布。
其中,工作流画布是用于构建工作流的画布。具体地,终端在获取到工作流组件配置文件后,通过获取并运行工作流组件配置文件中的画布构建实例来初始化得到工作流画布。画布构建实例是指用于构建画布的程序代码。
在一个实施例中,终端根据浏览器尺寸,以及浏览器尺寸与画布尺寸之间的对应关系确定画布尺寸,并按照所确定的画布尺寸根据工作流组件配置文件初始化得到工作流画布。
在一个实施例中,工作流画布的初始化与工作流的构建是基于svg实现的,也即是将svg作为图形可视化基础来构建工作流画布与工作流。其中,svg是一种可以在web网页和多种设备显示的,支持xml结构和属性配置的矢量图绘制格式,svg是具有高可配置、支持矢量、无损的图像格式,采用svg进行工作流的构建,能够保证工作流在执行缩放、拖动等操作时实现无损显示。
步骤206,获取节点数据源与连线数据源。
其中,节点数据源是包括一个或多个节点数据,每个节点数据对应一个工作流节点。连线数据源包括一个或多个连线数据,每个连线数据对应一条工作流连线。
具体地,终端根据所检测到的工作流构建触发操作,从在线网络或服务器获取数据源。终端所获取到的数据源包括节点数据源与连线数据源,或者,终端通过解析所获取到的数据源得到相应的节点数据源与连线数据源。
在一个实施例中,工作流组件配置文件中可预先指定了数据源获取路径,以便于终端按照该数据源获取路径获取相应的数据源。可以理解,工作流组件可适用于不同的应用场景,针对不同的应用场景可在工作流组件配置文件中分布配置相应的数据源获取路径。
在一个实施例中,每个节点数据包括一个节点标识、节点标题与节点数据内容,还可包括节点坐标,节点坐标可包括x坐标与y坐标。每个连线数据包括一个起始节点标识与一个结束节点标识,用于构建将起始节点标识与结束节点标识各自对应的工作流节点进行连线关联的工作流连线。
步骤208,根据工作流组件配置文件中的节点展示属性,确定节点数据源中每个节点数据对应的节点样式,并根据每个节点数据按照相应节点样式,在工作流画布上构建相应工作流节点。
其中,节点展示属性是表征工作流节点的展示样式的属性特征或属性数据。节点展示属性可理解为工作流节点模板,具体可理解为工作流节点样式模板,用于确定工作流节点在工作流画布上可视化展示时的节点样式。节点样式是指工作流节点的展示样式或形态。比如,节点展示属性指定了工作流节点的节点样式包括一个矩形框架、矩形框架的上边框中心与下边框中心分别设置有圆形连接点、矩形框架内显示有标签图像,以及矩形框架内可用于显示文本内容等。
具体地,终端从工作流组件配置文件中提取节点展示属性,以及从节点数据源中提取每个节点数据,并根据所提取出的节点展示属性确定每个节点数据对应的节点样式。终端根据每个节点数据按照所确定的相应节点样式,在工作流画布中构建相应的工作流节点,以在工作流画布上分别构建得到每个节点数据对应的工作流节点。
在一个实施例中,工作流组件配置文件中包括多个节点展示属性。终端根据当前的应用场景,从工作流组件配置文件中提取与该应用场景相匹配的节点展示属性,并基于该节点展示属性确定相应的节点样式。
在一个实施例中,终端确定节点数据源中每个节点数据的数据类型,从工作流组件配置文件中提取与每个数据类型相匹配的节点展示属性,并根据数据类型所匹配的节点展示属性,确定该数据类型对应的节点数据所对应的节点样式。可以理解,可针对不同应用场景下的每个数据类型分别预配置相应的节点展示属性,以便于按照应用场景与节点数据的数据类型,获取用于确定该节点数据对应的节点样式的节点展示属性。以应用场景为物流行业为例,节点数据的数据类型包括但不限于是加工厂信息、物流中转信息与物流装载信息等。这样,针对不同的数据类型,在工作流画布上构建不同节点样式的工作流节点,以便于通过节点样式能够直观了解相应的数据信息。
在一个实施例中,节点数据源包括一个或多个节点数据,每个节点数据包括一个节点标识、节点标题与节点数据内容,还可包括节点坐标,节点坐标可包括x坐标与y坐标。终端在按照上述方式确定每个节点数据对应的节点样式后,可按照每个节点数据对应的节点样式与节点坐标,在工作流画布的相应位置构建节点框架,并将每个节点数据的节点标识和/或节点标题填充至节点框架内,得到相应的工作流节点。每个节点数据对应的节点数据内容,可填充至相应节点框架内进行直接显示,也可隐藏显示于相应节点框架所对应的隐藏框内,以便于当光标处于工作流节点对应的节点框架处时,会在工作流画布上显示该节点框架的相应位置上,显示该节点框架对应的隐藏框与该隐藏框内的节点数据内容。以节点数据的数据类型为物流中转信息为例,节点数据对应的节点标题比如为深圳,节点数据对应的节点数据内容比如为深圳市南山区南海大道3388号。
在一个实施例中,在工作流组件配置过程中,将每个节点展示属性封装成相应节点模板实例,以便于在工作流构建过程中,终端通过获取并运行该节点模板实例能够确定相应的节点样式。
步骤210,根据工作流组件配置文件中的连线展示属性、连线数据源中的每个连线数据,以及每个连线数据对应的工作流节点,在工作流画布上构建相应的工作流连线,得到相应的工作流。
其中,连线展示属性是表征工作流连线的展示样式的属性特征或属性数据。连线展示属性还用于确定两个工作流节点之间的工作流连线的连线路径。工作流连线的展示样式也即连线样式,包括是指该工作流连线的展示样式或形态,比如实线、虚线、直线或曲线等。连线路径是基于连线展示属性,以及连线数据所对应的工作流节点在工作流画布上的位置动态确定的。每个连线数据包括一个起始节点标识与一个结束节点标识。
具体地,终端从工作流组件配置文件中提取连线展示属性,以及从连线数据源中提取每个连线数据,根据每个连线数据中的起始节点标识与结束节点标识,在工作流画布上确定该连线数据所对应的工作流节点,并根据每个连线数据所对应的工作流节点在工作流画布上的位置,以及所提取出的连线展示属性,在工作流画布上构建该连线数据对应的工作流连线,以通过该工作流连线将相应的工作流节点进行连线关联。针对每个连线数据分别构建相应的工作流连线,得到基于节点数据源与连线数据源所构建的工作流。
在一个实施例中,在工作流组件配置过程中,基于svg图像的xml格式来构建节点展示属性与连线展示属性。具体地,可基于svg的<g>、<rect>、<text>、<circle>与<image>等5种标签来构建节点展示属性,并基于svg的<g>与<path>等2种标签来构建连线展示属性,还可将构建得到的节点展示属性与连线展示属性通过<g>标签(分组标签)进行统一管理。其中,<g>标签用于管理分组,<rect>标签用于创建矩形,<image>标签用于添加图像,<text>标签用于创建文本,<circle>标签用于展示圆形结构,<path>标签用于创建连线。
图3为一个实施例中工作流节点分组示意图。如图3所示,该工作流节点组中包括两个工作流节点与一条用于连线关联该两个工作流节点的工作流连线,每个工作流节点包括<g>、<rect>、<text>、<circle>与<image>等5种标签,其中,<g>标签用于管理由<rect>、<text>、<circle>与<image>等标签构建得到的节点展示属性,<text>标签用于定义工作流节点中可显示的文本内容,如图3所示的“工作节点1”与“工作节点2”,可以理解,工作流节点中所显示的文本内容由相应节点数据确定。工作流连线包括<g>与<path>等2种标签,<g>标签用于管理由<path>标签构建得到的连线展示属性。
在一个实施例中,通过将<path>标签与二阶贝塞尔曲线相结合来创建连线展示属性。二阶贝塞尔曲线公式如下:
B(t)=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1]
其中,P0表征起始节点,P1表征中间节点,P2表征结束节点,t为取值范围为0至1内的常数值。中间节点是基于连线数据对应的起始节点与结束节点动态确定的。这样,基于连线数据对应的起始节点、中间节点与结束节点各自在工作流画布上的位置,按照上述二阶贝塞尔曲线公式能够确定相应工作流连线在工作流画布上的连线路径,然后按照连线路径与连线展示属性所指定的连线样式,能够在工作流画布上构建用于连线关联相应工作流节点的工作流连线。
在一个实施例中,工作流组件配置文件中包括多个连线展示属性。终端可根据连线数据对应的工作流节点之间的关联关系选取相应的连线展示属性。工作流节点之间的关联关系可通过连线数据直接指定,也可由终端动态确定。
在一个实施例中,在工作流组件配置过程中,将所配置得到的连线展示属性封装成相应的连线模板实例,以便于在工作流构建过程中,终端根据节点数据对应的工作流节点运行该连线模板实例,能够在工作流画布上构建相应的工作流连线。
图4为一个实施例中基于节点展示属性与连线展示属性构建工作流的原理示意图。如图4所示,节点数据源包括task1、task2与task3共三个节点数据,其中两个节点数据比如分别为{id:’task1’,title:’task1 title’,x:200,y:200,data:{}}、{id:’task3’,title:’task3 title’,x:290,y:200,data:{}},其中,id为节点数据对应的节点标识、title为节点标题,x与y分别为节点坐标中的横坐标与纵坐标,data为节点数据内容,图4所示的节点数据内容均为空,连线数据源包括两个连线数据,该两个连线数据分别为{source:’task1’,target:’task2’}、{source:’task1’,target:’task3’},其中,source表示起始节点,target表示结束节点。由此,基于图4所示的节点数据源与连线数据源,能够构建得到图4所示的工作流,其中,节点数据源用于在工作流画布中构建工作流节点,连线数据源用于在工作流画布中构建将相应工作流节点进行连线关联的工作流连线。
上述工作流构建方法,根据预先配置得到的工作流组件配置文件自动初始化得到工作流画布,针对所获取到的节点数据源与连线数据源,根据该工作流组件配置文件中的节点展示属性确定节点样式,并根据节点数据源中的每个节点数据按照相应节点样式,在初始化得到的工作流画布上自动构建相应工作流节点,进一步地,根据工作流组件配置文件中的连线展示属性与连线数据源中的每个连线数据,在工作流画布上自动构建相应的工作流连线,以通过工作流连线将相应的工作流节点进行连接得到所构建的工作流。这样,基于工作流组件配置文件自动初始化得到工作流画布,并基于节点展示属性与连线展示属性,按照节点数据源与连线数据源在工作流画布上自动构建工作流,能够降低操作复杂度与操作链路,从而提高工作流构建效率。
在一个实施例中,上述工作流构建方法还包括:对工作流进行事件绑定;检测针对工作流触发的工作流管理事件;调用工作流管理事件对应的事件响应函数对工作流进行管理。
其中,工作流管理事件是用于触发工作流管理操作的事件。事件响应函数是通过响应相应工作流管理事件来对工作流进行管理的函数。按照不同的事件划分方式可得到不同的工作流管理事件,比如工作流管理事件包括但不限于是工作流拖动、工作流尺寸变化、工作流数据全局更新、工作流单节点更新、工作流单节点拖动、工作流整体拖动、工作流节点删除、工作流节点连线、工作流连线删除、工作流节点菜单键、工作流连线菜单键等,还比如,工作流管理事件包括但不限于是拖动节点、拖动连线节点、点击节点、点击连线、缩放、自动布局、布局尺寸、鼠标滑过、删除节点、删除连线、连线与聚焦节点等。
具体地,终端根据工作流组件配置文件、节点数据源与连线数据源,按照上述方式构建得到工作流后,对该工作流进行事件绑定得到相应的工作流管理事件。终端动态检测用户针对该工作流触发的工作流管理事件,当检测到工作流管理事件后,调用工作流管理事件所对应的事件响应函数对该工作流进行相应的事件管理操作,以实现对工作流的管理。
在一个实施例中,工作流组件配置文件中包括预配置的事件与每个事件对应的事件响应函数。终端将工作流组件配置文件中的事件与所构建得到的工作流进行事件绑定,得到该工作流所绑定的工作流管理事件,以便于根据所检测到的工作流管理事件,从工作流组件配置文件调用相应的事件响应函数进行工作流管理。
在一个实施例中,工作流管理事件包括局部事件与全局事件,全局事件是与工作流画布进行绑定的事件,局部事件是与工作流节点或工作流连线进行绑定的事件,比如工作流单节点拖动是与工作流节点进行绑定的局部事件,工作流整体拖动是与工作流画布进行绑定的全局事件。工作流组件配置文件中预配置的事件是基础事件,当该基础事件与工作流画布、工作流节点或工作流连线进行绑定后,构成工作流所对应的局部事件或全局事件。比如拖动这一基础事件,当与工作流节点进行绑定时得到工作流单节点拖动这一局部事件,当与工作流画布进行绑定时得到工作流整体拖动这一全局事件,工作流单节点拖动与工作流整体拖动对应相同的事件响应函数,只是调用事件响应函数进行工作流管理时所需传入的入参不相同。
图5为一个实施例中基于事件对工作流进行管理的原理示意图。如图5所示,工作流包括task1、task2与task3共三个工作流节点,工作流节点task2通过工作流连线分别与工作流节点task1与task3进行连线关联,当终端检测到针对工作流节点task1触发的点击事件时,调用相应的事件响应函数对该工作流节点task1进行颜色突出显示,比如将该工作流节点task1的的显示背景调整为黑色。当终端检测针对工作流节点task2的拖动事件时,调用事件响应函数调整该工作流节点task2在工作流画布中的位置,并动态调整与该工作流节点task2相连接的工作流连线的连线路径。当终端检测到针对工作流触发的新建节点这一事件时,在工作流画布中新建工作流节点task4,当进一步检测到针对工作流节点task3与task4触发的连线事件时,在该工作流节点task3与task4之间构建工作流连线。由此可见,通过对工作流进行事件管理,能够基于用户的触发操作实现对画布的重新布局与渲染。
上述实施例中,通过对工作流进行事件绑定,以基于所绑定的事件对工作流进行事件管理,这样,当用户针对工作流触发工作流管理事件时,通过调用该工作流管理事件对应的事件响应函数来获取数据或操作数据,能够为用户的工作流管理操作提供准确而及时的反馈。
在一个实施例中,调用工作流管理事件对应的事件响应函数对工作流进行管理,包括:当工作流管理事件属于第一类局部事件时,在工作流管理事件中拦截事件冒泡;根据工作流对应的工作流数据确定目标节点与目标连线;调用工作流管理事件对应的事件响应函数对目标节点与目标连线进行管理。
其中,工作流组件配置文件中的事件,按照性能优化方式可划分为第一类事件、第二类事件与第三类事件,第一类事件是需要进行局部更新优化的事件,比如拖动,第二类事件是需要进行函数节流优化的事件,比如缩放、布局尺寸、鼠标滑过、聚焦节点与拖动等可能存在持续时间的连续性事件,第三类事件是无需进行性能优化的事件,比如点击、自动布局、删除等非连续性事件。将第一类事件与工作流画布进行绑定得到第一类全局事件,将第一类事件与工作流节点或工作流连线进行绑定得到第一类局部事件,依此类推,工作流所绑定的工作流管理事件包括第一类全局事件、第一类局部事件、第二类全局事件、第二类局部事件、第三类全局事件与第三类局部事件。目标节点与目标连线,是工作流中待通过工作流管理事件对应的事件响应函数进行管理的工作流节点与工作流连线。
具体地,终端在检测到针对工作流触发的工作流管理事件后,将该工作流管理事件与工作流所绑定的各类事件进行匹配。当判定工作流管理事件属于第一类局部事件时,终端则对该工作流管理事件的事件冒泡操作进行拦截,以阻止将该工作流管理事件传播至第一类全局事件中的相应工作流管理事件,能够避免对工作流进行不必要的全局更新。进一步地,终端根据工作流对应的工作流数据,从该工作流中确定当前待管理的目标节点与目标连线,并调用当前检测到的工作流管理事件所对应的事件响应函数,对该目标节点与目标连线进行管理。
在一个实施例中,工作流对应的工作流数据包括该工作流对应的节点数据源与连线数据源。当工作流管理事件属于第一类局部事件时,终端确定该工作流管理事件所绑定的工作流节点,并从工作流对应的节点数据源与连线数据源中,确定与该工作流节点存在连线关联关系的工作流节点和/或工作流连线,并将从节点数据源中所确定的工作流节点,以及工作流管理事件所绑定的工作流节点确定为目标节点,将从连线数据源中所确定的工作流连线确定为目标连线。
举例说明,以图4所示的工作流为例,假设用户针对工作流中的工作流节点task1触发工作流单节点拖动这一第一类局部事件,按照上述方式能够将工作流节点task1确定为目标节点,并将图4所示的且与该目标节点存在连线关联的两条工作流连线确定为目标连线。进一步地,终端调用工作流单节点拖动这一第一类局部事件对应的事件响应函数,更新该目标节点与目标连线所对应的数据。可以理解,通过事件冒泡拦截,能够避免调用工作流画布所绑定的工作流整体拖动这一第一类全局事件所对应的事件响应函数,对包括工作流节点task2与task3在内的整个工作流进行动态更新。这样,在每次节点拖动时,通过计算目标节点和节点相关连线数据,得出所需更新的目标节点和目标连线,然后对工作流画布进行局部更新。可以理解,在局部更新时,终端可不通过react生命周期计算节点和连线数据,只进行局部更新,在更新完成后将数据同步至react状态中,这样在保留组件生命周期的同时保证工作流的局部更新。
上述实施例中,当工作流管理事件为第一类局部事件时,通过拦截事件冒泡来实现工作流的局部更新,避免进行不必要的全局更新,能够提升工作流的性能。
在一个实施例中,调用工作流管理事件对应的事件响应函数对工作流进行管理,还包括:当工作流管理事件属于第二类事件时,统计工作流管理事件的间隔时长;当间隔时长大于或等于预设时长时,调用工作流管理事件对应的事件响应函数对工作流进行管理。
其中,工作流所绑定的事件包括第一类事件、第二类事件与第三类事件,其中,第一类事件包括第一类全局事件与第一类局部事件,第二类事件包括第二类全局事件与第二类局部事件,第三类事件包括第三类全局事件与第三类局部事件。工作流管理事件的间隔时长是指相邻两次检测到工作流管理事件的时间间隔,以拖动节点这一事件为例,间隔时长是指用户持续拖动节点时暂停的时间长度。若间隔时长大于或等于预设时长则会将状态同步至react状态管理中,若间隔时长小于预设时长则不会将状态同步至react状态管理中,防止一段时间内的多次同步,提高同步效率。将状态同步至react状态管理中具体可以是通过调用工作流管理事件对应的事件响应函数实现的。预设时长是触发函数节流的最低时长,可定义,比如200毫秒。
具体地,在检测到针对工作流触发的工作流管理事件后,终端将该工作流管理事件与该工作流所绑定的各类事件进行匹配。当判定该工作流管理事件属于第二类事件时,也即是当判定该工作流管理事件属于第二类全局事件或第二类局部事件时,终端统计该工作流管理事件的间隔时长,并将统计的间隔时长与预设时长进行比较。当判定间隔时长大于或等于预设时长时,终端调用该工作流管理事件所对应的事件响应函数对工作流进行相应的工作流管理操作。
在一个实施例中,当判定当前所检测到的工作流管理事件属于第二类事件、且属于第一类局部事件时,终端对该工作流管理事件进行事件冒泡拦截,并统计该工作流管理事件的间隔时长,以及按照上述方式确定当前待管理的目标节点与目标连线。进一步地,当统计的间隔时长大于或等于预设时长时,终端调用该工作流管理事件对应的事件响应函数,对该当前待管理的目标节点与目标连线进行管理。
图6为一个实施例中基于局部更新与函数节流对工作流进行更新优化的原理示意图。如图6所示,当针对工作流触发拖动节点与连接连线等触发更新操作时,通过拦截事件冒泡来阻断全局更新,并触发局部更新,在局部更新过程中根据工作流管理事件的间隔时长与预设时长触发节流,并在触发节流的基础上调用相应事件响应函数来完成更新。这样,通过函数节流的方式对工作流进行更新,能够降低工作流的更新频率,从而能够提升工作流的性能。
图7为一个实施例中基于局部更新对工作流进行更新优化的效果示意图。如图7所示,工作流包括任务节点1、测试节点2、目标测试节点、任务节点4与测试节点5共五个工作流节点,任务节点1与任务节点4分别通过工作流连线与目标测试节点进行连线关联,任务节点4通过工作流连线与测试节点5进行连线关联,任务节点1通过工作流连线与测试节点2进行连线关联。当用户通过鼠标在工作流画布中拖动目标测试节点时,触发该工作流所绑定的工作流单节点拖动这一第一类局部事件,终端则按照上述方式将目标测试节点确定为目标节点,将该目标节点所连接的两条工作流连线确定为目标连线,并调用工作流单节点拖动这一第一类局部事件所对应的事件响应函数,对该目标节点与目标连线进行更新,以实现工作流的局部更新,能够提升浏览器的性能。如图7所示,目标节点与目标连线在工作流画布中所处的区域为重绘渲染区域,对该重绘渲染区域进行浏览器性能测试,由测试结果可知,由于工作流中只更新了拖动节点与该节点所连接的工作流连线,该工作流画布的渲染帧率稳定在60fps(每秒传输帧数),进行工作流局部更新时所需占用的GPU内存较低,由此可见,通过局部更新优化,提升了浏览器性能与工作流性能。
上述实施例中,基于工作流管理事件的间隔时长与预设时长,确定相应事件响应函数的调用时机,以实现函数节流,降低工作流的更新频率,从而能够提高工作流的性能。
在一个实施例中,上述工作流构建方法还包括:检测针对工作流触发的工作流卸载事件;调用工作流卸载事件对应的事件响应函数,对工作流进行事件解绑与数据清理。
其中,工作流卸载事件是用于触发工作流卸载操作的事件。当用户请求关闭工作流组件所对应的浏览器或网页时,可触发相应的工作流卸载事件。
具体地,终端在构建得到工作流后,还将该工作流与工作流卸载事件进行绑定。进一步地,终端实时检测针对工作流触发的工作流卸载事件,当检测到工作流卸载事件时,调用该工作流卸载事件对应的事件响应函数,解除该工作流所绑定的事件,并对该工作流在浏览器与终端本地所存储的工作流数据进行数据清理。
在一个实施例中,终端在调用工作流卸载事件对应的事件响应函数对工作流进行事件解绑与数据清理之前,将工作流画布上当前展示的工作流所对应的工作流数据存储至服务器,以便于用户想要再次构建该工作流时,终端能够从服务器直接获取该工作流数据,并基于该工作流数据还原相应的工作流。
上述实施例中,通过对工作流绑定工作流卸载事件,以便于在需要卸载工作流时,调用工作流卸载事件对应的事件响应函数,对该工作流进行事件解绑与数据清理等操作。
在一个实施例中,调用工作流管理事件对应的事件响应函数对工作流进行管理,包括:获取工作流管理事件对应的对象数据;将对象数据作为工作流管理事件对应的事件响应函数的入参,并通过工作流管理事件对应的接口调用事件响应函数;通过事件响应函数根据对象数据对工作流进行管理。
其中,对象数据是指当前所需更新的工作流对象所对应的数据,工作流对象包括工作流本身、工作流中的工作流节点与工作流连线等。对象数据具体可根据工作流管理事件与工作流管理事件所对应的工作流对象来动态确定。
具体地,在检测到针对工作流触发的工作流管理事件后,终端确定该工作流管理事件所对应的工作流对象,并获取每个工作流对象所对应的对象数据,作为该工作流管理事件对应的对象数据。进一步地,终端通过针对该工作流管理事件预配置的接口调用相应的事件响应函数,将所获取到的对象数据作为该事件响应函数的入参,并通过该事件响应函数根据该对象数据对该工作流管理事件进行响应,以实现对工作流的管理。
在一个实施例中,在工作流组件配置过程中,针对工作流组件配置文件中的每个事件预配置相应的接口,这样,若工作流中的多个工作流对象与工作流组件配置文件中的同一个事件进行绑定,则在工作流构建过程中,针对该多个工作流对象各自绑定该事件所得到的工作流管理事件,均通过该同一个事件所对应的接口相应相同的事件响应函数。这样,无需针对针对每个工作流管理事件分别预配置相应的事件响应函数与接口,能够在提高工作流代码开发协作效率的同事,针对工作流提供更多的操作方式。
在一个实施例中,在工作流更新过程中,终端能够通过工作流管理事件所对应的接口调用相应的事件响应函数,以实现工作流的更新。终端将工作流管理事件对应的对象数据,采用数组数据的形式通过接口传入相应事件响应函数。
在一个实施例中,终端通过点击事件对鼠标点击节点与点击连线等进行事件管理。以点击节点的点击事件为例,终端监听svg单个节点的<g>和<rect>标签点击事件,并基于点击事件获取该事件目标的节点标识与节点数据内容等节点数据。终端通过连线事件与删除连线事件对工作流连线进行事件管理。以连线事件为例,终端获取连线事件对应的节点标识、连线标识与连线方向信息等,并通过连线标识对应的工作流连线按照连线方向信息,将节点标识所对应的工作流节点进行连线关联。终端通过鼠标滑过与鼠标移开对工作流进行事件管理。以鼠标滑过事件为例,终端监听鼠标滑过节点的事件,并基于所监听到的事件获取鼠标坐标、节点标识与节点数据内容,以便于向用户显示所获取到的数据。
终端通过监听鼠标滚动与拖拽事件对工作流进行工作流缩放与拖动单个节点等管理操作。以工作流缩放为例,终端在监听到鼠标滚动事件时,获取鼠标坐标与工作流全部信息等,以针对单个节点的拖拽事件为例,终端在监听到针对工作流节点的拖拽事件时,获取该节点的节点标识等数据。终端通过监听工作流画布的尺寸变化来重新绘制整个工作流。终端在监听到鼠标滚动或浏览器尺寸变化时,判定工作流画布的尺寸发生变化,并重新读取变化的工作流画布外部的dom大小,以便于基于重新读取的dom大小重新绘制工作流画布,并基于重新绘制的工作流画布动态调整工作流。
上述实施例中,针对工作流所绑定的工作流管理事件分别预配置相应的接口,以便于通过接口调用相应的事件响应函数来进行事件响应,这样,无需针对每个工作流管理事件分别配置相应的事件响应函数,能够降低开发成本,节省开发时间。
在一个实施例中,上述工作流构建方法还包括:检测针对工作流触发的节点样式更新操作;根据节点样式更新操作获取目标节点展示属性;按照目标节点展示属性更新工作流中各工作流节点的节点样式。
其中,节点样式更新操作是用于触发节点样式更新流程的操作,具体可以是针对工作流画布上的预设触发控件的触发操作。具体地,终端动态检测用户针对当前展示的工作流触发的节点样式更新操作。当检测到节点样式更新操作时,根据所检测到的节点样式更新操作获取相应的目标节点展示属性,并根据该目标节点展示属性确定目标节点样式,并按照目标节点样式动态更新当前展示的工作流中各工作流节点当前对应的节点样式,也即是将工作流中各工作流节点的节点样式更新为目标节点样式,以实现对工作流的节点样式的更新。
上述实施例中,基于节点样式更新操作获取目标节点展示属性,并基于目标节点展示属性自动更新工作流中各工作流节点的节点样式,以便于快速实现节点样式的动态更新。
如图8所示,在一个实施例中,提供了一种工作流构建方法,该方法具体包括以下步骤:
步骤802,获取工作流组件配置文件。
步骤804,根据工作流组件配置文件初始化得到工作流画布。
步骤806,获取节点数据源与连线数据源。
步骤808,根据工作流组件配置文件中的节点展示属性,确定节点数据源中每个节点数据对应的节点样式,并根据每个节点数据按照相应节点样式,在工作流画布上构建相应工作流节点。
步骤810,根据工作流组件配置文件中的连线展示属性、连线数据源中的每个连线数据,以及每个连线数据对应的工作流节点,在工作流画布上构建相应的工作流连线,得到相应的工作流。
步骤812,对工作流进行事件绑定。
步骤814,检测针对工作流触发的工作流管理事件。
步骤816,当工作流管理事件属于第一类局部事件时,在工作流管理事件中拦截事件冒泡。
步骤818,根据工作流对应的工作流数据确定目标节点与目标连线。
步骤820,调用工作流管理事件对应的事件响应函数对目标节点与目标连线进行管理。
步骤822,当工作流管理事件属于第二类事件时,统计工作流管理事件的间隔时长。
步骤824,当间隔时长大于或等于预设时长时,调用工作流管理事件对应的事件响应函数对工作流进行管理。
步骤826,检测针对工作流触发的工作流卸载事件。
步骤828,调用工作流卸载事件对应的事件响应函数,对工作流进行事件解绑与数据清理。
上述实施例中,基于工作流组件配置文件、节点数据源与连线数据源,自动构建工作流,能够提高工作流构建效率,而通过对工作流进行事件绑定,以基于所绑定的事件对工作流进行全生命周期管理,且在基于事件进行工作流管理的过程中,对生命周期事件进行局部更新与函数节流等更新优化,能够实现工作流的高性能、多功能与多场景适配等效果。
可以理解,本申请中一个或多个实施例中提供的基于模板构建工作流的工作流构建方法,相较于现有的基于命令式构建工作流的方式,存在构建简单、方便管理、无需选择器操作即可实现工作流的更新,以及使用react组件状态进行数据管理等优势,能够降低工作流构建与管理成本,降低工作流更新难度。
图9为一个实施例中对工作流进行全生命周期管理的原理示意图。如图9所示,工作流生命周期包括工作流构建、事件绑定、组件更新与工作流卸载等。其中,组件更新具体可以是指基于工作流所绑定的事件,对工作流进行整体或局部更新。可以理解,类似于图9所示的工作流生命周期,组件的生命周期包括组件构建、事件绑定、组件更新优化与组件卸载等。
在一个实施例中,工作流组件基于svg与react进行构建,能够提供react的jsx书写方式,并支持react生命周期管理。可理解,基于react框架与svg高性能图像格式的工作流组件,能够适用于很多系统,且能够快速构建多节点、且存在复杂关联关系的工作流。
在一个实施例中,在基于工作流组件配置文件构建工作流的过程中,终端在基于工作流组件配置文件构建得到工作流画布后,基于用户进一步触发的工作流构建操作才会在工作流画布上进一步构建相应的工作流,或者,终端按照工作流组件配置文件中的节点展示属性、连线展示属性与连线数据源,在工作流画布上构建尚未与节点数据源相关联的工作流,在此不作具体限定。可以理解,终端根据工作流组件配置文件初始构建得到的工作流的形式,具体可以依据当前的应用场景而定。
在一个实施例中,上述一个或多个实施例中由终端执行的操作,具体可以由终端通过工作流组件配置文件所对应的工作流组件来执行。该工作流组件是能够用于控制某种工作状态与处理工作关联的可视化工具。该工作流组件具体可用于处理多任务的复杂依赖关系的描述,也即可用于任务视图中多个任务的相关关联展示与多任务排版,也可用于处理继承关系、血缘关系中的节点关联展示,还可用于与流程、流程间关系相关的web前端展示与操作,比如节点的删除、新增与画布尺寸缩放等。
图10为一个实施例中工作流组件的界面示意图。如图10所示,工作流组件包括操作区与显示区两个区域组成部分,其中,操作区包括节点控制区、排列控制区、缩放功能区、获取数据与切换节点等区域,节点控制区包括用于随机生成工作流节点的节点操作控件、用于在特定工作流节点后新增工作流节点的自定义操作控件与刷新操作控件,排列控制区包括用于对工作流进行自动排列的自动排列操作控件、用于撤销对工作流的自动排列操作的自动排列操作控件与用于自动定位的定位操作控件,缩放功能区包括用于对工作流画布进行尺寸放大的放大操作控件、用于随工作流画布进行尺寸缩小的缩小操作控件,以及用于还原工作流画布尺寸的还原操作控件。
进一步地,显示区用于显示通过工作流组件在工作流画布构建得到的工作流,如图10所示,工作流包括工作流节点与工作流连线,工作流连线用于表征工作流节点之间的关系。可以理解,图10所示的工作流是基于工作流组件配置文件直接初始化得到的、且尚未与实际应用场景下的节点数据源相关联的工作流。值得说明的是,图10所示的工作流节点数量与工作流节点之间的连线关系仅作为示例,并不用于具体限定。
上述工作流组件能够实现下述功能:展示节点和连线、整体拖拽、连线拖拽与单个节点拖拽、区域缩放、整体缩放、还原缩放、连线、节点坐标受控、节点名称、描述、状态等不受控、自动节点布局、布局步骤撤销、提供组件创建方式、模板创建方式与局部渲染方式等。
图11为一个实施例中按照工作流节点对工作流进行拓展的效果示意图。图11中标号1102对应的子图为初始得到的工作流组件的部分界面示意图,标号1104对应的子图是按照工作流节点对工作流进行节点拓展后所得到的界面示意图。其中,终端在检测到用户针对节点标识为“特定任务名称”的工作流节点触发的点击事件后,若进一步检测到用户针对操作区中的自定义操作控件的触发操作,则在该工作流节点的基础上自动拓展下一个工作流节点,且在该工作流节点与新增的下一个工作流节点之间构建新的工作流连线。
图12为一个实施例中对工作流进行自动排布的效果示意图。图12中标号1202对应的子图初始得到的工作流组件的部分界面示意图,该工作流组件中当前展示的工作流中的工作流连线较为复杂,也即是该工作流的布局较为复杂。终端根据用户针对自动排列操作控件的触发操作,对标号1202对应的子图中所示的工作流进行自动排布,能够自动完成工作流的复杂布局的简化,得到标号1204所示的工作流节点间的连线关系清晰的工作流。在一个实施例中,当终端根据用户针对自动排列操作控件的触发操作,对工作流进行自动布局时,需要调用第三方库来实现工作流的自动排布。
图13为一个实施例中对工作流进行快捷操作的效果示意图。如图13所示,终端根据用户针对目标节点的触发操作,能够实现对目标节点的缩放与拖动,终端还能够按照工作流节点实现节点数据的快速查找。
图14为一个实施例中对节点样式进行更新的效果示意图。终端在检测到用户针对操作区的切换节点操作控件的触发操作时,根据针对工作流组件预配置的节点展示属性,动态调整当前展示的工作流的节点样式与布局样式。图10所示的工作流是调整节点样式之前的工作流,对工作流进行样式调整后得到图14所示的工作流。
图15为一个实施例中工作流组件存在海量工作流节点时的展示界面图。如图15所示,该工作流组件能够支持成百上千的工作流节点的展示与操作,由此体现了该工作流组件具备高性能。
在一个实施例中,上述一个或多个实施例中所涉及的工作流组件,可应用于以下场景:作为应用于工作流视图与数据展示等应用场景的工作流管理组件、用于在数据依赖关系与血缘关系等应用场景中进行数据视图管理、用于在任务历史数据展示等应用场景中进行任务描述,或者,对其他可用工作流展示的数据形式构建工作流并进行展示的应用场景在此不一一列举。在一个实施例中,上述工作流组件可应用于大数据套件系统。
应该理解的是,虽然图2与图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2与图8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图16所示,提供了一种工作流构建装置1600,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:第一获取模块1601、画布构建模块1602、第二获取模块1603、节点构建模块1604和工作流构建模块1605,其中:
第一获取模块1601,用于获取工作流组件配置文件;
画布构建模块1602,用于根据工作流组件配置文件初始化得到工作流画布;
第二获取模块1603,用于获取节点数据源与连线数据源;
节点构建模块1604,用于根据工作流组件配置文件中的节点展示属性,确定节点数据源中每个节点数据对应的节点样式,并根据每个节点数据按照相应节点样式,在工作流画布上构建相应工作流节点;
工作流构建模块1605,用于根据工作流组件配置文件中的连线展示属性、连线数据源中的每个连线数据,以及每个连线数据对应的工作流节点,在工作流画布上构建相应的工作流连线,得到相应的工作流。
在一个实施例中,上述工作流构建装置1600还包括工作流管理模块;
工作流管理模块,用于对工作流进行事件绑定;检测针对工作流触发的工作流管理事件;调用工作流管理事件对应的事件响应函数对工作流进行管理。
在一个实施例中,工作流管理模块,还用于当工作流管理事件属于第一类局部事件时,在工作流管理事件中拦截事件冒泡;根据工作流对应的工作流数据确定目标节点与目标连线;调用工作流管理事件对应的事件响应函数对目标节点与目标连线进行管理。
在一个实施例中,工作流管理模块,还用于当工作流管理事件属于第二类事件时,统计工作流管理事件的间隔时长;当间隔时长大于或等于预设时长时,调用工作流管理事件对应的事件响应函数对工作流进行管理。
在一个实施例中,工作流管理模块,还用于检测针对工作流触发的工作流卸载事件;调用工作流卸载事件对应的事件响应函数,对工作流进行事件解绑与数据清理。
在一个实施例中,工作流管理模块,还用于获取工作流管理事件对应的对象数据;将对象数据作为工作流管理事件对应的事件响应函数的入参,并通过工作流管理事件对应的接口调用事件响应函数;通过事件响应函数根据对象数据对工作流进行管理。
在一个实施例中,工作流管理模块,还用于检测针对工作流触发的节点样式更新操作;根据节点样式更新操作获取目标节点展示属性;按照目标节点展示属性更新工作流中各工作流节点的节点样式。
关于工作流构建装置的具体限定可以参见上文中对于工作流构建方法的限定,在此不再赘述。上述工作流构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种工作流构建方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种工作流构建方法,其特征在于,所述方法包括:
获取工作流组件配置文件;
根据所述工作流组件配置文件初始化得到工作流画布;
获取节点数据源与连线数据源;
根据所述工作流组件配置文件中的节点展示属性,确定所述节点数据源中每个节点数据对应的节点样式,并根据所述每个节点数据按照相应节点样式,在所述工作流画布上构建相应工作流节点;
根据所述工作流组件配置文件中的连线展示属性、所述连线数据源中的每个连线数据,以及所述每个连线数据对应的工作流节点,在所述工作流画布上构建相应的工作流连线,得到相应的工作流。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述工作流进行事件绑定;
检测针对所述工作流触发的工作流管理事件;
调用所述工作流管理事件对应的事件响应函数对所述工作流进行管理。
3.根据权利要求2所述的方法,其特征在于,所述调用所述工作流管理事件对应的事件响应函数对所述工作流进行管理,包括:
当所述工作流管理事件属于第一类局部事件时,在所述工作流管理事件中拦截事件冒泡;
根据所述工作流对应的工作流数据确定目标节点与目标连线;
调用所述工作流管理事件对应的事件响应函数对所述目标节点与目标连线进行管理。
4.根据权利要求3所述的方法,其特征在于,所述调用所述工作流管理事件对应的事件响应函数对所述工作流进行管理,还包括:
当所述工作流管理事件属于第二类事件时,统计所述工作流管理事件的间隔时长;
当所述间隔时长大于或等于预设时长时,调用所述工作流管理事件对应的事件响应函数对所述工作流进行管理。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
检测针对所述工作流触发的工作流卸载事件;
调用所述工作流卸载事件对应的事件响应函数,对所述工作流进行事件解绑与数据清理。
6.根据权利要求2所述的方法,其特征在于,所述调用所述工作流管理事件对应的事件响应函数对所述工作流进行管理,包括:
获取所述工作流管理事件对应的对象数据;
将所述对象数据作为所述工作流管理事件对应的事件响应函数的入参,并通过所述工作流管理事件对应的接口调用所述事件响应函数;
通过所述事件响应函数根据所述对象数据对所述工作流进行管理。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述方法还包括:
检测针对所述工作流触发的节点样式更新操作;
根据所述节点样式更新操作获取目标节点展示属性;
按照所述目标节点展示属性更新所述工作流中各工作流节点的节点样式。
8.一种工作流构建装置,其特征在于,所述装置包括:
第一获取模块,用于获取工作流组件配置文件;
画布构建模块,用于根据所述工作流组件配置文件初始化得到工作流画布;
第二获取模块,用于获取节点数据源与连线数据源;
节点构建模块,用于根据所述工作流组件配置文件中的节点展示属性,确定所述节点数据源中每个节点数据对应的节点样式,并根据所述每个节点数据按照相应节点样式,在所述工作流画布上构建相应工作流节点;
工作流构建模块,用于根据所述工作流组件配置文件中的连线展示属性、所述连线数据源中的每个连线数据,以及所述每个连线数据对应的工作流节点,在所述工作流画布上构建相应的工作流连线,得到相应的工作流。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202010611466.0A 2020-06-30 2020-06-30 工作流构建方法、装置、计算机设备和存储介质 Pending CN111667199A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010611466.0A CN111667199A (zh) 2020-06-30 2020-06-30 工作流构建方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010611466.0A CN111667199A (zh) 2020-06-30 2020-06-30 工作流构建方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN111667199A true CN111667199A (zh) 2020-09-15

Family

ID=72390448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010611466.0A Pending CN111667199A (zh) 2020-06-30 2020-06-30 工作流构建方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111667199A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257008A (zh) * 2020-12-22 2021-01-22 北京宇信科技集团股份有限公司 一种在线自定义流程运行系统、方法、介质和服务器
CN113301171A (zh) * 2021-07-27 2021-08-24 远光软件股份有限公司 一种融合多物联网数据的数字镜像构建方法和系统
CN114445047A (zh) * 2022-01-29 2022-05-06 北京百度网讯科技有限公司 工作流生成方法、装置、电子设备及存储介质
CN115562192A (zh) * 2022-09-27 2023-01-03 北京虎蜥信息技术有限公司 一种装配工艺图形化管理方法、系统、终端及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257008A (zh) * 2020-12-22 2021-01-22 北京宇信科技集团股份有限公司 一种在线自定义流程运行系统、方法、介质和服务器
CN113301171A (zh) * 2021-07-27 2021-08-24 远光软件股份有限公司 一种融合多物联网数据的数字镜像构建方法和系统
CN113301171B (zh) * 2021-07-27 2021-11-30 远光软件股份有限公司 一种融合多物联网数据的数字镜像构建方法和系统
CN114445047A (zh) * 2022-01-29 2022-05-06 北京百度网讯科技有限公司 工作流生成方法、装置、电子设备及存储介质
CN115562192A (zh) * 2022-09-27 2023-01-03 北京虎蜥信息技术有限公司 一种装配工艺图形化管理方法、系统、终端及存储介质

Similar Documents

Publication Publication Date Title
US10817664B2 (en) Combined synchronous and asynchronous tag deployment
CN109634598B (zh) 一种页面显示方法、装置、设备及存储介质
US20220253588A1 (en) Page processing method and related apparatus
CN111667199A (zh) 工作流构建方法、装置、计算机设备和存储介质
US10762277B2 (en) Optimization schemes for controlling user interfaces through gesture or touch
CN108363587B (zh) 应用程序运行监控方法、装置、计算机设备和存储介质
US20210247891A1 (en) Interactively presenting a visible portion of a rendering surface on a user device
US20130151937A1 (en) Selective image loading in mobile browsers
US10747510B1 (en) Application runtime modification
CN106294463B (zh) 一种动态曲线的数据点更新方法和设备
US11151314B2 (en) Extensible grid layout
US10951486B2 (en) Terminal device, UI expansion method, and UI expansion program
CN111596911A (zh) 生成控件的方法、装置、计算机设备和存储介质
CN110213105A (zh) 一种跨平台微应用创建方法
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN112352214A (zh) 显示控制装置、显示控制方法和显示控制程序
CN113536755A (zh) 用于生成海报的方法、装置、电子设备、存储介质及产品
CN111240678B (zh) 弹出窗口的设置方法及装置、电子设备、存储介质
CN114756228A (zh) 页面处理方法、装置、设备及存储介质
CN110286971B (zh) 处理方法及系统、介质和计算设备
US20140327608A1 (en) Transforming visualized data through visual analytics based on interactivity
US20140337284A1 (en) Synchronizing folders using a shadow folder hierarchy
US20140007049A1 (en) Integrating diagnostic information in development environment
CN113687809A (zh) 信息显示方法及装置、以及电子设备和可读存储介质
CN111638903B (zh) 不同软件版本的差异信息生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination