脚本转换
脚本转换允许您为数据加载端点和服务操作启用内联脚本转换。脚本可以配置为接收从 HTTP 响应获得的响应对象,并将其转换为另一个响应对象,具体取决于您的目标集成记录系统 (SoR)。脚本无法执行任何请求或存储任何数据。脚本转换仅用于转换响应,以便 HTTP 集成 JSON 解析器可以解析响应。
- 每个 HTTP 端点都有自己的可编辑脚本。
- 使用测试服务按钮测试 HTTP 集成时,脚本将与测试请求一起运行。
- 使用请求转换运行的脚本限制为 10000 条语句。
- 脚本执行也受到一分钟的时间段限制。如果脚本在此期间没有完成,它将被终止。
准备工作
使用脚本转换可以推断您熟悉目标应用程序 SoR。使用脚本转换进行 HTTP 集成时,请遵循以下常规过程:
- 准备好要通过数据加载或服务操作配置页面导入的脚本。
- 脚本必须使用在首选文本编辑器/开发工具中编辑的 javascript 语言准备。
- 准备就绪后,通过微应用管理界面中的脚本转换框粘贴(或直接编辑)脚本。
- 导入后,测试脚本。
启用脚本转换
要在配置数据加载或服务操作时启用脚本转换,请执行以下步骤:
-
选择脚本转换按钮:
-
输入你准备好的脚本:
-
选择使用参数进行测试,然后选择测试服务以查看原始响应、脚本输出、转换后的响应和任何脚本错误(如果适用)
注意:
如果更改转换脚本,则还必须重新生成表
当脚本在数据加载或服务操作中正常运行时,请选择添加。
示例脚本
({response}) => {
_ = library.load("lodash")
let json = JSON.parse(response)
console.log(`loaded user count: ${json.length}`)
let transformed = json.filter(user => {
if (user.active === true) {
return true
}
console.log(`skipping inactive: ${user.displayName}`)
return false
}).map(user => ({
name: user.displayName,
avatarUrl: user.avatarUrls["32x32"],
now: _.now(),
}))
return JSON.stringify(transformed) }
注意:
您可以像前面的示例那样返回字符串,也可以返回转换后的变量的 js 对象(数组)。
示例:重命名 JSON 数组名称 before.json after.json
:
({
response
}) => {
_ = library.load("lodash")
function rename(obj, key, newKey) {
if (_.includes(_.keys(obj), key)) {
obj[newKey] = _.clone(obj[key], true)
delete obj[key]
}
return obj
}
let json = JSON.parse(response)
let transformed = rename(json, 'tickets', 'new_tickets')
return JSON.stringify(transformed) }
脚本转换
已复制
Failed!