微应用

创建微应用

创建微应用的一个关键组成部分是在了解目标应用程序的数据库架构的基础上规划工作流程。有了这个,你可以识别 API 来构建你的集成,你需要这些 API 来构建自定义集成。

有无数的应用程序可以集成到 Citrix Workspace 中。选择保存 Citrix Workspace 用户感兴趣的信息的目标应用程序。特别令人感兴趣的是经常用于快速任务且用户无法直观访问的应用程序。使用户能够直接从 Citrix Workspace 内部进行交互的可操作应用程序比仅启用用户通知的应用程序具有更大的价值。示例包括批准、创建和添加项目。

接下来,确定要集成到 Citrix Workspace 中的所选目标业务应用程序的关键用例。例如:

  • 创建PTO/假期请求
  • 批准PTO/假期请求
  • 查找待处理的批准
  • 标记任务已完成
  • 通知用户已创建或更改的已分配任务
  • 批准发票

一旦知道了用例,下一步就是确定允许我们从目标系统中提取相关信息或重新注入目标系统的 API。

下面我们展示了使用发票审批用例设计工作流程的场景。有关完整详细信息,请参阅 示例场景工作流程

重要注意事项

在设计工作流之前,请查看以下注意事项和限制:

  • 您只能在一个关系之外访问页面上的数据。这意味着在构建页面时,您只能处理直接相关的数据。
  • 所有个性化都是根据用户电子邮件的上下文进行的。这意味着,如果您要创建通知或创建个性化页面,则用户电子邮件最多可以是一级关系。
  • 对于指 向与通知基于同一表的页面的通知,您只能设置 “转 到页面” 操作链接。
  • 基于记录的详情页面(即使用 RecordID 的页面)不能设置为操作页面。确保没有组件映射到记录值。例如,除非详情页面是纯输入表单,例如添加任务,否则不应将其设置为操作页面。
  • 一次更改会生成一个通知。如果收件人在相关表中,则关系必须为 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 微应用程序的管理员都有权访问缓存中的数据。管理员无权访问数据源的凭据。

构建微应用基础知识

微应用由 页面事件通知组成,通常两者都是。

  • 通知 是事件驱动的微应用,它在需要用户关注某些事情时自动通知用户,例如,作为 Workspace 活动源中的卡片。此类微应用包括供 批准的新费用报告可供注册的新课程。以下列表显示了可用的事件触发器类型:

    • 新记录-在记录源 (SoR) 中创建新记录时发送通知。
    • 已更改记录-在 SoR 中更改现有记录时发送通知。
    • 匹配记录-当记录在 SoR 中的特定时间与定义的查询匹配时发送通知。
    • 删除记录-在 SoR 中删除当前记录时发送通知。
    • 定期通知-(用户操作)定期发送非数据驱动的通知。
    • 定期报告-在指定的时间间隔内发送包含汇总报告数据(分组)的定期通知。
    • 日期提醒-在记录日期列值之前或之后的指定时间发送通知。
  • 页面 是用户启动的微应用,可在 Workspace 中作为操作使用,使启动操作变得容易。例如, 请求 PTO、提**交帮助台票证搜索目录。以下列表显示了页面类型模板:

    • 详细信息-创建一个页面以显示 SoR 中单个记录的静态详细信息。
    • 表单-创建一个可编辑的页面,除了能够将用户数据输入页面之外,还可以提供静态详细信息。
    • 表-基于从目标应用程序 SoR 加载的多个数据表创建页面。
    • 静态内容-创建一个页面以显示静态、不可操作的信息,例如标题、错误消息或提醒。

添加新的微应用

对于要创建的任何空白微应用,此过程都是相同的。

请按照以下步骤进行操作:

  1. 微应用集成 页面或集成视图(通过选择集成打开)中,选择要向其添加微应用的集成旁边的菜单。
  2. 选择 添加微应用
  3. 选择 空白模板 ,根据业务需求构建自己的微应用。 添加空白微应用后,它将显示在 微应用集成页面上的相关集成 下。
  4. 返回管理微应用页面,然后从集成下的列表中选择 空白微应 用。 此时将打开 “ 属性 ” 页。
  5. 给它一个适当的名称和描述。
  6. 选择 微应用图标 ,然后从菜单中选择适当的图标。您可以从中选择应用 程序图标、操作和通知图标以及微应用和数据 图标。

克隆微应用

