CN109074549A - 具有嵌入式工作流设计器的应用 - Google Patents
具有嵌入式工作流设计器的应用 Download PDFInfo
- Publication number
- CN109074549A CN109074549A CN201780026370.4A CN201780026370A CN109074549A CN 109074549 A CN109074549 A CN 109074549A CN 201780026370 A CN201780026370 A CN 201780026370A CN 109074549 A CN109074549 A CN 109074549A
- Authority
- CN
- China
- Prior art keywords
- workflow
- user
- application
- software application
- work flow
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/067—Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本文中描述了一种工作流开发系统,其将工作流开发应用的工作流设计器用户界面嵌入到另一软件应用的用户界面中,使得工作流设计器用户界面能够用于生成引用另一软件应用和/或与另一软件应用交互的工作流。在一些方面,工作流开发应用获取指示另一软件应用内的用户的上下文的信息,并且基于所获取的信息推荐工作流模板或工作流步骤以供用户进行选择。工作流开发应用还可以基于所获取的信息预先填充某些工作流步骤的某些参数。
Description
背景技术
商业或企业应用是一种商业用户用来执行各种商业功能的计算机程序。当可用的现成软件没有完全解决期望功能时,经常开发商业应用。很多商业应用是交互式的,具有图形用户界面(GUI),用户可以经由该用户界面输入数据,提交数据查询,执行操作和查看结果。消费者应用不太注重商业,而是专注于消费者的需求。
由于应用复杂性和所需要的编程专业知识,商业和消费者用户倾向于依赖于信息技术(IT)人员来编码他们的应用。例如,仅设计应用以从远程源(例如,云服务)检索数据是困难的,通常需要有经验的软件开发者的参与。
发明内容
提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
本文中描述了一种工作流开发系统,其被配置为将工作流开发应用的工作流设计器用户界面嵌入到另一软件应用的用户界面中,从该另一软件应用调出工作流开发应用。在一些方面,工作流开发应用获取指示在另一软件应用内的用户的上下文的信息,并且基于所获取的信息推荐工作流模板或工作流步骤以供用户进行选择。工作流开发应用还可以基于所获取的信息预先填充某些工作流步骤的某些参数。
下面参考附图详细描述本发明的其他特征和优点以及各种实施例的结构和操作。应当注意,本发明不限于本文中描述的具体实施例。这样的实施例仅出于说明性目的而在本文中呈现。基于本文中包含的教导,其他实施例对于(多个)相关领域的技术人员将是很清楚的。
附图说明
并入本文中并且形成说明书的一部分的附图示出了本申请的实施例,并且与说明书一起进一步用于解释实施例的原理并且使得相关领域的技术人员能够制造和使用实施例的技术。
图1是根据一个示例实施例的工作流开发系统的框图。
图2描绘了根据一个示例实施例的用于开发工作流的过程的流程图。
图3是根据一个示例实施例的工作流设计器的框图。
图4是根据一个示例实施例的示出显示示例性工作流的浏览器窗口的显示屏的框图。
图5-8示出了根据一个示例实施例的使用工作流设计器GUI的各种开发阶段中的示例性工作流的视图。
图9是根据一个示例实施例的用于执行工作流的系统的框图。
图10描绘了根据一个示例实施例的用于执行包括一个或多个工作流的用户应用的过程的流程图。
图11是根据一个示例实施例的被配置为将工作流开发应用的工作流设计器用户界面嵌入到另一软件应用的用户界面中并且定制工作流模板和工作流步骤的工作流开发系统的框图。
图12描绘了根据一个示例实施例的根据实施例的用于将工作流开发应用的工作流设计器用户界面嵌入到另一软件应用的用户界面中的方法的流程图。
图13示出了根据一个示例实施例的软件应用GUI的示例视图。
图14示出了根据一个示例实施例的其中已经嵌入了工作流设计器GUI的软件应用GUI的示例视图。
图15示出了根据一个示例实施例的其中已经嵌入了工作流设计器GUI的软件应用GUI的示例视图。
图16描绘了根据一个示例实施例的工作流开发应用经由嵌入在另一软件应用内的工作流开发应用的工作流设计器用户界面向用户提供定制工作流模板和/或(多个)定制工作流步骤的方法的流程图。
图17是可以用于实现各种实施例的示例移动设备的框图。
图18是可以用于实现各种实施例的示例性的基于处理器的计算机系统的框图。
通过下面结合附图给出的详细描述,本发明的特征和优点将变得更加明显,其中相同的附图标记始终表示相应的元件。在附图中,相同的附图标记通常表示相同的、功能上相似的和/或结构上相似的元件。元素首次出现的绘图由相应附图标记中最左边的(多个)数字表示。
具体实施方式
I.导言
以下详细描述公开了很多示例实施例。本专利申请的范围不限于所公开的实施例,而是还包括所公开的实施例的组合以及对所公开的实施例的修改。
说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定包括特定的特征、结构或特性。而且,这样的短语不一定指的是同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,提出,与其他实施例(不管是否明确描述)相结合来实现这样的特征、结构或特性在(多个)相关领域的技术人员的知识范围内。
在讨论中,除非另有说明,否则诸如“基本上”和“约”等修饰本公开的实施例的特征的条件或关系特性的形容词被理解为表示条件或特性被限定为在预期应用的实施例的操作可接受的公差范围内。
如下描述了很多示例性实施例。应当注意,本文中提供的任何部分/子部分标题不旨在是限制性的。贯穿本文档描述了实施例,并且任何类型的实施例可以被包括在任何部分/子部分下面。此外,在任何部分/子部分中公开的实施例可以以任何方式与在相同部分/子部分和/或不同部分/子部分中描述的任何其他实施例组合。
以下部分II将描述用于开发工作流的示例实施例。特别地,部分II的子部分A和B分别描述了示例工作流开发实施例和运行时实施例。部分II的子部分C描述了其中工作流开发应用的工作流设计器可以嵌入在另一软件应用的用户界面内的示例实施例。
以下部分III将描述可以用于实现本文中描述的实施例的特征的示例移动设备。下面的部分IV将描述可以用于实现本文中描述的实施例的特征的示例性的基于处理器的计算机系统。下面的部分V将描述一些附加示例实施例。部分VI将提供一些结论性意见。
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等平板计算机、上网本等)、可穿戴计算设备(例如,头戴式设备,包括诸如Google GlassTM等智能眼镜)或诸如台式计算机或PC(个人计算机)等固定计算设备。服务器134可以包括一个或多个服务器设备和/或其他计算设备。
存储装置104中的本地应用122是计算设备102在无需通过网络进行通信的可访问的应用的示例。本地应用122可以被配置为当由计算设备102的处理器执行时执行数据处理和/或数据托管操作,并且可以在运行时在这样的工作流被执行时向使用工作流设计器106开发的工作流提供数据132。本地应用122可以是任何类型的本地应用或服务,诸如数据库应用(例如, 电子表格)、电子邮件应用(例如,)、生产力应用(例如, 等)或其他类型的应用。虽然图1示出了单个本地应用,但是计算设备102处可以存在任何数目的本地应用,包括数十、数百或更大数字的数目。
第一基于网络的应用124A和第二基于网络的应用124B是基于网络的应用的示例,在一些情况下,其可以被称为“云”应用或服务。基于网络的应用124A和124B由计算设备102通过网络126可访问,可以被配置为执行数据处理和/或数据托管操作,并且在运行时在这样的工作流被执行时可以分别向使用工作流设计器106创建的工作流提供数据130A和130B。基于网络的应用124A和124B每个可以是任何类型的网络可访问的应用或服务,诸如数据库应用、社交网络应用、消息应用、金融服务应用、新闻应用、搜索应用、生产力应用、云存储应用、文件托管应用等。这样的应用的示例包括网络可访问的SQL(结构化查询语言)数据库、Salesforce.comTM、Finance、The New York(www.nytimes.com)、GoogleTM搜索、GoogleDocsTM、 等。虽然图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被配置为被操作/交互以创建工作流形式的应用。例如,开发者可以通过与能够访问基于网络的应用的计算设备102处的应用交互来访问工作流设计器106,诸如通过与浏览器136交互。开发者可以使用浏览器136来遍历到工作流设计器106的网络地址(例如,统一资源定位器),工作流设计器106在浏览器窗口114中调出工作流设计器GUI 116(例如,网页)。开发者能够与工作流设计器GUI 116交互以开发工作流。
如图1所示,工作流设计器106包括UI生成器110和工作流逻辑生成器112。UI生成器110被配置为将工作流GUI信息140(例如,一个或多个网页、图像内容等)传输到浏览器136以在显示屏108中的浏览器窗口114内显示为工作流设计器GUI 116。工作流设计器GUI116可以由开发者交互以选择和配置工作流步骤到工作流中。例如,开发者可以在工作流设计器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(例如,一个或多个网页、图像内容等)以在浏览器窗口114中的显示屏108中显示为工作流设计器GUI 116。一旦被调出,开发者可以打开现有工作流以用于进一步开发,或者可以开始开发新的工作流。
在一个示例中,工作流设计器GUI 116的显示页面可以显示由模板集生成器302生成的模板集。模板集可以包括多个可选择的工作流模板,所选择的工作流模板中的每个工作流模板包括适合于由开发者进一步配置的一个或多个预先选择的工作流步骤。工作流模板可以存储在工作流库118中,并且被访问以供工作流设计器GUI116显示。开发者可以选择工作流模板之一以包括在她的工作流中,并且可以继续配置工作流模板的内容,和/或可以向工作流模板的工作流步骤添加附加工作流步骤以生成更复杂的工作流。
例如,在图4的示例中,步骤406A和406B可以已经被包括在放置在工作流404中的工作流模板中,并且随后,步骤406C可以被添加(例如,经由从菜单或其他工作流步骤列表中选择)。
在另一示例中,保存工作流选择器304可以使得开发者能够选择要打开的现有的保存的工作流以在工作流设计器GUI 116的显示页面中进一步编辑。保存的工作流可以存储在工作流库118中或其他地方。例如,保存工作流选择器304可以显示保存工作流的列表,可以实现到保存的工作流的导航,和/或可以提供用于选择保存的工作流以进行编辑的另一机制。然后,开发者可以继续进一步配置工作流的内容,添加工作流步骤,修改工作流步骤,移除工作流步骤,等等。
在又一示例中,工作流设计器GUI 116的显示页面可以提供可以向其添加、排序和配置一个或多个开发者选择的工作流步骤的空白窗口、区域或画布。这样的空白窗口、区域或画布可以由UI生成器110自动地或响应于每个开发者输入或交互来生成。
在步骤204中,启用对用于包括在工作流中的一个或多个步骤的选择。当开发者正在编辑工作流时,步骤选择器306可以使得开发者能够选择用于包括在工作流中的工作流步骤以及对步骤进行排序。工作流步骤可以由工作流库118中的步骤选择器306访问。例如,步骤选择器306可以显示工作流步骤的菜单、可用工作流步骤的可滚动和/或可搜索的列表,或者可以以另一种方式提供工作流步骤,并且可以使得开发者能够从列表中选择任何数目的工作流步骤以包括在工作流中。
在一个示例中,步骤选择器306可以使得开发者能够选择与本地应用(诸如)或基于网络的应用(诸如)相关联的步骤。步骤选择器306使得步骤能够按顺序链接在一起,可选地与条件步骤链接在一起,以包括在工作流逻辑120中。
在步骤206中,使得能够配置工作流中的每个所选择的步骤。在一个实施例中,步骤配置UI生成器308使得能够配置工作流中的每个工作流步骤。步骤配置UI生成器308访问工作流库118中的每个所选择的工作流步骤以确定工作流步骤的配置,包括其所有输入参数以及开发者需要提供给工作流步骤以配置它的任何其他选择或信息。例如,步骤配置UI生成器308可以生成UI,该UI使得开发者能够键入、导航到、使用下拉菜单或者以其他方式将输入数据输入到文本输入框或其他数据条目元素中以配置工作流步骤(例如,指定其输入参数)。开发者可以将先前步骤的输出参数配置为工作流步骤的输入数据。步骤配置UI生成器308可以使得数据或其他对象能够被复制和粘贴、拖放或以其他方式从其他地方输入到工作流步骤的数据输入元素中。
在步骤208中,生成用于实现工作流的工作流逻辑。在一个实施例中,工作流逻辑生成器112被配置为当开发者指示工作流完成时(诸如当开发者与工作流设计器GUI 116交互以保存工作流时)基于构造的工作流信息138打包和生成工作流逻辑120。如图3所示,工作流逻辑生成器112接收构造的工作流信息138。构造的工作流信息138指示哪些工作流步骤已经被插入到工作流中、它们的输入参数值及其排序。工作流逻辑生成器112还接收所选择的工作流逻辑320,其是在构造的工作流信息138中指示的工作流的每个工作流步骤的工作流逻辑。在一个示例中,工作流逻辑生成器112针对在构造的工作流信息138中指示的每个工作流步骤从工作流库118中检索工作流逻辑,以接收所选择的工作流逻辑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中的参数值限定的每个有序工作流步骤/操作具有在接口定义信息318中限定的对应的API)。
因此,流程图200和工作流设计器106使得开发者能够创建工作流。图5-8示出了根据示例实施例的使用工作流设计器GUI的各种开发阶段中的示例性工作流的视图。例如,图5-8中的每个示出了显示用于开发工作流的工作流设计器GUI 116的相应视图的浏览器窗口402。
例如,图5示出了包括工作流步骤502和添加界面504的浏览器窗口402。工作流步骤502由开发者选择作为工作流中的第一步骤。可以由开发者与添加界面504(例如,按钮或其他GUI控件)交互以向工作流添加另外的工作流步骤。
如上所述,开发者能够从工作流步骤的列表或库、模板库或其他地方选择工作流步骤502。列表、库(library)或集(gallery)可以包括任何数目的工作流步骤。工作流步骤可以与本文中其他地方提到的或以其他方式已知的基于网络的应用(例如,)和/或本文中其他地方提到的或以其他方式已知的本地应用(例如,)相关联。每个工作流步骤配置有用于执行其相应(多个)功能的适当的逻辑和/或(多个)接口,这些功能可以包括与本地或远程应用通信。例如,用于将查询传输到应用的工作流步骤(例如,对搜索引擎的搜索查询、对数据库的数据库查询、来自社交网络应用的数据请求等)可以在如何向应用正确传输和格式化这样的请求方面被预先配置。作为另一示例,用于接收对请求的响应的工作流步骤可以在如何解析对期望响应数据的响应方面被预先配置。因此,工作流的开发者不需要知道如何以编程语言编写程序代码,如何与复杂的应用接口(例如,应用编程接口(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的“dummyfile”,则条件评估为“是”条件,而如果文件名不包含调出第二动作工作流步骤的“dummyfile”,则条件评估为“否”条件。如果需要,可以由开发者为“是”和“否”动作工作流步骤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是使得计算设备902处的用户能够与正在执行的工作流交互的UI应用,诸如通过选择和调出工作流,从正在执行的工作流接收通信(例如,消息、警报、输出数据等),向正在执行的工作流提供所请求的输入数据,等等。在这样的实施例中,工作流应用904可以是与工作流执行引擎906(例如,工作流应用904可以是工作流执行引擎906的扩展)相关联的工作流UI应用,工作流执行引擎906可以与计算设备902处的浏览器分开操作或在该浏览器内操作,或者可以以另一种方式配置。如图9所示,工作流执行引擎906可以加载所选择的工作流的工作流逻辑120(例如,由用户从工作流库中选择的),并且可以执行工作流逻辑120以执行工作流。
在另一实施例中,工作流应用904可以被配置为在计算设备902处执行工作流。例如,计算设备902的最终用户可以与工作流应用904的用户界面交互以选择和调出特定工作流(例如,从工作流库中选择的)。在这样的实施例中,工作流逻辑120可以与计算设备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.其中工作流开发应用的工作流设计器用户界面嵌入在另一软件应用的用户界面中的示例实施例
在前面部分中描述的工作流开发应用(即,工作流设计器106)可以由开发者使用以生成自动化工作流,该自动化工作流包括对与不同软件应用相关联的服务的应用编程接口(API)调用。例如,工作流开发应用可以允许开发者生成自动化工作流,该自动化工作流包括对由提供的一个或多个服务的一个或多个API调用。然而,这个示例不旨在限制,并且自动化工作流可以包括对与其他软件应用相关联的其他服务的API调用。
在一个实施例中,为了便于访问和易于使用,工作流设计器106的各种特征可以完全嵌入不同的软件应用中或以其他方式被渲染为经由不同的软件应用可访问。例如,工作流设计器106的各种特征可以嵌入中或以其他方式被渲染为经由可访问。如下所述,这使得 用户能够更轻松地创建调出的服务或特征的自动化工作流。同样,这样的实施例不限于 并且(多个)相关领域的技术人员将容易理解,工作流设计器106的特征可以嵌入在其他软件应用中,诸如提供可以由自动化工作流调出的服务/特征的其他软件应用。此外,可选择和/或显示给用户的工作流步骤和/或工作流模板可以基于指示从其调出工作流设计器106的软件应用内的用户的上下文的信息来定制。
图11是根据实施例的被配置为将工作流开发应用(例如,工作流设计器106)的用户界面(例如,工作流设计器GUI 116)嵌入到软件应用124A的用户界面中并且定制工作流步骤和/或工作流模板的工作流开发系统1100的框图。
工作流开发系统1100是如以上参考图1所述的工作流开发系统100的示例实现。因此,工作流开发系统1100包括服务器134、计算设备102和软件应用1124A。软件应用1124A是基于网络的应用124A的示例,如图1所示。如图11所示,软件应用1124A包括工作流开发应用调出器1118和用户界面嵌入器1120。
工作流开发系统1100包括工作流设计器106,工作流设计器106包括UI生成器110,UI生成器110又包括模板集生成器302和步骤选择器306。如前所述,模板集生成器302可以生成经由工作流设计器GUI 116显示给开发者的模板集。模板集可以包括多个可选择的工作流模板,每个工作流模板包括适合于开发者进一步配置的一个或多个预先选择的工作流步骤。在图11所示的实施例中,显示给开发者的工作流模板是从存储在工作流库118中的一组工作流模板1108中选择的。开发者可以选择所显示的工作流模板之一以包括在她的工作流中,并且可以继续配置工作流模板的内容,和/或可以向工作流模板的工作流步骤添加附加的工作流步骤以生成更复杂的工作流。
如前所述,步骤选择器306可以使得开发者能够选择工作流步骤以包括在工作流中以及对步骤进行排序。由步骤选择器306呈现给用户的工作流步骤可以从存储在工作流库118中的一组工作流步骤1116中选择。例如,步骤选择器306可以显示工作流步骤的菜单、可用工作流步骤的可滚动和/或可搜索的列表,或者可以以另一种方式提供工作流步骤,并且可以使得开发者能够从列表中选择任何数目的工作流步骤以包括在工作流中。
在工作流开发系统1100中,工作流设计器106还包括工作流定制器1102。工作流定制器1102被配置为获取指示用户正在使用的软件应用124A内的用户的上下文的信息,并且基于这样的获取的信息来从工作流模板1108中选择性地标识一组推荐的工作流模板和/或从工作流步骤1116中选择性地标识一组推荐的工作流步骤。模板集生成器302可以引起该组推荐的工作流模板和/或步骤选择器306,可以使得该组推荐的工作流步骤经由嵌入在软件应用1124A的用户界面(例如,软件应用GUI 1122)内的工作流设计器GUI 116被呈现给用户。例如,通过分析信息,工作流定制器1102可以选择更有可能对用户有用和/或用户感兴趣的工作流模板和/或工作流步骤以呈现给用户。
UI生成器110被配置为向计算设备102提供推荐的工作流模板和/或步骤。如上所述,开发者可以与在计算设备102上执行的浏览器136交互以访问基于网络的应用。具体地,开发者可以使用浏览器136遍历到软件应用124A的网络地址(例如,统一资源定位符(URL)),软件应用124A调出浏览器窗口114中的软件应用GUI1122(例如,网页)。或者,软件应用124A可以相对于计算设备102本地运行,作为本地应用(例如,本地应用122,如图1所示)。可以使得用户能够使用软件应用GUI 1122调出工作流设计器106,这使得工作流设计器GUI 116被嵌入在软件应用GUI 1122中。
工作流定制器1102还可以被配置为基于指示从其调出工作流设计器106的软件应用124A(例如,或任何其他应用)内的用户的上下文的信息来预先填充(例如,自动填充)或选择一个或多个工作流步骤和/或所选择的工作流模板的某些参数。这个特征使得用户可以非常轻松地定制所选择的模板和/或工作流步骤。
根据实施例,被配置为预先填充的特定工作流模板和/或工作流步骤的参数可以由工作流模板的开发者来定义。例如,开发者可以编辑与工作流模板和/或工作流步骤相关联的定义文件(例如,界面定义信息318,如上参考图3所述)并且指定哪些参数将由工作流生成器1102预先填充。例如,对于要预先填充的每个参数,开发者可以关联使得工作流定制器1102预先填充该参数的元数据(假定该参数的一个或多个值基于指示从其调出工作流设计器106的软件应用124A内的用户的上下文的信息来可确定)。
现在将参考图12描述工作流开发系统1100操作以将工作流开发应用的工作流设计器用户界面嵌入到不同软件应用的用户界面中的方式。特别地,图12描绘了根据实施例的用于将工作流开发应用的工作流设计器用户界面嵌入到不同软件应用的用户界面中的方法的流程图1200。为了说明,将继续参考示例性工作流开发系统1100的组件来描述流程图1200的方法。然而,该方法不限于该实施例,并且可以完全使用其他组件或系统来执行。
如图12所示,流程图1200的方法从步骤1202开始,在步骤1202中,从在计算设备上执行的软件应用调出工作流开发应用。例如,参考图11,工作流开发应用调出器1118可以调出工作流设计器106。
作为示例,图13示出了根据实施例的软件应用GUI 1122的示例视图。如图13所示,用户已经利用导航到显示被标记为“资产”的列表1302的屏幕(位于URL https://contoso.sharepoint.com/teams/marketing)。除了列表,这个屏幕还包括被标记为“添加流”的交互元素1304。
根据一个或多个实施例,工作流开发应用调出器1118被配置为接收用户输入,该用户输入使得API调用被发送到工作流开发应用,该API调用使得工作流开发应用被调出。例如,参考图13,交互式元素1304被配置为当由用户激活时(例如,通过在触摸屏上触摸它,用鼠标指向它并且点击,等等)调出工作流设计器106。例如,工作流开发应用调出器1118可以向工作流设计器106发送使得工作流设计器106被调出的API调用。
现在返回到流程图1200的描述,控制流程到步骤1204。在步骤1204期间,工作流开发应用的工作流设计器用户界面被嵌入到软件应用的用户界面中。工作流设计器用户界面使得用户能够从经由工作流设计器用户界面显示的多个工作流模板或工作流步骤中选择工作流模板或工作流步骤,以用于在工作流设计器用户界面内查看并且经由工作流设计器用户界面修改所选择的工作流模板或工作流步骤。例如,参考图11,用户界面嵌入器1120可以被配置为将工作流设计器GUI 116嵌入到软件应用GUI 1122中。
图14示出了根据实施例的软件应用GUI 1122的示例视图,其中响应于用户激活交互元素1304而嵌入了工作流设计器GUI 116。如图14所示,工作流设计器GUI 116在软件应用GUI 1122内标记为“创建新的流”的侧栏中提供用户可选择的工作流模板1402、1404、1406和1408的列表。注意,UI嵌入器1120可以被配置为以很多方式嵌入工作流设计器GUI116。例如,UI嵌入器1120可以被配置为将工作流设计器GUI 116嵌入到软件应用GUI 1122中作为侧边栏(如图14所示)。在另一示例中,UI嵌入器1120可以通过使用分屏配置显示工作流设计器GUI 116和软件应用GUI 1122来嵌入工作流设计器GUI 116。在又一示例中,UI嵌入器1120可以通过将工作流设计器GUI 116覆盖在软件应用GUI 1122的至少一部分上来嵌入工作流设计器GUI 116。注意,在某些实施例中,响应于用户激活交互元素1304,除了或代替工作流模板1402、1404、1406和1408的列表,工作流设计器GUI 116可以显示一个或多个工作流步骤。
根据一个或多个实施例,经由工作流设计器GUI 116显示的多个工作流模板或工作流步骤基于从其调出工作流开发应用的软件应用来选择。例如,如图14所示,所显示的工作流模板1402、1404、1406和1408中的每个与相关, 是从其调出工作流设计器106的软件应用。
如图14所示,所示出的每个模板基于从其调出工作流设计器GUI 116的软件应用(即,)。也就是说,工作流模板1402、1404、1406和1408中的每个包括涉及与 的交互的一个或多个工作流步骤。例如,当在 中添加新的项目时,工作流模板1402自动发送电子邮件。作为另一示例,当在中创建对象时,工作流模板1404在中创建对象。
根据一个或多个实施例,所选择的工作流模板或工作流步骤基于从其调出工作流开发应用的软件应用来定制。下面参考图16的流程图1600描述关于所选择的工作流模板的定制的附加细节。
根据一个或多个实施例,工作流开发应用相对于软件应用远程执行。例如,再次参考图11,工作流设计器106可以在服务器134上执行,并且软件应用124A可以在除了服务器134之外的实体上执行。例如,软件应用124A可以在与服务器134不同的服务器上或在不包括服务器134的分布式服务器环境中执行。
根据一个或多个实施例,工作流开发应用还被配置为接收与定制工作流模板或定制工作流步骤相关联的一个或多个输入参数和一个或多个输出参数中的至少一个。例如,再次查看图11,工作流设计器106可以被配置为接收与定制工作流模板或定制工作流步骤相关联的一个或多个输入参数和一个或多个输出参数中的至少一个。
根据一个或多个实施例,工作流设计器用户界面通过使得用户能够输入与工作流模板相关联的一个或多个用户可定制参数来使得用户能够修改所选择的工作流模板或工作流步骤。
作为示例,图15示出了根据实施例的软件应用GUI 1122的示例视图,其中响应于用户选择(例如,激活)工作流模板1402而嵌入了工作流设计器GUI 116。如图15所示,工作流设计器GUI 116被覆盖在软件应用GUI 1122之上,尽管这仅是工作流设计器GUI116如何嵌入在软件应用GUI 1122中的一个示例。工作流设计器GUI116提供组成工作流模板1402的步骤的图形表示。这些步骤包括题为“当创建新的项目时”的第一工作流步骤1502、题为“获取我的简档”的第二工作流步骤1504以及题为“发送电子邮件”的第三工作流步骤1506。
第一工作流步骤1502、第二工作流步骤1504和第三工作流步骤1506中的每个可以被配置为接收可以由用户手动定制的一个或多个用户可定制参数。第一工作流步骤1502可以被认为是触发步骤,因为它在运行时通过触发事件的发生而被激活。在这种情况下,只要在特定的站点上的特定 列表中创建新项目,则第一工作流步骤1502被激活。第一工作流步骤1502包括都被配置为接收用户可定制参数的数据输入框1508和数据输入框1510。数据输入框1508被配置为接收标识站点URL的用户可定制参数,并且数据输入框1510被配置为接收标识位于该站点URL处的列表名称的用户可定制参数。工作流设计器GUI 116可以被配置为从用户接收使得用户可定制参数被填充用户指定信息的输入。
第二工作流步骤1504和第三工作流步骤1506可以被认为是动作步骤,因为它们响应于触发步骤的执行而使得动作在运行时被执行。在这种情况下,第二工作流步骤1504中的动作是获取与用户相关联的简档信息,并且第三工作流步骤1506中的动作是发送电子邮件。如图15所示,第二工作流步骤1504包括被配置为接收标识软件应用124A的用户的用户简档的用户可定制参数的数据输入框1512。
关于第三工作流步骤1506,用户能够将用户可定制参数(例如,电子邮件的任何预期接收者的电子邮件地址)添加到数据输入框1514中,将用户可定制参数(例如,电子邮件的主题)添加到数据输入框1516中,以及将用户用户可定制参数(例如,电子邮件的正文)添加到数据输入框1518中。
现在将参考图16描述工作流开发系统1100操作以提供定制工作流模板和/或定制工作流步骤的方式。特别地,图16描绘了根据实施例的工作流开发应用经由嵌入在不同软件应用内的工作流设计器用户界面向用户提供定制工作流模板和/或(多个)定制工作流步骤的方法的流程图1600。为了说明,将继续参考示例性工作流开发系统1100的组件来描述流程图1600的方法。然而,该方法不限于该实施例,并且可以完全使用其他组件或系统来执行。
如图16所示,流程图1600的方法从步骤1602开始,在步骤1602中,由工作流开发应用接收指示软件应用内的用户的上下文的信息。例如,工作流设计器106的工作流定制器1102可以接收指示软件应用124A内的用户的上下文的信息。
根据实施例,工作流开发应用相对于软件应用远程执行。例如,继续参考图11,工作流设计器106可以在服务器134上执行,并且软件应用124A可以在除了服务器134之外的实体上执行。例如,软件应用124A可以在与服务器134不同的服务器上或在不包括服务器134分布式服务器环境中执行。
在图11中,指示软件应用124A内的用户的上下文的信息被表示为上下文信息1106。这样的上下文信息1106可以与工作流库118一起存储在存储装置1104中并且由工作流定制器1102从其中访问。存储装置1104可以包括适合于存储数据并且由工作流设计器106和工作流定制器1102可访问的一个或多个设备和/或系统。在图11中,存储装置1104包括服务器134的一部分。然而,在替代实施例中,存储装置1104可以与服务器134分离但是为了提供远程数据存储能力而与服务器134连接。取决于实现,存储装置1104可以包括基于云的存储服务、诸如网络附加存储设备、磁盘阵列、磁带库、光盘或磁盘驱动器等存储设备、或者存储区域网络。然而,这些仅是示例,而不是限制性的。
上下文信息1106可以通过在与软件应用124A交互时自动监测用户的动作来获取。例如,软件应用124A、工作流定制器1102或工作流设计器106内的某个其他逻辑可以被配置为在用户与软件应用124A交互时收集各种信息。这样的上下文信息可以包括由软件应用124A的用户正在使用的软件应用124A的一个或多个特征、当前正在查看和/或与用户交互的软件应用124A的某些信息、关于先前由用户针对软件应用124A执行的一个或多个动作的历史信息、和/或由用户与软件应用124A相关联地使用的连接器。如本文中使用的,术语“连接器”通常是指可以由软件应用124A调出或与之交互的应用或服务。上下文信息1106还可以包括软件应用124A的一个或多个标识符(例如,名称、版本、构建号或适合于标识软件应用124A的任何其他信息)。
这样的上下文信息可以由工作流定制器1102使用来推荐工作流模板和/或(多个)工作流步骤和/或预先填充所选择的工作流模板的(多个)工作流步骤和/或独立的(多个)工作流步骤(即,未被包括作为工作流模板的一部分的(多个)工作流步骤)的某些用户可定制参数。例如,上下文信息1106可以用于推荐(多个)工作流模板和/或(多个)工作流步骤和/或基于用于调出工作流设计器106(例如,软件应用124A)的软件应用、软件应用的由用户使用(或当前使用)的(多个)特征、由用户正在查看和/或交互的信息和/或由用户与软件应用相关联地使用的(多个)连接器来预先填充所选择的模板和/或工作流步骤的某些用户可定制参数。
根据实施例,软件应用124A向工作流设计器106发送包括上下文信息1106的API调用。
注意,可以被包括在上下文信息1106中的上述信息示例仅是几个示例。(多个)相关领域的技术人员将理解,也可以包括这里未提及的其他类型的用户信息。
再次返回到流程图1600的描述,当在步骤1602处已经接收到指示软件应用内的用户的上下文的信息之后,控制流程到步骤1604。在步骤1604期间,基于该信息,生成定制工作流模板或定制工作流步骤并且将其显示在嵌入在软件应用的用户界面内的工作流开发应用的工作流设计器用户界面中。例如,参考图16,基于上下文信息1106,工作流定制器1102可以生成定制工作流模板或定制工作流步骤,并且将其显示在嵌入在软件应用GUI1122内的工作流设计器GUI 116中。生成的定制工作流模板和/或定制工作流步骤可以基于从由模板集生成器302提供的多个工作流模板中选择的工作流模板和/或从由步骤选择器306提供的多个工作流步骤中选择的工作流步骤。
例如,继续参考图14,工作流模板1402、1404、1406和1408中的每个可以是用户可以激活的交互元素。在激活工作流模板1402、1404、1406或1408之一之后,工作流定制器1102可以基于上下文信息1106生成所选择的工作流模板的定制版本。
继续流程图1600的描述,在步骤1606,使得定制工作流模板或定制工作流步骤被显示在嵌入在软件应用的用户界面内的工作流开发应用的工作流设计器用户界面中。例如,参考图11,UI生成器110使得定制工作流模板或定制工作流步骤被显示在嵌入在软件应用GUI 1122内的工作流设计器GUI 116中。
根据一个或多个实施例,与软件应用的用户交互使得工作流开发应用的工作流设计器用户界面嵌入有软件应用的用户界面。例如,参考图11,与软件应用124A的用户交互使得工作流设计器GUI 116被嵌入有软件应用GUI 1122。例如,参考图13,交互元素1304被配置为当由用户激活时调出工作流设计器106,并且随后使得UI嵌入器1120将工作流设计器GUI 116嵌入到软件应用GUI 1122中。
再次参考图15,第一工作流步骤1502、第二工作流步骤1504和第三工作流步骤1506中的每个可以被配置为通过工作流定制器1102自动接收一个或多个用户可定制参数。例如,工作流定制器1102可以基于上下文信息1106预先填充用户可定制参数。例如,由于在用户查看具有URL“https://contoso.sharepoint.com/teams/marketing”的站点上的列表“资产”(如图14所示)时选择了这个工作流模板,因此,可以基于该上下文信息自动预先填充数据输入框1508和1510。也就是说,工作流定制器1102可以被配置为在工作流设计器106被发起时基于用户在 (或任何其他应用)内的上下文自动填充或选择步骤的某些参数。这个特征使得用户可以非常轻松地定制所选择的模板。
如图15中进一步所示,数据输入框1512已经通过工作流定制器1102基于上下文信息1106被预先填充。具体地,上下文信息1106包括软件应用124A的用户的标识符,并且工作流定制器1102使用该标识符来用用户可定制参数“我”预先填充数据输入框1512。
关于第三工作流步骤1506,数据输入框1514已经通过工作流定制器1102基于上下文信息1106被预先填充。具体地,上下文信息1106包括与软件应用124A的用户相关联的电子邮件地址(“beth@domain.com”),并且工作流定制器1102使用该电子邮件地址来用用户可定制参数“beth@domain.com”预先填充数据输入框1514。
根据一个或多个实施例,第一工作流步骤1502、第二工作流步骤1504和第三工作流步骤1506中的每个还可以被配置为经由工作流设计器GUI 116从用户接收使得上述用户可定制参数中的至少一个如前面参考图12和15所述被填充的输入。
根据一个或多个实施例,定制工作流模板或定制工作流步骤被配置为调出与从其接收上下文的软件应用不同的软件应用。
因此,流程图1600的方法使得工作流开发系统能够向其用户呈现嵌入在不同软件应用内的工作流开发应用的(多个)定制工作流模板和/或(多个)定制工作流步骤。在以简单且有效的方式开发完全定制的工作流时,(多个)定制工作流模板和/或(多个)工作流步骤可能对用户有用和/或是用户感兴趣的。这样的(多个)定制工作流模板和/或(多个)定制工作流步骤提供了技术效果,因为它们可以在使用工作流开发系统时改善用户体验,因为用户能够比她以其他方式更快地定位期望的工作流模板和/或工作流步骤和创建工作流。该特征还可以提供技术效果,因为改进了实现工作流开发系统的底层计算机的性能;特别地,用户能够更快地开发期望的工作流,从而节省了计算资源,诸如功率、处理器周期、网络带宽等。
注意,虽然前述实施例将从其调出工作流开发应用的软件应用描述为与工作流开发应用不同和/或在其外部的软件应用,但是根据一个或多个实施例,工作流开发应用可以是软件应用的一部分和/或合并到软件应用中。根据这样的实施例,在调出工作流开发应用之后,工作流开发应用的用户界面被呈现在软件应用的用户界面内(而不是嵌入在其中)。
III.示例移动设备实现
图17是可以实现本文中描述的实施例的示例性移动设备1702的框图。例如,移动设备1702可以用于实现图1和图11的计算设备102或图9的计算设备902。如图17所示,移动设备1702包括各种可选的硬件和软件组件。移动设备1702中的任何组件可以与任何其他组件通信,但是为了便于说明,并未示出所有连接。移动设备1702可以是各种计算设备(例如,蜂窝电话、智能电话、手持计算机、个人数字助理(PDA)等)中的任何一种,并且可以允许与诸如蜂窝或卫星网络或局域或广域网等一个或多个移动通信网络1704的无线双向通信。
移动设备1702可以包括控制器或处理器1710(例如,信号处理器、微处理器、ASIC或其他控制和处理逻辑电路),用于执行诸如信号编码、数据处理、输入/输出处理、功率控制和/或其他功能等任务。操作系统1712可以控制移动设备1702的组件的分配和使用,并且提供对一个或多个应用程序1714(也称为“应用”或“app”)的支持。应用程序1714可以包括常见的移动计算应用(例如,电子邮件应用、日历、联系人管理器、网络浏览器、消息传递应用)和任何其他计算应用(例如,文字处理应用、地图绘制应用、媒体播放器应用)。
移动设备1702可以包括存储器1720。存储器1720可以包括不可移动存储器1722和/或可移动存储器1724。不可移动存储器1722可以包括RAM、ROM、闪存、硬盘或其他公知的存储设备或技术。可移除存储器1724可以包括闪存或用户识别模块(SIM)卡(其在GSM通信系统中是公知的)或者其他公知的存储器设备或技术,诸如“智能卡”。存储器1720可以用于存储用于运行操作系统1712和应用程序1714的数据和/或代码。示例数据可以包括网页、文本、图像、声音文件、视频数据、或要经由一个或多个有线或无线网络发送给从一个或多个网络服务器或其他设备和/或从其接收的其他数据。存储器1720可以用于存储订户标识符(诸如国际移动订户身份(IMSI))以及设备标识符(诸如国际移动设备标识符(IMEI))。这样的标识符可以传输到网络服务器以标识用户和设备。
移动设备1702可以支持一个或多个输入设备1730(诸如触摸屏1732、麦克风1734、相机1736、物理键盘1738和/或轨迹球1740)以及一个或多个输出设备1750(诸如扬声器1752和显示器1754)。其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以提供多个输入/输出功能。例如,触摸屏1732和显示器1754可以组合在单个输入/输出设备中。输入设备1730可以包括自然用户界面(NUI)。
(多个)无线调制解调器1760可以耦合到(多个)天线(未示出),并且可以支持处理器1710与外部设备之间的双向通信,如本领域公知的。(多个)调制解调器1760一般地示出并且可以包括用于与移动通信网络1704通信的蜂窝调制解调器1766和/或其他基于无线电的调制解调器(例如,蓝牙1764和/或Wi-Fi 1662)。(多个)无线调制解调器1760中的至少一个通常被配置用于与一个或多个蜂窝网络的通信,诸如用于单个蜂窝网络内、蜂窝网络之间或移动设备与公共交换电话网(PSTN)之间的数据和语音通信的GSM网络。
移动设备1702还可以包括至少一个输入/输出端口1780、电源1782、卫星导航系统接收器1784(诸如全球定位系统(GPS)接收器)、加速度计1786和/或物理连接器1790,物理连接器1790可以是USB端口、IEEE 1394(FireWire)端口和/或RS-232端口。移动设备1702的所示组件不是必需的或包括所有的,因为可以删除任何组件并且可以添加其他组件,如本领域技术人员将认识到的。
在一个实施例中,移动设备1702被配置为实现图1的工作流开发系统100或图11的工作流开发系统1100的任何上述特征。用于执行这些设备的功能的计算机程序逻辑可以存储在存储器1720中并且由处理器1710执行。
IV.示例计算机系统实现
图18描绘了可以用于实现本文中描述的各种实施例的示例性的基于处理器的计算机系统1800。例如,系统1800可以用于实现如上面参考图1和11所述的计算设备102或服务器134或者如上面参考图9所述的计算设备902。系统1800还可以用于实现如上所述的如图2、10、12和16的任何流程图的任何步骤。本文中提供的系统1800的描述是出于说明的目的而提供的,而不是限制性的。如(多个)相关领域的技术人员所知,实施例可以在其他类型的计算机系统中实现。
如图18所示,系统1800包括处理单元1802、系统存储器1804和总线1806,总线1806将包括系统存储器1804在内的各种系统组件耦合到处理单元1802。处理单元1802可以包括一个或多个电路、微处理器或微处理器核。总线1806表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或本地总线。系统存储器1804包括只读存储器(ROM)1808和随机存取存储器(RAM)1810。基本输入/输出系统1812(BIOS)存储在ROM1808中。
系统1800还具有以下驱动器中的一个或多个:用于从硬盘读取和向其写入的硬盘驱动器1814、用于从可移动磁盘1818读取或向其写入的磁盘驱动器1816、以及用于从可移动光盘1822读取或向其写入的光盘驱动器1820,可移动光盘1822诸如CD ROM、DVD ROM、BLU-RAYTM盘或其他光学介质。硬盘驱动器1814、磁盘驱动器1816和光盘驱动器1820分别通过硬盘驱动器接口1824、磁盘驱动器接口1826和光盘驱动器接口1828连接到总线1806。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。虽然描述了硬盘、可移动磁盘和可移动光盘,但是可以使用其他类型的计算机可读存储器设备和存储结构来存储数据,诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等。
很多程序模块可以存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序模块包括操作系统1830、一个或多个应用程序1832、其他程序模块1834和程序数据1836。根据各种实施例,程序模块可以包括由处理单元1802可执行以执行如上面参考图1和11所述的计算设备102或服务器134或者如上面参考图9所述的计算设备902的任何或所有功能和特征的计算机程序逻辑。程序模块还可以包括当由处理单元1802执行时使得处理单元1802执行如上所述的图2、10、12和16的任何流程图的任何步骤的计算机程序逻辑。
用户可以通过诸如键盘1838和指示设备1840(例如,鼠标)等输入设备将命令和信息输入到系统1800中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏控制器、扫描仪等。在一个实施例中,结合显示器1844提供触摸屏,以允许用户经由触摸(例如,通过手指或触笔)到触摸屏上的一个或多个点的应用来提供用户输入。这些和其他输入设备通常通过耦合到总线1806的串行端口接口1842连接到处理单元1802,但是可以通过其他接口连接,诸如并行端口、游戏端口或通用串行总线(USB)。这样的接口可以是有线或无线接口。
显示器1844经由诸如视频适配器1846等接口连接到总线1806。除了显示器1844之外,系统1800还可以包括其他外围输出设备(未示出),诸如扬声器和打印机。
系统1800通过网络接口1850、调制解调器1852或用于通过网络上建立通信的其他合适的装置连接到网络1848(例如,局域网或诸如因特网等广域网)。可以是内部的或外部的调制解调器1852经由串行端口接口1842连接到总线1806。
如本文中使用的术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”通常用于指代存储器设备或存储结构,诸如与硬盘驱动器1814相关联的硬盘、可移动磁盘1818、可移动光盘1822以及其他存储器设备或存储结构,诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等。这样的计算机可读存储介质与通信介质不同并且不重叠(不包括通信介质)。通信介质通常在诸如载波等调制数据信号中实施计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号”表示以使得能够在信号中对信息进行编码的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如声学、RF、红外和其他无线介质等无线介质。实施例也涉及这样的通信介质。
如上所述,计算机程序和模块(包括应用程序1832和其他程序模块1834)可以存储在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序还可以经由网络接口1850、串行端口接口1842或任何其他接口类型来接收。当由应用执行或加载时,这样的计算机程序使得系统1700能够实现本文中讨论的实施例的特征。因此,这样的计算机程序表示系统1800的控制器。实施例还涉及包括存储在任何计算机可用介质上的软件的计算机程序产品。当在一个或多个数据处理设备中执行时,这样的软件使得(多个)数据处理设备如本文所述进行操作。实施例可以采用现在或将来已知的任何计算机可用或计算机可读介质。计算机可读介质的示例包括但不限于存储器设备和存储结构,诸如RAM、硬盘驱动器、软盘、CD ROM、DVDROM、zip磁盘、磁带、磁存储设备、光存储设备、MEM、基于纳米技术的存储设备等。
在替代实现中,系统1800可以被实现为硬件逻辑/电路或固件。根据另外的实施例,这些组件中的一个或多个可以在片上系统(SoC)中实现。SoC可以包括集成电路芯片,集成电路芯片包括处理器(例如,微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口和/或另外的电路和/或嵌入式固件中的一个或多个以执行其功能。
V.附加示例实施例
本文中描述了一种计算设备中的系统。该系统包括至少一个处理器电路和存储被配置为由至少一个处理器电路执行的程序代码的至少一个存储器。该程序代码包括被配置为从在计算设备上执行的软件应用调出工作流开发应用的工作流开发应用调出器和被配置为将工作流开发应用的工作流设计器用户界面嵌入到软件应用的用户界面中的用户界面嵌入器。用户界面使得用户能够从经由工作流设计器用户界面显示的多个工作流模板或工作流步骤中选择工作流模板或工作流步骤用于在工作流设计器用户界面内查看并且经由用户界面修改所选择的工作流模板或工作流步骤。
在前述系统的一个实施例中,工作流开发应用调出器被配置为接收用户输入,该用户输入使得应用编程接口(API)调用被提供给工作流开发应用,该API调用使得工作流开发应用被调出。
在前述系统的另一实施例中,所选择的工作流模板或工作流步骤是基于从其调出工作流开发应用的软件应用来定制的。
在前述系统的另一实施例中,经由GUI显示的多个工作流模板或工作流步骤是基于从其调出工作流开发应用的软件应用来选择的。
在前述系统的又一实施例中,工作流开发应用是相对于软件应用远程执行的。
在前述系统的又一实施例中,工作流设计器用户界面通过使得用户能够输入与工作流模板相关联的一个或多个用户可定制参数来使得用户能够修改所选择的工作流模板或工作流步骤。
本文中还描述了一种方法。该方法包括:通过工作流开发应用接收指示软件应用内的用户的上下文的信息;基于该信息在嵌入在软件应用的用户界面内的工作流开发应用的工作流设计器用户界面内生成定制工作流模板或定制工作流步骤;并且使得定制工作流模板或定制工作流步骤被显示在嵌入在软件应用的用户界面内的工作流开发应用的工作流设计器用户界面中。
在前述方法的一个实施例中,在嵌入在软件应用的用户界面内的工作流开发应用的工作流设计器用户界面内生成定制工作流模板或定制工作流步骤包括基于该信息预先填充与定制工作流模板或定制工作流步骤相关联的一个或多个用户可定制参数中的至少一个。
在前述方法的另一实施例中,该方法还包括经由用户界面从用户接收输入,该输入使得与定制工作流模板相关联的一个或多个用户可定制参数中的至少一个被填充。
在前述方法的另一实施例中,通过工作流开发应用接收指示软件应用内的用户的上下文的信息包括通过工作流开发应用从软件应用接收包括该信息的API调用。
在前述方法的又一实施例中,工作流开发应用是从软件应用远程执行的。
在前述方法的又一实施例中,与软件应用的用户交互使得工作流开发应用的工作流设计器用户界面被嵌入在软件应用的用户界面内。
在前述方法的又一实施例中,上下文包括用户当前正在使用的软件应用的一个或多个特征。
本文中还描述了另一种系统。该系统包括至少一个处理器电路和存储被配置为由至少一个处理器电路执行的程序代码的至少一个存储器。该程序代码包括工作流开发应用。工作流开发应用被配置为接收指示软件应用内的用户的上下文的信息,基于该信息生成定制工作流模板或定制工作流步骤,并且使得定制工作流模板或工作流步骤被呈现在嵌入在软件应用的用户界面中的工作流设计器用户界面内。
在前述系统的一个实施例中,工作流开发应用还被配置为基于该信息预先填充与定制工作流模板或定制工作流步骤相关联的一个或多个用户可定制参数中的至少一个。
在前述系统的另一实施例中,工作流开发应用还被配置为经由工作流设计器用户界面从用户接收输入,该输入使得与定制工作流模板或定制工作流步骤相关联的一个或多个用户可定制参数中的至少一个被填充。
在前述系统的又一实施例中,工作流开发应用被配置为从软件应用接收包括该信息的API调用。
在前述系统的另一实施例中,工作流开发应用是相对于软件应用远程执行的。
在前述方法的又一实施例中,与软件应用的用户交互使得工作流开发应用的工作流设计器用户界面被嵌入在软件应用的用户界面内。
在前述系统的又一实施例中,上下文包括软件应用的、当前正在由用户使用的一个或多个特征。
在前述系统的又一实施例中,工作流开发应用还被配置为接收与定制工作流模板或定制工作流步骤相关联的一个或多个输入参数和一个或多个输出参数中的至少一个。
VI.结论
尽管上面已经描述了各种实施例,但是应当理解,它们仅以示例的方式呈现,而不是限制。(多个)相关领域的技术人员将理解,在不脱离在所附权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本发明的广度和范围不应当受任何上述示例性实施例的限制,而应当仅根据所附权利要求及其等同物来限定。
Claims (15)
1.一种系统,包括:
至少一个处理器电路;以及
至少一个存储器,所述至少一个存储器存储被配置为由所述至少一个处理器电路执行的程序代码,所述程序代码包括:
工作流开发应用,其被配置为:
接收指示软件应用内的用户的上下文的信息;
基于所述信息生成定制工作流模板或定制工作流步骤;以及
使得所述定制工作流模板或者所述定制工作流步骤被呈现在工作流设计器用户界面内,所述工作流设计器用户界面被嵌入在所述软件应用的用户界面内。
2.根据权利要求1所述的系统,其中所述工作流开发应用还被配置为基于所述信息预先填充与所述定制工作流模板或者所述定制工作流步骤相关联的一个或多个用户可定制参数中的至少一个用户可定制参数。
3.根据权利要求1所述的系统,其中所述工作流开发应用还被配置为经由所述工作流设计器用户界面从用户接收输入,所述输入使得与所述定制工作流模板或者所述定制工作流步骤相关联的一个或多个用户可定制参数中的至少一个用户可定制参数被填充。
4.根据权利要求1所述的系统,其中所述工作流开发应用被配置为从所述软件应用接收包括所述信息的API调用。
5.根据权利要求1所述的系统,其中所述工作流开发应用相对于所述软件应用被远程执行。
6.根据权利要求1所述的系统,其中与所述软件应用的用户交互使得所述工作流开发应用的所述工作流设计器用户界面被嵌入在所述软件应用的所述用户界面内。
7.根据权利要求1所述的系统,其中所述上下文包括所述软件应用的、当前正在由所述用户使用的一个或多个特征。
8.根据权利要求1所述的系统,其中所述工作流开发应用还被配置为接收与所述定制工作流模板或者所述定制工作流步骤相关联的一个或多个输入参数和一个或多个输出参数中的至少一个参数。
9.一种方法,包括:
由工作流开发应用接收指示第一软件应用内的用户的上下文的信息;
基于所述信息在工作流设计器用户界面内生成定制工作流模板或定制工作流步骤,所述工作流设计器用户界面被呈现在所述第一软件应用的用户界面内,所述定制工作流模板或所述定制工作流步骤被配置为调出与所述第一软件应用不同的至少一个第二软件应用;以及
使得所述定制工作流模板或所述定制工作流步骤被显示在所述工作流设计器用户界面中,所述工作流设计器用户界面被呈现在所述第一软件应用的所述用户界面内。
10.根据权利要求9所述的方法,所述生成包括:
基于所述信息预先填充与所述定制工作流模板或所述定制工作流步骤相关联的一个或多个用户可定制参数中的至少一个用户可定制参数。
11.根据权利要求9所述的方法,还包括:
经由所述工作流设计器用户界面从用户接收输入,所述输入使得一个或多个用户可定制参数中的至少一个用户可定制参数被填充。
12.根据权利要求9所述的方法,所述接收包括:
由所述工作流开发应用从所述第一软件应用接收包括所述信息的API调用。
13.根据权利要求9所述的方法,其中所述工作流开发应用相对于所述第一软件应用被远程执行。
14.根据权利要求9所述的方法,其中与所述第一软件应用的用户交互使得所述工作流开发应用的工作流设计器用户界面被呈现在所述第一软件应用的所述用户界面内。
15.根据权利要求9所述的方法,其中所述上下文包括所述第一软件应用的、当前正在由所述用户使用的一个或多个特征。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662329016P | 2016-04-28 | 2016-04-28 | |
US201662328913P | 2016-04-28 | 2016-04-28 | |
US62/329,016 | 2016-04-28 | ||
US62/328,913 | 2016-04-28 | ||
US15/408,238 US10331416B2 (en) | 2016-04-28 | 2017-01-17 | Application with embedded workflow designer |
US15/408,238 | 2017-01-17 | ||
PCT/US2017/029502 WO2017189638A1 (en) | 2016-04-28 | 2017-04-26 | Application with embedded workflow designer |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109074549A true CN109074549A (zh) | 2018-12-21 |
Family
ID=60158336
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780025654.1A Active CN109074537B (zh) | 2016-04-28 | 2017-04-26 | 电子系统、计算设备和计算设备中的方法 |
CN201780026370.4A Withdrawn CN109074549A (zh) | 2016-04-28 | 2017-04-26 | 具有嵌入式工作流设计器的应用 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780025654.1A Active CN109074537B (zh) | 2016-04-28 | 2017-04-26 | 电子系统、计算设备和计算设备中的方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10331416B2 (zh) |
EP (1) | EP3449444A1 (zh) |
CN (2) | CN109074537B (zh) |
WO (2) | WO2017189636A1 (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US10979539B1 (en) | 2017-07-21 | 2021-04-13 | State Farm Mutual Automobile Insurance Company | Method and system of generating generic protocol handlers |
CN108829378B (zh) * | 2018-05-24 | 2022-06-21 | 北京顺丰同城科技有限公司 | 一种应用软件的开发方法、装置及电子设备 |
US11768707B2 (en) * | 2018-08-27 | 2023-09-26 | Box, Inc. | Workflow selection |
CN110895463B (zh) * | 2018-09-13 | 2023-06-20 | 百度在线网络技术(北京)有限公司 | 标签处理方法、装置、设备及计算机可读存储介质 |
US20200090097A1 (en) * | 2018-09-14 | 2020-03-19 | International Business Machines Corporation | Providing user workflow assistance |
EP3637339A1 (en) * | 2018-10-08 | 2020-04-15 | Augnition NV | Method for in-procedure initialization of new instructural flow procedure on head-mounted display device |
US10754626B2 (en) | 2018-11-30 | 2020-08-25 | Shopify Inc. | Visual and code views in a process workflow user interface |
US20200193221A1 (en) * | 2018-12-17 | 2020-06-18 | At&T Intellectual Property I, L.P. | Systems, Methods, and Computer-Readable Storage Media for Designing, Creating, and Deploying Composite Machine Learning Applications in Cloud Environments |
CN109814854B (zh) * | 2019-01-24 | 2024-05-03 | 平安科技(深圳)有限公司 | 项目框架生成方法、装置、计算机设备和存储介质 |
US11409644B2 (en) | 2019-03-11 | 2022-08-09 | Microstrategy Incorporated | Validation of mobile device workflows |
US11194845B2 (en) | 2019-04-19 | 2021-12-07 | Tableau Software, LLC | Interactive lineage analyzer for data assets |
FR3097672A1 (fr) * | 2019-06-21 | 2020-12-25 | Aava Mobile Sas | Système d’applications de service pour terminaux de paiement |
US12062001B2 (en) | 2019-08-30 | 2024-08-13 | Microstrategy Incorporated | Automated workflows enabling selective interaction with users |
US11354216B2 (en) | 2019-09-18 | 2022-06-07 | Microstrategy Incorporated | Monitoring performance deviations |
US11651003B2 (en) * | 2019-09-27 | 2023-05-16 | Tableau Software, LLC | Interactive data visualization interface for data and graph models |
US11669793B2 (en) | 2019-10-01 | 2023-06-06 | Box, Inc. | Inter-application workflow performance analytics |
US11816713B2 (en) * | 2019-10-24 | 2023-11-14 | Shopify Inc. | Systems and methods for automating tasks across multiple online stores |
US11966774B2 (en) | 2019-10-25 | 2024-04-23 | Microstrategy Incorporated | Workflow generation using multiple interfaces |
US11829421B2 (en) | 2019-11-08 | 2023-11-28 | Tableau Software, LLC | Dynamic graph generation for interactive data analysis |
US11086602B2 (en) * | 2019-11-13 | 2021-08-10 | Palantir Technologies Inc. | Workflow application and user interface builder integrating objects, relationships, and actions |
US11681572B2 (en) | 2019-12-23 | 2023-06-20 | Box, Inc. | Extensible workflow access |
US10908971B1 (en) * | 2020-01-30 | 2021-02-02 | Salesforce.Com, Inc. | Method and system for generating a customizable connector |
US20210287315A1 (en) * | 2020-03-16 | 2021-09-16 | Hantz Group, Inc. | Architectures and methods for generating and transferring electronically signed document data packages |
US11743227B2 (en) * | 2020-04-20 | 2023-08-29 | Nextiva, Inc. | System and method of generating automated communications |
CN113312083B (zh) * | 2020-07-14 | 2024-01-23 | 阿里巴巴集团控股有限公司 | 应用生成方法、装置及设备 |
US20220083679A1 (en) | 2020-09-14 | 2022-03-17 | Box, Inc. | Broker-assisted workflows |
WO2022075878A1 (ru) * | 2020-10-08 | 2022-04-14 | Общество С Ограниченной Ответственностью "Альбато" | Способ реализации приложения встраиваемых приложений |
US20230030393A1 (en) * | 2020-10-13 | 2023-02-02 | Shenzhen Jingtai Technology Co., Ltd. | General description language data system for directed acyclic graph automatic task flow |
US11444903B1 (en) * | 2021-02-26 | 2022-09-13 | Slack Technologies, Llc | Contextual discovery and design of application workflow |
US20220318067A1 (en) * | 2021-04-06 | 2022-10-06 | Intuit Inc. | Orchestration layer for user defined automation workflows |
FR3124292A1 (fr) * | 2021-06-29 | 2022-12-23 | Orange | Générateur et procédé de génération de deuxièmes traitement, et dispositif de fourniture de services l’utilisant |
US12105742B2 (en) | 2021-08-31 | 2024-10-01 | Tableau Software, LLC | Providing data flow directions for data objects |
US20230072246A1 (en) * | 2021-09-07 | 2023-03-09 | Slack Technologies, Inc. | Workflow interface in a communication platform |
US20230161607A1 (en) * | 2021-11-23 | 2023-05-25 | Salesforce.Com, Inc. | Screen-pop configuration using flow builder application |
US20230236712A1 (en) * | 2022-01-24 | 2023-07-27 | UiPath Inc. | Browser-Based Robotic Process Automation (RPA) Robot Design Interface |
US12101373B2 (en) | 2022-03-31 | 2024-09-24 | UiPath Inc. | Systems and methods for using a browser to design robotic process automation (RPA) robots |
US12118488B2 (en) * | 2022-04-14 | 2024-10-15 | Microsoft Technology Licensing, Llc | Automated code generation for data transformations in a workflow |
US11797760B1 (en) * | 2022-09-29 | 2023-10-24 | Docusign, Inc. | Machine learning based instantiation of documents based on templates in a document management system |
US20240111946A1 (en) * | 2022-09-29 | 2024-04-04 | Docusign, Inc. | Generating document templates in a document management system |
WO2024072808A1 (en) * | 2022-09-29 | 2024-04-04 | Docusign, Inc. | Machine learning based generation of documents based on templates |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658568B1 (en) | 1995-02-13 | 2003-12-02 | Intertrust Technologies Corporation | Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management |
US6728762B1 (en) * | 2000-01-04 | 2004-04-27 | International Business Machines Corporation | System and method for browser definition of workflow documents |
US7065493B1 (en) * | 2000-04-06 | 2006-06-20 | International Business Machines Corporation | Workflow system and method |
WO2002029682A1 (en) * | 2000-10-02 | 2002-04-11 | International Projects Consultancy Services, Inc. | Object-based workflow system and method |
US7581011B2 (en) | 2000-12-22 | 2009-08-25 | Oracle International Corporation | Template based workflow definition |
US6603882B2 (en) | 2001-04-12 | 2003-08-05 | Seho Oh | Automatic template generation and searching method |
US7069536B2 (en) | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
US7840934B2 (en) | 2001-08-29 | 2010-11-23 | Hewlett-Packard Development Company, L.P. | Method and system for integrating workflow management systems with business-to-business interaction standards |
US7305656B2 (en) | 2002-02-14 | 2007-12-04 | Hubbard & Wells | Content management framework for use with a system for application development |
US20030195762A1 (en) | 2002-04-12 | 2003-10-16 | David Gleason | Automated workflow |
US20040148299A1 (en) * | 2002-11-25 | 2004-07-29 | Microsoft Corporation | Automated workflow composable action model |
US7610575B2 (en) | 2003-01-08 | 2009-10-27 | Consona Crm Inc. | System and method for the composition, generation, integration and execution of business processes over a network |
CN1853196A (zh) | 2003-08-29 | 2006-10-25 | 皇家飞利浦电子股份有限公司 | 用来开发并执行图像处理协议的可执行模板的方法、设备和计算机程序 |
CA2451164C (en) * | 2003-09-11 | 2016-08-30 | Teamplate Inc. | Customizable components |
US8782616B2 (en) * | 2004-01-12 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Templates for configuring digital sending devices to achieve an automated business process |
US7272616B1 (en) | 2004-07-29 | 2007-09-18 | Oag Worldwide Limited | Method and apparatus for generating custom configured output |
US20060069605A1 (en) | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow association in a collaborative application |
US20060136490A1 (en) | 2004-12-17 | 2006-06-22 | International Business Machines Corporation | Autonomic creation of shared workflow components in a provisioning management system using multi-level resource pools |
WO2007052285A2 (en) | 2005-07-22 | 2007-05-10 | Yogesh Chunilal Rathod | Universal knowledge management and desktop search system |
US8583466B2 (en) | 2005-08-09 | 2013-11-12 | Oracle International Corporation | System and method for routing workflow items based on workflow templates in a call center |
US8117549B2 (en) | 2005-10-26 | 2012-02-14 | Bruce Reiner | System and method for capturing user actions within electronic workflow templates |
US8284423B2 (en) | 2006-04-07 | 2012-10-09 | Ricoh Production Print Solutions LLC | Customer-configurable print workflow system |
US7571069B1 (en) * | 2006-12-22 | 2009-08-04 | Hewlett-Packard Development Company, L.P. | Data assurance workflow derivation and execution |
US7991317B2 (en) | 2007-02-19 | 2011-08-02 | Kabushiki Kaisha Toshiba | Automatic job template generating apparatus and automatic job template generation method |
CN101334865A (zh) | 2007-06-28 | 2008-12-31 | 国际商业机器公司 | 工作流用户界面生成方法及生成器 |
US8301480B2 (en) | 2007-11-01 | 2012-10-30 | International Business Machines Corporation | Automatically evolving processes in workflow automation |
US20090171708A1 (en) | 2007-12-28 | 2009-07-02 | International Business Machines Corporation | Using templates in a computing environment |
US20090183185A1 (en) | 2008-01-16 | 2009-07-16 | Microsoft Corporation | Declarative and Extensible Process Definition |
US8370293B2 (en) * | 2008-08-21 | 2013-02-05 | Terarecon Inc. | Workflow template management for medical image data processing |
JP5422939B2 (ja) | 2008-08-25 | 2014-02-19 | 富士通株式会社 | 変更プログラム、情報処理装置および変更方法 |
US8195321B2 (en) | 2008-10-24 | 2012-06-05 | Bell And Howell, Llc | Item workflow tracking in an automated production environment |
US20100241990A1 (en) | 2009-03-23 | 2010-09-23 | Microsoft Corporation | Re-usable declarative workflow templates |
US20100251155A1 (en) * | 2009-03-25 | 2010-09-30 | Microsoft Corporation | Placeholder activities and in-lining of code editors in workflow designer |
US8639920B2 (en) * | 2009-05-11 | 2014-01-28 | Experian Marketing Solutions, Inc. | Systems and methods for providing anonymized user profile data |
US8781998B2 (en) | 2009-11-09 | 2014-07-15 | King Fahd University Of Petroleum And Minerals | Workflow automation system and method |
US8627309B2 (en) | 2010-02-25 | 2014-01-07 | Microsoft Corporation | Automated deployment and servicing of distributed applications |
US20120101843A1 (en) * | 2010-10-22 | 2012-04-26 | Medicity, Inc. | System and method for anonymizing patient data |
WO2012075622A1 (en) | 2010-12-07 | 2012-06-14 | Sap Ag | Implemantion of a process based on a user-defined sub-task sequence |
US20120227044A1 (en) * | 2011-03-03 | 2012-09-06 | Tata Consultancy Services Limited | Automated workflow manager |
US9250886B2 (en) | 2011-07-01 | 2016-02-02 | International Business Machines Corporation | Optimizing provisioning workflows in cloud computing |
US20130152038A1 (en) | 2011-12-09 | 2013-06-13 | Microsoft Corporation | Project management workflows |
US9395959B2 (en) * | 2011-12-09 | 2016-07-19 | Microsoft Technology Licensing, Llc | Integrated workflow visualization and editing |
US9043870B1 (en) | 2011-12-16 | 2015-05-26 | Google Inc. | Automated sign up based on existing online identity |
US8553965B2 (en) | 2012-02-14 | 2013-10-08 | TerraRecon, Inc. | Cloud-based medical image processing system with anonymous data upload and download |
US9076016B2 (en) * | 2012-08-20 | 2015-07-07 | Verizon Patent And Licensing Inc. | Anonymization as a service |
US9557988B2 (en) | 2012-09-07 | 2017-01-31 | Inadev Corporation | Workflow-based application generator |
CN102999816B (zh) | 2012-12-05 | 2016-02-24 | 中邮科通信技术股份有限公司 | 可个性化定制业务流程的工作流引擎 |
US10261757B2 (en) | 2013-03-13 | 2019-04-16 | Northrop Grumman Systems Corporation | System and method for automated web processing service workflow building and application creation |
US9600792B2 (en) | 2013-04-11 | 2017-03-21 | Siemens Aktiengesellschaft | Method and apparatus for generating an engineering workflow |
US20140324501A1 (en) | 2013-04-30 | 2014-10-30 | The Glassbox Incorporated | Method and system for automated template creation and rollup |
US9524157B2 (en) * | 2013-08-06 | 2016-12-20 | Salesforce.Com, Inc. | Providing an improved web user interface framework for building web applications |
EP3074880A4 (en) | 2013-11-29 | 2017-07-26 | 1033759 Alberta Ltd. | System and method for generating and publishing electronic content from predetermined templates |
US20150160809A1 (en) | 2013-12-06 | 2015-06-11 | Biodatomics, LLC | Visual effects for scientific workflow editors |
US10204311B2 (en) | 2014-04-30 | 2019-02-12 | Bristol, Inc. | Configuring workflows in a host device operating in a process control system |
US8984612B1 (en) | 2014-09-04 | 2015-03-17 | Google Inc. | Method of identifying an electronic device by browser versions and cookie scheduling |
AU2016215226A1 (en) | 2015-02-05 | 2017-08-17 | Phishline, Llc | Social engineering simulation workflow appliance |
CN104850405A (zh) | 2015-05-25 | 2015-08-19 | 武汉众联信息技术股份有限公司 | 一种智能可配置工作流引擎及其实现方法 |
US9424112B1 (en) * | 2015-10-01 | 2016-08-23 | Emc Corporation | Execution plan generator and execution engine for interfacing with application programming interfaces |
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 |
US20170316363A1 (en) * | 2016-04-28 | 2017-11-02 | Microsoft Technology Licensing, Llc | Tailored recommendations for a workflow development system |
-
2017
- 2017-01-17 US US15/408,238 patent/US10331416B2/en active Active
- 2017-01-27 US US15/417,845 patent/US11314485B2/en active Active
- 2017-01-27 US US15/417,741 patent/US11210068B2/en active Active
- 2017-04-26 WO PCT/US2017/029500 patent/WO2017189636A1/en active Application Filing
- 2017-04-26 EP EP17734873.7A patent/EP3449444A1/en not_active Ceased
- 2017-04-26 CN CN201780025654.1A patent/CN109074537B/zh active Active
- 2017-04-26 CN CN201780026370.4A patent/CN109074549A/zh not_active Withdrawn
- 2017-04-26 WO PCT/US2017/029502 patent/WO2017189638A1/en active Application Filing
-
2019
- 2019-05-21 US US16/418,391 patent/US10956128B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3449444A1 (en) | 2019-03-06 |
CN109074537A (zh) | 2018-12-21 |
WO2017189638A1 (en) | 2017-11-02 |
US20170316355A1 (en) | 2017-11-02 |
US20170315981A1 (en) | 2017-11-02 |
US20190272154A1 (en) | 2019-09-05 |
US11314485B2 (en) | 2022-04-26 |
US11210068B2 (en) | 2021-12-28 |
US10331416B2 (en) | 2019-06-25 |
US20170315782A1 (en) | 2017-11-02 |
WO2017189636A1 (en) | 2017-11-02 |
CN109074537B (zh) | 2023-12-26 |
US10956128B2 (en) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074549A (zh) | 具有嵌入式工作流设计器的应用 | |
US11803704B2 (en) | Intelligently updating a collaboration site or template | |
CN108292206B (zh) | 具有易于使用特征的工作流开发系统 | |
US10846153B2 (en) | Bot creation with workflow development system | |
US10705942B1 (en) | Simulated testing of API | |
US20170316363A1 (en) | Tailored recommendations for a workflow development system | |
US10824403B2 (en) | Application builder with automated data objects creation | |
CN107820701B (zh) | 开发者交换系统 | |
US20150293764A1 (en) | Method and system to compose and execute business rules | |
US10521243B2 (en) | Pre/post deployment customization | |
CN106796526A (zh) | Json样式表语言变换 | |
US20200374185A1 (en) | Iteratively updating a collaboration site or template | |
CN110199511A (zh) | 跨应用推送通知的安全目标对准 | |
US20220405612A1 (en) | Utilizing usage signal to provide an intelligent user experience | |
TW201618001A (zh) | 用於應用程式商店應用程式的項目對應 | |
US20140279823A1 (en) | Lifecycle product analysis | |
US20180018309A1 (en) | Automatically annotating literary text | |
CN110780970A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181221 |
|
WW01 | Invention patent application withdrawn after publication |