创建微应用

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

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

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

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

一旦知道使用案例,下一步就是识别 API,使我们能够从目标系统中提取相关信息或注入到目标系统中。

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

重要注意事项

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

  • 您只能访问一个页面上的数据。这意味着在构建页面时,您只能解决直接相关的数据。
  • 所有个性化都是通过用户电子邮件的上下文进行的。这意味着,如果您正在创建通知或创建个性化页面,用户电子邮件最多可以是一个级别的关系。
  • 您只能将通知的“转到页面”操作链接设置为基于与通知相同表的页面。
  • 一次更改将生成一个通知。如果收件人位于相关表中,则关系必须为 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. 选择微应用图标,然后从菜单中选择适当的图标。您可以从中选择应用程序图标操作和通知图标以及微应用和数据图标。

示例方案工作流设计

您拥有发票审批系统,并且您需要将以下用例纳入我们的工作流程:

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

现在让我们来看看我们的数据库以及它们的表格关系: 数据库模式及其表关系

设计您的微应用

从这个你知道你需要四个通知和五个页面。

您需要构建四个通知,其中两个用于审批者,两个用于申请者。审批者和申请者电子邮件位于与 approversinvoice-detail 表有直接关系的用户表中。

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

构建您的通知

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

approvers 表中为审批者生成通知:

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

invoice_detail 表中的申请者生成通知:

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

设计限制(审批者)

审批者源卡的数据只能从以下表格中获取:

  • approvers ( 主表)
  • invoice-detail (invoice_id relation)
  • users(仅限 approver_id 关系)

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

设计限制(申请者)

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

  • invoice-detail ( 主表)
  • users(仅限 requestor_id 关系)

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

结论

从这个你可以确定必须有两个 invoice_detail 页面:

  • 您在 approvers 表上构建的发票明细审批人
  • 您在表 invoice_detail表上构建的发票详细信息申请者

现在,您可以在“发票详细信息审批人”页面中识别自己的 限制。可以添加 approvers(主表)、invoice-detailinvoice_id 关系)和 users(仅 approver_id 关系)表中的所有数据。但是,您遇到的问题与通知相同。缺少申请者信息,line_items 表太远,这是两个关系级别。

解决方法

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

选项 1 使用 GotoPage。您可以添加第三个按钮,例如“查看详细信 息”,并将用户从此页移至“发票详细信息申请人”页。您在 invoice-detail 表上构建了该页面,因此 requestorline_items 表只有一个级别。

选项 2 使用未绑定的表组件:取消选择使用与详细信息页相关的记录切换,您可以选择 line_items。这将创建一个包含所有项目的表。您需要添加过滤器以仅为特定发票选择物料。line_items invoice_id = approvers invoice_id。可以为requestor使用类似的方法。当表位于 line_items 上方时,还可以从与 line_items 具有 1:1 或 N:1 关系的表中添加数据。

构建您的页面

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

  • 审批者发票列表
  • 审批者发票详细信息
  • 申请者发票列表
  • 申请者发票详细信息
  • 审批者和申请者行项目详细信息

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

微应用程序食谱

按照这些常见类型的通知和页面的示例进行操作,您可以使用提供的成分(组件)列表来构建。

通知

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

事件触发器:

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

列表页

构建列表页面以显示工作流中的所有可用项目。首先使用以下组件。有关完成的页面和重现页面的逐步详细信息,请参阅 构建列表页

组件:

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

详情页面

构建列表页以查看工作流中可用的一个项目的详细信息。首先使用以下组件。有关完成的页面以及完成重现页面的步骤,请参阅 构建详细信息页面

组件:

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

“创建”页

构建创建页面以将项目添加到工作流中。首先使用以下组件。有关完成的页面以及完成重现页面的步骤,请参阅 构建创建页面

组件:

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

其他资源

有关 Citrix Workspace 智能和微应用服务的概述,请参阅 视频:微应用概述

了解有关创建自定义集成和微应用的信息,请参阅 视频:微应用定制集成

了解有关获取测试实例的更多信息,请参阅 Citrix Workspace 开发人员门户

以下是一个快速指南,用于设置 RSS 微应用:在存在 Citrix 安全公告时获取通知

访问 微应用讨论论坛

创建微应用