值转换规则(集成脚本)

1 简介
1.1 功能介绍
值转换规则类型中支持选择脚本类型。基于源对象输入值,通过脚本的方式,联查输出值赋予目标对象。
1.2 应用场景
当同义基础资料在源系统和目标系统的编码相同时,可以很方便的使用SQL规则分别从源系统获取编码,并从目标系统根据编码获取基础资料ID。
注意:当业务场景较为复杂时,建议使用“集成脚本”实现值转换规则,以避免写出特别复杂的SQL。
1.3 系统路径
【集成管理】→【数据集成】→【值转换规则】
1.4 字段/按钮说明
字段说明:
| 字段名称 | 详细解释 |
| 规则类型 | 选择规则类型为集成脚本 |
| 源对象 | 需要转换的源对象 |
| 目标对象 | 需要转换的目标对象 |
| 编码 | 规则编码,可自动生成 |
| 名称 | 规则名称,可自动生成 |
| 默认值 | 当找不到对应的映射数据时取当前设置的默认值 |
| 映射类型 | 根据所选对象自动生成 |
| 集成脚本 | 输入通过源对象联查目标对象的脚本 |
按钮说明:
| 按钮名称 | 详细解释 |
| 保存 | 保存值转换规则 |
| 测试 | 测试值转换规则 |
| 关联查询 | 查询值转换规则所关联的集成方案、服务流程 |
| 缓存结果 | 查看值转换规则缓存结果 |
| 历史版本 | 查看历史版本 |
2 主要操作
2.1 新增脚本转换规则
步骤1:请进入值转换规则列表,点击“新增”按钮,规则类型选择“集成脚本”
步骤2:选择和输入相关内容后保存
步骤3:保存后,即可测试,验证脚本是否执行结果是否符合预期

注意:集成脚本分为两部分,注释处填写脚本的工作机制;点击右侧文本框按钮,在对话框中输入实际执行的脚本代码

2.2 主要脚本语法规则
1、脚本使用基本的JavaScript语法,具体内容参考《集成脚本开发指南》
2、为方便访问源/目标系统数据库,集成脚本中提供4个系统变量、3个系统函数、5个常量
系统变量分别是:
$src - 源系统数据库
$tar - 目标系统数据库
$this - 当前苍穹帐套
param - 输入值
系统函数分别是:
query_value(cn, sql, params, types) - 执行SQL获取第一行第一列的值
query_row(cn, sql, params, types) - 执行SQL返回满足条件的第一行数据(Map),key都是小写形式
query_list(cn, sql, params, types) - 执行SQL返回满足条件的数据行(Map)组成的列表,key都是小写形式
常量分别是:
VARCHAR - 字符串
DECIMAL - 小数
BIGINT- 64位长整数
INTEGER - 32位整数
TIMESTAMP - 日期/时间
3、结果用 return 返回,系统变量($src、$tar、$this)作为 query函数的 cn 参数的赋值;
当sql中没有参数(?)时,params和types可以忽略;否则 params 和 types 的值要求是列表,且其中元素个数与SQL中的参数(?)个数必须一致
4、常量(VARCHAR, DECIMAL, BIGINT, INTEGER, TIMESTAMP)作为 types 的赋值,通常的用法是用:[VARCHAR, VARCHAR, DECIMAL, ...],中括号中的个数及类型必须与SQL中的参数(?)一致
5、当脚本中计算的变量值与SQL参数要求的类型不一致时,可以使用以下函数进行转换:
T(v) - 将变量v转换为日期/时间类型,作为TIMESTAMP类参数值
String(v) - 将变量v转换为字符串类型,作为VARCHAR类参数值
Number.parseInt(v) - 将变量v转换为32位整数类型,作为INTEGER类参数值
Number.parseLong(v) - 将变量v转换为64位长整型类型,作为BIGINT类参数值
Number.parseDecimal(v) - 将变量v转换为小数类型,作为DECIMAL类参数值
2.3 脚本语法示例
以下为根据EAS组织ID,获取组织类型的名称的SQL:
var sql = "select FLAYERTYPEID from t_org_admin where fid = ? and fisAdminOrgUnit=1"; var
值转换规则(集成脚本)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



