Oracle EBS 基础概念:值集@多层从属值集

参考: https://wenku.baidu.com/view/aa5de31b0066f5335a8121bc.html

需求:客户地址的省/市/ 区可为任意输入值,需要定义一个省/市/ 区的三级对应关系,选择省份后,市栏位只显示对应省份下的市,区栏位同理
在这里插入图片描述

客制地址格式
系统标准的地址格式,诸如客户地址、供应商地址、银行地址之类的默认的格式为:
在这里插入图片描述
默认格式不是很好,想设置为(省、市、区、镇、街道)。
先看一下“地址”弹性域的结构,系统其实有默认的五类“地址”类型可选 择,如:英国、日本等格式
在这里插入图片描述
手工创建一个自已的地址格式
在这里插入图片描述在这里插入图片描述
“ADDRESS_STYLE”快速编码,添加代码为“CN”的行记录,代码要与弹性域结构中定义的值要一致。
在这里插入图片描述
应收职责->设定 -> 系统 ->国别; 选择地址样式。
在这里插入图片描述
设置效果:
在这里插入图片描述
需求:
上述地址的省/市/ 区可为任意输入值,需要定义一个省/市/ 区的三级对应关系,选择省份后,市栏位只显示对应省份下的市,区栏位同理
在这里插入图片描述

从属值集需根据前置独立值集的取值进行相应的值设置,可定义一个省/市的二级对应关系,
很遗憾的,ORACLE 的标准功能是不支持多值集从属的,即市级使用从属值集后,区级的从属值集不能根据从属值集的取值进行相应的值设置。

利用独立值集/从属值集将无能为力。但是这多层次的从属在我们身边太常见了,有什么方法 可以实现这个需求呢?我们可以从值集中下手:


方法1:编码划分区域
行政区域的划分可以按国家统一编码,前两位表示省级代码,中间两位表示市级代码, 末两位表示区级代码
在这里插入图片描述
Step1. 定义一个独立值集:行政区域值集
在这里插入图片描述在这里插入图片描述
Step2: 定义省/市/ 区级使用的表验证值集
Province: 层次为0
在这里插入图片描述在这里插入图片描述

   hierarchy_level = 0
   and flex_value_set_id = 
           (select flex_value_set_id
             from fnd_flex_value_sets
            where flex_value_set_name = 'Regionalism')  

City: 层次为1,且前两位代码为省级栏位选择的值
在这里插入图片描述在这里插入图片描述

    substr(flex_value, 1, 2) = :$FLEX$.Province
and hierarchy_level = 1
and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism')

District: 层次为2,且前两位代码为省级栏位选择的值,中间两位为市级栏位选择的值
在这里插入图片描述
在这里插入图片描述

    substr(flex_value, 1, 2) = :$FLEX$.Province
and substr(flex_value, 3, 2) = :$FLEX$.City 
and hierarchy_level = 2
and flex_value_set_id =        
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism')

Step3: 将值集应用于地址弹性域
在这里插入图片描述Step4: 测试效果
在这里插入图片描述在这里插入图片描述在这里插入图片描述

方法2:编码划分区域
方法1客制的地址格式界面只能显示代码,代码和描述栏位是否可调换一下。
在这里插入图片描述在这里插入图片描述
Province_2: 层次为0
在这里插入图片描述在这里插入图片描述

   hierarchy_level = 0
   and flex_value_set_id = 
           (select flex_value_set_id
             from fnd_flex_value_sets
            where flex_value_set_name = 'Regionalism_2')

City_2: 层次为1,描述(即代码)的前两位为省级栏位选择的值对应的描述的前两位
在这里插入图片描述在这里插入图片描述

substr(description,1,2) = (  select substr(description,1,2)
                                          from FND_FLEX_VALUES_VL
                                         where hierarchy_level = 0
                                           and flex_value_set_id =  
                                                   (select flex_value_set_id 
                                                      from fnd_flex_value_sets 
                                                     where flex_value_set_name = 'Regionalism_2')
                                           and flex_value = :$FLEX$.Province_2)
      and hierarchy_level = 1
      and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_2')

District_2: 层次为2,描述(即代码)的前两位为省级栏位选择的值对应的描述的前两位
描述(即代码)的中间两位为市级栏位选择的值对应的描述的中间两位
在这里插入图片描述
在这里插入图片描述

substr(description,1,2) = (  select substr(description,1,2)
                                          from FND_FLEX_VALUES_VL
                                         where hierarchy_level = 0
                                           and flex_value_set_id =  
                                                   (select flex_value_set_id 
                                                      from fnd_flex_value_sets 
                                                     where flex_value_set_name = 'Regionalism_2')
                                           and flex_value = :$FLEX$.Province_2)
                                                                  
       and  substr(description,3,2) = (  select substr(description,3,2)
                                          from FND_FLEX_VALUES_VL
                                         where hierarchy_level = 1
                                           and flex_value_set_id =  
                                                   (select flex_value_set_id 
                                                      from fnd_flex_value_sets 
                                                     where flex_value_set_name = 'Regionalism_2')
                                           and flex_value = :$FLEX$.City_2)
      and hierarchy_level = 2
      and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_2')

地址弹性栏位应用新的值集
在这里插入图片描述
测试效果:
在这里插入图片描述


方法3:定义从属关系
在这里插入图片描述在这里插入图片描述
Province_3: 层次为0
在这里插入图片描述在这里插入图片描述

   hierarchy_level = 0
   and flex_value_set_id = 
           (select flex_value_set_id
             from fnd_flex_value_sets
            where flex_value_set_name = 'Regionalism_3')

City_3: 层次为1,描述为省级栏位选择的值
在这里插入图片描述
在这里插入图片描述

    description = :$FLEX$.Province_3
and hierarchy_level = 1
and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_3')

District_3: 层次为2,描述为市级栏位选择的值
在这里插入图片描述
在这里插入图片描述

    description = :$FLEX$.City_3
and hierarchy_level = 2
and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_3')

地址弹性栏位应用新的值集
在这里插入图片描述
测试效果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle EBS是一个大型的企业资源计划(ERP)系统,包含了许多功能模块,许多的信息是通过值集进行管理的。在Oracle EBS中,值集是被定义为用于数据输入限制的一组已定义的值,用于限制用户在对某个字段输入数据时可使用的值。 Oracle EBS中常用的值集包括以下几个方面: 1. 表型值集(Table-validated value set):通过数据表定义值集的方式是最常使用的形式,它可以从一个数据表通过查询数据的方式获得值列表,这种值集可以在业务流程中定位到一个或多个值。 2. 基于SQL的值集(SQL-based value set):当需要对值集的产生加以限制时,这种值集是最有意义和灵活的。通过SQL语句实现了规则的限定。 3. 常量值集(Fixed value set):固定的,不变的值集,就像是从一个定义好的列表中选择值一样。 4. 组值集(Dependent value set):主要用于依赖的数据表之间,即一个表之间的值是建立在一个或多个其他表的基础之上的。 5. 计算型值集(Translatable independent value set):这种值集定义在一个特定语言环境下,并且每个值还有它在各种语言环境下的翻译。在多语言环境下使用这种值集。 总之,Oracle EBS中的值集是非常重要的,它们是控制业务数据输入限制的关键。通过上述常用的值集,可以满足不同的需求和格式的限制。它们能够和其他模块进行良好的集成和交互,实现企业的信息共享和资源优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值