脚本转换
脚本转换允许您启用的内联脚本转换数据加载端点和服务的行动.脚本可以配置为接收从HTTP响应获得的响应对象,并根据您的目标集成记录系统(System of Record, SoR)将其转换为另一个响应对象。脚本不能执行任何请求或存储任何数据。脚本转换只是为了转换响应,以便HTTP集成JSON解析器能够解析它。
- 每个HTTP端点都有自己的可编辑脚本。
- 类的HTTP集成测试时测试服务按钮,脚本将与测试请求一起运行。
- 使用请求转换运行的脚本被限制为10000条语句。
- 脚本执行的时间限制为1分钟。如果脚本在此期间没有完成,则终止脚本。
在开始之前
使用脚本转换表明您熟悉目标应用程序SoR。当使用脚本转换进行HTTP集成时,遵循以下一般流程:
- 方法导入您想要的脚本数据加载或服务的行动配置页面。
- 脚本必须以在您首选的文本编辑器/开发工具中编辑的javascript语言编写。
- 准备好后,通过Microapps管理界面中的脚本转换框粘贴脚本(或直接编辑)。
- 导入后,测试脚本。
注意:
在使用脚本转换时,Citrix会记录标准脚本输出并建立索引,以供调试之用。在配置过程中使用print、console.log等时,必须确保没有记录敏感信息。
启用脚本转换
在配置您的数据加载或服务的行动遵循以下步骤:
选择脚本转换按钮:
输入准备好的脚本:
选择参数测试紧随其后的是测试服务查看原始响应、脚本输出、转换后的响应以及任何脚本错误(如果适用)。
注意:
如果更改转换脚本,则还必须重新生成表
当您的脚本与您的数据加载或服务的行动选择添加.
示例脚本
({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)}
脚本转换
复制!
失败了!