首页 / 专利分类库 / 本部其他类目中不包括的技术主题 / 应用开发平台的上下文感知撤消重做服务

应用开发平台的上下文感知撤消重做服务

申请号 CN202180003774.8 申请日 2021-06-24 公开(公告)号 CN114190082A 公开(公告)日 2022-03-15
申请人 尤帕斯公司; 发明人 B·格拉汉姆;
摘要 本文中公开了一种计算设备。该计算设备包括存储针对应用开发平台的处理器可执行指令和应用开发平台的上下文 感知 撤消重做服务的 存储器 。该计算设备包括处理器,该处理器执行处理器可执行指令以使该计算设备接收关于屏幕上的环境变量的撤消操作的第一调用。该计算设备还根据活动上下文来导航到屏幕中的配置屏幕,以响应于第一调用而使配置屏幕可见。配置屏幕示出环境变量的一部分。该计算设备还接收撤消操作的第二调用,并且响应于第二调用而执行撤消操作,以在配置屏幕可见的同时还原对由配置屏幕示出的环境变量的一部分的改变。
权利要求

1.一种计算设备,包括:
存储器,被配置为存储针对应用开发平台的处理器可执行指令和所述应用开发平台的上下文感知撤消重做服务;以及
处理器,耦接到所述存储器,
其中所述处理器被配置为执行所述处理器可执行指令以使所述计算设备:
接收关于一个或多个屏幕上的一个或多个环境变量的撤消操作的第一调用;
根据活动上下文来导航到所述一个或多个屏幕中的配置屏幕,以响应于所述第一调用而使所述配置屏幕可见,所述配置屏幕示出所述一个或多个环境变量的至少一部分;
接收所述撤消操作的第二调用;以及
响应于所述第二调用而执行所述撤消操作,以在所述配置屏幕可见的同时还原对由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分的改变。
2.根据权利要求1所述的计算设备,其中所述上下文感知撤消重做服务包括适于控制和实现所述撤消操作、重做操作并且记录和利用所述活动上下文的处理器可执行指令。
3.根据权利要求2所述的计算设备,其中所述重做操作引起离开所述配置屏幕的导航。
4.根据权利要求2所述的计算设备,其中所述重做操作恢复由所述撤消操作做出的、对由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分的所述改变。
5.根据权利要求1所述的计算设备,其中所述活动上下文包括所述应用开发平台的一组用户界面情景和对所述一组用户界面情景做出的改变。
6.根据权利要求1所述的计算设备,其中由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分驻留在所述配置面板的一个或多个表单内,并且包括字母数字值或范围。
7.根据权利要求6所述的计算设备,其中所述一个或多个表单包括能够接收和存储作为输入的所述一个或多个环境变量的对象的字段的形状、视觉外观或配置。
8.一种方法,包括:
由耦接到存储器的至少一个处理器接收关于一个或多个屏幕上的一个或多个环境变量的撤消操作的第一调用,所述存储器存储针对应用开发平台的处理器可执行指令和所述应用开发平台的上下文感知撤消重做服务,所述至少一个处理器被配置为执行所述处理器可执行指令;
由所述至少一个处理器根据活动上下文来导航到所述一个或多个屏幕中的配置屏幕,以响应于所述第一调用而使所述配置屏幕可见,所述配置屏幕示出所述一个或多个环境变量的至少一部分;
由所述至少一个处理器接收所述撤消操作的第二调用;以及
由所述至少一个处理器响应于所述第二调用而执行所述撤消操作,以在所述配置屏幕可见的同时还原对由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分的改变。
9.根据权利要求8所述的方法,其中所述上下文感知撤消重做服务包括适于控制和实现所述撤消操作、重做操作并且记录和利用所述活动上下文的处理器可执行指令。
10.根据权利要求9所述的方法,其中所述重做操作引起离开所述配置屏幕的导航。
11.根据权利要求9所述的方法,其中所述重做操作恢复由所述撤消操作做出的、对由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分的所述改变。
12.根据权利要求8所述的方法,其中所述活动上下文包括所述应用开发平台的一组用户界面情景和对所述一组用户界面情景做出的改变。
13.根据权利要求8所述的方法,其中由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分驻留在所述配置面板的一个或多个表单内,并且包括字母数字值或范围。
14.根据权利要求13所述的方法,其中所述一个或多个表单包括能够接收和存储作为输入的所述一个或多个环境变量的对象的字段的形状、视觉外观或配置。
15.一种计算程序产品,作为针对应用开发平台的处理器可执行指令和所述应用开发平台的上下文感知撤消重做服务而被存储在非暂态计算机可读介质中,所述处理器可执行指令由所耦接的至少一个处理器可执行以使所述至少一个处理器:
接收关于一个或多个屏幕上的一个或多个环境变量的撤消操作的第一调用;
根据活动上下文来导航到所述一个或多个屏幕中的配置屏幕,以响应于所述第一调用而使所述配置屏幕可见,所述配置屏幕示出所述一个或多个环境变量的至少一部分;
接收所述撤消操作的第二调用;以及
响应于所述第二调用而执行所述撤消操作,以在所述配置屏幕可见的同时还原对由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分的改变。
16.根据权利要求15所述的计算程序产品,其中所述上下文感知撤消重做服务包括适于控制和实现所述撤消操作、重做操作并且记录和利用所述活动上下文的处理器可执行指令。
17.根据权利要求16所述的计算程序产品,其中所述重做操作引起离开所述配置屏幕的导航。
18.根据权利要求16所述的计算程序产品,其中所述重做操作由所述撤消操作做出的、对由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分的所述改变。
19.根据权利要求15所述的计算程序产品,其中所述活动上下文包括所述应用开发平台的一组用户界面情景和对所述一组用户界面情景做出的改变。
20.根据权利要求15所述的计算程序产品,其中由所述配置屏幕示出的所述一个或多个环境变量的所述至少一部分驻留在所述配置面板的一个或多个表单内,并且包括字母数字值或范围。