您还可以克隆现有的微应用以创建新的微应用。此微应用程序存在于同一集成中。您必须为新微应用指定一个唯一的名称,因为同一集成中的任何两个微应用都不能具有相同的名称。

  1. 微应用集成 页面或集成视图(通过选择集成打开)中,选择要复制的微应用旁边的菜单,然后选择 克隆
  2. 在字段中输入 新微应用名称 ,然后选择 克隆

    新的微应用将添加到微应用列表中。

注意:

您还可以从同一菜单导出和导入微应用的新版本。有关这些功能的更多信息,请参阅 导出和导入集成和微应用

示例场景工作流设计

你有一个发票审批系统,你需要在我们的工作流程中纳入以下用例:

  • 有新批准时必须通知批准者。
  • 当申请人的请求被批准或拒绝时,必须通知他们。
  • 审批人需要有关发票的信息,包括状态、总价、申请人详细信息(姓名/电子邮件/电话)以及订单项目详细信息(名称/价格/数量)列表。
  • 申请人需要有关发票的信息,包括总价、审批人详细信息列表(姓名/电子邮件/电话)以及订单项目详细信息(名称/价格/数量)列表。

现在让我们看一下我们的数据库及其表关系: 数据库模式及其表关系

设计你的微应用

由此你知道你需要四个通知和五个页面。

您需要构建四个通知,两个针对批准者,两个针对请求者。批准者和申请人的电子邮件位于与 approvers 和表有直接关系的用户invoice-detail 表中。

您需要构建五个页面,每个页面各一页:审批人发票列表、审批人发票详细信息、申请人发票列表、申请人发票详细信息以及审批人和申请人行项目详细信息。

建立你的通知

首先创建通知。所有注意事项和限制都适用于通知。通知必须由用户发送。用户电子邮件地址必须在表格中,或者最多需要有一个关系级别。

approvers 桌面上为批准者建立通知:

  • 表中新记录的通知
  • 状态变更通知

invoice_detail 桌面上为请求者构建通知:

  • 表中新记录的通知
  • 状态变更通知

设计限制(批准者)

审批人上传数据卡的数据只能从以下表格中获取:

  • approvers (主表)
  • invoice-detail (发票 _id 关系)
  • users (仅适用于 prover_id 关系)

这意味着您无法在 Feed 卡上获取有关请求者的任何数据,因为个性化是根据用户电子邮件的上下文进行的。例如,如果要使用请求者名称,则必须更改数据库模式并将请求者名称添加到 invoice_detail 表中。

设计限制(请求者)

申请者 Feed 卡的数据只能从以下表格中获取:

  • invoice-detail (主表)
  • users (只有 requestor_id 关系)

这意味着您无法从中获取任何数据 line_itemsapprovers 因为关系为 1:N。例如,馈送卡片文本 您的请求已获得 manager@company.com 的批准是 不可能的。如果需要此信息,则必须更改数据库模式并将此信息添加到中 invoice_detail

结论

由此你可以确定必须有两 invoice_detail 页:

  • 您在 approvers 桌面上构建的发票明细审批人
  • 您在 invoice_detail表格上构建的发票明细申请人

您现在可以通过 “发票详细信息审批 人” 页面认识到自己有一个限制。您可以添加 approvers (主表)、(关系)和 invoice-detailusers (仅invoice_idapprover_id 关系)表中的所有数据。但是,您遇到了与通知相同的问题。缺少请求者信息,而且 line_items 表格太远了,这是两个层次的关系。

解决方法

有一种解决方法可以从两级关系的表中获取数据。

选项 1 使用 GoTOPage。您可以添加第三个按钮,例如 “ 查看详细信 息”,然后将用户从此页面移动到 “发 票详细信息请求者 ” 页面。你在 invoice-detail 桌子上建立了这个页面,所以 requestorline_items 表只有一个级别的距离。

选项 2 使用未绑定的表组件:取消选择 “ 使用与详情页面相关的记录 ” 开关,然后您可以选择 line_items。这将创建一个包含所有项目的表。您需要添加筛选条件才能仅为特定发票选择项目。 line_items invoice_id = approvers 发票_id。您可以使用类似的方法来处理 requestor。当表结束时 line_items,您还可以从与具有 1:1 或 N: 1 关系的表中添加数据 line_items

构建你的页面

