详解弹性域

简介:
物料的辅助属性,是 弹性域 ,即是根据最终用户的实际业务需要, 动态生成 的,各个客户的辅助属性维度并不相同。

为了支持其动态性,相关表格设计比较灵活,初接触,理解起来比较困难。

本帖,从用户启用辅助属性入手,介绍其后台物理表格的变化,从而介绍辅助属性相关表格。



第一步 :在辅助属性列表添加新的辅助属性维度

图一:辅助属性列表
20160308 01辅助属性1.png  
图二:查看已经添加的辅助属性维度,可见其值来源
20160308 01辅助属性2.png  
保存并审核辅助属性之后,会影响如下两个表格:
1.  T_BD_FLEXAUXPROPERTY  : 在此表中存储刚刚创建的辅助属性及其名称,值来源等描述信息;
2.  T_BD_FLEXSITEMDETAILV  : 在此表中,增加一个字段,用于存储的辅助属性业务数据;

可以使用如下SQL语句,查看到已经添加的辅助属性,以及其值来源:

select t0.FID as '辅助内码', 
       t0.FNumber as '编码',
       t0_l.FName as '名称',
       t0.FFlexNumber as '字段名',
       t0.FValueType as '值类型', -- 1:= 辅助资料
       t0.FValueSource as '值来源' -- 如值类型是辅助资料,此处存辅助资料类型
  from T_BD_FLEXAUXPROPERTY t0
inner join T_BD_FLEXAUXPROPERTY_L t0_l 
    on (t0.fid = t0_l.fid and t0_l.flocaleId = 2052)



图三:SQL查询结果
20160308 01辅助属性4.png 

图四:T_BD_FLEXSITEMDETAILV表查询
20160308 01辅助属性6.png  






第二步 :物料启用辅助属性
在物料维护界面,可以看到已经添加的辅助属性维度,勾选启用

图五:物料启用辅助属性
20160308 01辅助属性3.png  

物料辅助属性启动后,会在表 T_BD_MaterialAuxPty 记录物料的各辅助属性维度启用状况。

可以使用如下SQL语句,查看指定物料启用的辅助属性维度:

select tm0.FMaterialId as '物料内码'
       ,tm0.FNumber as '物料编码'
       ,tm0_l.FName as '物料名称'
       ,tm1.FAuxPropertyId as '辅助属性内码'
       ,tm1.FIsEnable as '是否启用'
       ,ta0.FNumber as '辅助属性编码'
       ,ta0_l.FName as '辅助属性名称'
       ,ta0.FFlexNumber as '辅助属性字段名'
       ,ta0.FValueType as '辅助属性值类型'
       ,ta0.FValueSource as '辅助属性值来源'
       ,ts0.FNumber as '辅助资料编码'
       ,ts0_l.FName as '辅助资料名称' 
  from T_BD_Material tm0
  left join t_BD_Material_L tm0_l 
    on (tm0.FMATERIALID = tm0_l.FMATERIALID and tm0_l.FLOCALEID = 2052)
  left join T_BD_MaterialAuxPty tm1
    on (tm0.FMATERIALID = tm1.FMATERIALID) 
  left join T_BD_FLEXAUXPROPERTY ta0 
    on (tm1.FAuxPropertyId = ta0.FID)
  left join T_BD_FLEXAUXPROPERTY_L ta0_l 
    on (ta0.fid = ta0_l.fid and ta0_l.flocaleId = 2052)   
  left join t_BAS_AssistantData ts0 
    on (ta0.FValueSource = ts0.FId)
  left join t_Bas_AssistantData_L ts0_l 
    on (ts0.FID = ts0_l.FID and ts0_l.FLocaleId = 2052)    
where tm0.FMaterialId = 100201


图六:SQL查询结果
20160308 01辅助属性5.png  





第三步 :在物料上,对辅助属性值进行设置

