微应用

集成 ServiceNow

与 ServiceNow 集成以提交和监控请求,并使用 Citrix Workspace 从任何设备、内部网或信使采取措施。

注意

我们提供了两个 ServiceNow 集成模板供您使用。对于大多数用例,我们建议使用较新的 HTTP 集成。HTTP 集成提供了更多功能来配置缓存的数据结构。每个集成的设置过程都是相同的。有关每个集成中可用的微应用的完整详细信息,请参阅 使用 ServiceNow 微应用。

使用以下过程启用 ServiceNow 集成。确保满足先决条件、启用 API 访问权限并为专用用户分配角色。完成此过程后,您现有的审核日志记录级别将保留,包括使用 Citrix Microapps 执行的任何操作。

此集成使您能够:

  • 在工作区体验中创建任务。该解决方案根据当前登录的用户向 API 请求添加一个 “opened_by” 参数。如果在维修操作参数设置中明确定义了 “opened_by” 参数,它将替换默认值
  • 批准微应用内的请求。该解决方案将 user_name 设置的句子 “批准” 状态添加到备注字段中,以标识执行批准的人员
  • 从微应用创建新的服务目录请求。该解决方案根据当前登录的用户将 “requested_in” 参数添加到 API 请求

有关开箱即用的 ServiceNow 微应用的完整列表,请参阅 使用 ServiceNow 微应用。

查看必备项

这些先决条件假定您管理组织的 ServiceNow 实例以设置集成。

工作区用户需要为完成服务操作分配适当的角色。正确的角色取决于您的 ServiceNow 配置。

要在 Citrix Workspace 微应用中添加集成,您必须具备以下详细信息:

  • 基本 URL:这是您的实例 URL。您必须输入您的实例 基本 URL ,或者直接将示例 {cloud-id} 中的客户 ID 替换为您的客户 ID。
  • 授权 URL:将示例 {customer-id} 中的客户 ID 替换为您的客户 ID, https://{customer-id}.service-now.com/oauth_auth.do 这是设置目标应用程序集成时提供的授权服务器 URL。
  • 令牌 URL 将示例 {customer-id} 中的代码替换为您的客户 ID: https://{customer-id}.service-now.com/oauth_token.do。这是访问授权令牌的 URL。
  • 用户名:这和密码是有权访问 ServiceNow 中完整表结构和所有表的服务帐户的凭据。
  • 密码:此和用户名是有权访问 ServiceNow 中完整表结构和所有表的服务帐户的凭据。
  • 客户端 ID:您可以通过在 ServiceNow 帐户中注册 OAuth 客户端来收集客户端 ID。对于服务身份验证和服务操作身份验证,客户端 ID 和客户端密钥是相同的。
  • 客户端密钥:您可以通过在 ServiceNow 帐户中注册 OAuth 客户端来收集客户端密钥。对于服务身份验证和服务操作身份验证,客户端 ID 和客户端密钥是相同的。

注意:

建议您始终使用 OAuth 2.0 作为服务身份验证方法(如果可用)。OAuth 2.0 可确保您的集成符合配置的微应用的最大安全合规性。

  • 获取新的 oauth2 client_id 和 client_secret 并定义客户端应用程序的范围。

  • 将 Citrix Gateway 配置为支持 ServiceNow 的单点登录,这样一旦用户登录,他们将自动重新登录,而无需再次输入凭据。按照 ServiceNow 单点登录配置中的说明进行操作。有关配置 SSO 的更多信息,请参阅 Citrix Gateway 服务

新的 HTTP 集成权限

您的 ServiceNow 管理员帐户必须对我们在集成中获取的所有表具有读取权限。请参阅下面的列表:

  • change_request
  • 事件
  • 问题
  • sc_cat_item
  • sys_user
  • task
  • cmn_ 位置
  • core_ 公司
  • sc_req_item
  • sc_request
  • sys_journal_field
  • sys_user_委托人
  • sys_user_group
  • sys_user_has_role
  • sys_user_role
  • sys_user_role _ 包含
  • sys批准_批准者
  • sys_choice
  • sc_item_option_mtom

重要

信息管理 HTTP 集成的 ServiceNow 管理员帐户必须将时区设置为 GMT。这是纠正 Workspace 中和增量数据同步中的时间处理所必需的。如果发现任何时间不匹配,请首先检查这些设置以解决问题。

ServiceNow 角色

我们建议使用以下 ServiceNow 角色:

  • 批准_admin
  • itil
  • 个性化 _ 选择
  • snc_read_only

