值转换规则(SQL)
1 简介
1.1 功能介绍
值转换规则类型中支持选择SQL类型。
1.2 应用场景
基于源对象输入值,通过SQL语句的方式,将输出值赋予目标对象。
1.3 系统路径
【集成管理】→【数据集成】→【值转换规则】
1.4 字段/按钮说明
字段说明:
字段名称 | 详细解释 |
规则类型 | 选择规则类型为“SQL” |
源对象 | 需要转换的源对象 |
目标对象 | 需要转换的目标对象 |
编码 | 规则编码,可自动生成 |
名称 | 规则名称,可自动生成 |
默认值 | 当找不到对应的映射数据时取当前设置的默认值 |
映射类型 | 根据所选对象自动生成 |
缓存转换结果 | 缓存转换结果,不再重复转换,提升效率 |
SQL | 输入通过源对象联查目标对象的select语句 |
按钮说明:
按钮名称 | 详细解释 |
保存 | 保存值转换规则 |
测试 | 测试值转换规则 |
缓存结果 | 查看值转换规则缓存结果 |
关联查询 | 查询值转换规则所关联的集成方案、服务流程 |
历史版本 | 查看历史版本 |
2 主要操作
2.1 新增SQL规则
步骤1:请进入值转换规则列表,点击“新增”按钮,规则类型选择“SQL”;
步骤2:选择和输入相关内容后保存。
2.2 SQL脚本说明
实现类:
kd.isc.iscb.platform.core.vc.SQLRule
基本思路:
用 $src, $tar, $this 分别代表 源系统、目标系统、本系统
用 param 表示“源值”变量名,用 result 表示“结果”变量名
以“源值”为初始条件,在源系统/目标系统/集成云系统上执行SQL,返回名为result变量值作为“目标值”
苍穹元数据:
使用 isc_value_conver_rule 的基本信息和“SQL脚本”
语法(1):
设置当前数据库,其中:{env} 取值可以是 $src(源系统), $tar(目标系统), 或 $this(本系统)
use {env};
执行查询SQL,使用执行该SQL的数据库的语法,使用#{name}引用变量,并且只允许返回0或1行
select field as var_name from table_name where field2 = #{param}
示例:
// 在源库执行 SQLuse $src;select fname_l2 as name from T_BD_Currency where fid = #{param}; // 在目标库执行 SQLuse $tar;select top 1 fid as result from t_bd_currency_l@BASEDATA where fname = #{name};
语法(2):
声明变量类型,当源库与目标库数据类型不一致,或参数值类型不是字符串时,应该声明类型,防止SQL参数无效,其中 data_type 的取值可以是:varchar, bigint, int, decimal, 或nvarchar。允许使用 // 作为开头添加单行注释。
declare name data_type;
示例:
// 声明输入值的数据类型 declare param varchar; // 在源库执行 SQLuse $src;select fname_l2 as name from T_BD_Currency where fid = #{param}; // 在目标库执行 SQLuse $tar;select top 1 fid as result from t_bd_currency_l@BASEDATA where fname = #{name};
注意事项:
1、SELECT语句总是使用小写名称引用变量值
select top 1 fid as result from t_bd_currency_l@BASEDATA where fname = #{name};
2、SELECT语句仅允许返回0或1行,如果返回0行,则不再执行后续SQL语句;否则,以列名小写为变量名暂存在上下文环境中,供后续SQL引用
select top 1 fid as result from t_bd_currency_l@BASEDATA where fname = #{name};
3、执行环境是“本账套”或“苍穹环境”时,数据表名必须包含数据库KEY,以 @ 分隔
select top 1 fid as result from t_bd_currency_l@BASEDATA where fname = #{name};
4、EAS 和 苍穹环境中,在SQL使用Like的方法如下,其他数据库请注意字符串串联的运算符号差异
select fid as result from t_bd_currency@basedata where fnumber like #{param} || '%'
2.3 SQL脚本案例
操作步骤
步骤1:判断EAS的换算方式
步骤2:根据换算方式,判断赋值直接汇率值还是间接汇率值
步骤3:根据2赋值直接汇率值或者间接汇率值,直接汇率值和间接汇率值两者相乘为1
值转换异常分析请点击下面链接:
SQL类型值转换返回值为空
值转换规则(SQL)
本文2024-09-23 00:49:36发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141987.html