物料启用了辅助属性维度后,可以对各维度的值进行设置
保存后,会把值设置信息存在:
1.  T_BD_AUXPTYVALUE  : 物料辅助属性可选值主表,使用FMaterialId与物料关联,FMATERIALAUXPROPERTYID 与辅助属性维度关联
2.  T_BD_AUXPTYVALUEENTITY  : 物料辅助属性可选值从表。 使用 FAUXPTYID 记录辅助资料内码;

20160812 00辅助属性值01.png  

可以使用如下SQL语句,查询物料辅助属性各维度设置的可选值:
select tm0.FMaterialId as '物料内码'
        ,tm0.FNumber as '物料编码'
        ,tm0_l.FName as '物料名称'
        ,tm1.FAuxPropertyId as '辅助属性内码'
        ,tm1.FIsEnable as '是否启用'
        ,ta0.FNumber as '辅助属性编码'
        ,ta0_l.FName as '辅助属性名称'
        ,ta0.FFlexNumber as '辅助属性字段名'
        ,ta0.FValueType as '辅助属性值类型'
        ,ta0.FValueSource as '辅助属性值来源'
        ,ts0.FNumber as '辅助资料编码'
        ,ts0_l.FName as '辅助资料名称' 
        ,ts1.FNUMBER as '可用的辅助属性值-编码'
        ,ts1_l.FDATAVALUE as '可用的辅助属性值-名称'
   from T_BD_Material tm0
   left join t_BD_Material_L tm0_l 
     on (tm0.FMATERIALID = tm0_l.FMATERIALID and tm0_l.FLOCALEID = 2052)
   left join T_BD_MaterialAuxPty tm1
     on (tm0.FMATERIALID = tm1.FMATERIALID) 
   left join T_BD_FLEXAUXPROPERTY ta0 
     on (tm1.FAuxPropertyId = ta0.FID)
   left join T_BD_FLEXAUXPROPERTY_L ta0_l 
     on (ta0.fid = ta0_l.fid and ta0_l.flocaleId = 2052)
   left join t_BAS_AssistantData ts0 
     on (ta0.FValueSource = ts0.FId)
   left join t_Bas_AssistantData_L ts0_l 
     on (ts0.FID = ts0_l.FID and ts0_l.FLocaleId = 2052)
   left join T_BD_AUXPTYVALUE tv0 on (tm0.FMATERIALID = tv0.FMATERIALID and tm1.FAUXPROPERTYID = tv0.FMATERIALAUXPROPERTYID)
   left join T_BD_AUXPTYVALUEENTITY tv1 on (tv0.FAUXPTYVALUEID = tv1.FAUXPTYVALUEID)
   left join T_BAS_ASSISTANTDATAENTRY ts1 on (tv1.FAUXPTYID = ts1.FENTRYID)
   left join T_BAS_ASSISTANTDATAENTRY_L ts1_L on (ts1.FENTRYID = ts1_l.FENTRYID and ts1_l.FLOCALEID = 2052)
where tm0.FMaterialId = 120668


查询结果:
20160812 00辅助属性值02.png  






第四步 :在单据上录入物料及辅助属性
在单据上录入物料之后,如果物料启用了辅助属性,则会放开辅助属性编辑框,供用户录入。
辅助属性字段值,会存储到表格 T_BD_FLEXSITEMDETAILV 中。

图七:在采购订单上录入物料、辅助属性
20160308 01辅助属性7.png  

使用如下SQL语句,可以查看单据录入的辅助属性值

