# 脚本开发

扩展表达式函数要完成自己的逻辑,就需要一些代码逻辑,本文介绍如何通过脚本语言开发扩展表达式函数。

表达式函数的运行环境包括前端浏览器环境、后端服务器环境、和数据库SQL环境,表达式函数不一定需要在每个环境中都能运行,能满足需求即可,可以都支持,也可以只在某个环境运行。

TIP

如果能使用现有的表达式函数(见表达式函数)组合即可完成需求,那么可以直接配置expTemplate,这样就不需要做脚本开发了,系统会自动适配各种运行环境。

# 前端脚本

如果函数要在前端浏览器环境运行,需要开发一个前端脚本文件,如"script.ts",代码示例如下:

export function func1(expEvalDP: any, args: Array<any>): any | Promise<any>{
  //...
}

然后:

  1. 配置jsScript为脚本的文件名,如"script.js","script.ts"编译后会生成"script.js"。
  2. 配置scriptFunc为函数名,如"func1"。

如果在表达式编辑界面对于函数有些特殊的合法性检查机制,那么也可以开发一个前端脚本函数,专门用于检查函数参数的合法性,甚至根据参数返回动态的函数的类型,如:

export function checkfunc1Args(node: any, compileContext: any): void{
   if (...){
       //报告错误信息
       compileContext.throwError("err.exp.expectArgument", node);
   }
}

然后:

  1. 配置checkArgsFunc为函数名,如"func1"。

# 后端脚本

如果函数要在后端服务器环境运行,需要开发一个前端脚本文件,如"script.action.ts",代码示例如下:

export function func1(expEvalDP: any, args: Array<any>): any{
  //...
}

TIP

与前端函数不同,后端函数不支持返回异步结果。

然后:

  1. 配置serverScript为脚本的文件名,如"script.action","script.action.ts"编译后会生成"script.action"。
  2. 配置scriptFunc为函数名,如"func1"。
是否有帮助?
0条评论
评论