值转换规则(SQL)

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

值转换规则(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类型值转换数据查询失败



值转换规则(SQL)

1 简介1.1 功能介绍值转换规则类型中支持选择SQL类型。1.2 应用场景基于源对象输入值,通过SQL语句的方式,将输出值赋予目标对象。1.3 ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息