select po.FID '采购订单内码'
       ,po.FBillNo '采购订单编码'
       ,po1.FMaterialId '明细物料内码'
       ,mat.FNumber '物料编码'
       ,mat_l.FName '物料名称'
       ,aux.FF100001 '等级内码'
       ,tFF100001.FNumber '等级编码'
       ,tFF100001_l.FDataValue '等级名称'
       ,aux.FF100002 '产地内码'
       ,tFF100002.FNumber '产地编码'
       ,tFF100002_l.FDataValue '产地名称'
  from T_PUR_POOrder po
  left join t_PUR_POOrderEntry po1 
    on (po.FID = po1.FID)
  left join T_BD_Material mat
    on (po1.FMaterialId = mat.FMaterialId)
  left join t_BD_Material_L mat_l 
    on (mat.FMATERIALID = mat_l.FMATERIALID and mat_l.FLOCALEID = 2052)
  left join T_BD_FLEXSITEMDETAILV aux
    on po1.FAuxPropId = aux.FID
  left join T_BAS_AssistantDataEntry tFF100001
    on aux.FF100001 = tFF100001.FENTRYID
  left join T_BAS_AssistantDataEntry_l tFF100001_l
    on (tFF100001.FENTRYID = tFF100001_l.FENTRYID and tFF100001_l.FLocaleId = 2052)
  left join T_BAS_AssistantDataEntry tFF100002
    on aux.FF100001 = tFF100002.FENTRYID
  left join T_BAS_AssistantDataEntry_l tFF100002_l

    on (tFF100002.FENTRYID = tFF100002_l.FENTRYID and tFF100002_l.FLocaleId = 2052)














本文转自51GT51CTO博客,原文链接:http://blog.51cto.com/yataigp/1972649 ,如需转载请自行联系原作者



相关文章
|
1月前
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
6月前
|
网络性能优化 数据中心 虚拟化
【计算巢】多协议标签交换(MPLS):提高数据转发效率的技术
【6月更文挑战第5天】MPLS技术是IP骨干网络的关键,通过标签简化路由,提升数据转发效率。它支持多协议,适应性强,常用于构建企业VPNs和提供差异化QoS。在数据中心,MPLS促进高效互联和虚拟化服务。配置示例展示了启用MPLS及LDP协议的过程。随着网络技术发展,MPLS将持续优化网络性能。
133 4
|
5月前
|
前端开发 数据挖掘
字节面试:领域、子域、核心域、通用域和支撑域怎么划分?
领域驱动设计(DDD)通过划分业务领域和子域简化复杂性。领域是业务问题的范围,子域是更小的专业部分。核心域代表业务的核心竞争力,如电商中的商品、订单和支付;通用域提供跨领域服务,如用户管理;支撑域支持核心功能,如物流、客服和数据分析。这种划分帮助团队专注关键业务,提高开发效率和软件对业务需求的契合度。
256 0
|
7月前
|
Python
【计算巢】负载均衡器的作用与选择标准
【5月更文挑战第31天】负载均衡器扮演网络中的智能协调者,将大量请求分配到不同服务器,确保系统高效稳定运行。选择时要考虑性能(高速、低延迟、高吞吐量)、可靠性(持续运作)和灵活性(适应不同场景)。简单Python示例展示了其基本概念。在构建网络系统时,务必重视负载均衡器的选择,以维持网络“派对”的秩序。
42 1
|
存储 云计算 开发者
虚拟资源层 资源池|学习笔记
快速学习虚拟资源层 资源池
虚拟资源层 资源池|学习笔记
|
存储 运维 Linux
RH236构建可信存储池
RH236构建可信存储池
280 0
RH236构建可信存储池
|
弹性计算 资源调度 大数据
最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南
业务上云常态化,业务在云上资源的选购、弹性交付、自助化成为大趋势。不同行业的不同客户,业务发展阶段不一样,云上资源的成本投入在业务整体成本占比也不一样,最小化成本投入、最大化业务收益始终是不同客户间的共同目标。阿里云面向全行业的用户提供了丰富的云上算力产品服务和灵活多样的售卖模式,帮助用户云上精确的资源容量预估和精细的资源交付管理,非常有利于客户节约云上购买资源的成本。本文是云上私有池系列的第二篇,将集中介绍不同场景下私有池的选购指南。
最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南
|
存储 弹性计算 运维
最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解
云上私有池系列终篇终于来了,本文将重点介绍构建云上的私有池(虚拟IDC)的多种方案和各自的优缺点,并给出相关的性价比优化建议。
最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解
|
弹性计算 测试技术 API
专有宿主机如何实现“资源池”管理——集群管理能力升级
专有宿主机发布自动部署功能,提高集群管理运维能力
3564 0
|
弹性计算 运维 监控