生产中,BOM的简介(2)

原创 2009年09月02日 13:43:00

上篇讲到,BOM在实际写程序中,是很让人头疼的事,第一,因为其结构复杂,第二,因为其数据量非常庞大,一二百万的数据基本属于常量。

这就对展BOM的程序提出非常高的performance需求。(当然表设计也很重要,索引,分页什么的就不提了,属DBA范畴)

在上一篇里给出的链接中,已有方法对BOM进行操作,举一反三,应该基本能把所有的问题都拿下了。

我在实际的工作中,还遇到过另一个需求,这里单独拿出来讲讲。

因为,很多时候,各单位的人员并不会关心你的BOM到底是什么结构。

生产管理人员只关心manufacture bom ,这个半成品/成品,需要哪些料,这些料缺不缺。

采购人员只关系需要买的料(一般指原材raw material,当然也有直接买半成品的)

资材的同仁关心的又不同,等等。。。

 

假如你(客户)去买电脑,需要的内存是1G(假如预算就到这了,再贵买不起,只能放弃或去别的店里咨询),而店里正好没有现货,却有2G的内存现货(如果此2G的也是压仓库,卖不出去),那么店主(生产商)也许就会说,1G的没有了,我给你2G的吧,价格算1G的价。。。一举两得,店主减少了库存压货,并卖出了电脑赚了钱,而你也白捡了便宜。(这在生产上,叫作 高规低代)

 

简单流程表示为

客户下单(1G电脑) => 资材人员发现1G内存缺料,并同时发现库存有2G的,两者可替代 => 客服人员联络客户商量是否可高规低代? => 客户同意 => 组装2G的(修改manufacture bom / 如果客户不同意的话,就得让采购去买料了。。。

 

在这里有一个很重要的步骤是 “资材人员发现1G内存缺料,并同时发现库存有2G的,两者可替代” ,这就引出了,很多时候,管理人员需要一份report

可以明确的知道一颗原材 所对应的所有成品 (或者说一个成品料号 所对应的所有 原材。 我把它叫作 part where use .

在这样的一份report里,将跳过众多的半成品,直接得出 最高介 最低介 的关系,是一种part direct relation. 这将非常有利于管理人员掌控物料规划,仓库水位等。

怎么从普通的BOM表,得出这样的一个 part direct的结构?

下面以程式作简单说明:

用途: part where use,  原材的用料累计等,都可以用此方法来计算.

 

Create table bom

  (parent varchar(2) not null,

   child varchar(2) not null

   )

 

Insert into bom select 'A0','A1'

Insert into bom select 'A0','A2'

Insert into bom select 'A1','A3'

Insert into bom select 'A1','A4'

Insert into bom select 'A3','A5'

 

Insert into bom select 'B0','B1'

Insert into bom select 'B1','B2'

Insert into bom select 'B1','B3'

Insert into bom select 'B3','B4'

Insert into bom select 'B3','B5'

 

Insert into bom select 'A4','C1'

Insert into bom select 'B4','C1'

 

Go

Create Proc usp_test

AS

 

declare @loop int

set @loop=1

 

--查找出bom表里所有最高介

select  parent as top_part,child

into #top

from bom as A

where not exists(select 1 from bom where child=A.parent)

 

While @loop>0

BEGIN

  select  B.top_part, A.parent, A.child

  into #tmp_top

  from bom A, #top B

  where A.parent=B.child 

 

  Delete #top

  from #top , #tmp_top

  where #top.child=#tmp_top.parent

 

  set @loop=@@rowcount

 

  Insert into #top

  select top_part, child from #tmp_top

 

  Drop table #tmp_top

 

END

 

--查看#top 結果

--如果建有一个专门存part direct table也不错方便以后查询

 select * from #top order by top_part

 

GO

 

exec usp_test

/*

top_part   child

----------------------

A0         A2

A0         A5

A0         C1

B0         B2

B0         B5

B0         C1

*/

 

GO

 

drop table bom

drop proc usp_test

 

这样一份的report的好处是,可以直观的表示 A0 这个成品(finish good),所需 A2,A5,C1 这3个原材(raw material). 方便客服,或者采购查询。。。

生产中,BOM的简介(1)

最近经常看到有朋友提BOM相关的问题,(难道是经济复苏,亦或是在金融危机,让企业更认识到ERP/MRP/MRPⅡ的重要性?)于是乎就想把自己在工作中碰到的BOM相关的内容整理一下,和大家讨论学习。先说...
  • playwarcraft
  • playwarcraft
  • 2009年09月02日 11:23
  • 1339

Oracle 11g 开始使用时遇到的一些问题及解决。

昨天下载了Oracle 11g 准备复习一下数据库。但在登陆时遇到了一些问题。 开始使用Oracle SQL Developer,准备建立一个连接。但是出现 ORA-12505: TNS: 监...
  • yujiajia111
  • yujiajia111
  • 2015年02月10日 15:36
  • 212

OpenIPMP中的几个关键概念

OpenIPMP中的几个关键概念    OpenIPMP 不仅称得上是一个典型的DRM系统,更是一个数字产品管理和分发的框架,加密技术是OpenIPMP的基础,同时还应用了其他很多相关技术。数字产品生...
  • wuwenlong527
  • wuwenlong527
  • 2007年10月16日 08:58
  • 869

常用的企业英文缩写称谓

BM(Branch Manager)部门经理 DM(District Manager)区域经理 RM(Regional Manager)区域经理 企业各职位英文缩写: CEO(Ch...
  • zhongguomao
  • zhongguomao
  • 2015年08月07日 08:47
  • 2097

html bom与dom解析

1 安排 html/css、JavaScript基础 JavaScript : bom & dom JavaScript  javaweb JavaScript 高级:ajax ssh...
  • u010713277
  • u010713277
  • 2016年04月04日 21:35
  • 407

五分钟学GIS | Docker在GIS中的应用

什么是Docker Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不...
  • supermapsupport
  • supermapsupport
  • 2017年07月10日 15:31
  • 326

虚拟机搭建LVS-NAT集群

一. 必备知识      局域网基础和计算机网络7层模型  http://blog.csdn.net/liaomin416100569/article/details/72976270      ...
  • liaomin416100569
  • liaomin416100569
  • 2017年06月15日 19:08
  • 576

紧固件生产中应用的相关计算公式

 紧固件生产中应用的相关计算公式一、 60°牙型的外螺纹中径计算及公差(国标GB 197/196)a. 中径基本尺寸计算: 螺纹中径的基本尺寸=螺纹大径-螺距×系数值公式表示:d/D-P×0.6495...
  • angler0129
  • angler0129
  • 2009年05月12日 22:31
  • 675

消费者生产者队列BlockQueue

8月的笔记 import java.util.LinkedList; import java.util.concurrent.atomic.AtomicInteger;public class MyB...
  • qq_33938256
  • qq_33938256
  • 2016年09月06日 23:09
  • 1211

在java项目的实际开发和应用中

在java项目的实际开发和应用中,常常需要用到将对象转为string这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有object#tostring(),(string)要转换的对象,st...
  • u012402926
  • u012402926
  • 2016年04月19日 17:46
  • 628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:生产中,BOM的简介(2)
举报原因:
原因补充:

(最多只允许输入30个字)