Microapps

脚本转换

脚本转换允许您启用的内联脚本转换数据加载端点和服务的行动.脚本可以配置为接收从HTTP响应获得的响应对象,并根据您的目标集成记录系统(System of Record, SoR)将其转换为另一个响应对象。脚本不能执行任何请求或存储任何数据。脚本转换只是为了转换响应,以便HTTP集成JSON解析器能够解析它。

  • 每个HTTP端点都有自己的可编辑脚本。
  • 类的HTTP集成测试时测试服务按钮,脚本将与测试请求一起运行。
  • 使用请求转换运行的脚本被限制为10000条语句。
  • 脚本执行的时间限制为1分钟。如果脚本在此期间没有完成,则终止脚本。

在开始之前

使用脚本转换表明您熟悉目标应用程序SoR。当使用脚本转换进行HTTP集成时,遵循以下一般流程:

  • 方法导入您想要的脚本数据加载服务的行动配置页面。
  • 脚本必须以在您首选的文本编辑器/开发工具中编辑的javascript语言编写。
  • 准备好后,通过Microapps管理界面中的脚本转换框粘贴脚本(或直接编辑)。
  • 导入后,测试脚本。

注意:

在使用脚本转换时,Citrix会记录标准脚本输出并建立索引,以供调试之用。在配置过程中使用print、console.log等时,必须确保没有记录敏感信息。

启用脚本转换

在配置您的数据加载服务的行动遵循以下步骤:

  1. 选择脚本转换按钮:

    脚本转换切换

  2. 输入准备好的脚本:

    脚本的输入

  3. 选择参数测试紧随其后的是测试服务查看原始响应、脚本输出、转换后的响应以及任何脚本错误(如果适用)。

注意:

如果更改转换脚本,则还必须重新生成表

当您的脚本与您的数据加载服务的行动选择添加

示例脚本

({response}) => {_ = library.load("lodash") let json = json. parse(response) console.log('已加载的用户计数:${json.length} ') let transformed = json. log。过滤(用户=> {if(用户。active === true){返回true} console.log('跳过inactive: ${user.displayName} ')返回false})。映射(用户=>({名称:用户。displayName, avatarUrl:用户名。avatarUrls["32x32"], now: _.now(),}))返回JSON.stringify(transformed)}

注意:

你可以像前面的例子一样返回字符串,也可以作为js对象(数组)返回转换后的变量。

例子:重命名JSON数组名称之前。json after.json

({response}) => {_ = library.load("lodash")函数重命名(obj, key, newKey) {if (_.includes(_.keys(obj), key)) {obj[newKey] = _。克隆(obj[key], true) delete obj[key]} return obj} let json = json .parse(response) let transformed = rename(json, 'tickets', 'new_tickets') return json .stringify(transformed)}
脚本转换