版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、合肥学院学报(自然科学版Journal of Hefei University(Natural Sciences檀明,袁,钟伯成,胡学友,吴晓琴(合肥学院计算机科学技术系,合肥230601摘要:BOM是ERP系统中的基础数据,其数据结构的确定与操作算法的设计直接影响到ERP系统的效率.通过对BOM概念的分析,提出一种基于存储过程的BOM的遍历算法,同时介绍了将遍历算法与Dephi6.0的树形控件相结合,实现从数据库中提取产品数据,直观地显示BOM的层次关系的方法.关键词:BOM;存储过程;ERP中图分类号:T H166文献标识码:A文章编号:1673-162X(200701-0040-06BO
2、M(物料清单是产品结构的技术性描述文件,表明了生产某个父零件所需的所有子部件、中间件、零件、原材料的列表,它显示了组成这个父零件所需子件的数量.BOM实质是产品结构关系的反映,并将所涉及的技术信息进行关联和整合.由于BOM处于ERP(企业资源计划系统中的关键地位,BOM的数据ERP系统中数据模型的核心,BOM设计的好坏直接影响ERP系统的实施和运行的效率.为了优化ERP系统的性能,提高系统运行的效率,从数据结构的角度研究BOM的构造方法与遍历算法,对ERP系统的设计与开发有着重要的实际意义.1761BOM的数据结构设计由于实际产品的结构应该是网状结构,网状结构的产生源于父部件与子部件之间的关系
3、,并非一对多或多对一,而是多对多,也即父部件通常由许多子部件装配而成,而许多通用子部件又被用在多种产品或父部件的装配中.网状数据结构在当今主流的关系数据库中通常难以实现,BOM中的数据在关系数据库中只能以二维的形式表示,因此二维数据在数据库中如何表示也就成了BOM构造的关键.常见的BOM主要有多层BOM和单层BOM.1791.1多层B OM多层BOM采用“单父多子”的数据结构,要求详细地记录了产品的结构信息,即便是同样的零部件结构,只要存在于不同的产品中,也要多次详尽地记录.例如,产品A的结构如图1所示,其多层BOM数据表如表1.多层BOM结构的优点是:(1产品间结构不互相影响,各个产品之间的
4、数据记录没有交叉,因而维护比较方便;(2多层BOM结构再分解时算法比较简单,只要根据产品的编码查询出最底层子件(即需要制造和采购的零部件的编码和数目即可,效率比较高.但多层BOM结构也存在很多缺点:(1数据冗余量大,零部件结构的重复定义,也增加了系统启动时录入基础数据的工作量.(2虽然定义了子件的层次关系,但是它属于哪一个父层并没有记录,因此,并不收稿日期:2006-11-01修回日期:2007-01-04作者简介:檀明(1974,男,安徽望江人,合肥学院计算机科学技术系讲师,硕士;研究方向:多媒体、数据库技术、嵌入式系统.能反查出某零部件的上一层父件,而只能查出它属于哪个产品,无法清晰地显示
5、产品的树型结构.(3结库中的存储形式,如表2所示.2,3表2产品A 单层BOM 数据表记录号父件号件号用量数1A B 12A C 13A D 34B C 15B D 26C E 47CF2单层BOM 结构对于每种层次结构只定义一次,可以大大节省存储空间,另外在产品的设计阶段,由于零部件结构和一些相关属性需经常改动,为便于BOM 的生成和管理,应采用单层BOM 结构.笔者综合以上BOM 两种结构模型特点,提出了基于单层BOM 结构的改进的BOM 结构模型,如表3所示.表3BOM 数据表结构序号字段名字段类型宽度小数显示名称主键字段说明1Feed_noVarchar15料号YKey 12Ffeed
6、_no Varchar 15父料号Y Key 23Sp read_tag Varchar 1展开标记1:展开;0:无展开4U se_pot Varchar 6使用位置YKey 35Editi on Varchar 4版本6Map_no Varchar 15图号7Unit Varchar 4单位8Unit_use Nu meric 115单位用量9Me mo Varchar 30备注10Dos_count Nu meric 95用量数11Effect_date Dateti m e 生效日(有效日12I nvalid_date Dateti m e 无效日(失效日13Har m Nu meric
7、 64制损(%14Cost_rati o Nu meric 64成本比占成品的成本%15Over_contr ol Varchar 1超发控制Y/N16B ring_make Varchar 1是否产生制令I :自制;O:委外;D:忽略该阶;E:忽略该阶及其下阶;P:为采购17Root_no Varchar 4本阶序号18Doc_unit Varchar 4用量(数单位19Pr oc_mode Varchar 1生产方式20Check_fomu Varchar 4核算公式21Length Nu meric 83长22W idth Nu meric 83宽23H igh Nu meric 83高
8、24TypeVarchar1类别1/0:主料/副料2基于存储过程的BOM 分层遍历算法BOM 遍历结果是企业编制生产计划、进行产品配套、生产领料和加工过程跟踪的依据;也是企业计算14第1期檀明,等:一种基于存储过程的BOM 遍历算法24合肥学院学报(自然科学版第17卷栈保存相关信息,系统内存耗费大,事实上,在实施ERP系统时,对于一个物料层次很多的BOM结构来说,递归遍历算法会大大降低系统运行的效率,甚至可能导致系统崩溃.比较3种算法:算法1运行效率最低,在实际应用中不能满足实际需要;算法2运行效率虽然比算法1有很大改进,但它对下层物料查找方法是一个一个物料来查找,不能利用数据库的集合操作的特
9、点,算法运行效率不是很理想,但它对于查找特定结点的物料很实用;算法3的思路清楚,可以充分利用数据库集合操作的优点,算法运行效率也最高.32.2基于存储过程的B OM分层遍历算法基于存储过程的分层遍历算法采用临时表存放BOM中某一层物料的信息,克服了递归算法中堆栈的使用,使用较为方便,能较好的按层次遍历一个大规模的BOM树结构;但是由于其层次遍历的特点,其物料的存放顺序未能展现物料的父子关系.而在进行物料结构的取代、删除以及检查物料的用料结构是否存在循环错误时,需要知道物料间的父子关系,因而BOM遍历的分层算法将无法进行以上操作.为此,在临时表中增加两个字段,当前层次(Level及完全路径(Fu
10、llPath,分别按如下递归方式定义:I f件号=BOM根结点thenLevel=0;FullPath=件号Else/对于非根结点Level=父件号.Level+1;FullPath=父件号.FullPath+件号为进一步提高算法效率和充分利用S QL结构化查询语句的优势,算法改用后台存储过程实现:先以传入参数Te mpTable Na me的值为表名按表4结构建立BOM展开临时表,将待展开件号A(BOM树的根结点的所有直接子结点插入临时表(Level=1,FullPath=A.件号+子结点.件号,再对队列(临时表中Level=1的结点的所有直接子结点再插入队列(Level=2,FullPat
11、h=父结点.FullPath+子结点.件号,按层次顺序继续进行循环插入,直到不存有任何子结点可插入(当前层全为叶子结点则结束算法.表4BOM展开临时表结构字段类型字段说明Ite m_NO Char(15件号Father_Ite mNo Char(15父件号Level I nt当前层次数,根结点的层次数为0FullPath Var Char(2000根结点至当前结点的完全路径PROCEDUREP_BomTreeIte m_NO char(15,Te mpTable Na me char(50ASselectcur_level=0setsql_exec=create table+Te mpTabl
12、e Na me+(ite m_no char(15,Level I nt,FullPath char (2000,Father_Ite mNo char(15exec(sql_exec根据传入的临时表名,建立全局临时表setsql_exec=insert+Te mpTable Na me+(ite m_no,Level,FullPath,Father_Ite mNovalues(+Ite m_NO+,0,+Ite m_NO+,""-将待展开的件号做为根件号插入临时表中exec(sql_execwhile 1=1beginset sql_exec =select t op 1
13、3fr om BOM where Father_Ite mNo in(select ite m _no fr om +Te mpTable Na me +where Level =+convert (char,cur_level +-按层次顺序展开BOM ,若当前层存在非叶件号,则将其插入临时表中,留待下一次循环时继续向下展开.exec (sql_exec if r owcount >=1/当非叶子结点时beginset cur_level =cur_level +1set sql_exec =insert int o +Te mpTable Na me +(ite m _no,Leve
14、l,Father_Ite mNo,FullPath select Ite m _NO,+convert (char,cur_level +,Father_Ite mNo,+Te mpTable Na me +.FullPath +BOM.Ite m _NO fr om BOM ,+Te mpTable Na me +where BOM.Father_Ite mNo =ite m _no and Level =+convert (char,cur_level -1/将当前层结点的子结点插入临时表exec (sql_exec end elsebreak 若当前全为叶件号,则跳出循环,结束遍历end
15、3遍历算法在BOM 树创建及显示中的应用设计思想:应用层BomTree 方法根据客户端提供的待展开件号Ite m _No,调用后台BOM 树的遍历存储过程P_BomTree,将遍历结果存入全局临时表中(Te mpTable Na me =操作员编号+年月日+时分秒,将全局临时表名通过回传参数sl_out 返回客户端,由客户端建树算法从该临时表中取出数据并利用Tree V iew 控件完成前台建树及显示工作.p r ocedure TERPRD.BomTree (const Ite m _NO ,:W ideString;var sl_out:O le Variant ;try/按操作员编号+年
16、月日时分秒为临时表名,以确保其名称的全局唯一性Te mpTableNa me :=#+gs_code +For mat D ateTi m e (YYYY MMDDHH MMSS,now ;/执行后台存储过程,将件号展开结果存放在以Te mpTable Na me 为表名,的全局临时表中,并将临时表返回前台(通过sl_out 带出,再由前台完成建树操作ADOQ_rd .S QL.Text :=exec P_Bo mTree +Item _NO +,+Te mpTable Na me;ADOQ_rd .ExecS QL;sl_out :=Te mpTableNa me;setcomp lete;
17、excep t beginsl_out:=no;/有问题时,将sl_out 置为no,通知前台中止建树操作setabort;end;end;34第1期檀明,等:一种基于存储过程的BOM 遍历算法44合肥学院学报(自然科学版第17卷end;3.2客户端建树算法对TreeV ie w所表示BOM树的各结点,除件号以外,还需保存其它相关信息,如父件号、单位用量、制损比例等,系统通过结构指针类型P Node来实现:typeNode=recordite m_no:string;/其它需记录的信息end;P Node=Node;对于存放在全局临时表(Te mpTable Na me中BOM展开数据,按Fu
18、llPath升排序检索的结果可视为对BOM树的先根遍历路径,客户端建树的过程就是在对BOM树先根遍历同时,动态生成Tree V ie w,为此建立一个路径指针数组PTree W ayMax Level,其中Max Level为树的最大深度,其值可以通过SelectMax Level =Max(Levelfr om Te mpTable Na me获得.PTree W ay0-I可以看成从根结点开始到当前I层的建树路径,若当第I层当前建树结点PTree W ayI已无子结点时,应返回上一层的PTree W ayI-1结点继续沿下一遍历分枝建树,直到对树的遍历结束为止.代码如下:p r ocedu
19、re TFr m_rd1021.For mShow(Sender:T Object;/BOM树显示窗体的For mShow Te mpTable Na me:=String(Sl_out;/调用应用层方法,Sl_out返回存放BOM数据的全局临时表名,若表名为no则为表中无该物料的BOM资料if Te mpTable Na me=nothen/提示并返回;ne w(P NodeTe mp;并设置P NodeTe mp结构中信息为根结点的对应值;beginne w(P NodeTe mp;并设置P NodeTe mp结构中其它信息;PTree W ayLevel:=Tree V ie w.Ite
20、 m s.AddChild Object(PTree W ayLevel-1,str Cap ti on,P Node2 Temp;/为上层父结点增加子结点end;end;BOM在ERP、P DM、MRP等软件中处于核心地位,其重要性显而易见.文中所提出的BOM结构模型和基于存储过程的改进BOM分层遍历算法已在服装行业的ERP系统中得到成功的应用,相对一般BOM遍历算法,使用该算法可以获得更好的计算性能.参考文献:1罗鸿,王忠民.ERP原理设计实施M.2版.北京:电子工业出版社,2003.第 1期 檀 ,等 : 一种基于存储过程的 BOM 遍历算法 明 45 2 贾振元 ,郭庭政 , 王林平
21、. 面向中小制造企业多种 BOM 并行的构建和应用 J . CAD /CAM 与制造业信息化 , 2005 3 严志强 ,龚京忠 ,李国喜 ,等 . 多级型 BOM 的遍历 J . 机械设计与制造工程 , 2001, 30 (2 : 33 2 34. (12 : 24 2 25. 责任编校 : 乙卯 A lgor ithm of Ran sack i g Tree BOM n Ba sed on Store Procedure (Departm ent of Computer Science and Technology, Hefei University, Hefei230601, Chin
22、a Abstract: The B ill of M aterials (BOM is the basic data in ERP system. Its structure and design of operation algorithm affect ERP system deep ly In this paper, by the analysis of BOM , an algorithm of . rithm and Tree V iew Controller of Dephi6. 0 to extract data from database and disp laying the
23、 rank order ransacking tree BOM based on store p rocedure is p roposed. Further more, a m ethod using this algo 2 insurance model, this paper studies a delayed double type 2insurance compound B inom ial risk model in (3 : 348 2 358. of BOM directly is also p resented. Key words: BOM; store p rocedur
24、e; ERP (上接第 27 页 2 Shiu E. The Probabilities of Eventual Ruin in the Compound B inom ial Model J . ASTI Bulletin, 1989, 19: 179 2 N 190. 3 成世学 ,伍彪 . 完全离散经典风险模型 J . 运筹学学报 , 1998, 2 ( 3 : 42 2 54. 5 龚日朝 ,杨向群 . 复合二项风险模型下的有限时间的生存概率 J . 吉首大学学报 , 2000, 21 ( 2 : 16 2 19. 6 龚日朝 . 两类时间离散索赔模型的关系 J . 信阳师范学院学报 : 自然科学版 , 2001, 14 ( 3 : 381 2 383. 4 成世学 ,朱仁栋 . 完全离散经典风险模型中的渐进解和 Lundberg型不等式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流服务师岗前管理综合考核试卷含答案
- 司磅工常识考核试卷含答案
- 内燃机车钳工达标测试考核试卷含答案
- 膨胀烟丝设备操作工安全技能测试竞赛考核试卷含答案
- 土方机械维修工岗前岗位水平考核试卷含答案
- 2026年家政服务外包协议(企业)
- 2026八年级道德与法治上册 责任担当优化
- 护理急救试题及答案
- 无人机作业风险防控体系搭建方案
- 画室使用免责协议书
- GB/T 29362-2012电子物证数据搜索检验规程
- GB/T 18877-2020有机无机复混肥料
- GA/T 1073-2013生物样品血液、尿液中乙醇、甲醇、正丙醇、乙醛、丙酮、异丙醇和正丁醇的顶空-气相色谱检验方法
- 外科学:胃十二指肠外科疾病(英文版)课件
- 维生素A介绍课件
- 调机品管理规定
- 第八章--货币需求
- (高清版)《城镇供水管网漏水探测技术规程 CJJ159-2011》
- 干熄焦培训资料
- 材料力学(柴国钟、梁利华)第5章答案
- 厂房设施GMP改造质量风险评估报告
评论
0/150
提交评论