你需要构建五个页面,每个表一个页面:

  • 批准者发票列表
  • 批准者发票详细信息
  • 申请人发票清单
  • 申请人发票详细信息
  • 批准者和申请人行项目详细信息

如果您需要允许基于用户分配的详细权限,请使用单独的微应用。例如,您的工作流程可能只要求某些用户访问创建页面。有关页面构建器 UI 及其组件的完整概述,请参阅 页面构建器组件。以下食谱详细介绍了利用有用的组件构建详 细信息列出 类型页面的详细步骤。

微应用食谱

遵循以下常见类型的通知和页面示例,您可以使用提供的成分(组件)列表构建。

通知

构建通知,将工作流中的新项目或更改的项目推送给用户。从如下所示的事件触发器类型中进行选择,然后在构建器中自定义事件。有关更多信息,请参阅 构建事件通知

事件触发器:

  • 新记录-在记录源 (SoR) 中创建新记录时发送通知。
  • 已更改记录-在 SoR 中更改现有记录时发送通知。
  • 匹配记录-当记录在 SoR 中的特定时间与定义的查询匹配时发送通知。
  • 删除记录-在 SoR 中删除当前记录时发送通知。
  • 定期通知-(用户操作)定期发送非数据驱动的通知。
  • 定期报告-在指定的时间间隔内发送包含汇总报告数据(分组)的定期通知。
  • 日期提醒-在记录日期列值之前或之后的指定时间发送通知。

列表页面

构建列表页面以显示工作流程中所有可用的项目。首先使用以下组件。要查看完成的页面以及复制它的分步详细信息,请参阅 构建列表页面

组件:

  • -通过定义表源、筛选器和定义列来添加表。可以添加页面链接操作。必须设置个性化查询以限制数据泄露。
  • 文本输入 -通过指定要加载到用户输入的页面的数据表、列和值来定义文本源。组件可以标记为可选。字段宽度可以修改。可以根据最小或最大长度或文本模式来配置验证规则,以识别用户输入。

详情页

构建列表页面以查看工作流程中可用的一个项目的详细信息。首先使用以下组件。要查看完成的页面并完成复制它的步骤,请参阅 构建详情页面

组件:

  • 文本 -定义要从缓存加载到页面的文本源和格式。
  • 返回按钮 -允许用户返回上一页。
  • 静态文本 -定义静态文本以显示页面。
  • 灵活的网格 -让您可以更好地控制页面上组件的位置。在设计适用于屏幕较大的设备的页面时很有帮助。设置标签和想要在网格中包含的单元格总数。
  • -通过定义表源、筛选器和定义列来添加表。可以添加页面链接操作。可以设置基于用户电子邮件的个性化查询以限制数据泄露。

创建页面

构建创建页面以将项目添加到工作流程中。首先使用以下组件。要查看完成的页面并完成复制它的步骤,请参阅 构建创建页面

组件:

  • 静态文本 -定义静态文本以显示页面。
  • 灵活的网格 -让您可以更好地控制页面上组件的位置。在设计适用于屏幕较大的设备的页面时很有帮助。由 网格项目组成。设置标签和想要在网格中包含的单元格总数。
  • 文本输入 -通过指定要加载到用户输入的页面的数据表、列和值来定义文本源。组件可以标记为可选。字段宽度可以修改。可以根据最小或最大长度或文本模式来配置验证规则,以识别用户输入。
  • -允许用户从一组值列表中进行选择。由来自源系统的数据填充,也可以手动输入值列表。可以添加操作。
  • 查找 -允许用户搜索大量值,并允许用户通过搜索其他值来选择值。
  • 按钮 -在页面上添加包含操作和逻辑的可点击组件。

嵌入

入页面模板呈现用于嵌入自定义网页的 iframe。iframe 的大小会根据页面上的可用空间自动调整。嵌入页面没有组件,也没有绑定到数据库表,类似于静态内容页面。这也意味着 Embed 页面的 URL 不能使用模板变量,因为没有连接的数据库表。有关嵌入组件的信息,请参阅 嵌入组件

其他资源

视频:微应用概述中查看 Citrix Workspace 智能和微应用服务的概述。

视频:微应用自定义集成中了解有关创建自定义集成和微应用的信息。

Citrix Workspace 开发人员门户中了解有关获取测试实例的更多信息。

以下是设置 RSS 微应用的快速指南:有 Citrix 安全公告时获取通知

访问 微应用讨论论坛

创建微应用