找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 286|回复: 0

[学习] U9自定义函数简介

[复制链接]
  • 打卡等级:即来则安
  • 打卡总天数:68
  • 打卡月天数:2
  • 打卡总奖励:377
  • 最近打卡:2024-12-03 10:42:04
发表于 2024-8-20 09:00:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
                                                            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函数 注册示例:

        <assembly name="UFIDA.U9.CBO.FI_TBBP.dll" >     
               <type name="UFIDA.U9.CBO.FI.TB.Expression.TBFunctions" >
                 <function name="TBFigureValFunction" method="GetFigureValFunction" />
              </type>
        </assembly>

         <sql  name="fn_AP_GetAPBillCanEnjoyDiscount" owner="dbo"/>


4. 出补丁:

        ubfScript.xml 文件补丁只可有 UBF出,位置:  Upgrade\Support\UBF\Files 目录下。

       同时,如果需要在表达式编辑界面能够显示出相应的函数,还需要在数据库表中注册。    相关表: Base_ExpFunction   脚本自己放在自己应用下的  PostSql 中。


5、其它

   IIF 是三元判断表达式函数 ,对应的OQL上使用  sqlIIF 函数  .

   其它函数类似,现在要求SQL函数和表达式函数是要分别注册的。

   注意 SQL的函数表达式,select from 等关键字需要用小写。




您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-12-4 01:50 , Processed in 0.038439 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表