# 脚本开发
扩展表达式函数要完成自己的逻辑,就需要一些代码逻辑,本文介绍如何通过脚本语言开发扩展表达式函数。
表达式函数的运行环境包括前端浏览器环境、后端服务器环境、和数据库SQL环境,表达式函数不一定需要在每个环境中都能运行,能满足需求即可,可以都支持,也可以只在某个环境运行。
TIP
如果能使用现有的表达式函数(见表达式函数)组合即可完成需求,那么可以直接配置expTemplate,这样就不需要做脚本开发了,系统会自动适配各种运行环境。
# 前端脚本
如果函数要在前端浏览器环境运行,需要开发一个前端脚本文件,如"script.ts",代码示例如下:
export function func1(expEvalDP: any, args: Array<any>): any | Promise<any>{
//...
}
然后:
- 配置jsScript为脚本的文件名,如"script.js","script.ts"编译后会生成"script.js"。
- 配置scriptFunc为函数名,如"func1"。
如果在表达式编辑界面对于函数有些特殊的合法性检查机制,那么也可以开发一个前端脚本函数,专门用于检查函数参数的合法性,甚至根据参数返回动态的函数的类型,如:
export function checkfunc1Args(node: any, compileContext: any): void{
if (...){
//报告错误信息
compileContext.throwError("err.exp.expectArgument", node);
}
}
然后:
- 配置checkArgsFunc为函数名,如"func1"。
# 后端脚本
如果函数要在后端服务器环境运行,需要开发一个前端脚本文件,如"script.action.ts",代码示例如下:
export function func1(expEvalDP: any, args: Array<any>): any{
//...
}
TIP
与前端函数不同,后端函数不支持返回异步结果。
然后:
- 配置serverScript为脚本的文件名,如"script.action","script.action.ts"编译后会生成"script.action"。
- 配置scriptFunc为函数名,如"func1"。
是否有帮助?
0条评论
评论