说明书全文

应用开发平台的上下文感知撤消重做服务

[0001] 相关申请的交叉引用
[0002] 本申请要求于2020年6月24日提交的美国专利申请序列号第16/910,305号的权益,该申请通过引用并入本文中,如同完整阐述一样。

背景技术

[0003] 应用设计软件包括配置特征,诸如撤消特征或重做特征。通常,当在应用设计软件内对应用项目工作时,撤消特征通过移除配置的当前设置并且恢复到配置的先前设置来撤消对应用项目的配置的任何最近改变。在撤消特征之后使用的重做特征返回对应用项目的配置的最近改变,从而使撤消特征的被移除的当前设置再次被实现。
[0004] 在常规的应用设计软件中,撤消和重做特征适用于跨多个屏幕和/或软件窗口配置应用项目的设置。例如,存在这样的情景:应用项目在用户不知情的情况下被改变,这是因为与这些改变设置相关联的属性被隐藏或者是不同屏幕(例如,不是当前活动屏幕的屏幕)的一部分。进而,当用户不清楚在应用项目中的哪里做出改变时,撤消和重做特征会导致用户混淆、以及应用项目的意外修改和配置问题。混淆和意外修改、以及常规应用设计软件无法通过多个屏幕以及撤消和重做特征有条理地引导用户提供了糟糕的用户体验。发明内容
[0005] 根据一个实施例,提供了一种计算设备。该计算设备包括存储针对应用开发平台的处理器可执行指令和应用开发平台的上下文感知撤消重做服务的存储器。该计算设备包括处理器,该处理器执行处理器可执行指令以使该计算设备接收关于屏幕上的环境变量的撤消操作的第一调用。该计算设备还根据活动上下文来导航到屏幕中的配置屏幕,以响应于第一调用而使配置屏幕可见。配置屏幕示出环境变量的一部分。该计算设备还接收撤消操作的第二调用,并且响应于第二调用而执行撤消操作,以在配置屏幕可见的同时还原(reverse)对由配置屏幕示出的环境变量的一部分的改变。
[0006] 根据一个或多个实施例,上面的计算设备实施例可以被实现为方法、装置、系统和/或计算机程序产品。附图说明
[0007] 通过结合附图以示例的方式给出的以下描述可以得到更详细的理解,其中图中相同的附图标记表示相同的元素,并且在附图中:
[0008] 图1A是根据一个或多个实施例的机器人过程自动化(RPA)开发、设计、操作或执行的图示;
[0009] 图1B是根据一个或多个实施例的RPA开发、设计、操作或执行的另一图示;
[0010] 图1C是根据一个或多个实施例的计算系统或环境的图示;
[0011] 图2是示出了根据一个或多个实施例的由计算系统或环境执行的过程流程的框图
[0012] 图3是示出了根据一个或多个实施例的由计算系统或环境执行的过程流程的框图;以及
[0013] 图4是示出了根据一个或多个实施例的由计算系统或环境执行的过程流程的框图。

具体实施方式

