U9自定义函数简介
1. U9的自定义函数种类 分为 表达式函数 与 SQL函数 两种。
2. 分别的用途:
表达式函数用于表达式计算,对于权限中的增删改权限判断就是表达式计算,还有通知、预警等相应的数据判断也是表达式计算。
SQL函数 用于 查询时进行代入计算,如权限中的 查询权限可以用的是SQL函数。
简单的判断方式: 自己想一想,这个函数所处的运行上下文是在做什么,如果是正在从数据库查询数据时运算,那就是SQL函数,如果是对实体等已经加载对象进行计算判断,那就是表达式函数。
用错会怎么样:
目前,如果把SQL函数用到了表达式计算中,会导致计算错误,但没有异常。原因:SQL函数的计算结果就是SQL函数本身串。
而如果 表达式函数用于SQL函数中,会导致出现异常。 异常是OQL解析的过程中发生。具体错误:
无法将类型为“UFSoft.UBF.Util.Expression.Scripting.ImperativeInterpreter”的对象强制转换为类型“UFSoft.UBF.Util.Expression.Query.IOQLVisitor”。
3. 注册:
两种函数都是注册到 ubfScript.xml(U9内部使用) 或 Script.xml(客开第三方使用) 在Portal ApplicationServer 等的bin目录下。 下面分别为表达式函数与SQL函数 注册示例:
4. 出补丁:
ubfScript.xml 文件补丁只可有 UBF出,位置: Upgrade/Support/UBF/Files 目录下。
同时,如果需要在表达式编辑界面能够显示出相应的函数,还需要在数据库表中注册。 相关表: Base_ExpFunction 脚本自己放在自己应用下的 PostSql 中。
5、其它
IIF 是三元判断表达式函数 ,对应的OQL上使用 sqlIIF 函数 .
其它函数类似,现在要求SQL函数和表达式函数是要分别注册的。
注意 SQL的函数表达式,select from 等关键字需要用小写。
U9自定义函数简介
本文2024-08-20 16:50:32发表“u9cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/yonyou-u9cloud-1156.html