ORACLE EBS 系统主数据管理(2)
ORACLE EBS 系统主数据管理
五、结语
上面所讲到的Item编码中的分类(UNSPSC),一般来说还不是系统(各应用功能模块)中真正使用到的类别,原因是编码中的分类所基于的分类基准(或用途)主要考虑的是“工程”目的,而各应用模块例如INV、PO等中所需使用的分类更多地是需考虑业务管理目的,这就好比我们将“人员”分类,有时需按“性别”(男、女)分,有时需按“学历”(博士、硕士、学士)分,有时还需按“年龄段”(老年、中年、青年)分等等。
对于EBS中一个确定的Item来说,可以同时具有多个不同的“类别集(Category Set)”,以满足各个应用模块的使用需要。这里之所以称其为“类别集”,源于其中包含若干个LOV值,系统将每个具体的LOV值称之为“类别”(Category)并最终分配给Item。EBS的每个相关应用模块必须设定默认关联一个“类别集”,称之为“默认类别集”。如下图6所示:
不同应用模块所使用的“默认类别集”可以相同也可以不同。用户在进入相关业务模块的“表单”界面时,打开的Item类别的弹性域结构取决于“默认类别集”所关联的类别键弹性域结构定义。在“≤ORACLE系统与实践≥系列之三:EBS的基础设置要点简介”中,关于“Item类别弹性域结构”的介绍已经说过,系统安装初始化时,ORACLE已经基于“业界最佳实践经验”,预设了若干不同的“类别弹性域结构”,这些不同弹性域结构同样也被ORACLE在“默认类别集”定义界面中预设了相应的关联(上述系统安装预设,用户如不满意,均可以修改)。这无疑大大方便了用户的使用,也正是ORACLE产品包含丰富管理思想的体现所在。
对于每一个被使用的“类别集”,需要进行定义或对系统预设进行修改完善,每个类别集关联一个已经预先定义编译的“类别键弹性域结构”。如下图7所示:
上图7中,如果选定“允许存在多个物料类别分配”,则可以将一个物料分配给某个类别集内的多个类别。这主要是用于某些特殊功能的情况,如“装箱”功能中的“创建装箱组”,定义一个“危险”类别集,将某个物料同时分配给“毒药”和“腐蚀物”类别。
上图7中,如果选定“强制使用有效类别列表”,则需要对其下的“类别列表”进行维护,其作用主要是控制PO界面的类别的LOV值(选择组合)只能存在于这里的定义列表中时才有效(否则会报错提示)。
上图7中的“人员类别”窗口的作用,是为了控制某些类别只允许特定“责任/人员”才可以访问(未设定则不做限制)。上图中的“分配”窗口,只是提供一种将多个“类别”快速成批分配给(包括维护)多个Item的工具。在单个Item定义时分配类别的结果,会显示在这里,这里所做的维护改变也会反映在定义Item时的分配类别界面中。如下图8所示为Item定义时的类别分配界面:
此外,为进一步控制上图7与图8中定义或设置时具体类别Category组合的实际可用性(在弹性域定义中可能已经通过值集验证进行设置,这里提供补充控制功能),系统通过专门的定义类别可用性功能,内容包括是否启用、是否为i-Procurement启用(仅适用于R11)、供应商是否可查看(用于i-supplier)、Web申请是否可用,来根据实际业务需要对Category的可能代码组合做更为细致,也更为灵活的限制。如下图9所示:
总之,EBS中的Item 的类别Category非常关键、非常重要,系统的其它相关功能如权限控制、审批设置以及费用账户等等(以后在相关应用功能模块中再详细讨论)均会基于物料定义时的Category设置来进行,它与所谓物料的“Commodity管理”相结合,提供了企业业务管理所需的强大系统功能,是“业界最佳实践经验”的总结与结晶。
在“≤ORACLE系统与实践≥系列之三:EBS的基础设置要点简介”中,关于“单位设置”的介绍已经说过,EBS的单位及其换算关系是定义在INV组织之上并且可以与特定物料相关的。在Item定义中,可以为之指定“主要单位”(Primary)与“辅助单位”(Secondary),并且规定两者换算所允许的偏差系数(Deviation Factor)。这主要是为了满足实际工作中某些特殊物料的特殊计量需求,某些液态的化工原料如乙醇、汽油等,计价、储存可能是按吨、公斤或桶来计量的,但实际使用则可能是按“升”来计量,例如国内加油站进货按吨计,给车加油时按升计。由于两者的换算关系可能受不同场合“温度、压力”等因素的影响,实际计量与原先“标准”条件下定义的换算关系存在一定偏差。系统对于所产生的这种偏差必须有明确的规定。
在EBS的Item定义中,在“主要”(Main)标签页(Tab),针对单位(UOM)主要是就库存余额数量的“跟踪”(Tracking)、产品定价(Pricing)的计量,如何进行事务处理做了规定,如下图10所示:
上图10中的几个字段“跟踪、定价、辅助、默认、正负偏差系数、转换”的取值关系颇为复杂,建议参考ORACLE相关官方文档(INV UG)。其中的一个可能结果是,只要手工输入的辅助单位的计量实际值与主要单位的计量值的实际换算关系在规定的偏差范围内,系统均当成标准换算关系进行处理,这对于库存数量余额的准确跟踪及产品正确定价将十分重要。
前面在讲Item编码时已经提到,EBS中的一个Item可以对应多个制造商的MPN,这是所谓物料的“Commodity管理”的重要内容。要做到这一点,在EBS中首先需定义制造商及其MPN的值。如下图11所示:
注意,不要将制造商(Manufacturer)与系统中的供应商(Supplier)混为一谈。制造商有可能也是供应商,但在系统中两者是分开设置的,没有连接关系。上图11中的制造商列表值是直接手工输入的,每一个制造商在“部件”(Parts)界面需要手工输入该制造商的“部件号”并与系统Item相关联。这里的Item与MPN的关联定义也可以在Item定义显示和维护,如下图12所示:
上图12中MPN设置的制造商取值,不可以手工输入,只能以图11的定义制造商列表作为其LOV,但“部件”字段可以手工维护,其作用与图11中的“部件”设置界面相同。
物料的版本管理对于实际业务及系统管理都是一项基础性工作,EBS在Item的定义界面提供了物料的版本维护功能。如下图13所示:
系统使用字母、数字和字符(如 *、& 和 #)来标记版本。其中字母必须大写,数字可以包括小数点。为确保版本正确地排序,小数点后应该使用数字。有效版本包括:A、B、 01、 02、 A1、 B1、1A、1B、0.0、 0.1、A.0、 A.1 等。版本按 ASCII 规则进行排序,每个版本号必须高于它的上一版本。按照 ASCII 排序规则,10 排在 9 的前面,因此在版本 9 之后不能使用版本 10 来定义下一版本。
除了在Item定义窗口维护版本信息外,EBS系统在物料清单(BOM)及工程更改单(ECO)也可以对Item的版本进行维护,维护的结果在三处的最终显示是相同的。
前面关于Item的一些基本概念的介绍,均没有涉及Item的组织控制问题。ORACLE的Item定义是基于INV组织的,这是其早期有关“主数据”管理的一个重要特点。以前,另外两个主数据“客户、供应商”也是基于确定的组织(OU)来定义设置的,但从R12开始,客户与供应商的初始定义已经开始独立于组织(OU,上下文环境)来进行,然后再分配给相关组织(OU)使用。
既然客户与供应商的主数据系统管理方式已经做了调整,为什么Item的主数据管理方式却保持不变呢?推测的原因可能是,一来Item的影响面太广,改动太大,不方便进行;二来原Item的主组织(Master Org)定义方式也有其独到的优势,它在处理一些实际与库存事务关系不大的“服务类或费用类”Item的工作过程中比较方便,例如PO在做服务类或费用类Item的接收时,可以直接基于“主组织”(可能是虚拟的,并不与管理实体对应)来进行,可以与库存类的Item的接收方式保持一致,无需另外做特殊考虑。
在ORACLE EBS系统中,系统虽然允许设定多个“主组织”来定义Item,然后再将Item分配给多个INV组织使用,但ORACLE强烈建议系统只设定唯一的主组织,而这一点与实际工作中的“主数据”集中管控的要求也是一致的。当在系统中设置INV组织时,在INV组织参数窗口的“物料主文件组织”字段,可选的LOV值包括当前INV名本身,以及已经被其它INV设定为“主组织”的INV名。一旦用户选定当前INV名作为主组织,则在设置其他INV的组织参数时,也可以在主组织可选LOV值中见到它。
EBS的“主组织”使用是不受帐套(科目弹性域结构)、业务实体的范围限制的,具有不同帐套/业务实体的INV可以具有同样的Item主组织。“主组织”的这一特性为大型企业Item的集中管控工作的开展提供了极大的方便性与高度的灵活性。用户在进入INV模块(或其他基于INV的应用模块)时,均需选择一个确定的INV,以进入确定的INV上下文环境。一旦进入INV,则其Item的主组织就已经唯一确定(由该INV组织的参数定义决定)。被选定作为“主组织”的INV作为“业务功能”组织使用时,与其它INV并无任何区别。唯一的特殊之处在于,定义主组织Item时,在“组织分配”界面无需再向“组织层”的自己作分配(系统已经默认分配),但有关“属性控制”的设置,仍然与其它被分配的INV组织完全一样。如下图14是Item定义中的“组织分配”界面:
所有Item均只能在其“主组织”界面(并非指必须进入主组织所在的上下文)定义后,才能分配给相关的INV组织使用。上图14中可以分配的INV列表取决于每个INV组织参数定义的“主组织”与当前INV(上图14中的第一行)的“主组织”是否相同。除了当前INV组织,其余INV组织的“组织属性”窗口均可以另外打开(当前INV组织的组织属性窗口实际已经打开,在Item定义界面的“组织”与“主组织”间直接切换),以便定义属于本组织的相关属性。
EBS系统在Item的“主组织”(Master Org)与组织(Org)之间,提供了相关“属性”如何控制的机制。如下图15所示:
上图15中,组名字段会显示属性组的名称。属性按功能分组,例如主要、库存和接收。在定义或更新物料、定义模板或查看物料属性时,可以显示特定组的属性,这样可以更容易地查找特定属性。“控制地点”可以在“主层”与“组织层”间选择。主要层:在主要层定义和维护此属性,对于同一物料,此属性的值在所有组织中均相同;组织层:在组织层定义并维护此属性,对于同一物料,每个组织均可为此属性定义一个不同的值(某些属性只能在特定层设置,在这些情况下,只具有一个选项)。
对于某些“状态属性”,系统除提供“主层”与“组织层”的控制地点选择外,还提供“状态设置”控制方式的选择:“默认值、不使用、设置值”。这需要与前文所述“物料状态”的控制方式的设定结合使用。可以设置控制方式的“状态属性”共10个(如图4中所示),包括:允许BOM、在WIP中制造、启用客户订单、启用内部订单、启用开票、启用执行流程(应用于“流程制造”)、启用配方(应用于“流程制造”)、可采购、可储存、可处理。Item的状态属性与其它属性或相互之间可能有一定的制约关系。例如,如果将库存物料设置为否,则不能将可储存设置为是。
物料Item广泛使用于企业实际工作中的方方面面,为了达致业务流程运作的规范化、标准化、自动化,实现企业“实物流、资金流、信息流”的统一,就必须在系统中对Item的相关流程属性作统一的、预先的设置。它是企业管理实践与业务流程运作如何实现“集中统一”的典型体现,是管理信息系统具有强大功能与高度灵活性的核心基础。因此,它也是系统实施与应用的关键步骤。
EBS的Item可定义(或必需定义)的属性值总数多达300多个,为了方便对这些属性的管理,EBS按属性的“流程功能”进行了分组,目前一共分为17个属性组(即Item定义界面的Tab标签页),包括“主要、库存、物料清单、资产管理、成本计算、采购、接收、物理属性、总计划、MPS/MRP计划、提前期、在制品、订单管理、开票、流程制造、服务”。
这些Item的属性分组(Tab页)大体上与系统的应用模块有一定的对应关系,相关业务模块使用时,有关Item的基础设置主要与相对应的属性Tab页内容有关。
每一个属性组有若干可定义属性值(字段),其中一部分属于“必需项”(一般均有默认值,可修改),另一部分则属于“可选项”(可留空)。一部分是属于“业务控制”属性,可以直接用于控制系统中的相关业务操作,如“可采购、可储存”等等,另一部分则是属于“流程控制”属性,可以直接或间接控制所使用的具体业务流程种类或方式,例如“计划方法、BOM物料模型”等等,还有部分属于“参考引用”属性,主要是向有关单据提供默认的参考值。某些属性之间具有确定的关联性,一旦定义了其中一个值,其余相关属性的值也就随之确定。关于属性间相互关系的具体内容,比较复杂,必须仔细参考ORACLE相关应用文档(如下述各表,仅供参考)。这些特定属性间的特定关系分为四大类:
(1)要求的属性值:
如果某些相关属性具有下表所示的值,则必须输入特定属性的值:
属性 | 条件 |
需求时间范围天数 | 将需求时间范围设置为自定义 |
保留款帐户 | 将“冲销保留款”参数设置为是 |
费用帐户 | 将库存资产值设置为否并将库存物料设置为是 |
外协加工单位类型 | 将外协加工物料设置为是 |
计划时间范围天数 | 将计划时间范围设置为自定义 |
发放时间范围天数 | 将发放时间范围设置为自定义 |
重复性计划 | 将 MRP 计划方法设置为 MPS 计划或 MRP 计划 |
服务期限 | 服务延续期间不为 NULL |
储存期限天数 | 将批次到期(储存期限)控制设置为物料储存期限天数 |
来源组织 | 将补充来源类型设置为库存 |
起始批号 | 将批次控制设置为全部批次控制 |
起始批前缀 | 将批次控制设置为全部批次控制 |
起始序列号 | 将序列号控制设置为预定义序列号 |
起始序列前缀 | 将序列号控制设置为预定义序列号 |
(2)相互关联属性
特定属性值取决于其它属性值。例如,如果挑库组件设置为是,则计划方法必须是未计划。以下是属性之间的相互关联:
属性 | 必须为 | 条件 |
按订单装配 | 否 | 将挑库组件设置为是或将 BOM 物料类型设置为计划 |
按订单装配或挑库组件 | 是 | 将 BOM 物料类型设置为模型或选件类 |
ATP 组件 | 否 | “挑库组件”为否、“按订单装配”为否但“WIP 供应类型”不为虚拟件 |
基本模型 | NULL | “BOM 物料类型”不为标准或 将“挑库组件”设置为是。 |
允许 BOM | 否 | 将“库存物料”设置为否 |
在 WIP 中制造 | 否 | 将“库存物料”设置为否或 BOM 物料类型不为标准 |
容器类型 | NULL | 将“容器”设置为否 |
启用成本计算 | 是 | 将“库存资产”设置为是 |
客户订购 | 否 | 将“BOM 物料类型”设置为计划 |
启用客户订单 | 否 | 将“客户订购”设置为否 |
需求时间范围天数 | NULL | “需求时间范围”不为自定义 |
内部订购 | 否 | “BOM 物料类型”不为标准 |
启用内部订单 | 否 | 将“内部订购”设置为否 |
内容积 | NULL | 将“容器”和“运载工具”均设置为否 |
启用开票 | 否 | 将“可开票物料”设置为否 |
提前期批量 | 1 | 将“重复性计划”设置为是 |
最大装载重量 | NULL | 将“容器”和“运载工具”均设置为否 |
最小装载百分比 | NULL | 将“容器”和“运载工具”均设置为否 |
挑选组件 | 否 | 将“按订单装配”设置为是或将“BOM 物料类型”设置为计划或“计划方法”不为未计划 |
挑选组件 | 是 | 将“模型完工发运”设置为是 |
计划时间范围天数 | NULL | “计划时间范围”不为自定义 |
计划方法 | 未计划 | 将“挑库组件”设置为是 |
后加工提前期 | 0(零) | 将“制造或采购”设置为制造 |
可采购 | 否 | 将“采购物料”设置为否 |
发放时间范围天数 | NULL | “发放时间范围”不为自定义 |
限制货位 | 未将货位限制在预定义列表中 | 将“限制子库存”设置为未将子库存限制在预定义列表中 |
限制货位 | 未将货位限制在预定义列表中 | 将“库存货位控制”设置为动态输入货位控制 |
限制子库存 | 将子库存限制在预定义列表中 | 将“限制货位”设置为将货位限制在预定义列表中 |
可服务产品 | 否 | 将“支持服务”设置为是 |
可发运 | 否 | 将“BOM 物料类型”设置为计划 |
可储存 | 否 | 将“库存物料”设置为否 |
库存货位控制 | 无货位控制或未预指定货位控制 | 将“限制货位”设置为将货位限制在预定义列表中 |
支持服务 | 否 | 将“可服务产品”设置为是 |
可处理 | 否 | 将“可储存”设置为否 |
(3)可更新的属性
可以在特殊情况下更改某些属性值。下表显示了可更新的属性和更改这些属性值时应具备的条件:
属性 | 可更新 | 条件 |
ATP 组件 | 自否至是 | “按订单装配”为是,或“挑库组件”为是或“WIP 供应类型”为虚拟件 |
BOM 物料类型 | 否 | “物料清单”存在或作为 BOM 的组件存在,或作为标准 BOM 的替代组件存在。例外:可根据组件和替代组件的产品系列进行更改。 |
启用成本计算 | 是 | 不存在现有量 |
需求时间范围天数 | 是 | “需求时间范围”为自定义时间范围 |
库存资产值 | 是 | 不存在现有量 |
批次控制 | 是 | 不存在现有量 |
可处理 OE | 自是至否 | 不存在需求 |
| 显示警告 | 未完成销售订单行包含一个不同于新值的值 |
外协加工部件 | 是 | “采购物料”为是 |
计划时间范围天数 | 是 | “计划时间范围”为自定义时间范围 |
发放时间范围天数 | 是 | “发放时间范围”为自定义时间范围 |
重复性计划 | 是 | 未按 MRP 计划 |
保留控制 | 是 | 不存在需求 |
版本控制 | 是 | 不存在现有量 |
| 显示警告 | 未完成销售订单行包含一个不同于新值的值 |
序列号控制 | 是 | 不存在现有量 |
储存期限控制 | 是 | 不存在现有量 |
可发运 | 显示警告 | 未完成销售订单行包含一个不同于新值的值 |
(4)控制层相关性
只能在特殊情况下更改某些属性的控制层,否则会产生特定结果。下表显示了某些属性和在特定条件下可更新的控制层以及更改控制层所产生的结果。
属性 | 可更新为 | 条件 | 结果 |
物料状态 | 主层 | 任何子组织中都不存在待定状态 | 将更新状态控制或默认控制下的所有状态属性 |
库存资产值或启用成本计算 | 主层 | 具有已定义 WIP 参数的组织将使用其本身作为成本计算的主组织(在定义 WIP 参数时不能与成本计算的不同组织相关联) | -- |
-- | -- | 物料成本在组织间是相同的 | -- |
库存资产值 | 主层或组织层 | -- | “启用成本计算”将更新为同一层 |
所有物料定义属性 | 组织层 | 在“组织层”维护功能区域的默认类别集 | -- |