旧版集成特权

此 ServiceNow 管理员帐户必须具有完整的数据访问权限。如果您选择使用单独的 ServiceNow 帐户进行微应用集成,则需要手动添加对受限表的读取权限,例如 sys_journal_field。具体而言,管理员需要访问以下表格,因为它们包含有关 ServiceNow 数据结构的信息:

  • sys_db_object
  • sys_ 字典
  • sys_choice

为所需表启用 API 访问

默认情况下,大多数 ServiceNow 表都可以通过 Web 服务进行访问。要确认是否可以通过 Web 服务访问要与 Workspace 同步的表,请执行以下操作:

  1. 立即登录 ServiceNow。
  2. 选择 “ 系统定义” > “表”。
  3. 选择要确认的表名旁边的 信息 图标。选择 打开记录。选择应用 程序访问 选项卡,并确保启用 “允许通过 Web 服务访问此表” 复选框。
  4. 如有必要,请选中该复选框,然后单击 更新 以保存设置。

添加回调 URL

向实例配置添加自定义 URL,以授予对私有数据的访问权限并启用经 OAuth 身份验证的用户操作。

注意

URL 的这一部分 {yourmicroappserverurl} 由租户部分、区域部分和环境部分组成: https://{tenantID}.{region(us/eu/ap-s)}.iws.cloud.com

  1. 以管理员身份登录 ServiceNow。
  2. 导航到 系统 OAuth > 应用程序注册表,然后选择 新建
  3. 选择 为外部客户端创建 OAuth API 端点
  4. 在以逗号分隔的重定向 URL 字段中输入此集成的以下授权 重定向 URL

    • https://{yourmicroappserverurl}/admin/api/gwsc/auth/serverContext
    • https://{yourmicroappserverurl}/app/api/auth/serviceAction/callback

    确保未选择 需要 PKCE

  5. 单击 Submit(提交)。

筛选查询

大多数 ServiceNow 实体都支持筛选。表 API GET 方法的 sysparm_query URL 参数允许过滤。选择预定义的查询或编写自己的自定义查询。有关更多信息,请参阅 ServiceNow REST API 参考和产品文档

注意

如果查询或其任何部分无效,则会忽略无效部分,如 ServiceNow 文档中所述。

示例:

// Only Active objects:
active=true

// Updated in the last 2 days:
sys_updated_onONLast%20day@javascript:gs.daysAgoStart(1)@javascript:gs.daysAgoEnd(0)

// Updated in the last 3 hours:
sys_updated_onONLast%20hour@javascript:gs.hoursAgoStart(2)@javascript:gs.hoursAgoEnd(0)

// Updated in the last 4 months:
sys_updated_onONLast%20month@javascript:gs.monthsAgoStart(3)@javascript:gs.monthsAgoEnd(0)

将集成添加到 Citrix Workspace 微应用

将 ServiceNow 集成添加到 Citrix Workspace 微应用程序以连接到您的应用程序。这样可以提供带有预配置通知和操作的开箱即用的微应用程序,这些通知和操作可在工作区中使用我们提供了两个 ServiceNow 集成模板供您使用。对于大多数用例,我们建议使用较新的 HTTP 集成。

添加 ServiceNow HTTP 集成

