创建microapps
创建微应用程序的一个关键组成部分是在了解目标应用程序的数据库模式的基础上规划工作流程。有了它,您就可以识别用于构建集成的api,您需要这些api来构建自定义集成。
有无数的应用程序可以集成到Citrix Workspace中。选择一个包含Citrix Workspace用户感兴趣的信息的目标应用程序。特别感兴趣的是那些经常用于快速任务且用户无法直观访问的应用程序。支持用户直接从Citrix Workspace中进行交互的可操作应用程序比仅仅支持用户通知的应用程序更有价值。示例包括批准、创建和添加项。
接下来,确定您想要集成到Citrix Workspace中的选定目标业务应用程序的关键用例。例如:
- 创建PTO/Vacation请求
- 批准PTO/Vacation申请
- 查找待处理的审批
- 标记任务完成
- 通知用户已创建或更改分配的任务
- 批准的发票
一旦知道了用例,下一步就是确定api,这些api将允许我们从目标系统提取相关信息或将其注入到目标系统中。
下面我们展示了一个使用发票审批用例设计工作流的场景。详细信息请参见示例场景工作流设计.
重要的注意事项
在设计工作流程之前,请查看以下注意事项和限制:
- 您可以访问仅隔一个关系的页面上的数据。这意味着在构建页面时,您只能处理直接相关的数据。
- 所有的个性化都是从用户电子邮件的上下文中进行的。这意味着,如果您正在创建通知或创建个性化页面,则用户电子邮件最多可以是一层关系。
- 你只能设置转到页面通知的操作链接到基于与通知相同的表的页面。
- 基于记录的详细页面(即使用recordID的页面)不能设置为操作页面。确保没有组件映射到记录值。例如,Detail页面不应该被设置为操作页面,除非它是一个纯输入表单,比如Add a Task。
- 一个更改生成一个通知。如果接收者在相关表中,则关系必须为1:1。1:不支持N个关系。
- 主表是在其上构建通知事件的表。
- 我们预计最多有一个接受者。如果接收方不在主表中,请确保主表的每条记录在非主表中只有一条匹配记录。例如,如果在表上创建通知
pto_approval
,但是可以有两个不同的审批者可以批准表中的请求pto_approver
(所谓一对多关系)而你想同时通知它们,这是不可能的。通知引擎只随机选取一个审批者。如果有很多这样的情况,则根本不评估通知事件。 - 主表和其他表之间的预期关系是1:1。这意味着对于主表中的每条记录,在另一个表中最多有一条记录。因此,通知事件产生的通知消息永远不会超过主表的行数。如果违反此条件,并且主表的某些记录有多条记录,则会出现基础数据中的重复。通知引擎将只随机选择第一个记录,而忽略重复的记录。
- 如果主键列中的任何值缺失或类型无效,则在同步过程中跳过该记录并生成日志警告。
- 有一些硬限制可以保护基础设施和管理用户,避免定义错误的通知事件。通知查询返回的行数与主表的行数的最大比率是1.6:1。例如,假设一个主表包含130行,但由于某种原因通知查询返回416行。这将是预期的3.2倍,超过了这一限制。在这种情况下,根本不计算通知事件,而是将警告打印到日志中。
- 由于服务器的限制,数据库结构必须很窄。在设计端点和创建数据库结构时,必须考虑到这一点。
- 在评估完所有条件后,将生成通知消息。一次通知运行产生的最大通知消息数为100,000。
- 通知查询可以返回的最大记录数是1,000,000条。
- 如果配置了包含高度敏感数据(如凭据、API密钥或秘密)的自定义字段,则数据不受保护。这些数据出现在调试日志和其他地方。
注意:
所有可以访问Citrix Workspace微应用程序的管理员都可以访问缓存中的数据。管理员无权访问数据源的凭据。
构建微应用基础
微应用程序是由页面或事件通知通常两者都有。
通知是事件驱动的微应用程序,当有事情需要用户注意时,它会自动通知用户,例如作为工作区活动提要中的卡片。这类微程序包括新的费用报告待批准和新课程可供报名.下面的列表显示了可用的事件触发器类型:
- 新记录-在记录源(SoR)中创建新记录时发送通知。
- 更改记录—当SoR中的现有记录发生更改时,发送通知。
- 匹配记录-当记录在SoR中的特定时间匹配定义的查询时发送通知。
- 删除记录—当当前记录在SoR中被删除时发送通知。
- 周期通知—(用户动作)周期性发送非数据驱动的通知。
- 周期报表—在指定的时间间隔内发送带有汇总报表数据(分组)的定期通知。
- 日期提醒—在记录日期列值之前或之后的指定时间发送通知。
页面是用户发起的微应用程序,可以作为工作区中的操作,并且可以很容易地进行启动操作。例如,要求美国专利商标局,提交Help Desk Ticket,搜索目录.下面的列表显示了页面类型模板:
- 详细信息-创建一个页面来显示来自您的SoR的单个记录的静态详细信息。
- 表单——创建一个可编辑的页面,除了能够将用户数据输入到页面中之外,还提供静态详细信息。
- 表——基于从目标应用程序SoR加载的多个数据表创建一个页面。
- 静态内容——创建一个页面来显示静态的、不可操作的信息,如标题、错误消息或提醒。
添加一个新的微应用
此过程与您想要创建的任何空白微应用程序相同。
遵循以下步骤:
- 从Microapp集成页面或在集成视图中(通过选择集成打开),选择您想要添加微应用程序的集成旁边的菜单。
- 选择添加Microapp.
- 选择空白模板根据您的业务需求构建自己的微应用程序。添加空白微应用后,它会出现在相关集成下Microapp集成页面。
- 返回到Manage Microapps页面并选择空白Microapp从列表下的积分。的属性页面打开。
- 给它一个合适的名字和描述。
- 选择Microapp图标然后从菜单中选择一个合适的图标。有应用程序图标,动作和通知图标,微应用和数据您可以从中选择的图标。
克隆一个微应用
你也可以克隆一个现有的微应用来创建一个新的微应用。这个微应用存在于同一个集成中。你必须给新微应用一个唯一的名字,因为在同一个集成中没有两个微应用可以有相同的名字。
- 从Microapp集成页面或集成视图中(通过选择集成打开),选择要复制的微应用程序旁边的菜单,然后选择克隆.
输入一个新的微程序名称在字段中,选择克隆.
新的微程序被添加到微程序列表中。
注意:
你也可以从同一个菜单中导出和导入新版本的微应用程序。有关这些功能的详细信息,请参见导出和导入集成和微应用程序.
示例场景工作流设计
您有一个发票审批系统,您需要在我们的工作流程中容纳以下用例:
- 当有新的批准时,必须通知审批人。
- 当请求被批准或拒绝时,必须通知请求者。
- 审批人需要有关发票的信息,包括状态、总价、请求者详细信息(姓名/电子邮件/电话),以及行项目详细信息列表(姓名/价格/数量)。
- 请求者需要有关发票的信息,包括总价、审批人详细信息列表(姓名/电子邮件/电话)和行项目详细信息列表(名称/价格/数量)。
现在让我们来看看我们的数据库,以及它们的表关系:
设计你的微应用
从这里你知道你需要4个通知和5页。
您需要构建四个通知,两个用于审批者,两个用于请求者。审批人和请求者的电子邮件位于与之有直接关系的用户表中审批人员
和invoice-detail
表。
您需要构建五个页面,每个页面对应一个:审批者发票列表、审批者发票详细信息、请求者发票列表、请求者发票详细信息以及审批者和请求者行项目详细信息。
创建通知
首先创建通知。所有的注意事项和限制都适用于通知。通知必须由用户发送。用户的电子邮件需要在表中,或者最多一层关系之外。
为审批者构建通知审批人员
表:
- 表中新记录的通知
- 状态变更通知
为请求者构建通知invoice_detail
表:
- 表中新记录的通知
- 状态变更通知
设计限制(审批人)
审批人馈卡的数据只能从以下表格中获取:
审批人员
(主要表)invoice-detail
(invoice_id关系)用户
(只有approver_id关系)
这意味着您无法将有关请求者的任何数据获取到提要卡,因为个性化是根据用户电子邮件的上下文进行的。例如,如果希望拥有请求者名称,则必须更改数据库模式并将请求者名称添加到invoice_detail
表格
设计限制(请求者)
请求者馈卡的数据只能从以下表格中获取:
invoice-detail
(主要表)用户
(仅限requestor_id relation)
这意味着您无法从line_items
和审批人员
因为关系是1:N。例如,输入卡片文本您的请求已被manager@company.com批准是不可能的。如果需要此信息,则必须更改数据库模式并将此信息添加到invoice_detail
.
结论
由此你可以确定一定有两个invoice_detail
页:
- 的发票详细信息审批者
审批人员
表格 - 您在表上构建的Invoice Detail Requestor
invoice_detail
表格
现在你可以意识到你在这里有一个限制发票明细审批人页面。中的所有数据都可以添加审批人员
(主要表),invoice-detail
(invoice_id
关系),用户
(只有approver_id
关系表)。但是,您会遇到与通知相同的问题。缺少请求者信息和line_items
表离得太远,说明是两层关系。
解决方案
有一种变通方法可以从两层关系之外的表中获取数据。
选项1使用GotoPage。您可以添加第三个按钮,例如看到细节将用户从这个页面移到发票明细页面。你把那个页面建立在invoice-detail
表,所以请求者
和line_items
桌子只隔一层。
选项2使用未绑定表组件:取消选择使用详细页面相关记录切换,你可以选择line_items
.这将创建一个包含所有项的表。您需要添加一个过滤器,以便仅为特定发票选择项目。line_items
invoice_id =审批人员
invoice_id。可以使用类似的方法请求者
.就像桌子在上面一样line_items
,也可以从与表有1:1或N:1关系的表中添加数据line_items
.
建立你的页面
你需要创建五页,每一页对应以下表格:
- 批准人发票清单
- 批准人发票明细
- 请求方发票清单
- 请求方发票明细
- 审批者和请求者行项目详细信息
如果你需要允许基于用户分配的详细权限,请使用单独的微应用程序。例如,您的工作流可能只要求某些用户访问创建页面。有关页面构建器UI及其组件的完整概述,请参见页面构建器组件.下面的食谱提供了利用有用组件进行构建的详细步骤细节和列表类型的页面。
Microapps食谱
下面是一些常见类型的通知和页面的示例,您可以使用所提供的成分(组件)列表构建这些通知和页面。
通知
构建通知,将新的或更改的项目从工作流推送给用户。从事件触发器类型中进行选择,如下所示,然后在构建器中自定义事件。有关更多信息,请参见构建事件通知.
事件触发:
- 新记录-在记录源(SoR)中创建新记录时发送通知。
- 更改记录—当SoR中的现有记录发生更改时,发送通知。
- 匹配记录-当记录在SoR中的特定时间匹配定义的查询时发送通知。
- 删除记录—当当前记录在SoR中被删除时发送通知。
- 周期通知—(用户动作)周期性发送非数据驱动的通知。
- 周期报表—在指定的时间间隔内发送带有汇总报表数据(分组)的定期通知。
- 日期提醒—在记录日期列值之前或之后的指定时间发送通知。
列表页面
构建一个列表页面来显示工作流中可用的所有项目。首先使用以下组件。要查看完成的页面以及复制它的分步详细信息,请参见创建一个列表页面.
组件:
- 表格—通过定义表源、过滤器和定义列来添加表。可以添加页面链接操作。必须设置个性化查询以限制数据暴露。
- 文本输入—通过指定要加载到用户输入的页面的数据表、列和值来定义文本源。组件可以标记为可选。字段宽度可以修改。可以根据最小或最大长度或文本模式配置验证规则,以标识用户输入。
详细信息页面
构建列表页以查看工作流中可用项目的详细信息。首先使用以下组件。要查看完成的页面以及复制页面的完整步骤,请参见构建详细信息页面.
组件:
- 文本-定义文本源和格式加载从缓存到页面。
- 后退按钮-允许用户返回到上一页。
- 静态文本-定义显示页面的静态文本。
- 灵活的网格-给你更多的控制组件在页面上的定位。当您设计用于大屏幕设备的页面时非常有用。设置标签和网格中需要的单元格总数。
- 表格—通过定义表源、过滤器和定义列来添加表。可以添加页面链接操作。可以设置基于用户电子邮件的个性化查询,以限制数据暴露。
创建页面
构建一个创建页面,将项目添加到工作流中。首先使用以下组件。要查看完成的页面以及复制页面的完整步骤,请参见创建一个创建页面.
组件:
- 静态文本-定义显示页面的静态文本。
- 灵活的网格-给你更多的控制组件在页面上的定位。当您设计用于大屏幕设备的页面时非常有用。由电网项目.设置标签和网格中需要的单元格总数。
- 文本输入—通过指定要加载到用户输入的页面的数据表、列和值来定义文本源。组件可以标记为可选。字段宽度可以修改。可以根据最小或最大长度或文本模式配置验证规则,以标识用户输入。
- 选择—允许用户从一组值列表中进行选择。由来自源系统的数据填充,或者您可以手动输入值列表。可以添加动作。
- 查找-允许用户搜索大量的值,并允许用户通过搜索其他值来选择一个值。
- 按钮-在带有操作和逻辑的页面上添加一个可点击的组件。
嵌入
的嵌入页面模板呈现用于嵌入自定义网页的iframe。iframe的大小会根据页面上的可用空间自动调整。与静态内容页类似,嵌入页没有组件,也没有绑定到数据库表。这也意味着Embed页面的URL不能使用模板变量,因为没有连接的数据库表。有关嵌入组件的信息,请参见嵌入组件.
其他资源
查看Citrix Workspace Intelligence和Microapps服务的概述视频:微应用概述.
了解如何创建自定义集成和微应用程序视频:微应用自定义集成.
有关获取测试实例的更多信息,请参见Citrix工作区开发人员门户.
这里有一个快速指南来设置一个RSS微应用程序:当有Citrix安全公告时获取通知.
参观微应用论坛.