[0014] 本文中所公开的是根据一个或多个实施例的应用开发平台的上下文感知撤消重做服务。上下文感知撤消重做服务和应用开发平台是处理器可执行代码或软件,该处理器可执行代码或软件必须植根在计算系统或环境(例如,图1C的计算系统或环境140)的处理操作和处理硬件中以确定和应用与撤消和/或重做命令相应的活动上下文。因此,根据一个或多个实施例,上下文感知撤消重做服务为计算系统或环境的应用开发平台提供特定配置和加工机器人过程自动化方法。该特定配置和加工机器人过程自动化方法涉及与撤消和/或重做命令以及活动上下文(例如,用户界面情景,如本文中所述)相结合的应用项目的配置设置和屏幕(和/或软件窗口)的多步数据操纵。
[0015] 在这方面和在操作中,上下文感知撤消重做服务实时跟踪用户界面的活动上下文,这是由于用户操纵应用项目,从而使通过撤消和/或重做命令的应用项目改变具有完全用户意识。例如,使用任何应用开发平台来配置模型或表单,该应用开发平台包括应用上的属性/变量、编排器过程集成、数据源等。当模型或表单上的属性/变量改变时,获取用户界面的状态的快照(例如,哪些面板是打开的,哪些是关闭的,哪些属性部分是公开的,当前选择什么对象等)。然后,该快照与该属性/变量改变相关联,并且由上下文感知撤消重做服务记录。注意,该改变可能是改变的单个属性/变量,也可能是正在一起改变的整组属性/变量。因此,当请求撤消和/或重做操作时,底层应用开发平台允许还原或恢复记录撤消和/或重做操作时的用户界面(例如,之前打开的面板关闭,现在重新打开,并且之前选择的模型被重新选择)。
[0016] 上下文感知撤消重做服务的技术效果和益处包括相对于常规的撤消和重做特征消除了应用项目的意外修改。上下文感知撤消重做服务的技术效果和益处还包括提高任何改变的可见性和改进用户指南(从而创建更好的用户体验并且减少混淆)。例如,用户可以在对属性/变量做出改变之前看到用户界面的外观,这有助于用户了解关于哪里做出了改变以及这些改变是什么的上下文。
[0017] 对于本文中所述的方法和过程,可以以任何顺序不按顺序执行步骤,并且可以执行没有明确描述或示出的子步骤。此外,“耦接”或“可操作地耦接”可以表示对象被链接但在链接对象之间可以具有零个或多个中间对象。而且,在一个或多个实施例中可以使用所公开的特征/元素的任何组合。当使用提及“A或B”时,它可以包括A、B或A和B,它们可以类似地被扩展为更长列表。当使用符号X/Y时,它可以包括X或Y。备选地,当使用符号X/Y时,它可以包括X和Y。X/Y符号可以类似地被扩展为具有相同解释逻辑的更长列表。
[0018] 图1A是机器人过程自动化(RPA)开发、设计、操作或执行100的图示。设计器102(有时被称为工作室、包括一个或多个引擎(例如,撤消引擎)的开发平台、开发环境等)可以被配置为生成代码、指令、命令等以供机器人执行一个或多个工作流程或使该一个或多个工作流程自动化。根据计算系统可以提供给机器人的(多个)选择,机器人可以确定由用户或操作者选择的视觉示出的(多个)区域的代表性数据。作为RPA的一部分,多维的诸如正方形、矩形、圆形、多边形、自由形状等形状可以用于与计算机视觉(CV)操作或机器学习(ML)模型相关的UI机器人开发和运行时。
[0019] 可以由工作流完成的操作的非限制性示例可以是以下一项或多项:执行登录、填写表单、信息技术(IT)管理等。为了运行UI自动化的工作流,机器人可能需要唯一地标识特定屏幕元素,诸如按钮、复选框、文本字段、标签等,而不管应用访问或应用开发如何。应用访问的示例可以是本地、虚拟、远程、、远程桌面、虚拟桌面基础设施(VDI)等。应用开发的示例可以是win32、Java、
Flash、超文本标记语言(HTML)、HTML5、可扩展标记语言(XML)、JavaScript、C#、C++、Silverlight等。
[0020] 工作流可以包括但不限于任务序列、流程图、有限状态机(FSM)、全局异常处理程序等。任务序列可以是用于处理一个或多个应用或窗口之间的线性任务的线性过程。流程图可以被配置为处理复杂的业务逻辑,以使得能够通过多个分支逻辑运算符以更多样化的方式实现决策的集成和活动的连接。FSM可以被配置用于大型工作流。FSM可以在它们的执行中使用有限数目的状态,这些状态可以由条件、转变、活动等触发。全局异常处理程序可以被配置为在遇到执行错误时确定工作流行为,被配置为用于调试过程,等等。
[0021] 机器人可以是应用、小应用、脚本等,其可以使对底层操作系统(OS)或硬件透明的UI自动化。在部署时,一个或多个机器人可以由指挥器104(有时被称为协调者)管理、控制等。指挥器104可以指示或命令(多个)机器人或自动化执行器106在大型机、网络、虚拟机、远程机器、虚拟桌面、企业平台、(多个)桌面应用、浏览器等客户端、应用或程序中执行或监测工作流。指挥器104可以用作中心点或半中心点以指示或命令多个机器人使计算平台自动化。
[0022] 在某些配置中,指挥器104可以被配置用于设置、部署、配置、排队、监测、日志记录和/或提供互连。设置可以包括创建和维护(多个)机器人或自动化执行器106与指挥器104之间的连接或通信。部署可以包括确保将分组版本交付给所分配的机器人以供执行。配置可以包括机器人环境和过程配置的维护和交付。排队可以包括提供对队列和队列项目的管理。监测可以包括跟踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,SQL数据库)和/或其他存储机制(例如,提供存储和快速查询大型数据集的能的 )。指挥器104可以通过用作第三方解决方案和/或应用的集中式通信点来提供互连性。
[0023] (多个)机器人或自动化执行器106可以被配置为无人值守108或有人值守110。对于无人值守108操作,可以在没有第三方输入或控制的情况下执行自动化。对于有人值守110操作,可以通过从第三方组件接收输入、命令、指令、指导等来执行自动化。无人值守108或有人值守110机器人可以在移动计算或移动设备环境中运行或执行。
[0024] (多个)机器人或自动化执行器106可以是运行设计器102中所构建的工作流的执TM行代理。用于UI或软件自动化的(多个)机器人的商业示例是UiPath Robots 。在一些实施例中,(多个)机器人或自动化执行器106可以默认安装Microsoft 服务控制管
理器(SCM)管理的服务。因此,这样的机器人可以在本地系统帐户下打开交互式会话,并且具有 服务的权限。
[0025] 在一些实施例中,(多个)机器人或自动化执行器106可以在用户模式下安装。这些机器人可以与安装给定机器人的用户具有相同的权限。该特征也可以可用于高密度(HD)机器人,这确保了诸如在HD环境中以最高性能充分利用每个机器。
[0026] 在某些配置中,(多个)机器人或自动化执行器106可以被拆分、分布等成若干组件,每个组件专用于特定自动化任务或活动。机器人组件可以包括SCM管理的机器人服务、用户模式机器人服务、执行器、代理、命令行等。SCM管理的机器人服务可以管理或监测会话并且用作指挥器104与执行主机(即,(多个)机器人或自动化执行器106在其上执行的计算系统)之间的代理。这些服务可以被信任并且管理(多个)机器人或自动化执行器106的凭证。
[0027] 用户模式机器人服务可以管理和监测 会话并且用作指挥器104与执行主机之间的代理。用户模式机器人服务可以被信任并且管理机器人的凭证。如果没有安装SCM管理的机器人服务,则 应用可以自动启动。
[0028] 执行器可以在 会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每个显示器的每英寸点数(DPI)设置。代理可以是在系统托盘窗口中显示可用作业的 Presentation Foundation(WPF)应用。代理可以是服务的客户端。
代理可以请求启动或停止作业以及改变设置。命令行可以是服务的客户端。命令行是控制台应用,其可以请求启动作业并且等待其输出。
[0029] 在其中(多个)机器人或自动化执行器106的组件如上面所解释的那样拆分的配置中,帮助开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件的执行。可以通过这种方式针对每个组件配置特殊行为,诸如为执行器和服务设置不同防火墙规则。在一些实施例中,执行器可以知道每个监测器的DPI设置。因此,工作流可以在任何DPI处执行,而不管在其上创建它们的计算系统的配置如何。来自设计器102的项目也可以独立于浏览器缩放级别。在一些实施例中,对于不知道DPI或有意标记为不知道的应用,可以禁用DPI。
[0030] 图1B是RPA开发、设计、操作或执行120的另一图示。工作室组件或模122可以被配置为生成代码、指令、命令等以供机器人执行一个或多个活动124。可以由客户端上的机器人使用一个或多个驱动器组件128来执行用户界面(UI)自动化126。机器人可以使用计算机视觉(CV)活动模块或引擎130来执行活动。其他驱动器132可以用于由机器人进行的UI自动化以获取UI元素。它们可以包括OS驱动程序、浏览器驱动程序、虚拟机驱动程序、企业驱动程序等。在某些配置中,CV活动模块或引擎130可以是用于UI自动化的驱动程序。
[0031] 图1C是计算系统或环境140的图示,计算系统或环境140可以包括总线142或用于传送信息或数据的其他通信机制、以及耦接到总线142以进行处理的一个或多个处理器144。一个或多个处理器144可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程阵列(FPGA)、图形处理单元(GPU)、控制器、多核处理单元、三维处理器、量子计算设备或其任何组合。一个或多个处理器144还可以具有多个处理核,并且核中的至少一些核可以被配置为执行特定功能。也可以配置多并行处理。此外,至少一个或多个处理器144可以是包括模拟生物神经元的处理元件的神经形态电路。
[0032] 存储器146可以被配置为存储要由(多个)处理器144执行或处理的信息、指令、命令或数据。存储器146可以包括以下各项的任何组合:随机存取存储器(RAM)、只读存储器(ROM)、闪存、固态存储器、高速缓存、静态存储(诸如,磁盘或光盘)或任何其他类型的非暂态计算机可读介质或其组合。非暂态计算机可读介质可以是可以由(多个)处理器144访问的任何介质,并且可以包括易失性介质、非易失性介质等。介质也可以是可移除的、不可移除的等。
[0033] 通信设备148可以被配置为频分多址(FDMA)、单载波FDMA(SC‑FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动通信系统(GSM)、通用分组无线电服务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W‑CDMA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、高级LTE(LTE‑A)、802.11x、Wi‑Fi、Zigbee、超宽带(UWB)、802.16x、802.15、家庭Node‑B(HnB)、Bluetooth、射频识别(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新无线电(NR)、或者用于经由一根或多根天线进行通信的任何其他无线或有线设备/收发器。天线可以是单一的、阵列的、定相的、开关的、波束成形的、波束控制的等。
[0034] 一个或多个处理器144还可以经由总线142耦接到显示设备150,诸如等离子、液晶显示器(LCD)、发光二极管(LED)、场发射显示器(FED)、有机发光二极管(OLED)、柔性OLED、柔性基板显示器、投影显示器、4K显示器、高清(HD)显示器、 显示器、基于面内切换(IPS)的显示器等。显示设备150可以被配置为使用电阻、电容、表面声波(SAW)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射或本领域普通技术人员所理解的用于输入/输出(I/O)的其他技术的触摸、三维(3D)触摸、多输入触摸或多触摸显示器。
[0035] 键盘152和控制设备154(诸如,计算机鼠标触摸板等)还可以耦接到总线142以用于到计算系统或环境140的输入。另外,可以经由与计算系统或环境140通信的另一计算系统远程地向计算系统或环境140提供输入,或者计算系统或环境140可以自主地操作。
[0036] 存储器146可以存储在由一个或多个处理器144执行或处理时提供功能的软件组件、模块、引擎等。这可以包括用于计算系统或环境140的OS 156。模块还可以包括用以执行应用特定过程或其衍生物的定制模块158。计算系统或环境140可以包括具有附加功能的一个或多个附加功能模块160。例如,上下文感知撤消重做服务可以在模块158和160中的一个或多个模块中实现以向计算系统或环境140提供特定的配置和加工机器人过程自动化方法。
[0037] 计算系统或环境140可以被适配或配置为作为服务器嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算设备、云计算设备、移动设备、智能电话、固定移动设备、智能显示器、可穿戴计算机等执行。
[0038] 在本文中给出的示例中,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片等现成半导体、晶体管或其他分立组件。模块还可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等。
[0039] 模块可以至少部分以软件实现以供各种类型的处理器执行。所标识的可执行代码单元可以包括一个或多个物理或逻辑计算机指令块,该物理或逻辑计算机指令块可以例如被组织为对象、过程、例程、子例程或功能。共同定位或存储在不同位置中的所标识的模块的可执行文件在逻辑上连接在一起时包括模块。
[0040] 可执行代码模块可以是分布在若干不同代码段上、在不同程序之间、跨若干存储器设备等的单个指令、一个或多个数据结构、一个或多个数据集、多个指令等。操作或功能数据在本文中可以在模块内被标识和说明,并且可以以合适的形式具体实施并且组织在任何合适类型的数据结构内。
[0041] 在本文中给出的示例中,计算机程序可以以硬件、软件或混合实施方式配置。计算机程序可以由彼此有效通信并且传递信息或指令的模块组成。
[0042] 尽管上面以特定组合描述了特征和元素,但本领域普通技术人员将理解的是,每个特征或元素可以单独使用或与其他特征和元素以任何组合使用。此外,本文中描述的方法可以在计算机程序、软件或固件中实现,该计算机程序、软件或固件并入计算机可读介质中以供计算机或处理器执行。计算机可读介质的示例包括电子信号(通过有线或无线连接传输)和计算机可读存储介质。计算机可读存储介质的示例包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓冲存储器、半导体存储器设备、磁介质(诸如,内部硬盘和可移动存储器磁盘)、磁光介质和光介质(诸如,CD‑ROM磁盘)和数字通用磁盘(DVD)。
[0043] 现在转向图2,示出了根据一个或多个实施例的由计算系统或环境(例如,图1C的计算系统或环境140)执行的过程流程200的框图。处理流程200是通过在应用开发平台(例如,图1A的设计器104和/或指挥器106)中执行的上下文感知撤消重做服务进行的上下文感知撤消操作的方法的示例实施方式。注意,过程流程200不限于上下文感知撤消操作并且适用于上下文感知重做操作。
[0044] 根据一个或多个实施例,上下文感知撤消操作和上下文感知撤消重做服务由计算机代码和/或编程语言(诸如,Java Script和/或Typescript)实现。此外,上下文感知撤消操作和上下文感知撤消重做服务可以是模型对象框架的一部分。例如,模型对象框架是构建到代码库中的事件模型,改变、上下文改变和撤消/重做操作在其中被发起(例如,核心模型对象框架是“应用构建器”体验的基本部分,并且所有特征可以利用上下文感知撤消重做服务)。例如,上下文感知撤消重做服务含括有关用户正在设计的应用项目(即,应用开发平台的用户界面的快照或活动上下文)的真实来源。
[0045] 一般而言并且根据一个或多个实施例,上下文感知撤消重做服务使用户了解他们的工件的配置发生了什么以及什么属性得到更新。如果用户选择撤消某些改变,则上下文感知撤消重做服务会显示与将要撤消的改变相关联的正确上下文(例如,配置面板),使得用户能够在用户界面中看到这些改变并且立即直观地了解撤消(或重做)操作的影响。相比之下,对于常规应用设计软件(例如,大多数在线编辑器),当用户发起改变的撤消时,常规应用设计软件通过简单地改变任何底层对象模型将值改变回先前值。在使用常规应用设计软件的某些情况下,这些改变与用户界面的特定区域耦接,在这些区域中改变是可见的。当用户继续在常规应用设计软件中使用撤消/重做特征时,用户界面无法示出做出了改变的不同位置,并且用户正在构建和配置的不同工件的上下文不可见。
[0046] 因此,过程流程200考虑了与在用户已经导航离开特定屏幕(例如,先前配置面板)之后的撤消/重做操作相关的配置改变的问题,该配置改变对于用户可能是可见的或可能是不可见的。为了克服这些问题,过程流程200使得能够导航到需要修改的特定屏幕并且相应地实现配置改变。
[0047] 过程流程200开始于框220,其中创建与一个或多个表单相关的一个或多个环境变量。一个或多个表单可以包括可以接收和存储作为输入的一个或多个环境变量的对象的字段的形状、视觉外观和/或配置。一个或多个表单可以显示在应用开发平台的一个或多个屏幕(和/或用户界面的软件窗口)内。一个或多个环境变量可以驻留在一个或多个表单中的每个表单中并且可以是任何字母数字值和/或范围。在操作中,随着对一个或多个变量做出配置改变(例如,字母数字值和/或范围被改变),应用开发平台的撤消引擎记录活动上下文(例如,获取快照),该活动上下文包括配置改变。注意,撤消引擎包括适用于控制和实现撤消和重做操作并且记录和利用活动上下文的软件。
[0048] 根据一个或多个实施例,活动上下文是一组用户界面情景。更具体地,活动上下文是应用开发平台、其用户界面和对其做出的配置改变的情景堆栈。活动上下文可以以合适的形式记录和/或组织在存储在存储器(例如,图1C的存储器146)中的任何合适类型的数据结构内。如本文中所指出的,在一些情况下,活动接触可以被称为用户界面的快照。
[0049] 情景堆栈的示例包括但不限于多个屏幕、哪个屏幕正在显示或可见的指示、以及哪些屏幕没有被显示或不可见的指示。情景堆栈的示例还包括但不限于哪些屏幕被打开和/或最小化的指示、由屏幕显示的一个或多个表单的指示、以及每屏幕的表单数。情景堆栈的示例还包括但不限于屏幕或表单的一个或多个字段、屏幕或表单的一个或多个环境变量、以及字段内的一个或多个环境变量。情景堆栈的示例还包括但不限于配置面板(例如,一种屏幕)、工件和规范字段/变量/设置。
[0050] 为了便于理解,可以将工件代表性地用于本文中的情景堆栈的一个或多个方面。注意,工件可以是描述自动化行为或控制序列的复杂数据对象或应用,诸如数据库请求、语法规则和/或用户生成的内容。此外,注意撤消和重做功能对于工件(即,情景堆栈的一个或多个方面)是可用的。
[0051] 配置改变可以是基于用户输入和/或在没有第三方输入或控制的情况下执行的自动化活动的用户活动对情景堆栈的改变。根据一个或多个实施例,在做出配置改变时,在跟踪应用开发平台的活动上下文的范围内记录配置改变和情景堆栈。例如,对于应用开发平台,当用户为具有一个或多个配置面板的应用项目创建、构建和配置工件时,对配置面板内的这些工件所做出的改变将在活动上下文数据结构中被记录/跟踪。
[0052] 在框240处,应用开发平台的撤消引擎在屏幕上的一个或多个表单上发起一个或多个环境变量的撤消操作(例如,其第一调用)。撤消操作可以由用户输入和/或自动化活动触发。
[0053] 根据一个或多个实施例,如果屏幕是当前配置面板(例如,当前可见)并且需要在当前配置面板中执行与撤消操作相应的修改,则立即执行和显示对应配置改变(例如,在撤消操作的第一调用时和同时)。进而,过程流程200可以结束。
[0054] 根据一个或多个实施例,如果屏幕不是当前配置面板(如在应用开发平台中经历了从其中做出修改的先前配置面板的后续导航,通过用户或自动动作的方式),过程流程200可以进行到框260。
[0055] 在框260处,在导航离开屏幕之后,应用开发平台导航到配置屏幕(例如,先前配置面板),该配置屏幕示出与撤消操作相应的修改。与撤消操作相关的修改可以针对一个或多个环境变量。根据一个或多个实施例,当撤消操作被第一次调用时,应用开发平台导航回到先前配置面板,在该先前配置面板中,执行了对一个或多个变量的最后动作、配置改变或修改。
[0056] 例如,当在用户导航离开特定屏幕之后撤消配置时,撤消引擎将用户导航回正确的配置屏幕和正在撤消的属性。以这种方式,用户能够在由底层上下文感知撤消重做服务打开的屏幕上看到所应用的改变。注意,正确屏幕在撤消操作被执行之前打开,以确保用户可以看到当前配置,然后在“撤消”操作的第二调用时,做出改变。通过撤消/重做操作,用户始终能够准确地看到用户正在处理和修改的工件的哪一部分。
[0057] 在框280处,应用开发平台基于配置屏幕上的信息来执行一个或多个环境变量的撤消操作。根据一个或多个实施例,在撤消操作的第二调用时,在先前配置面板处实现配置改变。因此,通过撤消操作的一次或多调用,可以明显地还原任何最近的改变。
[0058] 鉴于过程流程200和本文中的公开内容,当用户构建应用项目时,工件被添加和更新到模型,同时用户根据一组规范设计应用项目。在这点上,用户可能会打开名为“大小”的部分,用户可以在该部分中修改表单按钮的大小。然后用户可以打开名为“位置”的不同部分,用户可以在该部分中改变控件的位置。当用户调用撤消操作时,用户将被带到“位置”屏幕,在用户应用操作之前,用户可以在该屏幕中查看当前值。然后,如果用户继续进行另一撤消操作,则“大小”屏幕打开,使得用户可以看到控件的大小是被修改的下一部分。这个操作的“堆栈”可以有很多层深,并且对于每个项目,用户总是被引导到正确的用户界面上下文(即,基于活动上下文的正确屏幕),改变在那里被应用。
[0059] 现在转向图3,示出了根据一个或多个实施例的由计算系统或环境(例如,图1C的计算系统或环境140)执行的过程流程300的框图。处理流程300是由在应用开发平台(例如,图1A的设计器104和/或指挥器106)中执行的上下文感知撤消重做服务进行的上下文感知撤消操作的方法的示例实现。过程流程300考虑如本文中所述的配置改变和用户体验的问题。为了克服这些问题,过程流程300使得能够在需要修改的屏幕之间导航并且相应地实现配置改变。
[0060] 过程流程300开始于框311和313,其中应用开发平台监测活动(在应用开发平台内)并且记录活动的活动上下文。框311和313的操作可以是同时和连续的。例如,当有人值守或无人值守活动构建、改变和/或配置应用项目时,上下文感知撤消重做服务(包括撤消引擎)监测有人值守或无人值守活动并且记录活动上下文(例如,应用项目的情景堆栈,如本文中所述)。
[0061] 进而,如框320所示,撤消操作经历第一调用。第一调用可以是用户输入和/或自动化活动。在框325处,响应于撤消操作的第一调用,撤消引擎标识活动上下文。
[0062] 即,撤消引擎将应用项目的最近配置改变和与最近配置改变相关联的情景堆栈标识为活动上下文。情景堆栈还包括一个或多个屏幕的标识,该屏幕包括最近配置改变。例如,在应用项目中添加新控件时,各种配置面板会显示新控件的各种属性。最近配置改变可以包括对这些属性的改变。
[0063] 接下来在决策圈330处,撤消引擎确定当前屏幕(例如,当前由用户界面显示的屏幕)是否包含最近配置改变。即,当应用开发平台在配置面板之间导航/切换时,活动上下文可以确定最近配置改变是否示出/反映/显示在正在显示的配置面板中。
[0064] 如果当前屏幕包含最近配置改变,则过程流程进行到框340。在框340处,最近配置改变被还原。例如,可以在应用开发平台的一个或多个屏幕(例如,配置面板)内显示一个或多个表单,并且驻留在其中的一个或多个环境变量被还原。
[0065] 如果当前屏幕不包含最近配置改变,则过程流程进行到框345。在框345处,撤消引擎导航到包括最近配置改变的另一屏幕(例如,导航到示出一个或多个环境变量的改变的屏幕)。例如,包含最近改变的一个或多个环境变量的一个或多个表单可以显示在一个或多个其他屏幕内(例如,当前未示出的配置面板)并且撤消引擎导航到这些一个或多个其他屏幕。
[0066] 在框350处,撤消操作经历第二调用。第二调用可以是用户输入和/或自动化活动。
[0067] 接下来,处理流程进行到框340,并且响应于撤消操作的第二调用,还原最近配置改变。在这种情况下,用户可以直接见证和验证最近配置改变的还原。注意,在撤消操作的每调用期间和关于每个实现的改变,应用开发平台监测应用开发平台内的活动并且记录活动的活动上下文(如框311和313所示)。
[0068] 过程流程300可以循环以在第一方向上移动通过多个级别的改变。此外,在处理流程300期间的任何点处,如关于图4所述的重做操作可以被实现,以在与第一方向相对的方向上移动通过多个级别的改变。
[0069] 现在转向图4,示出了根据一个或多个实施例的由计算系统或环境(例如,图1C的计算系统或环境140)执行的过程流程400的框图。处理流程400是由在应用开发平台(例如,图1A的设计器104和/或指挥器106)中执行的上下文感知撤消重做服务进行的上下文感知重做操作的方法的示例实现。过程流程400考虑如本文中所述的配置改变的问题。为了克服这些问题,过程流程400使得能够在需要修改的屏幕之间导航并且相应地实现配置改变。
[0070] 过程流程400开始于框411和413,其中应用开发平台监测活动(在应用开发平台内)并且记录活动的活动上下文。框411和413的操作可以是同时和连续的。框411和413的操作包括根据图3的处理流程的一个或多个撤消操作和关于这些操作的活动上下文的记录。
[0071] 进而,如框420所示,重做操作经历第一调用(例如,输入激活重做操作的用户)。第一调用可以是用户输入和/或自动化活动。
[0072] 在框425处,响应于重做操作的第一调用,撤消引擎标识活动上下文。即,撤消引擎将由撤消操作在特定屏幕中实现的任何改变标识为活动上下文。
[0073] 接下来在决策圈430处,撤消引擎确定当前屏幕是否是特定屏幕(例如,包含通过撤消操作实现的最近配置改变)。如果为真,则处理流程进行到框440。在框440处,恢复撤消操作的改变。否则,则过程流程进行到框445。
[0074] 在框445处,撤消引擎导航到包括由撤消操作进行的改变的另一屏幕。在这种情况下,在上次撤消操作调用与重做操作的第一调用之间存在活动,使得特定屏幕不再可见。
[0075] 在框450处,重做操作经历第二调用。第二调用可以是用户输入和/或自动化活动。
[0076] 接下来,处理流程进行到框440,并且响应于重做操作的第二调用,恢复最近配置改变。在这种情况下,用户可以直接见证和验证对最近配置改变的恢复。
[0077] 鉴于本文中的公开内容,上下文感知撤消重做服务的技术效果和益处包括更好的用户体验、更好的改变可见性、以及满足对应用设计的撤消/重做特征的期望,同时将用户引导到各种不同“上下文”以指导用户完成撤消/重做特征。
[0078] 图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示模块、段或指令的一部分,其包括用于实现(多个)指定逻辑功能的一个或多个可执行指令。在一些备选实施方式中,框中所标注的功能可以不按照图中标注的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以基本同时执行,或者这些框有时可以以相反的顺序执行。还将注意到,框图和/或流程图图示中的每个框、以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统实现。
[0079] 尽管上面以特定组合描述了特征和元素,但是本领域普通技术人员将理解的是,每个特征或元素可以单独使用或与其他特征和元素以任何组合使用。此外,本文中描述的方法可以在计算机程序、软件或固件中实现,该计算机程序、软件或固件并入计算机可读介质中以供计算机或处理器执行。本文中使用的计算机可读介质不应当被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,光脉冲通过光缆)、或通过电线传输的电信号
[0080] 计算机可读介质的示例包括电信号(通过有线或无线连接传输)和计算机可读存储介质。计算机可读存储介质的示例包括但不限于寄存器、高速缓冲存储器、半导体存储器设备、磁介质(诸如,内部硬盘和可移动磁盘)、磁光介质、光学介质(诸如,光盘(CD)和数字通用磁盘(DVD))、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)和记忆棒。与软件相关联的处理器可以用于实现用于在WTRU、UE、终端、基站、RNC或任何主机计算机中使用的射频收发器。
[0081] 本文中使用的术语仅用于描述特定实施例的目的,并不旨在进行限制。如本文中使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括”和/或“包含”当在本说明书中使用时指定所述特征、整体、步骤、操作、元素和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元素组件和/或其组的存在或添加。
[0082] 本文中的各种实施例的描述是为了说明的目的而呈现的,但并不旨在穷尽或限于所公开的实施例。在不脱离所描述实施例的范围和精神的情况下,很多修改和改变对于本领域普通技术人员来说将是很清楚的。本文中使用的术语被选择是为了最好地解释实施例的原理、实际应用或对市场中发现的技术的技术改进,或者是为了使得本领域普通技术人员能够理解本文中公开的实施例。
QQ群二维码
意见反馈