CN108292206A - 具有易于使用特征的工作流开发系统 - Google Patents

具有易于使用特征的工作流开发系统 Download PDF

Info

Publication number
CN108292206A
CN108292206A CN201680068571.6A CN201680068571A CN108292206A CN 108292206 A CN108292206 A CN 108292206A CN 201680068571 A CN201680068571 A CN 201680068571A CN 108292206 A CN108292206 A CN 108292206A
Authority
CN
China
Prior art keywords
workflow
work flow
flow step
user
developed
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.)
Granted
Application number
CN201680068571.6A
Other languages
English (en)
Other versions
CN108292206B (zh
Inventor
P·库玛
J·特威斯特
S·C·斯西利亚诺
H·雅格拉瓦尔
P·K·什雷斯塔
B·什雅姆孙达尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108292206A publication Critical patent/CN108292206A/zh
Application granted granted Critical
Publication of CN108292206B publication Critical patent/CN108292206B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • 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
    • 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

Abstract

描述了一种工作流开发系统,其向开发者提供了用于查找用于包括在工作流中的步骤的搜索工具。该系统还自动地生成用于工作流的有意义的名称和/或图形表示。该系统还提供了将第一工作流步骤的输出参数表示为用户交互式对象的图形用户界面。可以与这些对象交互以引起对象被插入到被用于指定用于第二工作流步骤的输入参数的值的数据录入元素中。当表示第一工作流步骤和第二工作流步骤的可执行逻辑被生成时,对象到数据录入元素中的插入具有引起第二工作流步骤的输入参数的值被定义为包括与插入的对象对应的输出参数的值的效果。

Description

具有易于使用特征的工作流开发系统
背景技术
商业或企业应用是由业务用户用来执行各种业务功能的计算机程序。商业应用通常在可用的现成软件没有完全满足期望功能时被开发。很多商业应用是交互式的,从而具有图形用户界面(GUI),用户可以经由GUI来输入数据、提交数据查询、执行操作和查看结果。消费者应用是更少关注商业的,作为替代专注于消费者的需求。
由于应用复杂性和所需要的编程专业知识,商业和消费者用户倾向于依赖于信息技术(IT)人员来将他们的应用编码。例如,仅设计应用以从远程源(例如,云服务)取回数据是困难的,通常需要有经验的软件开发者的参与。
开发商业和消费者应用是一种通常在具有相对较大的显示器以及用于接受用户输入的标准键盘和鼠标的台式计算机系统上被执行的活动。因此,用于开发商业和消费者应用的很多工具不包括被设计为有效地使用任何可用于显示GUI的屏幕空间的GUI。同样,用于开发商业和消费者应用的很多工具不包括利用基于触摸的用户输入方案或其他技术的优点以用于减少开发这样的应用所需要的用户交互量和用户输入量的GUI。
发明内容
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中被进一步描述的概念的选集。本发明内容并非旨在标识所要求保护的主题内容的关键特征或基本特征,也并非旨在被用于限制所要求保护的主题内容的范围。
本文中描述了向开发者或其他用户提供用于寻找可以被包括在当前正被开发的工作流中的操作的搜索工具(search utility)的方法、系统、装置和计算机程序产品。搜索工具也可以被开发者或其他用户用来查找工作流模板或完成工作流。
本文中还描述了自动地生成用于工作流的有意义的名称和/或图形表示(例如,图标)的方法、系统、装置和计算机程序产品。例如,名称和/或图形表示可以基于被包括在工作流中的步骤和/或由工作流引用的一个或多个服务而被生成。
本文中还描述了提供用于工作流开发系统的GUI的方法、系统、装置和计算机程序产品。GUI将正被开发的工作流的第一工作流步骤的输出参数表示为用户交互式对象。这些对象可以容易地与开发者交互(例如,由其点击或拖放)以引起对象被插入到数据录入元素中,该数据录入元素用于指定正被开发的工作流的第二工作流步骤的输入参数的值。当生成表示第一和第二工作流步骤的可执行逻辑时,对象到数据录入元素中的插入具有引起第二工作流步骤的输入参数的值被定义为包括与插入的对象对应的输出参数的值的效果。
下面参考附图详细描述本发明的其他特征和优点以及各种实施例的结构和操作。注意,本发明不限于本文中描述的具体实施例。本文中仅出于说明的目的呈现这些实施例。基于本文中包含的教导,其他实施例对于相关领域的技术人员将是显而易见的。
附图说明
并入本文中并且构成说明书的一部分的附图示出了本申请的实施例,并且与说明书一起进一步用于解释实施例的原理,并且使得相关领域的技术人员能够制造并且使用这些实施例。
图1是根据示例实施例的工作流开发系统的框图。
图2描绘了根据示例实施例的用于开发工作流的过程的流程图。
图3是根据示例实施例的工作流设计器应用的框图。
图4是根据示例实施例的示出显示示例性工作流的浏览器窗口的显示屏幕的框图。
图5至图8示出根据示例实施例的使用工作流设计器GUI的各个开发阶段中的示例性工作流的视图。
图9是根据示例实施例的用于执行工作流的系统的框图。
图10描绘了根据示例实施例的用于执行包括一个或多个工作流的用户应用的过程的流程图。
图11是合并搜索引擎并且利用该搜索引擎向开发者呈现用于插入正被开发的工作流中的工作流步骤的集合的工作流设计器的框图。
图12描绘了由工作流设计器执行的用于搜索并且向开发者呈现用于插入正被开发的工作流中的工作流步骤的集合的方法的流程图。
图13至图15示出了向开发者提供对搜索引擎的访问以标识用于包括在正被开发的工作流中的工作流步骤的工作流设计器GUI的视图。
图16是并入被配置为自动地生成用于工作流的名称和图形表示的工作流名称和图标生成器的工作流设计器的框图。
图17描绘了用于自动地生成用于工作流的名称和图形表示的方法的流程图。
图18和图19示出了显示工作流的系统生成的名称和图形表示的工作流设计器GUI的视图。
图20描绘了根据一个实施例的用于基于与分别表示工作流设计器GUI内的第一工作流步骤的一个或多个输出参数的一个或多个用户交互式对象的用户交互来定义第二工作流步骤的输入参数的值的方法的流程图。
图21至图23示出了根据一个实施例的使得能够基于与分别表示第一工作流步骤的一个或多个输出参数的一个或多个用户交互式对象的用户交互来定义第二工作流步骤的输入参数的工作流设计器GUI的视图。
图24是可以用于实现各种实施例的示例移动设备的框图。
图25是可以用来实现各种实施例的示例性的基于处理器的计算机系统的框图。
根据下面结合附图给出的详细描述,本发明的特征和优点将变得更加明显,其中相同的附图标记始终标识相应的元素。在附图中,相似的附图标记通常表示相同的、功能上相似的和/或结构上相似的元素。元素第一次出现的图由相应附图标记中的最左边的数字表示。
具体实施方式
I.导言
以下详细描述公开了很多示例实施例。本专利申请的范围不限于所公开的实施例,而是还包括所公开的实施例的组合以及对所公开的实施例的修改。
说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定包括该特定的特征、结构或特性。而且,这样的短语不一定是指相同的实施例。此外,当结合一个实施例描述特定的特征、结构或特性时,认为与其他实施例(无论是否明确描述)相结合地实现这样的特征、结构或特性在相关领域的技术人员的知识范围内。
在讨论中,除非另有说明,否则诸如修饰本公开的实施例的一个或多个特征的条件或关系特性的“基本上”和“大约”等形容词将被理解为表示该条件或特性被限定在这个实施例针对其预期的应用的操作而可接受的容差内。
如下描述很多示例性实施例。注意,本文中提供的任何部分/子部分标题并非意在限制。贯穿本文档描述实施例,并且任何类型的实施例可以被包括在任何部分/子部分下。此外,在任何部分/子部分中公开的实施例可以按照任何方式与在相同的部分/子部分和/或不同的部分/子部分中描述的任何其他实施例组合。
下面的部分II将描述用于开发工作流的示例实施例。部分II的子部分A和B分别描述示例性工作流开发实施例和运行时实施例。子部分C、D和E将描述可以在工作流开发系统中实施的易用特征。特别地,部分II的子部分C描述并入搜索引擎的工作流开发的示例实施例,部分II的子部分D描述用于自动地生成工作流的名称和图形表示的示例实施例,部分II的子部分E描述用于容易地为正被开发的工作流的工作流步骤指定输入参数值的示例实施例。这些易用性特征在任何平台上都是有用的,但是在屏幕空间受限并且提供用户输入可能很困难的移动设备实施例中可能特别有用。
下面的部分III将描述可以用于实现本文中描述的实施例的特征的示例移动设备。下面的部分IV将描述可以用于实现本文中描述的实施例的特征的示例性的基于处理器的计算机系统。下面的部分V将描述一些附加示例实施例。部分IV将提供一些结论性意见。
II.用于开发工作流的示例实施例
商业应用和消费者应用通常在可用的现成软件没有完全满足期望功能时被创建。很多商业和消费者应用是交互式的,以具有GUI,用户可以经由GUI来输入数据,提交数据查询,执行操作和查看结果。
由于应用复杂性和所需要的编程专业知识,用户倾向于依赖于IT人员来编写他们的应用。例如,配置应用以从企业或消费者感兴趣的源取回数据(例如,来自SQL(结构化查询语言)数据库的数据、来自加利福尼亚州旧金山的Salesforce.com的客户关系信息、来自由加利福尼亚州帕洛阿尔托市的Facebook公司运营的的社交网络信息、或由加利福尼亚州旧金山的Twitter公司运营的)是一个艰难的过程。
本文中描述的实施例能够更容易地开发应用,包括商业应用和消费者应用。用户可以能够以工作流的形式开发应用,而无需成为专业程序员。
在以下子部分中描述用于以工作流的形式开发应用的示例实施例。在下面的描述中,使用本文中描述的技术来开发应用的人被称为“开发者”,以与在运行时使用应用的人(“用户”或“最终用户”)区分开。然而,注意,本文中提到的“开发者”不需要具有计算机编程方面的专业知识。本文中描述的各种实施例实现了应用开发而无需特殊的编程技能。
A.示例工作流开发实施例
工作流的开发可以在各实施例中以各种方式而被实现。例如,图1是根据示例实施例的工作流开发系统100的框图。如图1所示,系统100包括计算设备102、存储装置104、第一基于网络的应用124A、第二基于网络的应用124B和服务器134。服务器134包括工作流设计器106和工作流库118(例如,在存储装置中)。计算设备102包括显示屏幕108和浏览器136。存储装置104存储本地应用122。系统100描述如下。
计算设备102可以是任何类型的计算设备,包括移动计算设备(例如,智能手机、设备、膝上型计算机、笔记本电脑、诸如Apple iPadTM等平板电脑、上网本等)、可佩戴计算设备(例如,包括诸如等智能眼镜的头戴式设备)、或者诸如台式计算机或PC(个人计算机)等固定计算设备。服务器134可以包括一个或多个服务器设备和/或其他计算设备。
存储装置104中的本地应用122是计算设备102在无需通过网络的通信的情况下可访问的应用的示例。本地应用122可以被配置为在由计算设备102的处理器执行时执行数据处理和/或数据托管操作,并且可以在运行时在这样的工作流被执行时将数据132提供给使用工作流设计器106开发的工作流。本地应用122可以是任何类型的本地应用或服务,诸如数据库应用(例如,电子表格)、电子邮件应用(例如,)、生产力应用(例如,等)、或其他类型的应用。虽然图1示出了单个本地应用,但是计算设备102上可以存在任何数目的本地应用,包括数十、数百或更多数字中的数字。
第一基于网络的应用124A和第二基于网络的应用124B是基于网络的应用的示例,其在一些情况下可以被称为“云”应用或服务。基于网络的应用124A和124B由计算设备102通过网络126可访问,可以被配置为执行数据处理和/或数据托管操作,并且在运行时在这样的工作流被执行时可以分别将数据130A和130B提供给使用工作流设计器106创建的工作流。基于网络的应用124A和124B每个可以是任何类型的网络可访问的应用或服务,诸如数据库应用、社交网络应用、消息应用、金融服务应用、新闻应用、搜索应用、生产力应用、云存储应用、文件托管应用等。这样的应用的示例包括网络可访问的SQL(结构化查询语言)数据库、Salesforce.comTM Finance、The New York (在www.nytimes.com)、Google搜索、 Bing、GoogleDocsTM Office 365、DropboxTM等。虽然图1示出了两个基于网络的应用,但是可以通过网络126可访问任何数目的基于网络的应用,包括数十、数百、数千或更多数字中的数字。
注意,数据130A、数据130B和数据132每个可以包括任何类型的数据,包括消息、通知、计算的数据、取回的数据、结构化数据、非结构化数据和/或由工作流请求或使用的任何其他类型的信息。
计算设备102和服务器134每个可以包括能够实现彼此之间以及通过网络126与基于网络的应用124A和124B的通信的至少一个有线或无线网络接口。这样的网络接口的示例包括IEEE 802.11无线LAN(WLAN)无线接口、全球微波接入互操作性(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。网络接口的另外的示例在本文中其他地方描述。网络126的示例包括局域网(LAN)、诸如因特网等广域网(WAN)、个域网(PAN)、和/或通信网络的组合。
工作流设计器106被配置为被操作/交互以便以工作流形式创建应用。例如,开发者可以通过与能够访问诸如浏览器136等基于网络的应用的计算设备102处的应用交互来访问工作流设计器106。开发者可以使用浏览器136遍历到工作流设计器106的网络地址(例如,统一资源定位符),其在浏览器窗口114中调用工作流设计器GUI 116(例如,网页)。开发者能够与工作流设计器GUI 116交互以开发工作流。
如图1所示,工作流设计器106包括UI生成器110和工作流逻辑生成器112。UI生成器110被配置为向浏览器136传输工作流GUI信息140(例如,一个或多个网页、图像内容等)以作为工作流设计器GUI 116显示在显示屏108中的浏览器窗口114内。开发者可以与工作流设计器GUI 116交互以选择工作流步骤并且将其配置到工作流中。例如,开发者可以在工作流设计器GUI 116中插入和排序多个工作流步骤,其中一个或多个步骤与本地或基于网络的应用相关联。浏览器136将所选择的工作流步骤、相应的配置信息和工作流步骤顺序信息存储为构建的工作流信息138。构建的工作流信息138在服务器134处被传输到工作流逻辑生成器112。工作流逻辑生成器112基于由构建的工作流信息138表示的组装的工作流来生成工作流逻辑120。随后,由工作流逻辑120表示的工作流可以被调用用于由最终用户执行。
在工作流的运行时执行期间,工作流逻辑120可以调用与工作流逻辑120的工作流步骤相关联的一个或多个本地或基于网络的应用的操作。每个工作流步骤可以接收输入数据。这样的输入数据可以包括例如来自本地应用122的数据132、来自基于网络的应用124A的数据130A、来自基于网络的应用124B的数据130B、来自另一应用的数据和/或来自工作流逻辑120的另一工作流步骤的数据。
工作流设计器106可以按照各种方式操作,以实现工作流的开发。例如,在实施例中,工作流设计器106可以根据图2的流程图200来操作。特别地,根据示例实施例,流程图200描绘用于开发工作流的过程。流程图200和工作流设计器106如下参考图3和4描述。图3是根据示例实施例的工作流设计器106的框图。如图3所示,工作流设计器106包括UI生成器110和工作流逻辑生成器112。UI生成器110包括模板库生成器302、保存的工作流选择器304、步骤选择器306和步骤配置UI生成器308。工作流逻辑生成器112包括工作流定义生成器312和接口定义生成器314。图4是根据示例实施例的显示屏幕108的框图,其示出了显示在显示屏幕108上的浏览器窗口402中的工作流设计器GUI 116的示例。
图2的流程图200从步骤202开始。在步骤202中,发起工作流的开发。例如,在一个实施例中,工作流设计器106可以由在计算设备102处与浏览器136交互的开发者调用。开发者可以遍历指向服务器134处的工作流设计器106的链接或其他网络地址,以调用工作流设计器106,以引起工作流设计器106向浏览器136提供工作流GUI信息140(例如,一个或多个网页、图像内容等)以作为工作流设计器GUI 116显示在浏览器窗口114中的显示屏108中。一旦被调用,开发者可以打开现有的工作流用于进一步开发,或者可以开始开发新的工作流。
在一个示例中,工作流设计器GUI 116的显示页面可以显示由模板库生成器302生成的模板库。模板库可以包括多个可选择的工作流模板,多个可选择的工作流模板中的每个包括适合由开发者进一步配置的一个或多个预先选择的工作流步骤。工作流模板可以被存储在工作流库118中,并且被访问用于由工作流设计器GUI 116显示。开发者可以选择工作流模板之一用于包括在他们的工作流中,并且可以继续配置工作流模板的内容,和/或者可以将附加工作流步骤添加到工作流模板的工作流步骤以生成更复杂的工作流。
例如,在图4的示例中,步骤406A和406B可以已经被包括在放置在工作流404中的工作流模板中,并且步骤406C随后可以已经被添加(例如,经由从工作流步骤的菜单或其他列表中选择)。
在另一示例中,保存的工作流选择器304可以使得开发者能够选择要被打开用于在工作流设计器GUI 116的所显示的页面中进一步编辑的现有的保存的工作流。保存的工作流可以存储在工作流库118中或其他地方。例如,保存的工作流选择器306可以显示保存的工作流的列表,可以实现到保存的工作流的导航,和/或可以提供用于选择用于编辑的保存的工作流的另一机制。然后,开发者可以继续进一步配置工作流的内容,添加工作流步骤,修改工作流步骤,移除工作流步骤,等等。
在又一示例中,工作流设计器GUI 116的显示的页面可以提供可以向其添加、排序和配置一个或多个开发者选择的工作流步骤的空白窗口、区域或画布。这样的空白窗口、区域或画布可以由UI生成器110自动地或者响应于一些开发者输入或交互而被生成。
在步骤204中,实现用于包括在工作流中的一个或多个步骤的选择。当开发者正在编辑工作流时,步骤选择器306可以使得开发者能够选择用于包括在工作流中的工作流步骤,并且对这些步骤排序。工作流步骤可以由步骤选择器306在工作流库118中访问。例如,步骤选择器306可以显示工作流步骤的菜单、可用工作流步骤的可滚动和/或可搜索列表,或者可以按照另一方式提供工作流步骤,并且可以使得开发者能够从列表选择任何数目的工作流步骤用于包括在工作流中。
在一个示例中,步骤选择器306可以使得开发者能够选择与本地应用(诸如)或基于网络的应用(诸如)相关联的步骤。步骤选择器306使得步骤能够以序列链接在一起,可选地具有条件步骤,用于包括在工作流逻辑120中。
在步骤206中,实现对工作流中的每个选择的步骤的配置。在一个实施例中,步骤配置UI生成器308使得能够配置工作流中的每个工作流步骤。步骤配置UI生成器308访问工作流库118中的每个选择的工作流步骤以确定工作流步骤的配置,包括其所有输入参数以及开发者需要提供给工作流步骤来配置它的任何其他选择或信息。例如,步骤配置UI生成器308可以生成使得开发者能够键入,导航到,使用下拉菜单或者以其他方式将输入数据输入到文本输入框或其他数据录入元素以配置工作流步骤(例如,指定其输入参数)的UI。开发者可以将先前步骤的输出参数配置为用于工作流步骤的输入数据。步骤配置UI生成器208可以使得数据或其他对象能够被复制和粘贴,拖放,或者以其他方式从别处输入到工作流步骤的数据录入元素中。
在步骤208中,生成用于实现工作流的工作流逻辑。在一个实施例中,工作流逻辑生成器112被配置为当开发者指示工作流完成时,诸如当开发者与工作流设计器GUI 116交互以保存工作流时,基于构建的工作流信息138来封装和生成工作流逻辑120。如图3所示,工作流逻辑生成器112接收构建的工作流信息138。构建的工作流信息138指示哪些工作流步骤已经被插入到工作流中、它们的输入参数值及其排序。工作流逻辑生成器112还接收所选择的工作流逻辑320,其是在构建的工作流信息138中指示的工作流的每个工作流步骤的工作流逻辑。在一个示例中,工作流逻辑生成器112从工作流库118中为在构建的工作流信息138中指示的每个工作流步骤取回工作流逻辑,以接收所选择的工作流逻辑320。工作流逻辑生成器112基于构建的工作流信息138和选择的工作流逻辑320来生成用于工作流的工作流逻辑120。例如,工作流逻辑生成器112可以按照可执行文件、zip文件或其他形式生成工作流逻辑120,其可以按照独立方式来执行,可以在浏览器中执行,或者可以按照另一方式执行,这取决于正在生成的工作流的特定类型。
如图3所示,工作流逻辑生成器112可以生成工作流逻辑120以包括至少两个组件(例如,文件):工作流定义信息316和接口定义信息318。工作流定义信息316包括定义工作流逻辑的工作流的顺序和操作的信息(例如,列出工作流步骤操作及其排序/定序)并包括工作流的参数值。例如,可以生成工作流定义信息316以包含JSON(JavaScript对象表示法)文件格式或另一形式的信息。界面定义信息318包括定义工作流的工作流步骤的界面/参数(例如,输入和输出)的信息。例如,可以生成界面定义信息318以包含Swagger(REST(代表性状态转移)网络服务的规范)文件或另一形式的信息。例如,每个工作流步骤可以在工作流库118中表示为Swagger格式的API(应用编程接口)元数据,定义什么是工作流步骤的输入和输出(参数),使得服务可以根据API定义来访问。在这样的实现方式中,工作流定义信息316中的操作涉及接口定义信息318中的相应API元数据以提供所生成的工作流的完整结构(例如,利用工作流定义信息316中的参数值定义的每个有序工作流步骤/操作具有相应API,其在接口定义信息318中定义)。
相应地,流程图200和工作流设计器106使得开发者能够创建工作流。图5至图8示出了根据示例实施例的使用工作流设计器GUI的各个开发阶段中的示例性工作流的视图。例如,图5至图8示出了浏览器窗口402,其显示用于开发工作流的工作流设计器GUI 116的相应视图。
例如,图5示出了包括工作流步骤502和添加界面504的浏览器窗口402。开发者选择工作流步骤502作为工作流中的第一步骤。开发者可以与添加界面504(例如,按钮或其他GUI控件)交互以将另外的工作流步骤添加到工作流。
如上所述,开发者能够从步骤的列表或库、模板库或其他地方选择工作流步骤502。列表、库(library)或库(gallery)可以包括任何数目的工作流步骤。工作流步骤可以与本文中其他地方提及的或以其他方式已知的基于网络的应用(例如,DropboxTM)相关联,和/或与本文中其他地方提及的或以其他方式已知的本地应用(例如,)相关联。每个工作流步骤被配置被插入到工作流中。每个工作流步骤配有适当的逻辑和/或接口以执行其各自的功能,这可能包括与本地或远程应用通信。例如,用于向应用传输查询的工作流步骤(例如,对搜索引擎的搜索查询,对数据库的数据库查询,对来自社交网络应用的数据的请求等)可以在如何向应用正确传输和格式化这样的请求方面被预先配置。作为另一示例,用于接收对请求的响应的工作流步骤可以在如何解析对期望的响应数据的响应方面被预先配置。因此,工作流的开发者不需要知道如何以编程语言编写程序代码,与复杂的应用接口(例如,应用编程接口(API))接口连接,或者理解网络通信协议,因为工作流步骤已经被建立。当开发者将工作流步骤插入工作流逻辑中时,开发者将输入配置为工作流步骤(如下所述),并且预先配置的工作流步骤处理与其他应用的任何通信。
在图6中,开发者已经与步骤502交互(例如,通过鼠标点击等)以引起步骤配置UI生成器310生成用于步骤502的配置的UI。例如,在图6的示例中,工作流步骤502被配置为执行监测以确定文件是否已经在由开发者在文本输入框中标识的特定文件夹中被创建(例如,通过键入,点击由“...”指示的导航器,等等)。当工作流步骤502确定文件已经被添加到所指示的文件夹时,触发在工作流步骤502之后的工作流步骤。因此,这个示例中,工作流步骤502可以被认为是触发步骤。
例如,在图7中,开发者与添加界面504交互以促进下一工作流步骤702的选择。例如,在一个实施例中,与添加界面502的交互调用图3中的步骤选择器306,它使得开发者能够选择工作流步骤。在图7的示例中,工作流步骤702是条件步骤。在实施例中,可以选择逻辑元素用于包括在工作流中,包括算术逻辑(例如,加法器、乘法器等)、条件逻辑等,这些逻辑元素基于在早期工作流步骤中确定的变量值操作。工作流步骤702的条件使得工作流能够基于条件的确定(例如,变量值)分叉。条件可以包括对象名称、关系(例如,逻辑关系,诸如等于、包括、不等于、小于、大于等)和值,这些都是由开发者与工作流步骤702交互来定义的。相应的动作步骤可以取决于工作流基于条件分叉的方式来执行。
例如,在图7的一个说明性示例中,对象名称可以被选择(例如,从可能性列表中)为工作流步骤502的创建的文件的名称,关系可以是“包含”(例如,通过下拉菜单选择),并且值可以是“dummyfile”(例如,由开发者键入)。如果文件名包含调用第一动作工作流步骤704的“哑文件”,则条件评估为“是”条件,如果文件名不包含调用第二动作工作流步骤706的“哑文件”,则条件评估为“否”条件。如果需要,可以由开发者为“是”动作工作流步骤704和“否”动作工作流步骤706中的一者或两者定义动作。
例如,在图8中,开发者与动作流程步骤704交互以定义动作。在这个示例中,开发者通过经由步骤选择器306选择工作流步骤来定义动作工作流步骤704。如图8所示,显示了工作流步骤802A、802B、802C的列表,开发者可以从该列表选择要针对动作工作流步骤704执行的工作流步骤(例如,通过鼠标点击等)。工作流步骤可以是触发步骤、动作步骤或条件步骤。在选择工作流步骤之后,开发者可以如上所述配置工作流步骤。此外,开发者可以配置用于工作流步骤706的动作,可以添加另外的工作流步骤,等等,最终使得能够保存工作流。
注意,在一些实施例中,诸如第一工作流步骤502等工作流步骤可能需要证书(例如,登录名和密码)来访问所指示的数据(例如,来访问在图6中的文本输入框中指示的位置处的文件)。这样,可以请求开发者提供与第一工作流步骤502相关联的证书信息,使得当第一工作流步骤502在运行时期间被执行时,可以访问数据。或者,可以在运行时期间向用户请求证书。
B.示例运行时实施例
根据实施例,最终用户可以执行如本文中描述地开发的工作流。在操作期间,最终用户可以与工作流的GUI交互,这可能导致工作流逻辑被执行。工作流逻辑可以在本地(例如,在浏览器中)和/或在远程服务处(在“云”中)执行。工作流逻辑可以访问由开发者配置的一个或多个本地或网络可访问应用的数据。因此,工作流执行其预期的功能。
图9是根据示例实施例的用于执行包括一个或多个工作流步骤的工作流的系统900的框图。如图9所示,系统900包括计算设备902、第一基于网络的应用124A、第二基于网络的应用124B和服务器134。计算设备902包括工作流应用904。服务器134包括工作流执行引擎906。系统900描述如下。
第一基于网络的应用124A和第二基于网络的应用124B每个可选地存在,并且是否与这样的应用通信取决于工作流逻辑120的配置。另外的基于网络的应用可以存在并且通信,这取决于工作流逻辑120的配置。
计算设备902可以是本文中描述的或以其他方式已知的任何类型的固定或移动计算设备。计算设备902被配置为通过网络126与第一基于网络的应用124A和第二基于网络的应用124B以及服务器134通信。
在一个实施例中,工作流由工作流执行引擎906在服务器134处执行,并且工作流应用904是UI应用,该UI应用使得计算设备902处的用户能够与正在执行的工作流交互,诸如通过选择和调用工作流,从正在执行的工作流(例如,消息、警报、输出数据等)接收通信,向正在执行的工作流提供所请求的输入数据等。在这样的实施例中,工作流应用904可以是与工作流执行引擎906相关联的工作流UI应用(例如,工作流应用904可以是工作流执行引擎906的扩展),其可以与计算设备902处的浏览器分开或在计算设备902处的浏览器内操作,或者可以按照其他方式配置。如图9所示,工作流执行引擎906可以加载用于所选择的工作流(例如,由用户从工作流库选择)的工作流逻辑120,并且可以执行工作流逻辑120以执行工作流。
在另一实施例中,工作流应用904可以被配置为在计算设备902处执行工作流。例如,计算设备902的最终用户可以与工作流应用904的用户界面交互以选择和调用特定工作流(例如,从工作流库选择)。在这样的实施例中,工作流逻辑120可以与计算设备902处的浏览器分开或在计算设备902处的浏览器中操作,或者可以按照另一方式配置。如图9所示,工作流应用904可以加载用于所选择的工作流的工作流逻辑120(例如,由用户从工作流库选择),并且可以执行工作流逻辑120以执行工作流。
在另一实施例中,工作流逻辑120的第一部分可以在计算设备902处的工作流应用904中执行,并且工作流逻辑120的第二部分可以在服务器134处的工作流执行引擎906处和/或在其他地方执行。
图10描绘了根据示例实施例的用于执行工作流的工作流逻辑120的过程的流程图1000。流程图1000如下关于图9的系统900被描述以用于说明目的。
流程图1000开始于步骤1002。在步骤1002中,执行工作流。在一个实施例中,计算设备902处的最终用户引起工作流逻辑120被执行,诸如通过命令行,通过点击/轻击或以其他方式与表示应用的图标交互,通过在浏览器选择,或以其他方式。如上所述,工作流逻辑120可以在计算设备902处的工作流应用904中和/或在服务器134处的工作流执行引擎906中执行。当被执行时,工作流逻辑120的工作流步骤以配置的顺序执行。因此,一个或多个工作流步骤可以调用相应的应用/服务来执行其功能,诸如本地应用122(以返回数据132)、基于网络的应用124A(以返回数据130A)、基于网络的应用124B(以返回数据130B)和/或其他本地或基于网络的应用。
在步骤1004中,显示工作流GUI。步骤1004是可选的,如在一些实施例中,并不针对工作流来显示GUI。在一个实施例中,GUI可以由计算设备902处的工作流应用904来显示。当被显示时,通过查看所显示的数据(例如,从文件、数据库记录、电子表格或由工作流读取的其他数据结构),通过向GUI中输入数据(例如,通过键入,通过语音,等等),和/或通过与由GUI显示的一个或多个控件交互,用户可以与GUI交互。
在步骤1006中,基于与工作流的交互来触发工作流逻辑。步骤1006在工作流的一个或多个工作流步骤需要来自用户的输入的情况下是可选的。在这样的情况下,用户与与工作流逻辑120的工作流步骤相关联的工作流应用904的GUI中的控件交互,以提供触发工作流步骤的逻辑操作的信息。
以这种方式,工作流逻辑120执行其功能,诸如处理命令,追踪信息,生成消息,处理文档以生成任务或信息,收集反馈和/或任何其他功能。
C.并入搜索引擎的工作流开发的示例实施例
如上所述,在某些实施例中,UI生成器110的步骤选择器306可以被调用以向开发者呈现步骤列表,其中的每个步骤可以被选择用于插入正在正被开发的工作流。在现在将描述的实施例中,步骤选择器306被配置为向开发者提供用于与可以用于标识开发者感兴趣的工作流步骤的搜索引擎交互的手段。这使得开发者能够快速找到有用且适合的工作流步骤来开发她的工作流。此外,在实施例中,步骤选择器306可以被配置为在同时显示当前正被开发的工作流的表示的工作流设计器GUI的上下文内向开发者提供对该功能的访问。因此,开发者可以在需要时精确地标识相关的工作流步骤,而无需导航离开工作流表示。
图11是包括工作流设计器106和工作流库118(如先前参考图1讨论的)的服务器134的框图。如图11所示,工作流设计器106还包括搜索引擎1102。如下面将参考图12讨论的,工作流设计器106利用搜索引擎1102向开发者呈现用于插入正被开发的工作流中的工作流步骤的集合。
特别地,图12描绘了由工作流设计器106执行的用于搜索并且向开发者呈现用于插入正被开发的工作流中的工作流步骤的集合的方法的流程图1200。如图12所示,流程图1200的方法开始于步骤1202,在步骤1202中,从开发者接受输入并且将其作为查询传递给搜索引擎。例如,该步骤可以由步骤选择器306执行,步骤选择器306接收来自开发者的输入(例如,由开发者输入的文本)并且将输入作为查询1106传递给搜索引擎1102。例如,步骤选择器306可以提供数据录入元素(例如,文本输入框)或用户可以经由其提供输入的其他交互式GUI组件。步骤选择器306可以在显示当前正被开发的工作流的表示的工作流设计器GUI内呈现数据录入元素。
在步骤1204,在搜索引擎中处理查询以从工作流步骤的库选择一个或多个工作流步骤。例如,该步骤可以由搜索引擎1102执行,搜索引擎1102接收查询1106并且对其处理以从工作流库118选择一个或多个工作流步骤。在一个实施例中,搜索引擎1102通过分析与存储在工作流库118中的每个工作流步骤相关联的工作流步骤元数据1104以标识与查询1106相关的工作流步骤来选择工作流步骤。
工作流步骤元数据1104可以包括关于工作流步骤的任何类型的结构化或非结构化数据。例如,这样的元数据可以包括工作流步骤的名称或其他标识符、工作流步骤的描述、由工作流步骤利用或引用的服务的标识符和/或描述(例如,DropboxTM等)、用于由工作流步骤监测的触发器的描述和/或标识符、或者由工作流步骤执行的动作的描述和/或标识符。元数据可以包括可以用于描述相同步骤、服务、触发器或动作以便实现与各种开发者查询的匹配的多个词项(term)。
在一个实施例中,搜索引擎1102包括自然语言搜索引擎,该自然语言搜索引擎被配置为使用自然语言处理来解释使用用户语言中的正常术语表达的查询,而没有任何特殊语法或格式。例如,自然语言查询可以表示为陈述或问题。这样的自然语言搜索引擎可以能够基于查询的内容来确定用户的意图并且提供高度相关的工作流步骤建议。当然,这不是限制性的,并且搜索引擎1102可以被配置为执行关键字搜索、语义搜索或相关领域的技术人员已知的任何其他类型的搜索。
在步骤1206,搜索引擎提供在步骤1204期间选择的每个工作流步骤的标识符。例如,该步骤可以由搜索引擎1102执行,搜索引擎1102向步骤选择器306提供工作流步骤标识符1108。在一个实施例中,标识符包括所选择的工作流步骤的名称。
在步骤1208,将在步骤1206期间提供的每个标识符呈现给开发者,并且开发者能够选择其中的任何一个。例如,该步骤可能需要步骤选择器306在显示当前正被开发的工作流的表示的工作流设计器GUI内所显示的菜单中向开发者呈现标识符。开发者可以启能够导航或上下滚动菜单以突出显示和选择特定工作流步骤。
在步骤1210,在开发者选择标识符之一之后,将与所选择的标识符对应的工作流步骤的表示渲染为当前正在被显示在工作流设计器GUI中的正被开发的工作流的一部分。例如,该步骤可以由步骤选择器306在开发者从上述菜单选择特定工作流步骤标识符时执行。
现在将参考图13至图15的示例工作流设计器GUI进一步说明前述技术。特别地,图13至图15示出了在其中计算设备102是诸如智能手机等移动计算设备的实施例中的显示在显示屏108的浏览器窗口402内的工作流设计器GUI 116的不同视图。
在图13中,工作流设计器GUI 116包括“新流程”屏幕,其使得开发者能够在不从模板或保存的工作流开始(即,从头开始)的情况下构建新的工作流。该屏幕包括使得开发者能够生成或标识发起工作流的触发步骤的特征。触发步骤可以被认为是监测特定事件的发生的工作流步骤,并且当触发步骤确定特定事件已经发生时触发工作流的后续步骤的执行。
如图13进一步所示,工作流设计器GUI 116包括可选择的触发步骤的菜单1304,诸如“Dropbox—当新文件被上传时”、“Dropbox—当新文件夹被创建时”、“Facebook—当我上传照片时”、“Facebook—当我上传帖子时”、“Facebook—当有人评论我的帖子时、“Outlook—当我发送电子邮件时”和“Outlook—当我收到电子邮件时”。开发者可以与任何这些示例触发步骤交互(指向并且点击鼠标,经由触摸屏触摸,等等),以将选择其作为工作流中的第一步骤。
备选地,开发者可以将文本键入到出现在工作流设计器GUI 116中并且包括文本“开始输入你的第一步骤...”的数据录入元素1302(在这种情况下是文本框)中。由开发者输入的信息作为查询被提供给搜索引擎1102并且用于寻找可以被包括在当前正被开发的工作流中的工作流步骤。在这种情况下,因为仅需要触发步骤来开始自动化工作流,所以搜索引擎1102可以仅搜索有资格作为触发步骤的工作流步骤。对于工作流的后续步骤,可以搜索更广泛的操作的集合。
图14示出了在开发者已经将文本“新文件”输入到数据录入元素1302中之后的工作流设计器GUI 116。该文本作为查询被提供给搜索引擎1102。基于查询,搜索引擎1102选择与查询相关的工作流步骤的集合(在这种情况下是触发步骤)。搜索引擎1102返回所选择的工作流步骤的标识符(在这种情况下是图标和名称),并且这样的标识符被显示在菜单1404中。如图14所示,所选择的步骤包括“框—当文件被创建时”、“Dropbox—当文件被创建时”、“OneDrive—当文件被创建时”、“OneDrive for Business—当文件被创建时”和“SharePoint Online—当文件被创建时”。开发者可以与任何这些示例触发步骤交互,以选择其作为工作流中的初始步骤。
一旦开发者已经提供了触发步骤的信息,开发者可以发起第二步骤到工作流的添加。该特征由图15说明。特别地,如图15所示,在开发者添加了触发步骤之后,开发者可以添加另一步骤(例如,动作或条件)。为了这个示例,假定开发者选择了动作作为工作流的第二步骤。当开发者选择动作作为下一步骤时,开发者被呈现可选择的触发和动作步骤的菜单1504以及包括文本“你接着想做什么?”的数据录入元素1502。开发者可以将文本键入到数据录入元素1502中,并且这样的文本将作为查询被提供给搜索引擎1102并且用于寻找可以遵循当前正被开发的工作流中的触发步骤的工作流步骤。以这种方式,每当开发者想要向工作流添加新步骤时,开发者可以访问搜索引擎功能。这样的功能有利地被呈现在用于显示正被开发的工作流的相同的工作流设计器GUI 116内,这表示开发者不需要导航离开正被开发的工作流以执行搜索。
虽然在图13至图15中,文本框被示出为用于向搜索引擎1102提供输入的装置,但是在备选实施例中,输入可以通过对麦克风讲话来提供。然后这样的基于语音的输入可以被提交给在服务器134上执行的实体(或者在与服务器134通信地连接的计算设备上),该实体将基于语音的输入转换为文本。然后由该实体返回的文本可以被提交给搜索引擎1102。以这种方式,可以实现基于语音的自然语言搜索。
如上所述,搜索引擎1102通过分析与存储在工作流库118中的各种工作流步骤相关联的元数据以标识与开发者查询相关的工作流步骤来操作。在一个实施例中,与特定工作流步骤相关联的元数据可以由另一开发者输入。例如,工作流开发系统100可以提供GUI,经由该GUI,开发者可以输入要与一个或多个操作相关联的元数据。在一个特定实施例中,开发者在开发者注册用于与一个或多个工作流一起使用的API时提供元数据,作为API注册过程的一部分。API可以是例如但不限于用于在线服务的API,其可以被自动化工作流中的步骤利用或引用。
在另一实施例中,与特定工作流步骤相关联的元数据可以由多个开发者提供。例如,工作流开发系统100可以提供GUI,经由该GUI,多个开发者可以自愿地“标记”(例如,提供其描述性术语)可以被包括在工作流中的各种工作流步骤。这使得“众包”方法能够生成然后可以用来促进搜索功能的元数据。
在另外的实施例中,上面描述的用于标识相关工作流步骤的技术可以被适配,使得它们可以被开发者用来寻找工作流模板或保存的工作流。例如,由开发者经由工作流设计器GUI 116提供的文本或其他用户输入可作为查询被提供给搜索引擎。搜索引擎可以分析与工作流模板或保存的工作流相关联的元数据以选择与查询相关的工作流模板或保存的工作流。然后可以例如经由相同的工作流设计器GUI 116向开发者提供对选择的工作流模板或保存的工作流的访问。
D.用于自动地生成工作流的名称和图形表示的示例实施例
根据某些实施例,工作流开发系统100被配置为自动地生成用于工作流的名称和/或图形表示(例如,图标)。例如,名称和/或图形表示可以基于被包括在工作流中的步骤和/或由工作流引用的一个或多个服务而被生成。该特征有利地使得开发者能够将可识别的且有意义的名称和图形表示指派给工作流,而不必设计这样的名称或图形表示并且不必将名称或图形表示手动输入到系统中。现在将描述并入这种功能的实施例。
图16是包括工作流设计器106和工作流库118的服务器134(如上面先前参考图1讨论的)的框图。如图16所示,工作流设计器106包括UI生成器110、工作流逻辑生成器112以及工作流名称和图标生成器1602。如下面将参考图17讨论的,工作流名称和图标生成器1602被配置为自动地生成用于工作流的名称和图形表示。
特别地,图17描绘了用于自动地生成用于工作流的名称和图形表示的方法的流程图1700。如图17所示,流程图1700的方法开始于步骤1702,在步骤1702中,接收关于工作流的构建的工作流信息。例如,该步骤可以由工作流名称和图标生成器1602执行,工作流名称和图标生成器1602(如图16所示)从在计算设备102上执行的浏览器136接收构建的工作流信息138。如先前参考图1讨论的,构建的工作流信息138包括用于当前正在计算设备102上开发的工作流的所选择的工作流步骤、相应的配置信息和工作流步骤顺序信息。这样的构建的工作流信息138被发送到工作流逻辑生成器112以促进以先前描述的方式生成工作流逻辑120。在这个实施例中,构造的工作流信息138还被提供给工作流名称和图标生成器1602。
在步骤1704,至少基于构建的工作流信息来自动地确定用于工作流的名称和/或图形表示。例如,该步骤可以由工作流名称和图标生成器1602执行,工作流名称和图标生成器1602至少基于在步骤1702期间接收的构建的工作流信息来为当前正在计算设备102上开发的工作流自动地生成名称和/或图形表示1604。例如,工作流名称和图标生成器1602可以基于以下中的一个或多个来生成当前正被开发的工作流的名称和/或图形表示1604:被包括工作流中的一个或多个步骤(及其顺序)、由工作流引用的一个或多个服务(以及这样的服务被引用的顺序)、用于由工作流监测的一个或多个触发事件、被包括在工作流中的一个或多个条件、被包括在工作流中的一个或多个动作等。关于生成工作流名称,描述或涉及工作流的这些方面的单词可以被组合,以生成用于工作流的合适的名称。关于生成图形表示,描述或涉及工作流的这些方面的图像可以被组合,以生成用于工作流的合适的图形表示。例如,在一个实施例中,工作流的图形表示可以通过组合与被包括在工作流中的一个或多个步骤和/或由工作流引用或与工作流交互的服务相关联的图标而被生成。
在步骤1706,与工作流相关联地存储针对工作流而被生成的名称和/或图形表示。例如,该步骤可以由工作流名称和图标生成器1602执行,工作流名称和图标生成器1602可以与工作流库118中的该工作流相关联地存储针对工作流而被生成的名称和/或图形表示1604。
在步骤1708,提供针对工作流而被生成的名称和/或图形表示以用于在工作流设计器GUI内显示。例如,该步骤可以由工作流名称和图标生成器1602执行,工作流名称和图标生成器1602可以向UI生成器110提供名称和/或图形表示1604,使得UI生成器110可以将名称和/或图形表示1604传递给浏览器136作为工作流GUI信息140的一部分。浏览器136可以引起名称和/或图形表示1604被显示在浏览器窗口114内的工作流设计器GUI 116内。例如,工作流的自动地生成的名称可以作为默认工作流名称被显示在文本框或用于输入工作流的名称的其他数据录入元素内,使得开发者可以接受该名称或用新名称覆盖该名称。作为另一示例,自动地生成的名称和图形表示可以显示在开发者可以在其中交互的保存的工作流的菜单内,以便关于一个或多个保存的工作流激活、去激活、编辑、删除或执行其他操作。
现在将参考图18和19的示例工作流设计器GUI进一步说明前述技术。特别地,图18和19示出了在计算设备102是诸如智能手机等移动计算设备的实施例中显示在显示屏幕108的浏览器窗口402内的工作流设计器GUI 116的视图。
在图18中,工作流设计器GUI 116使用本文中先前描述的技术来显示开发者最近构建的工作流1802。如图18所示,工作流设计器GUI 116还包括保存工作流对话框1804。保存工作流对话框1804包括开发者可以将新构建的工作流的名称输入其中的数据录入元素1806(在这种情况下是文本框)、以及将引起新构建的工作流与输入到数据录入元素1806中的名称一起被保存的激活按钮1808(标记为“OK”)。
在一个实施例中,UI生成器110可以引起数据录入元素1806被预先填充工作流1802的系统生成的名称,其中系统生成的名称使用如上所述的流程图1700的方法而被生成。因此,如图18所示,工作流1802的系统生成的名称可以是“当新文件夹被创建时发送电子邮件”。然而,这仅仅是一个示例,并且取决于实现方式,可以生成用于工作流1802的各种系统生成的名称。在一个实施例中,开发者可以通过与激活按钮1808交互来接受系统生成的名称,以使用系统生成的名称保存工作流,或者可以决定更改名称。在后一种情况下,在保存工作流之前,开发者可以与数据录入元素1806交互以修改或覆盖系统生成的名称。
在图19中,工作流设计器GUI 116显示保存的工作流的菜单,开发者可以在其内交互以便关于一个或多个保存的工作流来激活、去激活、编辑、删除或执行其他操作。如图19所示,工作流1802可以由图标1902和名称1904表示,这两者都可以使用如上所述的流程图1700的方法被自动地生成。如图19进一步所示,工作流名称和图标生成器1602可以通过组合与被包括在工作流中的一个或多个步骤和/或由工作流引用或与工作流交互的服务相关联的图标来自动地生成用于工作流的图标。因此,例如,图19的自动地生成的图标1902是与DropBoxTM相关联的图标1906、与相关联的图标1910和与相关联的图标1912的组合。这些图标中的每个是由工作流1802引用的服务,并且因此已经被组合为代表性图标1902。此外,图标1908已经被并入表示工作流1802内的条件步骤的图标1902中。但是,这仅仅是一个示例,并且可以使用各种技术来自动地生成工作流的图标或其他图形表示。
E.用于容易地为正被开发的工作流的工作流步骤指定输入参数值的示例实施例
如前所述,工作流设计器106生成使得开发者能够配置正被开发的工作流内的工作流步骤的工作流设计器GUI 116,其中这样的配置包括指定用于工作流步骤的输入参数的值。在现在将描述的实施例中,工作流设计器GUI 116使得开发者能够容易地指定第二工作流步骤的输入参数的值,以在同一工作流中包括第一工作流步骤的输出参数的值。
特别地,根据一个实施例,工作流设计器GUI 116将正被开发的工作流的第一工作流步骤的输出参数表示为用户交互式对象。这些对象可以容易地与开发者交互(例如,被其点击或拖放),以引起对象被插入到用于指定正被开发的工作流的第二工作流步骤的输入参数的值的数据录入元素(例如,文本框)中。当表示第一和第二工作流步骤的可执行逻辑被生成时,上述的对象到数据录入元素中的插入具有引起第二工作流步骤的输入参数的值被定义为包括与插入的对象对应的输出参数的值的效果。
现在将参考图20描述该功能,图20描绘了根据一个实施例的用于基于与分别表示工作流设计器GUI内的第一工作流步骤的一个或多个输出参数的一个或多个用户交互式对象的用户交互来定义第二工作流步骤的输入参数的值的方法的流程图2000。例如,流程图2000的方法可以由工作流设计器106(或其各种组件)执行,如前所述。为了说明起见,流程图2000的描述也将参考图21和23,图21至图23中的每个在其中计算设备102是诸如智能手机等移动计算设备的实施例中示出了显示在显示屏108的浏览器窗口402内的工作流设计器GUI 116的不同视图。
如图20所示,流程图2000的方法开始于步骤2002,在步骤2002中,接收对要被包括在正被开发的工作流中的第一工作流步骤的用户选择。例如,工作流设计器106可以接收指示开发者已经选择第一工作流步骤“Dropbox—当文件被创建时”的用户输入。这样的输入可以经由显示在工作流设计器GUI内的步骤选择工具来接收,如前所述,或者以某种其他方式来接收。
在步骤2004,在工作流设计器GUI中呈现第一工作流步骤的图形表示。例如,如图21所示,工作流设计器106可以引起第一工作流步骤“Dropbox—当文件被创建时”的图形表示2102被渲染在工作流设计器GUI 116内。在这个示例中,“Dropbox—当文件被创建时”包括监测以确定何时在特定的文件夹中创建了文件的触发步骤。如图21进一步所示,工作流设计器GUI 116包括数据录入元素2104(在这种情况下是文本框)和文件浏览器激活器2106,开发者可以使用它们中的每个来为该步骤指定或选择输入参数。特别地,这些机制使得开发者能够指定或选择要监测文件创建的文件夹的名称。在这个示例中,开发者已经指定了文件夹“Dropbox>Backup”。
在步骤2006,接收对要被包括在正被开发的工作流中的第二工作流步骤的用户选择。例如,工作流设计器106可以接收指示开发者已经选择第二工作流步骤“Outlook—发送电子邮件”的用户输入。这样的输入可以经由显示在工作流设计器GUI内的步骤选择工具来接收,如前所述,或者以某种其他方式来接收。继续参考图21,当开发者与动作按钮2108交互时,可以显示步骤选择工具,以指示开发者希望添加动作(与条件相对)作为正被开发的工作流中的下一步骤。
在步骤2008,在工作流设计器GUI中呈现第二工作流步骤的图形表示。例如,如图22所示,工作流设计器106可以引起第二工作流步骤“Outlook—发送电子邮件”的图形表示2202被渲染在工作流设计器GUI 116内。在这个示例中,“Outlook—发送电子邮件”包括当通过触发步骤“Dropbox—当文件被创建时”检测到触发事件时执行的动作步骤。
进一步根据步骤2008,第二工作流步骤的图形表示包括数据录入元素,用户可以在其中输入第二工作流步骤的输入参数的值。这在图22中进一步示出,其中第二工作流步骤“Outlook—发送电子邮件”的图形表示2202包括第一数据录入元素2204、第二数据录入元素2206和第三数据录入元素2208。开发者可以与这些数据录入元素中的每个交互以指定第二工作流步骤的相应输入参数的值。特别地,开发者可以与第一数据录入元素2204交互以指定要由第二工作流步骤发送的电子邮件的预期接收者,第二数据录入元素2206用于为电子邮件指定主题行,并且第三数据录入元素2208用于指定要被包括在电子邮件的正文中的文本。在这个特定示例中,开发者已经指定(例如,通过向数据录入元素2204中键入文本)电子邮件接收者输入参数的值是“msmith@domain.com”。
在步骤2010中,在工作流设计器GUI中呈现分别表示第一工作流步骤的一个或多个输出参数的一个或多个用户交互式对象。例如,如图22所示,工作流设计器106引起用户交互式对象2210、用户交互式对象2212、用户交互式对象2214、用户交互式对象2216和用户交互式对象2218被呈现在被显示在工作流设计器GUI 116内的工作流步骤“Outlook—发送电子邮件”的图形表示2202内。这些用户交互式对象中的每个分别表示第一工作流步骤“Dropbox—当文件被创建时”的相应输出参数。特别地,用户交互式对象2210表示第一工作流步骤的文件内容输出参数,用户交互式对象2212表示第一工作流步骤的文件标识符输出参数,用户交互式对象2214表示第一工作流步骤的文件名输出参数,用户交互式对象2216表示第一工作流步骤的文件实体标签输出参数,并且用户交互式对象2218表示第一工作流步骤的文件路径输出参数。
在图22所示的示例中,开发者可以与用户交互式对象2210、2212、2214、2216、2218中的每个交互,以引起相应的用户交互式对象被复制到第二数据录入元素2206中。例如,取决于实现方式,开发者可以简单地使用鼠标点击用户交互式对象,经由触摸屏来触摸用户交互式对象,等等。作为另一示例,开发者可以将特定的用户交互式对象拖放到第二数据录入元素2206中。还可以执行将引起用户交互式对象被复制到第二数据录入元素2206中的其他形式的用户交互。
该功能在流程图2000的步骤2012中被表示。特别地,在步骤2012,响应于与一个或多个用户交互式对象中的特定用户交互式对象的用户交互,将特定用户交互式对象复制到数据录入元素中。因此,例如,如图23所示,响应于开发者与图22中的用户交互式对象2214(“文件名”)交互,作为用户交互式对象2214的副本的用户交互式对象2302已经被包括在数据录入元素2206中。进一步根据这个示例,在用户交互式对象2302之后,开发者还向数据录入元素2206中输入一些文本(“在您的Dropbox文件夹中创建的”)。
将用户交互式对象2214复制到数据录入元素2206中的效果是,在运行时,第二工作流步骤“Outlook—发送电子邮件”的“主题”输入参数将被定义为包括第一工作流步骤“Dropbox—当文件被创建时”的“文件名”输出参数的当前值。
例如,假定在运行时,在文件夹“Dropbox>Box”中创建名为“sales_report_0516”的文件,从而触发了触发步骤“Dropbox—当文件被创建时”。在这种情况下,由于第二工作流步骤“Outlook—发送电子邮件”的“主题”输入参数已经被定义为包括第一工作流步骤“Dropbox—当文件被创建时”的“文件名”输出参数的当前值,所以由第二工作流步骤创建的电子邮件的主题将为“sales_report_0516已经在您的Dropbox文件夹中被创建”。
该功能由工作流设计器106根据流程图2000的步骤2012而被实现。在步骤2012中,生成与至少第一工作流步骤和第二工作流步骤对应的可执行工作流逻辑,其中生成可执行工作流逻辑包括定义第二工作流的输入参数的值以包括与被复制到数据录入元素中的特定用户交互式对象对应的第一工作流步骤的特定输出参数的值。因此,进一步根据前述示例,工作流设计器106生成至少与第一工作流步骤“Dropbox—当文件被创建时”和第二工作流步骤“Outlook—发送电子邮件”对应的可执行工作流逻辑(例如,如前所述,经由工作流逻辑生成器112),其中生成这样的逻辑包括定义第二工作流步骤“Outlook—发送电子邮件”的“主题”输入参数的值以包括与被复制到数据录入元素2206中的用户交互式对象2214对应的的第一工作流步骤“Dropbox—当文件被创建时”的“文件名”输出参数的值。
图23进一步示出了用户交互式对象2304、2306、2308、2310和2312(其中每个对象表示第一工作流步骤“Dropbox—当文件被创建时”的输出参数)如何容易地与开发者交互以将这样的输出参数插入到第二工作流步骤“Outlook—发送电子邮件”的输入参数“Body”中。特别地,可以看出,开发者已经与用户交互式对象2308(“文件名”)和用户交互式对象2312(“文件路径”)交互,从而引起其副本(分别是用户交互式对象2314和用户交互式对象2316)被插入到数据录入元素2208中。在运行时,这将具有在第二工作流步骤“Outlook—发送电子邮件”的输入参数“Body”的值中包括第一工作流步骤“Dropbox—当文件被创建时”的输出参数“文件名”和“文件路径”的当前值的效果。
注意,在流程图2000的上述描述中,响应于开发者对这些步骤中的每个步骤的选择,在工作流设计器GUI中呈现第一和第二工作流步骤的图形表示。然而,这样的图形表示也可以响应于其他开发者动作来呈现。例如,如本文中其他地方所解释的,响应于开发者选择或加载特定工作流模板或保存的工作流以编辑和配置,工作流步骤的图形表示也可呈现在工作流设计器GUI内。
III.示例移动设备实现方式
图24是可以实现本文中描述的实施例的示例性移动设备2402的框图。例如,移动设备2402可以用于实现图1的计算设备102或图9的计算设备902。如图24所示,移动设备2402包括各种可选的硬件和软件组件。移动设备2402中的任何组件可以与任何其他组件通信,尽管为了便于说明而并未示出所有连接。移动设备2402可以是各种计算设备(例如,手机、智能手机、手持式计算机、个人数字助理(PDA)等)中的任何一种,并且可以实现与诸如蜂窝或卫星网络等一个或多个移动通信网络2404或者与局域或广域网的无线双向通信。
移动设备2402可以包括用于执行诸如信号编码、数据处理、输入/输出处理、功率控制和/或其他功能等任务的控制器或处理器2410(例如,信号处理器、微处理器、ASIC或其他控制和处理逻辑电路)。操作系统2412可以控制移动设备2402的组件的分配和使用,并且为一个或多个应用程序2414(也称为“应用”或“app”)提供支持。应用程序2414可以包括常见的移动计算应用(例如,电子邮件应用、日历、联系人管理器、网页浏览器、消息收发应用)和任何其他计算应用(例如,文字处理应用、地图绘制应用、媒体播放器应用)。
移动设备2402可以包括存储器2420。存储器2420可以包括不可移除存储器2422和/或可移除存储器2424。不可移除存储器2422可以包括RAM、ROM、闪存、硬盘或其他公知的存储器设备或技术。可移除存储器2424可以包括在GSM通信系统中公知的闪存或订户身份模块(SIM)卡、或者诸如“智能卡”等其他公知的存储器设备或技术。存储器2420可以用于存储用于运行操作系统2412和应用程序2414的数据和/或代码。示例数据可以包括要经由一个或多个有线或无线网络发送到一个或多个网络服务器或其他设备和/或从其接收的网页、文本、图像、声音文件、视频数据或其他数据。存储器2420可以用于存储诸如国际移动订户身份(EVISI)等订户标识符和诸如国际移动设备标识符(IMEI)等设备标识符。这些标识符可以传输到网络服务器以标识用户和设备。
移动设备2402可以支持诸如触摸屏2432、麦克风2434、相机2436、物理键盘2438和/或轨迹球2440等一个或多个输入设备2430、以及诸如扬声器2452和显示器2454等一个或多个输出设备2450。其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以服务于多于一个输入/输出功能。例如,触摸屏2432和显示器2454可以组合在单个输入/输出设备中。输入设备2430可以包括自然用户界面(NUT)。
无线调制解调器2460可以被耦合到天线(未示出),并且可以支持处理器2410与外部设备之间的双向通信,这在本领域中是很好理解的。调制解调器2460通常被示出并且可以包括用于与移动通信网络2404和/或其他基于无线电的调制解调器(例如,蓝牙2464和/或Wi-Fi 2462)通信的蜂窝调制解调器2466。至少一个无线调制解调器2460通常被配置用于与一个或多个蜂窝网络的通信,诸如用于单个蜂窝网络内、蜂窝网络之间或移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络。
移动设备2402还可以包括至少一个输入/输出端口2480、电源2482、诸如全球定位系统(GPS)接收器等卫星导航系统接收器2484、加速度计2486和/或物理连接器2490,物理连接器2490可以是USB端口、IEEE 1394(火线)端口和/或RS-232端口。移动设备2402的所示组件不是必需的或全部的,因为可以删除任何组件,并且可以添加其他组件,如本领域技术人员将认识到的。
在一个实施例中,移动设备2402被配置为实现工作流开发系统100的任何上述特征。用于执行这些设备的功能的计算机程序逻辑可以存储在存储器2420中并且由处理器2410执行。
IV.示例计算机系统实现方式
图25描绘了可以用于实现本文中描述的各种实施例的示例性的基于处理器的计算机系统2500。例如,系统2500可以用于实现如上面参考图1所描述的计算设备102或服务器134、或者如上面参考图9所描述的计算设备902。系统2500也可以用于实现如上所述的图2、10、12、17和20的任何流程图的任何步骤。本文中提供的系统2500的描述是为了说明的目的而提供的,并且不旨在是限制性的。实施例可以在其他类型的计算机系统中被实现,如相关领域的技术人员将会知道的。
如图25所示,系统2500包括处理单元2502、系统存储器2504和将包括系统存储器2504的各种系统组件耦合到处理单元2502的总线2506。处理单元2502可以包括一个或多个电路、微处理器或微处理器核。总线2506表示若干总线结构中的任何一种总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线架构中的任何一种的处理器或本地总线。系统存储器2504包括只读存储器(ROM)2508和随机存取存储器(RAM)2510。基本输入/输出系统2512(BIOS)存储在ROM 2508中。
系统2500还具有以下驱动器中的一个或多个:用于读写硬盘的硬盘驱动器2514、用于读写可移除磁盘2518的磁盘驱动器2516和用于读写可移除光盘2522的光盘驱动器2520,自然CD ROM、DVD ROM、BLU-RAYTM磁盘或其他光学介质。硬盘驱动器2514、磁盘驱动器2516和光盘驱动器2520分别通过硬盘驱动器接口2524、磁盘驱动器接口2526和光盘驱动器接口2528被连接到总线2506。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可移除磁盘和可移除光盘,但是可以使用其他类型的计算机可读存储器设备和存储结构来存储数据,诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等。
多个程序模块可以存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序模块包括操作系统2530、一个或多个应用程序2532、其他程序模块2534和程序数据2536。根据各种实施例,程序模块可以包括由处理单元2502可执行以执行如上面参考图1所描述的计算设备102或服务器134的任何或所有功能和特征的计算机程序逻辑、或者如上面参考图9所描述的计算设备902。程序模块还可以包括在由处理单元2502执行时引起处理单元2502执行如上所述的图2、10、12、17和20的任何流程图的任何步骤的计算机程序逻辑。
用户可以通过诸如键盘2538和指点设备2540(例如,鼠标)等输入设备将命令和信息输入到系统2500中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏控制器、扫描仪等。在一个实施例中,结合显示器2544提供触摸屏以允许用户经由触摸的施加(例如,通过手指或指示笔)来向触摸屏上的一个或多个点提供用户输入。这些和其他输入设备通常通过被耦合到总线2506的串行端口接口2542被连接到处理单元2502,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)等其他接口来连接。这样的接口可以是有线或无线接口。
显示器2544经由诸如视频适配器2546等接口被连接到总线2506。除了显示器2544之外,系统2500还可以包括其他外围输出设备(未示出),诸如扬声器和打印机。
系统2500通过网络接口2550、调制解调器2552或用于通过网络建立通信的其他合适手段被连接到网络2548(例如,局域网或诸如因特网等广域网)。可以是内部或外部的调制解调器2552经由串行端口接口2542被连接到总线2506。
如本文中使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”通常用于指代与硬盘驱动器2514、可移除磁盘2518、可移除光盘2522相关联的存储器设备或存储结构(诸如硬盘)、以及其他存储器设备或存储结构(诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等)。这样的计算机可读存储介质与通信介质区分开并且不与通信介质重叠(不包括通信介质)。通信介质通常以诸如载波等调制数据信号来实施计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号”是指其一个或多个特性以使得能够在信号中对信息编码的方式设置或改变的信号。作为示例而非限制,通信介质包括无线介质,诸如声学、RF、红外和其他无线介质。实施例也涉及这样的通信介质。
如上所述,计算机程序和模块(包括应用程序2532和其他程序模块2534)可以存储在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以经由网络接口2550、串行端口接口2542或任何其他接口类型来接收。这样的计算机程序在由应用执行或加载时使得系统2500能够实现本文中讨论的实施例的特征。因此,这样的计算机程序表示系统2500的控制器。实施例还涉及包括存储在任何计算机可用介质上的软件的计算机程序产品。这样的软件当在一个或多个数据处理设备中执行时引起数据处理设备如本文中描述的那样操作。实施例可以采用现在或未来已知的任何计算机可用或计算机可读介质。计算机可读介质的示例包括但不限于存储器设备和存储结构,诸如RAM、硬盘驱动器、软盘、CD ROM、DVD ROM、压缩盘、磁带、磁存储设备、光存储设备、MEM、基于纳米技术的存储设备等。
在备选实现方式中,系统2500可以被实现为硬件逻辑/电子电路或固件。根据另外的实施例,这些组件中的一个或多个可以在片上系统(SoC)中被实现。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如,微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口和/或用于执行其功能的另外的电路和/或嵌入式固件中的一个或多个。
V.附加示例实施例
本文中描述了一种系统。该系统包括至少一个处理器电路和存储被配置为由至少一个处理器电路执行的程序代码的至少一个存储器。程序代码包括步骤选择器和搜索引擎。步骤选择器被配置为在显示正被开发的工作流的工作流开发系统的GUI内呈现数据录入元素,经由数据录入元素接受输入,以及将输入作为查询提供给搜索引擎。搜索引擎被配置为处理查询以从工作流步骤的库选择一个或多个工作流步骤,以及向步骤选择器提供一个或多个工作流步骤中的每个工作流步骤的标识符。步骤选择器还被配置为在GUI内呈现标识符中的每个标识符,并且在选择标识符中的一个标识符之后,将与选择的标识符对应的工作流步骤的表示渲染为被显示在GUI中的正被开发的工作流的部分。
在前述系统的一个实施例中,搜索引擎包括自然语言搜索引擎。
在前述系统的另一实施例中,搜索引擎被配置为处理查询以通过分析与工作流步骤中的每个工作流步骤相关联的工作流步骤元数据来选择一个或多个工作流步骤。
在前述系统的又一实施例中,工作流步骤元数据包括以下中的至少一种:工作流步骤的标识符;工作流步骤的描述;由工作流步骤利用或引用的服务的标识符;由工作流步骤利用或引用的服务的描述;由工作流步骤监测的触发器的标识符;由工作流步骤监测的触发器的描述;由工作流步骤执行的动作的标识符;或由工作流步骤执行的操作的描述。
在前述系统的另一实施例中,由开发者将与至少一个工作流步骤相关联的工作流步骤元数据提供作为应用编程接口(API)注册过程的一部分。
在上述系统的另外的实施例中,与至少一个工作流步骤相关联的工作流步骤元数据由开发者经由GUI提供,该GUI使得开发者能够利用描述性术语来标记工作流步骤。
在上述系统的又一实施例中,每个标识符包括工作流步骤的名称和图形表示中的一个或多个。
在前述系统的另一实施例中,步骤选择器被配置为在呈现正被开发的工作流的同时呈现数据录入元素和每个标识符。
本文中还描述了一种在计算设备中的用于自动地生成用于工作流开发系统中的正被开发的工作流的名称的方法。该方法包括:接收关于正被开发的工作流的构建的工作流信息,构建的工作流信息包括关于工作流步骤的信息、工作流步骤中的每个工作流步骤的配置和用于工作流步骤的顺序信息;至少基于构建的工作流信息,为正被开发的工作流自动确定名称;与正被开发的工作流相关联地存储名称;以及提供名称以用于在工作流开发系统的图形用户界面(GUI)内显示。
在前述方法的一个实施例中,名称是基于以下中的至少一个来自动确定的:被包括在正被开发的工作流中的一个或多个步骤;被包括在正被开发的工作流中的步骤的顺序;由正被开发的工作流引用的一个或多个服务;由正被开发的工作流引用服务的顺序;由正被开发的工作流监测的一个或多个触发事件;被包括在正被开发的工作流中的一个或多个条件;或者被包括在正被开发的工作流中的一个或多个动作。
在上述方法的另一实施例中,提供名称用于在工作流开发系统的GUI内显示包括预先填充工作流开发系统的GUI的数据录入框,数据录入框可操作以接收正被开发的工作流的用户指定的名称。
在前述方法的又一实施例中,提供名称用于在工作流开发系统的GUI内显示包括在保存的工作流的菜单内提供名称。
在前述方法的又一实施例中,该方法还包括:至少基于构建的工作流信息来为正被开发的工作流自动地生成图形表示;与正被开发的工作流相关联地存储图形表示;以及提供图形表示用于在工作流开发系统的GUI内显示。
在前述方法的另一实施例中,图形表示是通过组合与被包括在工作流中的一个或多个步骤或者与由工作流引用或与工作流交互的一个或多个服务相关联的图标而被自动地生成。
本文中还描述了一种计算机程序产品。该计算机程序产品包括其上记录有计算机程序逻辑的计算机可读存储器,该计算机程序逻辑在由至少一个处理器执行时引起至少一个处理器执行方法。该方法包括:在工作流设计器GUI中呈现第一工作流步骤的图形表示;在工作流设计器GUI中呈现第二工作流步骤的图形表示,第二工作流步骤的图形表示包括数据录入元素,第二工作流步骤的输入参数的值可以被输入到数据录入元素中;在工作流设计器GUI中呈现分别表示第一工作流步骤的一个或多个输出参数的一个或多个用户交互式对象;响应于与一个或多个用户交互式对象中的特定用户交互式对象的用户交互,将特定用户交互式对象复制到数据录入元素中;以及生成与至少第一工作流步骤和第二工作流步骤对应的可执行工作流逻辑,生成可执行工作流逻辑包括:定义第二工作流步骤的输入参数的值以包括与复制到数据录入元素中的特定用户交互式对象对应的第一工作流步骤的特定输出参数的值。
在前述计算机程序产品的一个实施例中,响应于对工作流步骤的用户选择来执行呈现第一工作流步骤的图形表示和呈现第二工作流步骤的图形表示中的至少一个。
在前述计算机程序产品的另一实施例中,响应于对工作流模板的用户选择来执行呈现第一工作流步骤的图形表示和呈现第二工作流步骤的图形表示中的至少一个。
在前述计算机程序产品的又一实施例中,响应于对保存的工作流的用户选择来执行呈现第一工作流步骤的图形表示和呈现第二工作流步骤的图形表示中的至少一个。
在前述计算机程序产品的另一实施例中,与特定用户交互式对象的用户交互包括用户点击特定用户交互式对象。
在前述计算机程序产品的另一实施例中,与特定用户交互式对象的用户交互包括用户将特定用户交互式对象拖放到数据录入元素上。
VI.结论
虽然以上已经描述了各种实施例,但是应当理解,它们仅作为示例而被呈现,而不是限制。相关领域的技术人员将会理解,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以在其中形式和细节上的各种改变。因此,本发明的宽度和范围不应当受到任何上述示例性实施例的限制,而是应当仅根据以下权利要求及其等同物来限定。

Claims (12)

1.一种系统,包括:
至少一个处理器电路;以及
至少一个存储器,所述至少一个存储器存储被配置为由所述至少一个处理器电路执行的程序代码,所述程序代码包括工作流设计器,所述工作流设计器被配置为:
在工作流设计器GUI中呈现第一工作流步骤的图形表示;
在所述工作流设计器GUI中呈现第二工作流步骤的图形表示,所述第二工作流步骤的所述图形表示包括数据录入元素,所述第二工作流步骤的输入参数的值能够被输入到所述数据录入元素中;
在所述工作流设计器GUI中呈现分别表示所述第一工作流步骤的一个或多个输出参数的一个或多个用户交互式对象;
响应于与所述一个或多个用户交互式对象之中的特定用户交互式对象的用户交互,将所述特定用户交互式对象复制到所述数据录入元素中;以及
生成与至少所述第一工作流步骤和所述第二工作流步骤对应的可执行工作流逻辑,生成所述可执行工作流逻辑包括定义所述第二工作流步骤的所述输入参数的所述值以包括与被复制到所述数据录入元素中的所述特定用户交互式对象对应的所述第一工作流步骤的特定输出参数的值。
2.根据权利要求1所述的系统,其中所述工作流设计器被配置为响应于对工作流步骤的用户选择来执行呈现所述第一工作流步骤的所述图形表示和呈现所述第二工作流步骤的所述图形表示中的至少一项。
3.根据权利要求1所述的系统,其中所述工作流设计器被配置为响应于对工作流模板的用户选择来执行呈现所述第一工作流步骤的所述图形表示和呈现所述第二工作流步骤的所述图形表示中的至少一项。
4.根据权利要求1所述的系统,其中所述工作流设计器被配置为响应于对保存的工作流的用户选择来执行呈现所述第一工作流步骤的所述图形表示和呈现所述第二工作流步骤的所述图形表示中的至少一项。
5.根据权利要求1所述的系统,其中与所述特定用户交互式对象的所述用户交互包括所述用户在所述特定用户交互式对象上点击。
6.根据权利要求1所述的系统,其中与所述特定用户交互式对象的所述用户交互包括所述用户将所述特定用户交互式对象拖放到所述数据录入元素上。
7.一种计算设备中的用于自动地生成用于工作流开发系统中的正被开发的工作流的名称的方法,包括:
接收关于所述正被开发的工作流的构建的工作流信息,所述构建的工作流信息包括关于工作流步骤的信息、所述工作流步骤中的每个工作流步骤的配置和用于所述工作流步骤的顺序信息;
至少基于所述构建的工作流信息,自动地确定用于所述正被开发的工作流的名称;
与所述正被开发的工作流相关联地存储所述名称;以及
提供所述名称以用于在所述工作流开发系统的图形用户界面(GUI)内显示。
8.根据权利要求7所述的方法,其中所述名称基于以下中的至少一项被自动地确定:
被包括在所述正被开发的工作流中的一个或多个步骤;
被包括在所述正被开发的工作流中的步骤的顺序;
由所述正被开发的工作流引用的一个或多个服务;
由所述正被开发的工作流引用服务的顺序;
由所述正被开发的工作流监测的一个或多个触发事件;
被包括在所述正被开发的工作流中的一个或多个条件;或者
被包括所述正被开发的工作流中的一个或多个动作。
9.根据权利要求7所述的方法,其中提供所述名称以用于在所述工作流开发系统的所述GUI内显示包括预先填充所述工作流开发系统的所述GUI的数据录入框,所述数据录入框可操作以接收用于所述正被开发的工作流的用户指定的名称。
10.根据权利要求7所述的方法,其中提供所述名称以用于在所述工作流开发系统的所述GUI内显示包括在保存的工作流的菜单内提供所述名称。
11.根据权利要求7所述的方法,还包括:
至少基于所述构建的工作流信息来自动地生成用于所述正被开发的工作流的图形表示;
与所述正被开发的工作流相关联地存储所述图形表示;以及
提供所述图形表示以用于在所述工作流开发系统的所述GUI内显示。
12.根据权利要求11所述的方法,其中所述图形表示通过组合与被包括在所述工作流中的一个或多个步骤或者与由所述工作流引用或与所述工作流交互的一个或多个服务相关联的图标被自动地生成。
CN201680068571.6A 2015-11-23 2016-11-16 具有易于使用特征的工作流开发系统 Active CN108292206B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562258851P 2015-11-23 2015-11-23
US62/258,851 2015-11-23
US15/188,407 2016-06-21
US15/188,407 US10528327B2 (en) 2015-11-23 2016-06-21 Workflow development system with ease-of-use features
PCT/US2016/062122 WO2017091387A2 (en) 2015-11-23 2016-11-16 Workflow development system with ease-of-use features

Publications (2)

Publication Number Publication Date
CN108292206A true CN108292206A (zh) 2018-07-17
CN108292206B CN108292206B (zh) 2022-06-03

Family

ID=58719679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680068571.6A Active CN108292206B (zh) 2015-11-23 2016-11-16 具有易于使用特征的工作流开发系统

Country Status (4)

Country Link
US (4) US10528327B2 (zh)
EP (1) EP3380930B1 (zh)
CN (1) CN108292206B (zh)
WO (2) WO2017091387A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760270A (zh) * 2020-07-24 2021-12-07 北京沃东天骏信息技术有限公司 一种页面开发、渲染方法和装置
WO2024055890A1 (en) * 2022-09-15 2024-03-21 International Business Machines Corporation Auto-wrappering tools with guidance from exemplar commands

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10101976B2 (en) * 2015-04-30 2018-10-16 OpenMethods, Inc. Method, system and apparatus for visual programming of interaction workflows for omni-channel customer contact centers with integrated customer relationship management
US10528327B2 (en) 2015-11-23 2020-01-07 Microsoft Technology Licensing Llc Workflow development system with ease-of-use features
US10423393B2 (en) * 2016-04-28 2019-09-24 Microsoft Technology Licensing, Llc Intelligent flow designer
US10331416B2 (en) 2016-04-28 2019-06-25 Microsoft Technology Licensing, Llc Application with embedded workflow designer
US11169823B2 (en) 2016-09-15 2021-11-09 Oracle International Corporation Process initiation
US11630708B2 (en) * 2016-09-16 2023-04-18 Oracle International Corporation OSN/PCS collaboration mechanism integration
USD810770S1 (en) * 2016-09-21 2018-02-20 Uipco, Llc Display panel or portion thereof with graphical user interface
USD811426S1 (en) * 2016-09-21 2018-02-27 Uipco, Llc Display panel or portion thereof with graphical user interface
USD810771S1 (en) * 2016-09-22 2018-02-20 Adp, Llc Display screen with animated graphical user interface
USD821425S1 (en) 2016-09-26 2018-06-26 General Electric Company Display screen or portion thereof with graphical user interface
US10152356B2 (en) 2016-12-07 2018-12-11 Vmware, Inc. Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty
US10552180B2 (en) 2016-12-07 2020-02-04 Vmware, Inc. Methods, systems, and apparatus to trigger a workflow in a cloud computing environment
US11481239B2 (en) 2016-12-07 2022-10-25 Vmware, Inc. Apparatus and methods to incorporate external system to approve deployment provisioning
CN108428092B (zh) * 2017-08-03 2020-12-04 平安科技(深圳)有限公司 一种业务流程展示方法、装置及设备
US11379565B2 (en) 2017-10-02 2022-07-05 Microsoft Technology Licensing, Llc Identifying and consenting to permissions for workflow and code execution
GB201803069D0 (en) * 2018-02-26 2018-04-11 Support Robotics Ltd System and method for improving performance of an electronic device
US11055650B2 (en) * 2018-02-27 2021-07-06 Logistiview, Inc. Execution systems using unstructured data
US11087259B2 (en) * 2018-07-12 2021-08-10 Nintex UK Ltd. Business designer
US10775987B2 (en) 2018-07-16 2020-09-15 Salesforce.Com, Inc. Processing a sequence of operations using operation tracking screens
US11955227B2 (en) 2018-09-05 2024-04-09 Translational Imaging Innovations, Inc. Methods, systems and computer program products for retrospective data mining
US10754626B2 (en) 2018-11-30 2020-08-25 Shopify Inc. Visual and code views in a process workflow user interface
US10452360B1 (en) 2019-03-19 2019-10-22 Servicenow, Inc. Workflow support for dynamic action input
US10929107B2 (en) 2019-03-19 2021-02-23 Servicenow, Inc. Workflow support for dynamic action output
US11150882B2 (en) 2019-10-14 2021-10-19 UiPath Inc. Naming robotic process automation activities according to automatically detected target labels
EP3809347A1 (en) * 2019-10-15 2021-04-21 UiPath, Inc. Media-to-workflow generation using artificial intelligence (ai)
US11372380B2 (en) 2019-10-15 2022-06-28 UiPath, Inc. Media-to-workflow generation using artificial intelligence (AI)
US11816713B2 (en) * 2019-10-24 2023-11-14 Shopify Inc. Systems and methods for automating tasks across multiple online stores
US11171898B2 (en) * 2019-10-30 2021-11-09 Amazon Technologies, Inc. Extensible framework for reporting automated workflow analytics
US20210149688A1 (en) * 2019-11-18 2021-05-20 Slack Technologies, Inc. Systems and methods for implementing external application functionality into a workflow facilitated by a group-based communication system
CN111242487B (zh) * 2020-01-14 2023-06-09 北京唐颐惠康生物医学技术有限公司 一种基于workflow的动态精准任务分配方法及分配系统
US11232170B1 (en) 2020-09-08 2022-01-25 UiPath, Inc. Application-specific graphical element detection
US11507259B2 (en) * 2020-09-08 2022-11-22 UiPath, Inc. Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
US11372857B2 (en) * 2020-10-29 2022-06-28 Sap Se Configurable entity matching system
US11444903B1 (en) * 2021-02-26 2022-09-13 Slack Technologies, Llc Contextual discovery and design of application workflow
US20230096734A1 (en) * 2021-09-28 2023-03-30 Cerner Innovation, Inc. System and method for automomous testing, machine-learning model-supervised prioritization, and randomized workflow generation
US20230103896A1 (en) * 2021-09-29 2023-04-06 Salesforce.Com, Inc. Configuring dynamic interactions between application elements
US11704417B2 (en) 2021-10-12 2023-07-18 Bank Of America Corporation System for implementing real-time redaction in a workflow configurable environment
US20230236910A1 (en) * 2022-01-24 2023-07-27 UiPath Inc. Systems and Methods for Executing Robotic Process Automation (RPA) Within a Web Browser
US20230311322A1 (en) 2022-03-31 2023-10-05 UiPath Inc. Systems and Methods for Using a Browser to Design Robotic Process Automation (RPA) Robots
WO2023205502A1 (en) * 2022-04-22 2023-10-26 Meta Platforms Technologies, Llc Task optimization in an extended reality environment
US20230376280A1 (en) * 2022-05-18 2023-11-23 Maira Inc. Methods, systems and computer program products for optimizing computer programming for workflow development

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101346713A (zh) * 2005-12-29 2009-01-14 微软公司 在基于工作流的应用程序中对用户输入和交互建模
US20090217302A1 (en) * 2008-02-27 2009-08-27 Accenture Global Services Gmbh Test script transformation architecture
US20090293059A1 (en) * 2008-05-20 2009-11-26 Microsoft Corporation Automatically connecting items of workflow in a computer program
US20120079409A1 (en) * 2010-09-28 2012-03-29 Guiluan Luo Workflow management at a document processing device
CN103210405A (zh) * 2009-02-28 2013-07-17 主数据中心公司 用于工作流整合的方法和系统
US20140129550A1 (en) * 2012-11-06 2014-05-08 Rockwell Automation Technologies, Inc. Content management
US20140229898A1 (en) * 2013-02-08 2014-08-14 cloudRIA, Inc. Browser-based application management

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6624908B1 (en) * 1999-10-01 2003-09-23 Global Graphics Software Limited Method for arranging a prepress workflow
US7373310B1 (en) * 2000-04-06 2008-05-13 International Business Machines Corporation Workflow system matrix organization search engine
US7065493B1 (en) * 2000-04-06 2006-06-20 International Business Machines Corporation Workflow system and method
US7739325B1 (en) * 2000-04-24 2010-06-15 Aspect Software, Inc. Apparatus and method for extensible real-time workflows
WO2002086704A1 (en) 2000-10-11 2002-10-31 Bea Systems, Inc. Smart generator
EP1217515A1 (en) 2000-12-22 2002-06-26 LION bioscience AG Workflow system
US7100147B2 (en) * 2001-06-28 2006-08-29 International Business Machines Corporation Method, system, and program for generating a workflow
US7155439B2 (en) * 2001-09-20 2006-12-26 Wellogix, Inc. Modular and customizable process and system for capturing field documentation data in a complex project workflow system
US7194473B1 (en) * 2002-02-15 2007-03-20 Oracle International Corporation Application platform development environment
US20040078105A1 (en) * 2002-09-03 2004-04-22 Charles Moon System and method for workflow process management
US20040148299A1 (en) 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow composable action model
US7184801B2 (en) * 2003-05-12 2007-02-27 Good Technology, Inc. Mobile application builder
CA2451164C (en) * 2003-09-11 2016-08-30 Teamplate Inc. Customizable components
US8417682B2 (en) 2003-12-12 2013-04-09 International Business Machines Corporation Visualization of attributes of workflow weblogs
US20070276689A1 (en) * 2006-05-12 2007-11-29 Kirk Slone Workflow data binding
US20050256818A1 (en) * 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
NL1029182C2 (nl) * 2004-06-03 2009-08-11 John Bernard Olson Werkwijzen en toestellen voor het ontwerp van visuele applicaties.
US8082169B2 (en) * 2004-06-18 2011-12-20 Canon Kabushiki Kaisha User interface for workflow builder
US9767146B2 (en) * 2004-08-31 2017-09-19 International Business Machines Corporation Use of generated SQL for evaluation of decision point rules in a workflow system
US20060069605A1 (en) * 2004-09-29 2006-03-30 Microsoft Corporation Workflow association in a collaborative application
US7464366B2 (en) * 2004-10-01 2008-12-09 Microsoft Corporation Programming interface for a componentized and extensible workflow model
US7805324B2 (en) 2004-10-01 2010-09-28 Microsoft Corporation Unified model for authoring and executing flow-based and constraint-based workflows
US20060136833A1 (en) * 2004-12-15 2006-06-22 International Business Machines Corporation Apparatus and method for chaining objects in a pointer drag path
US20060253830A1 (en) * 2005-05-06 2006-11-09 Rajanala Arun K Guiding application building using business constraint metadata
US8561048B2 (en) * 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
US8972872B2 (en) * 2006-03-27 2015-03-03 Fujitsu Limited Building computing applications based upon metadata
US8060391B2 (en) 2006-04-07 2011-11-15 The University Of Utah Research Foundation Analogy based workflow identification
US8209659B2 (en) 2006-07-28 2012-06-26 Intuit Inc. Method and apparatus for creating a custom workflow
US7996488B1 (en) 2006-11-27 2011-08-09 Disney Enterprises, Inc. Systems and methods for interconnecting media applications and services with automated workflow orchestration
US20080155479A1 (en) * 2006-12-22 2008-06-26 Mark Long Method and Apparatus for Building Interactive Software Applications
CA2578466A1 (en) * 2007-01-12 2008-07-12 Truecontext Corporation Method and system for customizing a mobile application using a web-based interface
US8046716B2 (en) 2007-06-15 2011-10-25 Microsoft Corporation Creating, displaying, and editing a sub-process within a process diagram
CN101334865A (zh) * 2007-06-28 2008-12-31 国际商业机器公司 工作流用户界面生成方法及生成器
US20090006154A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Declarative workflow designer
US8863107B2 (en) * 2007-08-08 2014-10-14 Innopath Software, Inc. Workflow-based user interface system for mobile devices management
US20090119640A1 (en) * 2007-11-07 2009-05-07 Microsoft Corporation Graphical application for building distributed applications
US8151202B1 (en) * 2007-12-05 2012-04-03 Teradata Us, Inc. Providing a workflow guide
US8370803B1 (en) * 2008-01-17 2013-02-05 Versionone, Inc. Asset templates for agile software development
US8151208B2 (en) 2008-02-07 2012-04-03 Microsoft Corporation Workflow tracking information preview
US20100106547A1 (en) 2008-10-29 2010-04-29 Asaf Adi Automated workflow generation
US20100251155A1 (en) * 2009-03-25 2010-09-30 Microsoft Corporation Placeholder activities and in-lining of code editors in workflow designer
US8468492B1 (en) * 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US8751284B2 (en) * 2009-04-30 2014-06-10 United Parcel Service Of America, Inc. Systems and methods for a real-time workflow platform using Petri net model mappings
US8332811B2 (en) * 2009-04-30 2012-12-11 United Parcel Service Of America, Inc. Systems and methods for generating source code for workflow platform
US20140032606A1 (en) * 2009-08-20 2014-01-30 Adobe Systems Incorporated Collapsible groups in graphical workflow models
US9141345B2 (en) * 2010-01-27 2015-09-22 Microsoft Technology Licensing, Llc Simplified user controls for authoring workflows
US8683359B2 (en) 2010-05-18 2014-03-25 Sap Ag In-place user interface and dataflow modeling
US8621421B2 (en) * 2010-06-10 2013-12-31 Microsoft Corporation Workflow visualization
US8660881B2 (en) 2010-12-03 2014-02-25 Salesforce.Com, Inc. Mechanism for facilitating dynamic visual workflow and task generation in an on-demand services environment
US9245259B2 (en) 2011-01-14 2016-01-26 Apple Inc. Presenting E-mail on a touch device
US8862975B2 (en) 2011-09-19 2014-10-14 Microsoft Corporation Web-based workflow service visualization and navigation
US20130254698A1 (en) * 2012-03-22 2013-09-26 Fluor Technologies Corporation Project activity model
JP5942614B2 (ja) * 2012-06-05 2016-06-29 株式会社リコー 情報処理装置、システム及びプログラム
US9646080B2 (en) 2012-06-12 2017-05-09 9224-5489 Quebec Inc. Multi-functions axis-based interface
US9557988B2 (en) * 2012-09-07 2017-01-31 Inadev Corporation Workflow-based application generator
US20140074526A1 (en) 2012-09-13 2014-03-13 Olivier Caudron Synchronizing data related to workflow
US20140214495A1 (en) * 2012-09-30 2014-07-31 iVedix, Inc. Business intelligence systems and methods
US20140236663A1 (en) * 2012-11-13 2014-08-21 Terry Smith System and method for providing unified workflows integrating multiple computer network resources
US20140201705A1 (en) * 2013-01-12 2014-07-17 Xuewei Ren Extended framework for no-coding dynamic control workflow development on spatial enterprise system
US10326825B2 (en) 2013-03-15 2019-06-18 Gadget Software, Inc. Apparatus for single workflow for multi-platform mobile application creation and delivery
US10320885B2 (en) * 2013-03-15 2019-06-11 Gadget Software, Inc. Method for single workflow for multi-platform mobile application creation and delivery
US20140316841A1 (en) * 2013-04-23 2014-10-23 Kofax, Inc. Location-based workflows and services
CN105247548B (zh) * 2013-05-21 2019-09-10 思杰系统有限公司 基于应用的协作工作空间系统中的用户定义工作流
US10013238B2 (en) * 2013-08-12 2018-07-03 Telefonaktiebolaget Lm Ericsson (Publ) Predicting elements for workflow development
US20150100439A1 (en) 2013-10-08 2015-04-09 Jason Lu Workflow System
US20150160809A1 (en) 2013-12-06 2015-06-11 Biodatomics, LLC Visual effects for scientific workflow editors
EP3084626A4 (en) 2013-12-17 2016-12-28 Atigeo Llc AUTOMATED EXPERIMENTAL PLATFORM
US10198490B2 (en) * 2014-01-06 2019-02-05 Salesforce.Com, Inc. Systems and methods for interactively configuring multiple conditions and multiple actions in a workflow application
US9619771B2 (en) * 2014-04-05 2017-04-11 Parsable, Inc. Systems and methods for digital workflow and communication
US9977654B2 (en) * 2014-06-20 2018-05-22 Asset, S.r.L. Method of developing an application for execution in a workflow management system and apparatus to assist with generation of an application for execution in a workflow management system
US20170132200A1 (en) * 2014-06-25 2017-05-11 James Noland Method, System, and Medium for Workflow Management of Document Processing
US9436507B2 (en) * 2014-07-12 2016-09-06 Microsoft Technology Licensing, Llc Composing and executing workflows made up of functional pluggable building blocks
US9952899B2 (en) * 2014-10-09 2018-04-24 Google Llc Automatically generating execution sequences for workflows
US10102012B2 (en) * 2014-11-12 2018-10-16 Record360 Inc. Dynamically configurable workflow in a mobile environment
US10031780B2 (en) * 2014-11-25 2018-07-24 International Business Machines Corporation Component services integration with dynamic constraint provisioning
US9696971B1 (en) * 2014-12-08 2017-07-04 Ca, Inc. Method and apparatus for generating and packaging integration workflow activities
US20160162539A1 (en) * 2014-12-09 2016-06-09 Lg Cns Co., Ltd. Computer executable method of generating analysis data and apparatus performing the same and storage medium for the same
US9870205B1 (en) * 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US20160232491A1 (en) * 2015-02-09 2016-08-11 Max Nalsky Flexible workflow automation system
US9851995B2 (en) 2015-02-26 2017-12-26 Red Hat Israel, Ltd. Hypervisor adjustment for host transfer between clusters
WO2016144546A2 (en) * 2015-03-06 2016-09-15 Saggezza Inc. Systems and methods for generating data visualization applications
KR102071335B1 (ko) * 2015-06-11 2020-03-02 한국전자통신연구원 워크플로우 모델 생성 방법과 워크플로우 모델 실행 방법 및 장치
US9766927B1 (en) * 2015-10-06 2017-09-19 Amazon Technologies, Inc. Data flow management in processing workflows
US9971572B2 (en) * 2015-10-30 2018-05-15 International Business Machines Corporation GUI-driven symbol management and code generator
US10528327B2 (en) 2015-11-23 2020-01-07 Microsoft Technology Licensing Llc Workflow development system with ease-of-use features
US10331416B2 (en) * 2016-04-28 2019-06-25 Microsoft Technology Licensing, Llc Application with embedded workflow designer
US10698733B1 (en) * 2016-09-02 2020-06-30 Intuit Inc. Integrated system to distribute and execute complex applications
US20200133711A1 (en) * 2018-10-31 2020-04-30 Calculi Corporation Event-Triggered Configuration of Workflow Processes for Computer Software Development Systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101346713A (zh) * 2005-12-29 2009-01-14 微软公司 在基于工作流的应用程序中对用户输入和交互建模
US20090217302A1 (en) * 2008-02-27 2009-08-27 Accenture Global Services Gmbh Test script transformation architecture
US20090293059A1 (en) * 2008-05-20 2009-11-26 Microsoft Corporation Automatically connecting items of workflow in a computer program
CN103210405A (zh) * 2009-02-28 2013-07-17 主数据中心公司 用于工作流整合的方法和系统
US20120079409A1 (en) * 2010-09-28 2012-03-29 Guiluan Luo Workflow management at a document processing device
US20140129550A1 (en) * 2012-11-06 2014-05-08 Rockwell Automation Technologies, Inc. Content management
US20140229898A1 (en) * 2013-02-08 2014-08-14 cloudRIA, Inc. Browser-based application management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760270A (zh) * 2020-07-24 2021-12-07 北京沃东天骏信息技术有限公司 一种页面开发、渲染方法和装置
WO2024055890A1 (en) * 2022-09-15 2024-03-21 International Business Machines Corporation Auto-wrappering tools with guidance from exemplar commands

Also Published As

Publication number Publication date
US20190354350A1 (en) 2019-11-21
WO2017091387A2 (en) 2017-06-01
WO2017091387A3 (en) 2017-07-27
US20200097258A1 (en) 2020-03-26
US10409558B2 (en) 2019-09-10
US20170147296A1 (en) 2017-05-25
EP3380930A2 (en) 2018-10-03
US10817263B2 (en) 2020-10-27
US11099816B2 (en) 2021-08-24
EP3380930B1 (en) 2023-06-07
WO2017091390A1 (en) 2017-06-01
US10528327B2 (en) 2020-01-07
US20170147290A1 (en) 2017-05-25
CN108292206B (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
CN108292206A (zh) 具有易于使用特征的工作流开发系统
US10956128B2 (en) Application with embedded workflow designer
US10846153B2 (en) Bot creation with workflow development system
US10078818B2 (en) Work routine management for collaborative platforms
US20170316363A1 (en) Tailored recommendations for a workflow development system
CN108352003B (zh) 用于通过协同数据库服务的单选或多选数据呈现的方法和设备
CN107004008B (zh) 使用对不同的数据存储位置的自动化查询的相关文件识别
US10726036B2 (en) Source service mapping for collaborative platforms
US20230222391A1 (en) Self-learning ontology-based cognitive assignment engine
CN110199511A (zh) 跨应用推送通知的安全目标对准
US11120200B1 (en) Capturing unstructured information in application pages
US20140279823A1 (en) Lifecycle product analysis
CN107430609A (zh) 针对企业环境的浏览器新标签页的生成
US10248300B2 (en) Polymorph rendering for collaborative platforms
US20230334395A1 (en) Automated code generation for data transformations in a workflow
WO2023200507A1 (en) Automated code generation for data transformations in a workflow

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
GR01 Patent grant
GR01 Patent grant