报表关联实体配置
变更记录
产品版本 | 更新内容 | 更新日期 |
V5.0.023 | 初始版本 | 2023年06月29日 |
1 简介
1.1 功能介绍
采用类似SQL语句查询的方式,配置一个多实体关联查询结果,作为一个独立的数据块,接入报表查询数据源中,参与报表计算。
1.2 应用场景
该功能,目的是为了支持采购销售相关报表中存在单据和单据要JOIN取不同字段的报表需求,在确实无法通过单实体数据源,通过map-reduce完成计算时,才考虑使用关联数据源配置来实现。
关联实体配置因需要JOIN计算,其查询成本和计算成本非常高,及内存占用也高。开发人员需要谨慎使用,绝大部分性能设计,还是在依托于具体的开发人员,而非框架。
1.3 系统路径
【供应链云】→【业务设置】→【极速报表】 →【报表关联实体配置】
1.4、关键字段介绍
面板 | 字段 | 介绍&约束 |
基本信息 | 编码 | 必录,配置的英文编码标识,全局唯一 |
名称 | 必录,配置的多语言名称标识 | |
字段库 | 必录,用于标识配置使用哪个字段库作为字段集进行配置 | |
系统预设 | 默认为false,不可编辑。发布预置数据时,按需设置。 | |
加载策略 | 选项: 1-推送关联条件(默认) 2-不推送条件 影响点,详见看配置介绍 | |
实体查询SQL | / | 用于输入实体查询的SQL。影响点,详见看配置介绍 |
映射配置 | 字段库字段标识 | 字段库元数据上字段的标识,切换字段库是,会自动清空,重新加载字段库全部字段 |
字段库字段名称 | 字段库元数据上字段的名称 | |
来源字段标识 | 可点击选中字段,确定后,返回英文标识,可以为空 | |
来源字段名称 | 来源字段标识对应的名称,是全路径名称,自动带出 | |
默认值 | 不选择来源字段标识时,可以配置默认值,也可以不配置 | |
默认值说明 | 自定义描述,默认值代表什么意思 | |
创建信息 | / | 略 |
关键按钮说明
区域 | 按钮名称 | 详细解释 |
列表 | 新增/复制 | 略。 |
删除 | 略。 | |
详情 | 保存 | 略。 |
2 使用技巧
2.1 实体查询SQL
这里是基于实体对象,用类似SQL的方式来做查询,作为一个整体的来源数据。这里SQL语法支持有限,也没有必要严格完整的SQL语法支持。掌握下面几点即可:
仅支持select 。。。from 。。。[join 。。。]
字段必须使用实体字段标识,字段要数据库字段,分录命名必须有分录标识前缀。如:分录上物料ID,即billentry.material.masterid
多表关联时,仅支持inner join、left join关联。
表必须有别名。如:im_purinbill t1 那么相应的字段,也必须使用有表别名前缀,如:t1.billno,别名不需要用as。
on条件中,仅支持and拼接,条件仅支持=号,且多条件时,不支持跨第3个表,如:on t1.a = t2.a and t1.b = t3.b ,t3必须是t2。
全文必须是英文,且小写,不要使用特殊符号。
注意:没有写过SQL的相关人员,可以百度了解SQL相关语法。
2.2 映射配置
在设置映射配置前,系统会先检查是否执行过测试SQL操作,给出一定的提示。校验通过,则可选字段为查询SQL中的SELECT字段。默认值的使用,参考字段映射配置。原理一致。
字段映射是将字段库与查询字段建立关系,在查询、过滤时起着关键作用。
2.3 加载策略:
加载策略:分为推送关联条件、不推送条件2中,选择推送条件时,SQL加载数据时采用Algo加载,并且会将驱动表的on条件,推送到关联表,提升查询效率(不是绝对的)。选择不推送条件时,则不会推送条件,直接使用AlgoX加载数据。
推送条件:适合小表驱动大表,比如单据A关联单据B,单据A作为主表,用户条件对单据A有比较好的数据筛选。但是对内存要求高些。
不推送条件:适合大表驱动小标,必录单据A关联某个小的基础资料C,即使全表查询C也性能OK。
若都是大表关联大表,而且两个表都是没有好的筛选条件,此时要反过来看业务,这么做是否合适,数据结构不做任何改变,谁也没好办法。
2.4 测试SQL:
在编写完查询SQL后,可以点击测试SQL,操作会对SQL进行2层校验:
基本语法校验,但不符合语法要求时,会有相应的错误提示。语法通过后,程序会自动重写SQL。
根据重写的SQL,进行模拟查询。若ORM无法执行将会直接抛出异常界面,此时,相应的开发,要自己根据异常信息判断是什么错误,如:没有数据库字段、字段不存在等。
报表关联实体配置
本文2024-09-22 23:48:53发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-135450.html