请按照以下步骤设置 ServiceNow HTTP 集成。身份验证选项是预先选择的。确保在完成该过程时选择了这些选项。对于大多数用例,我们建议使用这种较新的 HTTP 集成。HTTP 集成提供了更多功能来配置缓存的数据结构。

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

  1. 微应用集成 页面中,选择 添加新集成,然后 从 Citrix 提供的模板中添加新集成。
  2. 选择 ServiceNow 磁贴。
  3. 输入 集成的集成名称
  4. 输入 连接器参数
    • 输入实例基本 URL,或者直接将示例中的 {customer-id} 替换为您的客户 ID。
    • 图标 库中选择一个用于集成的图标,或将其保留为默认的 ServiceNow 图标。

    ServiceNow HTTP 参数

    • 如果要创建 本地连接,请启用本地实例 切换。有关更多信息,请参阅 本地实例

    ServiceNow HTTP 本地

  5. 服务身份验证下,从身份验证 方法 菜单中选择 OAuth 2.0 ,然后填写身份验证详细信息。使用 OAuth 2.0 安全协议为委派访问生成请求/授权令牌。建议您始终使用 OAuth 2.0 作为可用的服务身份验证方法。OAuth 2.0 可确保您的集成符合配置的微应用的最大安全合规性。

    1. 授权类型 菜单中选择 资源所有者密码 。提供正确的凭据以授权资源服务器提供访问令牌。
    2. 令牌授权菜单中选择请求正文
    3. 输入您的令牌 URL,或者直接将示例中的 {customer-id} 替换为客户 ID:https://{customer-id}.service-now.com/oauth_token.do。这是访问授权令牌的 URL。
    4. 输入您的 用户名密码。这些是有权访问 ServiceNow 中完整表结构和所有表的服务帐户的凭据。
    5. 输入您的 客户 ID。客户端 ID 是表示授权服务器特有的客户端注册信息的字符串。
    6. 输入您的 客户端密钥。客户端密钥是设置目标应用程序集成时发出的唯一字符串。
    7. 输入您的 标题前缀。(可选)如果您的持票人前缀与默认标题不同,请输入标题前缀。

      ServiceNow HTTP 服务身份验证

    8. 如果您选择了 OAuth 2.0 身份验证方法,则可以选择 + 添加参数 以包含 访问令牌参数。如有必要,访问令牌参数可根据目标应用程序授权服务器的要求定义访问令牌参数。

    ServiceNow HTTP 令牌

  6. 服务操作身份验证下,启用在操作使用单独的用户身份验证开关。服务操作身份验证在服务操作级别进行身份验证。

    1. 身份验证方法菜单中选择 OAuth 2.0,然后填写身份验证详细信息。
    2. 授权类型菜单中选择授权码。这会授予客户端用来交换访问令牌的临时代码。该代码从授权服务器获取,您可以在其中查看客户端请求的信息。只有这种授权类型才能启用安全的用户模拟。这将显示您在注册应用程序时使用的 回调 URL
    3. 令牌授权菜单中选择请求正文
    4. 输入您的 授权 URL 或简单地将示例 {customer-id} 中的客户 ID 替换为您的客户 ID, https://{customer-id}.service-now.com/oauth_auth.do 这是在设置目标应用程序集成时提供的授权服务器 URL。
    5. 输入您的令牌 URL,或者直接将示例中的 {customer-id} 替换为客户 ID:https://{customer-id}.service-now.com/oauth_token.do。这是访问授权令牌的 URL。
    6. (可选)输入您的 范围 以定义访问请求的范围。此字符串由授权服务器在设置目标集成应用程序时定义。
    7. 输入您的 客户 ID。客户端 ID 是表示授权服务器特有的客户端注册信息的字符串。您可以通过在 ServiceNow 帐户中注册 OAuth 客户端来收集此信息和秘密信息。您需要添加在集成配置页面上看到的 回调 URL
    8. 输入您的 客户端密钥。客户端密钥是设置目标应用程序集成时发出的唯一字符串。
    9. (可选)如果持票人 前缀与默认标题 不同,请输入标题前缀。
    10. 如果您选择了 OAuth 2.0 身份验证方法,则可以选择 + 添加参数 以包含 访问令牌参数。如有必要,访问令牌参数可根据目标应用程序授权服务器的要求定义访问令牌参数。

    ServiceNow HTTP 服务操作身份验证

  7. (可选)如果要为此集成激活速率限制,请启用请 求速率限制 开关并设置每个 时间间隔的请求数
  8. (可选)启用 日志记录 切换以保留 24 小时的日志记录以用于支持目的。

    速率限制和日志记录切换

  9. 选择保存

添加旧版集成

按照以下说明设置旧版基于 Java 的 ServiceNow 集成。

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

  1. 在概述页面中,选择 入门

    此时将打开 “管理集成” 页面。

  2. 选择 添加新集成,然后 从 Citrix 提供的模板中添加新集成
  3. 选择 ServiceNow 磁贴。
  4. 输入集成的名称。

    ServiceNow 连接器参数、URL、用户名、密码、身份验证方法、连接数

  5. 输入作为先决条件收集的 连接器参数
    • 输入你的 URL
    • 输入用 户名密码
    • 选择一种 身份验证方法。使用 OAuth 2.0 安全协议为委派访问生成请求/授权令牌。
    • 对于 Oauth 2.0,输入您在先决条件过程中收集的 OAuth 客户端 ID和 OAuth 客户端密钥
    • 输入 ServiceNow 连接数的数量。此值确定数据同步启动的字符串数。

      注意: 默认连接数为三个。打开更多连接可以减少数据同步的时间,但会增加微应用服务器的负载并影响其性能。如果你需要,我们建议不超过 10 个。

    • 如果要获得例如已关闭的请求或设置为的其他 数据的列表,请选择 “下载非活动 数据” 单选按钮 active = false
  6. 选择添加

