[K/3Cloud] QueryService使用注意事项

QueryServlice是目前查询数据非常好用的服务,但目前在使用过程中由于使用不当产生不少问题,下面将一一解答:

1、在查询一些实体关键字段如实体主键、分录序号时,条件中的别名怎么会变来变去?
     QueryServlice设计中,为了和物理数据库结果解耦以及写的过滤条件中字段表名别名与动态SQL算法解耦,
所有字段并非真实的物理字段,而是使用字段的标识,所有在调用QueryServlice使用 表别名.字段名的做法都是错误的做法。
     a) 实体关键字段(主键、FFormId、FMasterId、序号)的标识生成规则
          业务对象主键标识=业务对象主键字段名
          业务对象类型字段(FFormId)标识=业务对象类型字段名
          基础资料的唯一键字段标识=基础资料唯一键字段名
          分录、子单据头、子单据体主键、序号标识=实体Key_字段名  需要在Select中返回时,返回字段名实体Key_字段名,但如果实体Key_字段名 长度超过30个字符时需要指定字段别名,否则将报标识超长错误。
          注:返回的字段名默认等于标识,标识无超长问题,但返回的字段名必须少于30个字符,所以标识超过30个字符时必须指定别名 
      b)实体上普通字段的标识生成规则
              字段的标识=元数据中字段的标识
      c)非实体上定义的基础资料属性的标识生成规则 
             标识 =基础资料字段标识.属性字段标识   ,返回的字段名默认等于 基础资料字段标识_属性字段标识,超过30个字符
需指定别名,否则报标识错误 
      d)基础资料字段关联的基础资料类型属性的内码的标识生成规则
           标识 =基础资料字段标识.属性字段标识.Id
           如单据上物料(FItemId)的基本计量单位(FBaseUnitId)的内码
           标识 =FItemId.FBaseUnitId.Id
2、实体的表别名生成规则是怎么样的?
       实体表的别名生成规则为  t+实体序号,由于元数据定义过程中序号有可能变化所以 别名是不确定的 
       实体表关联的基础资料表别名 生成规则实体表的别名+随机序号 ,所以别名也是不确定的 
      所以在排序、过滤条件中不能直接使用别名+字段,应该使用字段标识,查询服务会自动进行翻译转换
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值