用于动态定义数字
表单的系统和方法
1.本专利申请要求2020年4月28日提交的美国临时申请号为63/016,587的申请的权益,其通过引用并入本文。
技术领域
2.本发明的领域总体涉及基于用户的输入动态定义和生成表单和工作流以促进内容管理的方法和系统,包括实时收集和输入数据,处理和分析数据,在包括web浏览器和移动设备的各种设备上同化和显示数据,以及将这些方法和系统嵌入其他软件应用程序中。此外,本发明涉及用于通过人工智能处理来管理和同化数据内容以有效地实现各种目的的系统和方法。
背景技术:
3.如今,外勤人员行业(例如,外勤销售,外勤服务、检查和报告等)中的大多数数据都是以基于纸质的表单分发和捕获的,然后在办公室和外勤的各个利益相关者之间进行物理路由,对后端系统的更新是一个手动过程。将这些表单数字化,在利益相关者之间自动以电子
方式路由这些表单,以及自动更新后端系统,将带来巨大的商业利益。已经有许多尝试来开发这种表单,然而,在诉诸于手动和复杂编码之前,当前的方法在所能做的方面是有限的。当前的方法也基于浏览器(例如,web浏览器)的技术特征而不是用户的需求来设计。这些方法使用了可扩展标记语言(如超文本标记语言(html))和样式表语言(如级联样式表(css))的组合,当涉及复杂逻辑时,必须使用javascript对这些复杂逻辑进行编码,这需要额外的技能,从而限制了可以创建和设计表单的人员。
4.例如,美国专利9,836,446、10,394,948和10,585,982中描述了传统方法,其中描述了用于定制移动表单应用程序以分发到移动设备的系统和方法。这些参考文献描述了用于数字表单的可扩展标记语言(xml)方案的使用,该方案在本领域中是公知的和常规的,但它是有限的和不灵活的。特别是,这些参考文献描述了使用xforms来生成数字表单,xforms利用xpath进行计算。遗憾的是,xforms不是为数据表单而设计的,而且,这些参考文献中公开的数据表单没有专门的计算引擎,也不支持动态样式。除了控制的基本分组之外,这些传统方法也不提供对表单布局的微调控制。与依赖浏览器使用html和css的组合来确定表单的布局不同,需要一组更丰富的特征来进行布局控制,包括列和行部分、
字段高度和宽度、边距、以及其他动态特征,如选项卡和可折叠区域。虽然xforms可以处理基于xml的数据,但大多数现代web api都使用json,因为它更紧凑、更易于解析,并且同样能够传递有效负载。因此,xforms设计严重限制了它的适应性。因此,需要跨多种格式(包括json和xml)工作,并为表单设计者提供极大的灵活性,以允许创建如本文进一步描述的动态表单。
5.因此,期望具有一种用于跨多个计算平台设计、路由、填充和记录数字表单的系统和方法,并能够使用这些表单的数据来更新后端系统,从而允许那些不擅长编码的人员制作的表单能够使用专门针对个人需求设计的复杂逻辑来设计表单。此外,还期望大幅扩展可以为复杂过程设计复杂的企业级数字表单和工作流的用户数量,从而降低成本并加快采
用。
技术实现要素:
6.概括来说,本发明总体上涉及基于用户的输入动态生成表单和工作流以促进内容管理的方法和系统,包括实时收集和输入数据,处理和分析数据,在包括web浏览器和移动设备在内的各种设备上同化和显示数据,以及将这些方法和系统嵌入其他软件应用程序中。此外,本发明涉及用于通过人工智能处理来管理和同化数据内容以有效地实现各种目的的系统和方法。
7.本发明的另一个目的是提供一种使用声明性定义语言来驱动表示呈现器以呈现表单的方法。该方法包括以下步骤:使用声明性定义语言定义表单,其中,
所述声明性定义语言定义表单的字段及其表示,根据声明性定义语言生成运行时间对象,输入表单数据,根据所述表单数据评估计算并返回结果,以及用表示呈现器呈现所述表单,其中,所述表示呈现器使用所述运行时间对象和所述表单数据。
8.本发明的另一个目的是提供一种用于使用声明性定义语言来驱动表示呈现器以呈现表单的系统。所述系统包括使用声明性定义语言定义的表单,其中,所述声明性定义语言定义所述表单的字段及其表示、根据声明性定义语言生成的运行时间对象、表单数据、来自根据所述表单数据评估的计算的返回结果、以及用于呈现所述表单的表示呈现器,其中,所述表示呈现器使用所述运行时间对象和所述表单数据。
9.本文所公开的系统和/或方法的这些和其他目的、特征、和特性、以及结构相关元件和部件组合的操作方法和功能以及制造经济性,在参考附图考虑以下描述和所附权利要求后将变得更加明显,所有这些形成本说明书的一部分,其中附图标记表示附图中的相应部分。然而,应明确理解,附图仅出于说明和描述的目的,而不旨在将本发明限制于特定实施方式。如本文所使用的,除非上下文另有明确规定,否则“一”和“该”的单数形式包括复数指代。
附图说明
10.通过参考附图详细描述本发明的示例性实施方式,本发明的上述和/或其他方面将更加明显,其中:
11.图1a示出了根据本发明的一实施方式的系统的图,其中计算设备可以通过网络访问服务器上的数字表单。
12.图1b提供了本发明的一个实施方式的各种模块的图。
13.图1c提供了用于使用声明性定义语言来驱动表示呈现器以呈现表单的系统的图。
14.图2提供了根据本发明的一实施方式的支持定义表单的声明性定义语言的图。
15.图3提供了根据本发明的一实施方式的声明性定义语言的加载过程的图。
16.图4提供了根据本发明的一实施方式的计算引擎的图。
17.图5提供了根据本发明的一实施方式的表示呈现器的图。
18.图6提供了根据本发明的一实施方式的支持定义工作流的声明性定义语言的图。
19.图7提供了根据本发明的一实施方式的用于设计工作流的设计器工具的图。
20.图8提供了根据本发明的一实施方式的表单存储库的图。
21.图9提供了根据本发明的一实施方式的计算学习引擎的图。
22.图10a示出了根据本发明的一实施方式的可以被设计并生成为数字格式的示例性纸质表单的第一页。
23.图10b示出了根据本发明的一实施方式的可以被设计并生成为数字格式的示例性纸质表单的第二页。
24.图11a示出了根据本发明的一实施方式的由图10a和图10b中的纸质表单生成的数字表单的第一示例。
25.图11b示出了根据本发明的一实施方式的由图10a和图10b中的纸质表单生成的数字表单的第二示例。
26.图11c提供了由根据本发明的一实施方式的系统根据图10a和图10b中的纸质表单生成的数字表单的第三示例。
27.图11d提供了由根据本发明的一实施方式的系统根据图10a和图10b中的纸质表单生成的数字表单的第四示例。
28.图11e示出了根据本发明的一实施方式的由图10a和图10b中的纸质表单生成的数字表单的第五示例。
具体实施方式
29.本发明涉及用于使用声明性定义语言动态生成和存储表单、向用户呈现表单、允许用户与表单交互(例如,输入数据)、允许导出或检索数据、以及允许存储和分析数据的系统和方法。
30.本领域技术人员将理解,可以在没有这些具体细节的情况下或使用等效布置来实践本文所描述的实现方式。在其他情况下,公知的结构和设备以框图的形式示出,以避免不必要地使本发明的实现方式模糊不清。
31.图1a示出了根据本发明的一实施方式的系统的图,其中计算设备可以通过网络访问服务器上的数字表单。
32.根据本发明的一实施方式,企业系统0a通过网络0d连接到服务器0b。可以理解,该网络0d可以是本领域已知的任何方式的有线或无线连接,包括通过因特网的连接。此外,服务器0b还通过网络0e连接到计算设备0c,计算设备0c包括用于实现本发明的系统和方法的应用程序、软件、程序、或其他处理设备。在一些实施方式中,网络0d和网络0e是相同的网络,并且企业系统0a可以是服务器0b的一部分或服务器0b内的组件。
33.服务器0b包含四个独立的组件:表单处理模块0f、表单存储设备0g、表单设计器模块0i、和表单存储库0h。表单处理模块0f组件是指执行本发明的操作所需的一些或全部处理的一个或多个设备,所述操作包括但不限于用于以下的操作:加载声明性定义语言、更新后端系统、以及人工智能或机器学习处理。表单存储设备0b组件是指用于存储本发明使用的处理指令、声明性定义语言、和表单数据的一个或多个设备。表单设计器模块0i组件用于设计表单和/或工作流,使得设计表单的人员不需要了解任何底层编程语言,从而允许人员预览和编辑表单的wysiwyg版本。最后,表单存储库0h是基于云的或本地存储库,其存储供本系统和方法使用的所有数据和定义。
34.图1b提供了本发明的一个实施方式的各种模块的图。
35.进一步根据本发明的一实施方式,表单存储库模块0j包含供所述系统和方法使用的所有数据和定义,并且是基于云的或本地存储库,其公开rest-ful api以允许访问。表单存储库模块0j连接到表单设计器模块0k,表单设计器模块0k使用rest-ful api访问表单存储库模块0j。对表单存储库模块0j的所有调用都通过用户认证和授权。表单存储库模块0j还控制将哪些表单分配给哪些用户,从而控制用户将看到哪些表单并期望处理哪些表单。表单存储库模块0j可以将表单分配给零个、一个、或多个单独用户,以及零个、一个、或多个用户组。主管用户可以访问分配给其主管的工作人员的表单,以便查看或编辑。表单存储库模块0j还包含与定义相关的项目,期望这些项目将被频繁读取,但写入的频率较低。
36.表单设计器模块0k连接到表单存储库模块0j、声明性定义模块0l、声明性定义工作流模块0m、和计算引擎模块0n,并使用rest-ful api来访问表单存储库模块0j。表单设计器模块0j对熟悉其创建表单的业务操作和过程的人员来说是用户友好的,因为设计表单的人员不需要了解任何底层编程语言。表单设计器模块0k提供了表单编辑器,表单编辑器呈现表单的“所见即所得”视图。用户可以添加和删除字段,并更改其属性。在一些实施方式中,表单设计器模块0k还提供图形工作流编辑器,该图形工作流编辑器将工作流呈现为流程图或“泳道”式过程,以便工作流易于理解和更改。表单设计器模块0k还可以允许用户就像在各种屏幕尺寸上看到的那样看到表单,输入测试数据以确保正确的功能,并执行工作流。
37.声明性定义模块0l连接到表单设计器模块0k、计算引擎模块0n、和声明性定义加载模块0o,并定义与表单相关联的字段(即数据字段),以及定义字段如何显示在各种计算设备的屏幕上。例如,声明性定义模块0l包括在移动设备的屏幕或计算机的屏幕上显示与表单相关联的字段的指令。当表单被加载到计算设备(例如,智能手机、平板电脑、笔记本电脑、或台式机)上时,将创建运行时间对象并填充实例特定数据。在一些实施方式中,该表单包括计算和条件逻辑,例如字段的自动填充、控制字段的可见性和外观、启用和禁用字段等。声明性定义模块0l基于与表单相关联的字段和表示来定义表单的数据结构。这种数据结构允许与字段相关联的数据和表单对用户的外观被单独处理,从而使表单能够呈现至不同的屏幕尺寸和功能、纸张尺寸、格式等,而不需要编写规则或代码。声明性定义模块0l可以灵活地用于各种数据格式,包括json和xml。
38.声明性定义工作流模块0m连接到表单设计器模块0k、计算引擎模块0n、和声明性定义加载模块0o,并且对于熟悉其创建工作流的业务操作和过程的人员来说是用户友好的。设计工作流的人员不需要知道任何底层编程语言。声明性定义工作流模块0m将工作流呈现为流程图或“泳道”式过程,以便工作流易于理解和更改。
39.计算引擎模块0n连接到表单设计器模块0k、声明性定义模块0l、和声明性定义工作流模块0m。在一些实施方式中,计算引擎模块0n在处理计算时帮助用户,并且具有识别常见使用模式并建议它们的学习特征。学习特征使用机器学习来识别系统中所有表单上所有字段的常见模式,并在字段上下文中建议适当的计算或计算参数。机器学习方面允许计算引擎模块0n随着输入或更新更多计算以及向系统添加更多表单而随时间演变。因此,学习特征导致更快、更有效的操作,并增强表单设计者的体验。
40.在一些实施方式中,声明性定义加载模块0o连接到声明性定义模块0l,并从声明性定义模块0l下载或加载来自服务器、本地或联网存储器、本地高速缓存、从本地数据库加
载、从远程数据库加载、或从本领域已知的任何其他存储系统或架构加载的数据。在本发明的一示例性实施方式中,json被用作存储的语言文本中基于文本的底层表示,但是可以理解,可以使用其他格式,例如yaml、xml、二进制表示自定义/专有格式等。在一些实施方式中,存储的语言文本初始从json(或其他)解析为基本键/值嵌套字典结构。然后根据方案对键/值嵌套字典结构进行验证,以确保json数据结构与预期结构匹配,如果匹配,则产生经验证的结构。一旦json数据结构得到验证,则运行时间对象生成模块0p将创建运行时间对象和方法,以便系统的其他组件(如表示呈现器模块0p和计算引擎模块0n)可以直接使用这些对象和方法。
41.表示呈现器模块0q将声明性定义模块0l的指令(包括来自计算引擎模块0n的任何计算)转换为用户界面工具使用的指令,例如web浏览器的html。表示呈现器模块0q使表单可以在web浏览器、移动应用程序、桌面应用程序、安装到第三方应用程序中的插件(从而将表单功能添加到第三者系统)或打印页面中显示。可以理解,打印页面可以是任何形式的物理或数字打印,包括以adobe pdf格式的打印。
42.图1c提供了用于使用声明性定义语言来驱动表示呈现器以呈现表单的系统的图。
43.在本发明的第一实施方式中,基于声明性定义语言9定义表单。声明性定义语言9定义与表单相关联的字段(即,数据字段),并定义如何在各种计算设备的屏幕上显示这些字段。例如,声明性定义语言9包括用于在移动设备的屏幕或计算机的屏幕上显示与表单相关联的字段的指令。当表单被加载到计算设备上时,将创建运行时间对象并用实例特定数据填充该运行时间对象。在一些实施方式中,该表单包括计算8和条件逻辑,例如字段的自动填充、控制字段的可见性和外观、启用和禁用字段等。
44.根据该实施方式,表示呈现器6将声明性定义语言9的指令(包括任何计算8)转换成用户界面工具1a使用的指令,例如用于web浏览器1的html。表单可以在web浏览器1、移动应用程序2、桌面应用程序3、安装到第三方应用程序中的插件4(从而将表单功能添加至第三方系统)、或打印页面5中显示。可以理解,打印页面5可以是任何形式的物理或数字打印,包括以adobe pdf格式的打印。
45.应当理解,可以使用任何通信介质7来促进图1c的系统1b的不同组件之间的交互,这些组件包括连接到用户界面工具1a的处理器1c、电子存储器1d、和图像捕获设备1e。系统1b的一个或多个组件可以通过硬连线通信、无线通信、或两者相互通信。例如,系统的一个或多个组件可以通过网络相互通信。例如,处理器1c可以与电子存储器1d无线通信。作为非限制性示例,无线通信可以包括无线电通信、蓝牙通信、wi-fi通信、蜂窝通信、红外通信、和其他无线通信中的一者或多者。本发明设想了其他类型的通信,但不排除这些通信。
46.在一些实现方式中,处理器1c包括多个处理单元。这些处理单元可以物理地位于同一设备内,或者可以是协同操作的多个设备。处理器1c可以被配置为通过以下来运行一个或多个组件:软件;硬件;固件;软件、硬件和/或固件的某种组合;和/或用于配置处理功能的其他机构。
47.此外,应当理解,尽管在图1c中各种指令被示为协同位于单个处理单元内,但是也可以被实现为包括具有一个或多个指令的多个处理单元,这一个或多个指令可以远离其他指令而执行。
48.本文所述的不同计算机可读指令所提供的功能的描述是出于说明性目的,并不旨
在限制,因为任何指令都可以提供比所描述的更多或更少的功能。例如,可以去除一个或多个指令,并且可以由其他指令提供其一些或全部功能。作为另一示例,(一个或多个)处理器1c可以由一个或多个附加指令编程,所述附加指令可以执行本文中属于计算机可读指令之一的一些或全部功能。
49.参考图2,示出了根据本发明的一实施方式的支持定义表单的声明性定义语言的图。
50.声明性定义语言9基于与表单相关联的字段11和表示20定义表单的数据结构。这种数据结构允许与字段11相关联的数据和表单对用户的外观被单独处理,从而使得表单能够以不同的屏幕尺寸和功能、纸张尺寸、格式等呈现,而不需要编写规则或代码。
51.在其他实施方式中,字段11包括标量字段12(例如文本、数字、图像等)、组字段14、和/或数组字段18。该表单是可扩展的,从而允许根据需要添加新的字段类型。声明性定义语言9可以灵活地用于各种数据格式,包括json和xml。
52.标量字段12是指包含一段信息的字段类型,例如文本、数字或日期。这些类型将有一种向用户表示的典型方式,但也可以根据表单的需要以其他方式表示。例如,数字可以表示为带或不带千位分隔符(逗号),长文本可以用省略号截断,以允许用户压缩以查看更多长文本,日期可以以任意数量的格式显示。
53.组字段14允许在逻辑上一起处理一组字段11(它们本身是标量、数组或组)。例如,地址可以是由街道地址、城市、州、和的文本字段组成的组。对地址组的一次启用计算可以控制其中的所有字段。此外,该组可以表示有共享属性,例如背景(在本示例中,这可以用于区分发货地址和账单地址),以将该组嵌入用户可以打开或关闭的部分中,从而可能地节省屏幕面积,将数据分组到用户可以在其中切换的选项卡中,或以其他方式表示数据。
54.数组字段18允许重复组,例如发票上的行项目。数组的表示可以包括选项,例如每个项目的布局、水平与竖直排列,或以图形或图表显示数组中的数据。数组中的数据也可能被过滤以进行表示。
55.在一些实施方式中,标量字段12指定与数据相关联的属性、初始值、要为字段执行的计算(例如当一字段的值改变时允许更新另一字段的值)、以及可以强制执行的验证(例如最小值)。标量字段12还包含与标量字段12的布局、样式、和/或标签相关的表示信息13。
56.在一些实施方式中,组字段14允许数据的无限嵌套,并允许添加附加的表示信息16。组字段14作为一个整体重复表单的数据结构,且其表示块允许与表单相同的灵活性。
57.在一些实施方式中,数组字段18是同构或异构的,并且包含数组整体以及数组内包含的组字段14的表示信息19。
58.参考图3,示出了根据本发明的一实施方式的声明性定义语言的加载过程的图。
59.声明性定义语言9从服务器下载21、从本地或联网存储器加载22、从本地高速缓存加载23、从本地数据库加载23a、从远程数据库加载23b、或从本领域已知的任何其他存储系统或架构加载。在本发明的一示例性实施方式中,json被用作存储的语言文本24的基于文本的底层表示,但可以理解,可以使用其他格式,例如yaml、xml、二进制表示自定义/专有格式等。
60.存储的语言文本24初始从json(或其他)解析25为基本键/值嵌套字典结构26。然
后根据方案对键/值嵌套字典结构26进行验证27,以确保json数据结构与预期结构匹配,如果匹配,则产生经验证的结构28。一旦json数据结构得到验证,则创建运行时间对象和方法29,以便系统的其他组件(例如表示呈现器30a和计算评估器30b)可以直接使用这些对象和方法。
61.本文所呈现的加载过程的操作旨在说明性的,因此不应被视为限制性的。在一些实现方式中,加载过程通过一个或多个未描述的附加操作来完成,和/或不需要一个或多个所讨论的操作。在一些实现方式中,两个或更多个操作基本上同时发生。可以使用上面详细描述的一些或所有系统组件来完成所描述的操作。
62.在一些实现方式中,加载过程在一个或多个处理设备(例如,数字处理器、模拟处理器、被设计用于处理信息的数字电路、中央处理单元、图形处理单元、微控制器、被设计用于处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中实现。所述一个或多个处理设备包括响应于以电子方式存储在一个或多个电子存储介质上的指令而执行加载过程的一些或所有操作的一个或一个以上设备。所述一个或多个处理设备可以包括通过硬件、固件和/或软件配置以专门设计用于执行加载过程的一个或多个操作的一个或多个设备。
63.如图4所示,提供了根据本发明的一实施方式的计算引擎的图。
64.尽管使用了声明性定义语言9,但本发明的其他实施方式也提供了要编写的计算31。在这种情况下,计算评估器的运行时间根据表单数据36评估参数32并返回结果39。计算31包括常数35、表单数据值36的检索、以及使用映射/过滤器/缩减36a来转换大数据集的计算、字符串操作36b、算术36c、和逻辑运算36d。计算31的设计考虑到了数据形式,并且与系统的其余部分处于相同的控制之下,从而允许容易地添加新功能。
65.在一些实施方式中,当评估计算31时,必须评估第一参数32。第一参数32的类型和含义取决于计算31的具体情况。在大多数情况下,第一参数32本身可以是用于计算31的附加计算。当计算31引用表单数据36时,与表单数据相关联的引用被收集并与关于计算31的意图的信息一起登记到改变广播器37。例如,如果允许用户输入日期范围,则用户可以输入开始日期,并可以允许用户编辑结束日期或天数,更改结束日期可以更改天数,反之亦然。这样的功能允许用户方便且高效地编辑表单字段。
66.在一些实施方式中,改变广播器37监控表单数据36,从而当字段的值被改变(通过用户输入、计算或任何其他方式)时,与受影响的计算31相关联的调用者将被通知字段的值可能已经改变。
67.图5示出了根据本发明的一实施方式的表示呈现器的图。
68.表示呈现器6组合由声明性定义语言9提供的表示信息20和表单数据69,以创建用于呈现的用户界面49的布局和样式指令。根据本发明的一个方面,声明性定义包括声明性定义运行时间对象68。
69.布局管理51处理该信息以提供控件的放置和尺寸设计,包括诸如选项卡和可折叠区域的动态特征,而样式管理56关注的是表单的外观,比如字体、颜、列和行部分、字段的高度和宽度、页边距等。布局管理51还可以包括动态显示和隐藏控件的能力,例如当账单地址与发货地址相同时。还可以理解,存在许多可以实现这种动态隐藏和显示的其他现实世界场景。
70.在一些实施方式中,表单数据69由用户通过呈现的用户界面49直接输入,或者通过其他方式(例如通过相机、麦克风、蓝牙温度计等)检索。然后,该表单数据69通过输入路由55被路由回表单。
71.在一些实施方式中,由改变广播器57记录的表单的改变(直接地或由于计算评估器65中的计算评估而间接地)根据需要被广播回布局管理51、样式管理56和/或呈现的用户界面49,从而用户总是看到当前数据。这还允许以多于一种方式呈现单个数据字段,同时自动保持同步。例如,根据本发明的一个方面,可以将“评级”字段显示并更改为数值、滑块、星的设置评级、或这些字段类型和本领域已知的其他字段类型的任何组合。无论字段如何呈现,字段的表示将始终显示相同的值。
72.呈现的用户界面49最常见地被呈现为html以在浏览器或使用html的嵌入式控件中显示,但是可以理解,它可以以许多不同的方式呈现。在一个实施方式中,呈现的用户界面49被呈现为postscript,以用于打印或保存在pdf文档中。在另一实施方式中,呈现的用户界面49被呈现为用于本机用户界面的一系列命令,例如用于ios的cocoa touch或用于windows的wpf。
73.如图6所示,提供了根据本发明的一实施方式的支持定义工作流的声明性定义语言的图。
74.声明性定义语言将工作流定义70为转换80的集合。每个转换可以包括字段71和表示81、表单更新82、分配更改83、和后端更新84。
75.在一些实施方式中,转换80的字段71以与表单中的字段相同的方式定义。通常,转换80中的字段71通过从表单的字段复制值来初始化。
76.与转换80相关联的表示81是可选的,并且以与表单关联的表示相同的方式定义,添加了对话框元素、用户提示、以及“确定”和“取消”按钮的文本。没有表示的转换不需要用户交互来完成。
77.在一些实施方式中,表单更新82将转换80的字段71映射到表单的字段,将值从转换80复制到表单,或者将新组附加到与表单相关联的数组上。这允许转换80修改用户通常不允许更改的值,这可用于强制数据一致性。
78.在一些实施方式中,分配更改83将表单的分配设置为用户或组的集合,或者从现有分配中选择性地添加和删除用户和组。在该过程中可以使用计算31。
79.在一些实施方式中,转换80触发对后端系统的后端更新84。转换定义包括多个更新。每个更新都指定要导出到后端系统的字段,将表单导出为pdf或其他呈现形式,并基于内容数组字段进行多次调用。在本发明的一个方面,这些字段被过滤。
80.参考图7,示出了根据本发明的一实施方式的用于设计工作流的设计器工具108的图。
81.设计器工具108对于熟悉其创建表单业务的操作和过程的人员来说是容易的。设计表单的人员不需要知道任何底层编程语言。
82.在一些实施方式中,设计器工具提供表单编辑器103。表单编辑器103表示表单的“所见即所得”视图。用户可以添加和删除字段,并更改其属性。
83.在一些实施方式中,设计器工具108提供图形工作流编辑器105。图形工作流编辑器105将工作流表示为流程图或“泳道”式过程,以便工作流易于理解和更改。
84.在一些实施方式中,设计器工具提供预览器/测试器104。预览器/测试器104允许用户看到将在各种屏幕尺寸上出现的表单,输入测试数据以确保正确的功能,并执行工作流。
85.在一些实施方式中,设计器工具提供专用计算编辑器106。专用计算编辑器106在处理计算时帮助用户。专用计算编辑器106具有识别常见使用模式并建议它们的学习特征。学习特征使用机器学习来识别系统中所有表单上所有字段的常见模式,并在字段上下文中建议适当的计算或计算参数。机器学习方面允许专用计算编辑器106随着输入或更新更多计算以及向系统添加更多表单而随时间演变。因此,学习特征导致专用计算编辑器106的更快且更有效的操作,并增强表单设计者的体验。
86.在图8中,示出了根据本发明的一实施方式的表单存储库的图。
87.系统使用的所有数据和定义都存储在基于云的或本地存储库中,该存储库公开了rest-ful api以允许访问。表单应用程序86(包括基于浏览器的应用程序、移动应用程序、桌面应用程序、或嵌入式第三方应用程序)、管理工具90、和表单设计器工具93都使用此api来访问存储库。所有调用必须通过用户认证和授权处理85。
88.分配管理94控制将哪些表单分配给哪些用户,从而控制用户将看到哪些表单并期望处理哪些表单。可以将表单分配给零个、一个、或多个单独用户,以及零个、一个、或多个用户组。主管用户可以访问分配给其主管的工作人员的表单,以便查看或编辑。
89.定义和与定义相关的项目一起存储在定义存储器101中,期望它们将被频繁地读取,但写入的频率较低。
90.在一些实施方式中,表单应用程序86读取并更新表单数据存储器96中的表单数据。对表单数据存储器96的更新可以通过后端通信98(例如通过或消息传递系统、数据库系统、或其他业务系统)触发对其他后端系统的调用。表单呈现器100完全在云中运行,从而允许表单被更新甚至重新呈现。
91.在图9中,示出了根据本发明的一实施方式的计算学习引擎的图。
92.计算学习引擎118提取已经由表单设计器114在表单上定义的计算参数116,检查它们的模式和潜在扩展,然后生成逻辑范例120,当在表单设计器114中创建其他表单和字段上的计算参数时,可以使用该逻辑范例120。计算学习引擎118基于使用表单解决方案的所有表单设计器114持续更新和发布新的逻辑范例120。与许多编程范例一样,计算31和计算参数116是基于模式的。这些模式虽然不明显,但基于的特性包括(但不限于)数据类型、与其他字段的相对位置、与其他字段的关系、字段命名模式、其他表单上的字段、给定行业内的表单等。通过使用机器学习持续分析这些特性,计算学习引擎118随着时间而改进,并且能够建议计算和计算参数,以及当表单设计器开始输入计算时能够完成计算和计算参数。结果类似于文字处理工具的结果,这些工具分析语法和上下文,以便在键入时提供完成句子的选项。因此,计算学习引擎118导致更快和更有效的操作,并增强了表单设计者的体验。
93.图10a示出了根据本发明的一实施方式的可以被设计并生成为数字格式的示例性纸质表单的第一页。
94.图10b示出了根据本发明的一实施方式的可以被设计并生成为数字格式的示例性纸质表单的第二页。
95.图10a和图10b示出了待由本发明的一个示例性实施方式数字化和替换的典型纸质种类的表单。与如基础设施检查的外勤人员行业的常规一样,纸质表单包括许多不同的字段和许多不同的字段类型,以供用户编辑和输入(在本例中,是漏水检查员)。举例来说,图10a和图10b中所示的漏水报告包括用于漏水地址、检查日期、漏水特性复选框、用于附加用户输入和评论的区域、以及用于描绘和绘制泄漏草图的区域等的不同字段。
96.在用户编辑之后,诸如图10a和图10b中所示的外勤人员行业中的纸质表单被手动递送或通过各种利益相关者路由。由于需要手动处理,因此该路由无论如何可能需要几个小时到几天甚至几周。此外,对此类表单的更改无法在所有用户之间即时部署,从而导致处理过时的表单,进一步导致处理效率低下。此外,在多个不同的纸质表单上分析或处理底层数据可能会很麻烦,需要检索和审查每个相关表单以收集必要的数据。
97.图11a示出了根据本发明的一实施方式的由图10a和图10b中的纸质表单生成的数字表单的第一示例。
98.图11b示出了根据本发明的一实施方式的由图10a和图10b中的纸质表单生成的数字表单的第二示例。
99.图11c提供了由根据本发明的一实施方式的系统根据图10a和图10b中的纸质表单生成的数字表单的第三示例。
100.图11d提供了由根据本发明的一实施方式的系统根据图10a和图10b中的纸质表单生成的数字表单的第四示例。
101.图11e示出了根据本发明的一实施方式的根据图10a和图10b中的纸质表单生成的数字表单的第五示例。
102.图11a、图11b、图11c、图11d和图11e示出了使用本文公开的系统和过程根据图10a和图10b的纸质表单生成的数字表单的不同示例。可以理解,图11a-图11e中生成的数字表单可以跨各种不同的用户界面(包括web应用程序、移动应用程序、和桌面应用程序)一致地显示。还可以理解,可以使用本发明的系统和方法来设计和生成将使用图10a和图10b的纸质表单手动处理的许多不同字段和许多不同的字段类型,包括泄漏地址、检查日期、泄漏特性复选框、用于附加用户输入和评论的区域、以及用于描绘和绘制泄漏草图的区域等。业务用户或表单设计者能够容易地根据相应的纸质表单生成这样的数字表单,并且不需要熟练地编写代码。这些数字表单的使用允许涉及的各利益相关者进行快速且高效的处理,也允许对底层数据进行复杂的分析。例如,人们可以很容易地搜索某一天发生的每一次漏水检查报告,或者根据水管的尺寸和材料进行搜索。此外,对表单本身的任何更新都会立即部署给所有用户,而无需手动更新。
103.根据本发明的一个实施方式,用户通过使用安装在计算设备或服务器上的应用程序、软件、或其他程序来操作表单设计器工具以开始设计表单。该用户不需要了解任何底层编程语言即可操作该工具。表单设计器工具具有表单编辑器,它向用户呈现表单的wysiwyg视图,从而允许用户轻松添加或删除字段,更改字段的属性、位置、和取向以及允许的输入参数。随着更多的计算被输入或更新,以及更多的表单被添加到系统中,机器学习处理还将向用户建议适当的计算或计算参数。这种处理允许更有效和快速地设计这些表单。例如,城市水务部门的主管可能希望设计一种漏水检查表单,其包括漏水地址、检查日期、漏水特性复选框、用于附加用户输入和评论的区域、以及用于描绘和绘制泄漏草图的区域。如果系统
中已经存在其他表单,则机器学习处理可以向主管建议其他日期或复选框字段,例如,当主管编辑和设计表单时。用户还可以操作图形工作流编辑器,该工作流编辑器使表单设计、管理、和/或过程自动化,以便可以更快速且有效地设计和审查表单。
104.设计表单后,表单设计者或其他用户可以将数据输入并编辑到根据表单的设计确定的表单中。例如,漏水检查器可以编辑输入泄漏地址的字段。可以理解,该检查器将能够在任何方式的移动或固定计算设备上输入和编辑这些表单,并且表单将自动调整和缩放以在这些设备上正确显示。因此,该检查器可以在工作现场、家中、工作场所、或各种位置的任何组合以及必要的不同时间以方便的方式编辑表单。在编辑结束时,完成的表单然后将自动路由给需要审查检查细节的各个利益相关者。例如,表单可以自动路由给承包商,以提供维修估算。在存储完成的表单后,还可以让当地水务部门的主管搜索特定街道或城市街区的所有此类报告,以评估是否需要对水管进行更大的维修或更换。
105.本发明的实现方式可以以硬件、固件、软件、或其任何合适的组合来实现。本发明的各方面可以被实现为存储在机器可读介质上的指令,机器可读介质可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何机构。例如,有形计算机可读存储介质可以包括只读存储器、随机存取存储器、磁盘存储介质、光学存储介质、闪存设备等,机器可读传输介质可以包括传播信号的形式,例如载波、红外信号、数字信号等。固件、软件、例程、或指令可在本文中根据本发明的具体示例性方面和实现方式以及执行某些动作来描述。
106.出于解释的目的,阐述了许多具体细节,以提供对描述的彻底理解。然而,对于本领域技术人员来说,明显的是,可以在没有这些具体细节的情况下实践本发明的实现方式。在某些情况下,模块、结构、过程、特征和设备以框图的形式示出,以避免使描述模糊不清。在其他情况下,示出功能框图和流程图来表示数据和逻辑流。框图和流程图的组件(例如,模块、块、结构、设备、特征等)可以以不同于本文中明确描述和描绘的方式进行各种组合、拆分、移除、重新排序、和替换。
107.本说明书中对“一个实现方式”、“一实现方式”、“一些实现方式”、“各种实现方式”、“某些实现方式”、“其它实现方式”、“一系列实现方式”等的引用是指结合所述实现方式描述的特定特征、设计、结构或特性被包括在本发明的至少一个实现方式中。例如,在本说明书中不同地方出现的表述“在一个实现方式中”或“在一实现方式中”不一定都是指同一个实现方式,也不一定是与其他实现方式互斥的单独的或替选的实现方式。此外,无论是否有对“实现方式”等的明确引用,都描述了各种特征,这些特征可以不同地组合并包括在一些实现方式中,但也可以在其他实现方式中不同地省略。类似地,描述了各种特征,这些特征可能是某些实现方式的偏好或要求,但不是其他实现方式的偏好或要求。
108.本文中使用的语言主要是为了可读性和指导目的而选择的,并且可能不是被选择用于描绘或限制本发明的主题。本领域技术人员将从本文公开的本发明的说明书和实践中清楚本发明的其他实现方式、用途和优点。本说明书应被认为仅是示例性的,因此本发明的范围仅由权利要求限定。
技术特征:
1.一种使用声明性定义语言来驱动表示呈现器以呈现表单的方法,包括:使用声明性定义语言定义表单,其中,所述声明性定义语言定义所述表单的字段及其表示;根据所述声明性定义语言生成运行时间对象;输入表单数据;根据所述表单数据评估计算并返回结果;以及用表示呈现器呈现所述表单,其中,所述表示呈现器使用所述运行时间对象和所述表单数据。2.根据权利要求1所述的方法,其中,所述字段是标量字段。3.根据权利要求1所述的方法,其中,所述字段是组字段。4.根据权利要求1所述的方法,其中,所述字段是数组字段。5.根据权利要求1所述的方法,还包括加载所述声明性定义语言。6.根据权利要求1所述的方法,还包括用改变广播器监控所述表单数据。7.根据权利要求1所述的方法,还包括管理表单控件的布局。8.根据权利要求1所述的方法,还包括管理表单的外观。9.根据权利要求1所述的方法,还包括利用计算学习引擎生成逻辑范例。10.根据权利要求1所述的方法,还包括使用所述声明性定义语言来定义工作流。11.一种用于使用声明性定义语言来驱动表示呈现器以呈现表单的系统,包括:处理器,所述处理器用于执行指令,以使用声明性定义语言来定义表单,其中,所述声明性定义语言定义所述表单的字段及表示,并且所述处理器根据所述声明性定义语言生成运行时间对象;用户界面工具,所述用户界面工具用于输入表单数据,其中所述处理器执行指令以根据所述表单数据评估计算并返回结果;表示呈现器,所述表示呈现器用于呈现所述表单,其中,所述表示呈现器使用所述运行时间对象和所述表单数据。12.根据权利要求11所述的系统,其中,所述字段是标量字段。13.根据权利要求11所述的系统,其中,所述字段是组字段。14.根据权利要求11所述的系统,其中,所述字段是数组字段。15.根据权利要求11所述的系统,其中,所述处理器执行指令以加载所述声明性定义语言。16.根据权利要求11所述的系统,还包括用于监控所述表单数据的改变广播器装置。17.根据权利要求11所述的系统,还包括布局管理工具。18.根据权利要求11所述的系统,还包括样式管理工具。19.根据权利要求11所述的系统,还包括计算学习引擎。20.根据权利要求11所述的系统,还包括用于使用所述声明性定义语言来定义工作流的工作流定义装置。21.一种用于动态定义和生成表单和工作流的系统,包括:第一输入装置,所述第一输入装置用于从用户接收动态定义表单的指令;表单定义装置,所述表单定义装置联接到所述第一输入装置以接收所述指令,用于基
于所述指令使用声明性定义语言定义所述表单,其中,所述声明性定义语言定义所述表单的字段和表示;生成器,所述生成器联接到所述表单定义装置,用于根据所述声明性定义语言生成运行时间对象;以及用于存储所述表单的存储设备。22.根据权利要求21所述的系统,还包括:便携式设备,所述便携式设备用于通过网络从所述存储设备检索所述表单;第二输入装置,所述第二输入装置联接到所述便携式设备,从而允许第一用户将数据输入到所述表单中;计算装置,所述计算装置用于响应于输入到所述表格中的所述数据,执行预定计算,评估所述表单数据,并返回结果;以及用于呈现所述表单的表示呈现器,其中,所述表示呈现器在所述便携式设备上表示所述表单并使用所述运行时间对象和所述表单数据。23.根据权利要求22所述的系统,还包括工作流定义装置,所述工作流定义装置用于基于来自所述第一输入装置的指令来定义工作流。
技术总结
一种系统和方法,用于基于用户的输入和设计动态生成、定义和定制表单和工作流,并跨各种外勤人员行业等通过实时人工智能和机器学习处理促进内容管理。该系统和方法可用于各种物理设备,包括web浏览器、移动设备、智能手机和平板电脑,并可嵌入软件应用程序中。示例系统和方法允许设计、路由、填写和记录表单以更新后端系统,并显著扩张可以针对复杂过程设计复杂的企业级表单和工作流的用户数量,从而降低成本并加快采用。低成本并加快采用。低成本并加快采用。
技术研发人员:
理查德
受保护的技术使用者:
MIRATA软件有限公司
技术研发日:
2021.04.27
技术公布日:
2023/2/24