微应用集成 页面随即打开,其中包含您添加的集成及其微应用。在这里,您可以添加另一个集成,继续设置开箱即用的微应用,或为此集成创建新的微应用。

现在,您已准备好设置和运行第一次数据同步。由于可以将大量数据从集成应用程序提取到微应用平台,因此我们建议您使用 “ ” 页面筛选实体以进行首次数据同步,以加快同步速度。有关更多信息,请参阅验证所需实体。有关同步规则、不符合其计划的同步和否决规则的完整信息,请参阅同步数据

有关 API 端点和表实体的更多详细信息,请参阅 ServiceNow HTTP 连接器规范ServiceNow 连接器规范

使用 ServiceNow 微应用

现有的应用程序集成随现成的微应用程序一起提供。从这些微应用开始,然后根据您的需求自定义它们。

注意

我们提供了两个 ServiceNow 集成模板供您使用。我们建议在大多数用例中使用较新的 HTTP 集成,而不是旧的基于 Java 的集成。它们包含的微应用略有不同。

HTTP ServiceNow 微应用

ServiceNow HTTP 微应用

我们的 HTTP ServiceNow 集成带有以下预配置的开箱即用微应用:

变更请求: 搜索变更请求、查看其详细信息、添加注释并更新它们。

通知或页面 用例工作流
已分配更改请求通知 将现有变更请求分配给用户后,他们会收到通知。
变更请求工作负责人更改(打开者)通知 当更改请求的受理人发生更改时,为其创建该请求的用户会收到通知。
变更请求受理人变更(请求者)通知 当更改请求的受理人发生更改时,发出该请求的用户会收到通知。
更改请求状态更改(分配给)通知 修改更改请求的状态后,分配该请求的用户会收到通知。
更改请求状态更改(打开者)通知 修改更改请求的状态后,打开该请求的用户会收到通知。
更改请求状态更改(请求者)通知 修改更改请求的状态后,为其创建该请求的用户会收到通知。
已分配新变更请求通知 向用户分配新的变更请求时,他们会收到通知。
更改请求详情页面 提供包含详细信息的变更请求的只读视图。
评论更改请求页面 提供对变更请求进行评论的表单。
“我的未结更改请求” 页 允许用户搜索分配给他们、由他们请求或由他们打开的打开的更改请求。
“更新更改请求” 页 提供用于更新变更请求的表单。

事件: 搜索事件、查看其详细信息、添加评论和更新事件。

通知或页面 用例工作流
事件分配通知 将现有事件分配给用户后,他们会收到通知。
事件受理人变更(呼叫者)通知 当事件的受让人发生更改时,报告该事件的用户会收到通知。
事件受让人变更(打开者)通知 当事件的受让人发生更改时,打开该事件的用户会收到通知。
事件状态更改(分配给)通知 修改事件的状态后,分配给该事件的用户将收到通知。
事件状态更改(呼叫者)通知 修改事件的状态后,报告事件的用户会收到通知。
事件状态更改(打开者)通知 修改事件的状态后,打开事件的用户会收到通知。
已分配新事件通知 向用户分配新事件时,他们会收到通知。
评论事件表单页 提供对事件进行评论的表单。
事件详情页面 提供包含详细信息的事件的只读视图。
我的开放事件页面 允许用户搜索分配给他们、他们请求或由他们报告的开放事件。
“更新事件” 页 提供用于更新事件的表单。

问题: 搜索问题、查看其详细信息、添加评论并更新问题。

通知或页面 用例工作流
新问题分配通知 向用户分配新问题时,他们会收到通知。
问题已分配通知 将现有问题分配给用户后,他们会收到通知。
问题受让人更改(打开者)通知 更改问题的受让人时,打开问题的用户会收到通知。
问题状态更改(分配给)通知 修改问题的状态后,分配问题的用户会收到通知。
问题状态更改(打开者)通知 修改问题的状态后,打开问题的用户会收到通知。
评论问题页 提供对问题进行评论的表单。
“我的开放问题” 页 允许用户搜索分配给他们或由他们打开的未解决问题。
问题详情页 提供问题的只读视图及详细信息。
“更新问题” 页 提供用于更新问题的表单。

请求批准: 搜索和查看待定批准,然后批准或拒绝它们。

通知或页面 用例工作流
新批准请求(请求的项目)通知 将请求或更改请求的批准分配给用户后,他们会收到可以批准或拒绝的可操作通知。
新批准请求(问题)通知 将问题的批准分配给用户后,他们会收到可以批准或拒绝的可操作通知。
待处理请求批准页 允许用户搜索分配给他们的待处理批准。
请求批准详情页面 提供待批准的可操作视图,其中包含他们可以批准或拒绝的详细信息。

提交更改请求: 选择项目并提交新的变更请求。

通知或页面 用例工作流
“提交更改请求” 页 提供用于提交变更请求的表单。

提交委托: 提交新委托。

通知或页面 用例工作流
“提交委托” 页 提供用于提交新委托人的表单。

提交事件: 提交新事件。

通知或页面 用例工作流
“提交事件” 页 提供用于提交新事件的表单。

提交问题: 提交新问题。

通知或页面 用例工作流
“提交问题” 页 提供用于提交新问题的表单。

基于 Java 的 ServiceNow 微应用

我们基于 Java 的 ServiceNow 集成带有以下预配置的开箱即用微应用:

批准: 搜索和查看待定批准,然后批准或拒绝它们。

通知或页面 用例工作流
新批准请求通知 当向用户分配新的批准请求时,他们会收到可以批准或拒绝的可操作通知。
批准请求详情页面 提供待批准的可操作视图,其中包含他们可以批准或拒绝的详细信息。
待处理请求页 允许用户搜索分配给他们的待处理批准。

变更请求: 搜索变更请求、查看其详细信息、添加注释并更新它们。

通知或页面 用例工作流
已分配更改请求通知 将现有变更请求分配给用户后,他们会收到通知。
变更请求受理人更改通知 更改请求的受理人发生更改后,打开该请求的用户会收到通知。
更改请求状态更改通知 修改更改请求的状态后,打开该请求的用户会收到通知。
已分配新变更请求通知 向用户分配新的变更请求时,他们会收到通知。
更改请求详情页面 提供包含详细信息的变更请求的只读视图。
评论更改申请表页 提供对变更请求进行评论的表单。
“我的未结更改请求” 页 允许用户搜索分配给他们的打开的更改请求。
“更新更改请求表单” 页 提供用于更新变更请求的表单。

事件: 搜索事件、查看其详细信息、添加评论和更新事件。

通知或页面 用例工作流
事件分配通知 将现有事件分配给用户后,他们会收到通知。
事件受理人变更通知 当事件的受让人发生更改时,打开该事件的用户会收到通知。
事件状态更改通知 修改事件的状态后,打开事件的用户会收到通知。
已分配新事件通知 向用户分配新事件时,他们会收到通知。
评论事件表单页 提供对事件进行评论的表单。
事件详情页面 提供包含详细信息的事件的只读视图。
我的开放事件页面 允许用户搜索分配给他们的开放事件。
“更新事件表单” 页 提供用于更新事件的表单。

问题: 搜索问题、查看其详细信息、添加评论并更新问题。

通知或页面 用例工作流
新问题分配通知 向用户分配新问题时,他们会收到通知。
问题已分配通知 当问题的受让人发生变化时,受让人会收到通知。
问题受让人变更通知 更改问题的受让人时,打开问题的用户会收到通知。
问题状态更改通知 修改问题的状态后,打开问题的用户会收到通知。
评论问题表单页 提供对问题进行评论的表单。
“我的开放问题” 页 允许用户搜索分配给他们的未解决问题。
问题详情页 提供问题的只读视图及详细信息。
“更新问题表单” 页 提供用于更新问题的表单。

提交目录请求: 选择商品并提交新的目录请求。

通知或页面 用例工作流
“选择项目” 页 允许用户搜索目录并选择可用项目。
“提交目录请求” 页 提供用于提交目录请求的表单。

提交更改请求: 提交新的变更请求。

通知或页面 用例工作流
“提交更改请求” 页 提供用于提交变更请求的表单。

提交委托: 提交新委托。

通知或页面 用例工作流
“提交委托” 页 提供用于提交新委托人的表单。

提交事件: 提交新事件。

通知或页面 用例工作流
“提交事件” 页 提供用于提交新事件的表单。

提交问题: 提交新问题。

通知或页面 用例工作流
“提交问题” 页 提供用于提交新问题的表单。
集成 ServiceNow