1.定义BOM
BOM(物料清单)是WIP的基础,BOM定义了产品的组成结构图,定义了生产特定物料所需的零件及数量。每一个零件也可能有他们的BOM结构,由此产生多层的产品结构树。
比如:一台电脑 = 1 CPU + 1 内存 + 1 硬盘 + 1 显示器 + 1 个鼠标 + 1个键盘 + 30根 数据线 + 50 个螺丝 ,这个电脑的构成就是一个BOM。另外一个硬盘可能又是一个BOM,比如 1 硬盘 = 4组磁盘 + 1个磁盘指针 + 1 个硬盘壳,同样的道理,显示器,内存...都有自己的BOM定义,这样对电脑这个BOM来说,实际上构成了一个庞大的BOM树。
这里有有一张关于黄建华文档里的自行车BOM树的截图,比较有代表性。
EBS里如何定义BOM,路径:Bill Of Materials > Bills > Bills
这里定义一个简单的BOM,1 * pt_assembly01 = 2 * pt_component01
BOM的信息保存在BOM_STRUCTURES_B和BOM_COMPONENTS_B表中,BOM_STRUCTURES_B用于保存BOM Header信息,BOM_COMPONENTS_B是BOM_STRUCTURES_B的child table,用于保存BOM Component信息,两个表通过BILL_SEQUENCE_ID字段来关联。
SELECT * FROM BOM_STRUCTURES_B WHERE ASSEMBLY_ITEM_ID = 242956;
SELECT * FROM BOM_COMPONENTS_B
WHERE BILL_SEQUENCE_ID in (SELECT BILL_SEQUENCE_ID FROM bom_structures_b WHERE ASSEMBLY_ITEM_ID = 242956);
关于发料方式(BOM界面,Material Control中的Supply Type)
Push 推式发料,必须手工通过界面做发料 需严格控制数量或者波动比较大的物料
Assembly Pull 拉式发料,装配件完工或报废时自动按标准消耗量触发 消耗比较稳定的物料
Operation Pull 拉式发料,工序移动至To Move时自动按标准消耗量触发 消耗比较稳定的物料
BOM_COMPONENTS_B.WIP_SUPPLY_TYPE存储发料方式
Value | Meaning |
---|---|
1 | Push |
2 | Assembly Pull |
3 | Operation Pull |
4 | Bulk |
5 | Supplier |
6 | Phantom |
7 | Based on Bill |
2.定义Routing
路径:Bill Of Materials > Routings > Routings
Routings(工艺路线)最终解决的问题是生产过程中加工顺序、资源和用量的标准化。Routing是产品/半成品的生产步骤图,定义了生产特定物料所要经历的工序、加工部门(工作中心)、提前期、耗用的资源及其额定数量。
Routing头信息存储在表BOM_OPERATIONAL_ROUTINGS中,Routing的Operations信息存储在BOM_OPERATION_SEQUENCES表中,两个表通过字段ROUTING_SEQUENCE_ID字段关联。查询方法,
SELECT * FROM BOM_OPERATIONAL_ROUTINGS WHERE ASSEMBLY_ITEM_ID = 242956;
SELECT * FROM BOM_OPERATION_SEQUENCES
WHERE ROUTING_SEQUENCE_ID IN (SELECT ROUTING_SEQUENCE_ID FROM BOM_OPERATIONAL_ROUTINGS WHERE ASSEMBLY_ITEM_ID = 242956);
3.定义WIP Discrete Job
路径:WIP > Discrete > Discrete Jobs
Discrete,离散式,一种制造方法,用于装配件的分组或成批制造。制定标准离散任务,输入核心内容:任务名称(工单号)、生产类型、装配件、工单类型、生产数量、开工时间或完工时间。
这里在Discrete Job里定义job,保存,并release这个job。
这一步会涉及到几张表WIP_ENTITIES,WIP_DISCRETE_JOBS,WIP_REQUIREMENT_OPERATIONS和WIP_OPERATIONS,这几张表都是通过WIP_ENTITY_ID相互关联.
<<WIP_ENTITIES>>
WIP_ENTITIES stores information about jobs, repetitive assemblies, and flow schedules. Each row includes a unique entity name, the entity type, and the assembly being built. Oracle Work in Process uses this information to control production activities and to ensure that entities with duplicate names are not created.
Key Fields:
WIP_ENTITY_ID:Job or schedule Identifier
ORGANIZATION_ID:Organization Identifier
WIP_ENTITY_NAME:WIP job or repetitive assembly name or flow schedule reference code
ENTITY_TYPE:WIP entity type code
1 | Discrete job |
2 | Repetitive assembly |
3 | Closed discrete job |
4 | Flow schedule |
PRIMARY_ITEM_ID:Assembly Item Item
<<WIP_DISCRETE_JOBS>>
WIP_DISCRETE_JOBS stores discrete job information. Each row represents a discrete job, and contains information about the assembly being built, the revision of the assembly, the job quantity, the status of the job, the material control method, accounting information, and job schedule dates. Oracle Work in Process uses this information to control discrete production.
Key Fields:
WIP_ENTITY_ID:Job or schedule Identifier
ORGANIZATION_ID:Organization Identifier
PRIMARY_ITEM_ID:Assembly Item Item
STATUS_TYPE :Status of job
可以通过下边的SQL查得code的意义
SELECT lookup_code,meaning FROM FND_LOOKUP_VALUES
where LANGUAGE = 'US' AND Upper(lookup_type) LIKE Upper('WIP_JOB_STATUS')
Value | Meaning |
---|---|
7 | Cancelled |
8 | Pending Bill Load |
9 | Failed Bill Load |
10 | Pending Routing Load |
11 | Failed Routing Load |
12 | Closed |
13 | Pending - Mass Loaded |
14 | Pending Close |
15 | Failed Close |
1 | Unreleased |
3 | Released |
4 | Complete |
5 | Complete - No Charges |
6 | On Hold |
JOB_TYPE :Type of discrete job
Value | Meaning |
---|---|
1 | Standard |
3 | Non-standard |
WIP_SUPPLY_TYPE :Method of material consumption within WIP
Value | Meaning |
---|---|
1 | Push |
2 | Assembly Pull |
3 | Operation Pull |
4 | Bulk |
5 | Supplier |
6 | Phantom |
7 | Based on Bill |
START_QUANTITY:Job start quantity
QUANTITY_COMPLETED:Current job quantity completed
COMMON_BOM_SEQUENCE_ID:--> BOM_COMPONENTS_B.BILL_SEQUENCE_ID
COMMON_ROUTING_SEQUENCE_ID:-->BOM_OPERATIONAL_ROUTINGS.ROUTING_SEQUENCE_ID
<<WIP_REQUIREMENT_OPERATIONS>>
任务领料需求发放表,记录了工单的制程中每个站点需要投料信息,我们根据这张表生成MMTT,进而生成Material Transaction.
WIP_REQUIREMENT_OPERATIONS stores information about the material requirements of jobs and schedules. Each row represents a material requirement and contains information about the component item, its usage quantities, the using department, requirement date, and the material control method. Oracle Work in Process uses this information to track the material usage of jobs and schedules.
Key Fields:
WIP_ENTITY_ID:Job or schedule Identifier
ORGANIZATION_ID:Organization Identifier
INVENTORY_ITEM_ID:Component Item Id
COMPONENT_SEQUENCE_ID: -->BOM_COMPONENTS_B.COMPONENT_SEQUENCE_ID
WIP_SUPPLY_TYPE :Method of material consumption within WIP
Value | Meaning |
---|---|
1 | Push |
2 | Assembly Pull |
3 | Operation Pull |
4 | Bulk |
5 | Supplier |
6 | Phantom |
7 | Based on Bill |
REQUIRED_QUANTITY:Component quantity required
QUANTITY_ISSUED:Component quantity issued
SUPPLY_SUBINVENTORY:Subinventory used to supply component to WIP
SUPPLY_LOCATOR_ID:Locator used to supply component to WIP
SEGMENT1:Component Item segment
QUANTITY_ALLOCATED:Quantity allocated
QUANTITY_BACKORDERED:Quantity backordered
<<WIP_OPERATIONS>>
离散作业工序(操作)表,主要记录工单工序的信息,这张表主要是和Routing Operation Sequences相对应的(表:BOM_OPERATION_SEQUENCES),Routing里有多少步,那么这个表就有多少个记录。
WIP_OPERATIONS stores information about job and repetitive schedule operations. Each row represents a specific operation and includes an operation sequence number, which orders the operations for the job or repetitive schedule. Each row also includes the assembly quantity completed at an operation, the quantity at each intraoperation step,
the department associated with an operation, the scheduled start and completion dates for an operation, the operation's countpoint and backflush types and other operation attributes. In general, Oracle Work in Process uses this information to control and monitor assembly production on the shop floor.
Key Fields:
WIP_ENTITY_ID:Job or schedule Identifier
OPERATION_SEQ_NUM:Operation sequence number within a routing,值一般为:10,20,30...
ORGANIZATION_ID:Organization Identifier
OPERATION_SEQUENCE_ID:-->BOM_OPERATION_SEQUENCES.OPERATION_SEQUENCE_ID
STANDARD_OPERATION_ID:-->BOM_OPERATION_SEQUENCES.STANDARD_OPERATION_ID
DEPARTMENT_ID:-->BOM_OPERATION_SEQUENCES.DEPARTMENT_ID
DESCRIPTION-->BOM_OPERATION_SEQUENCES.OPERATION_DESCRIPTION,工序的描述
SCHEDULED_QUANTITY: Number of units scheduled for the operation
QUANTITY_IN_QUEUE:Number of units in Queue of the operation
QUANTITY_RUNNING:Number of units in To Run of the operation
QUANTITY_WAITING_TO_MOVE:Number of units waiting To Move in the operation
QUANTITY_REJECTED:Number of units rejected from the operation
QUANTITY_SCRAPPED:Number of units scrapped from the operation
QUANTITY_COMPLETED:Number of units completed by the operation
FIRST_UNIT_START_DATE:First unit scheduled receipt date
FIRST_UNIT_COMPLETION_DATE:First unit scheduled completion date
<<WIP_OPERATION_RESOURCES>>
WIP_OPERATION_RESOURCES stores information about the resource requirements associated with job and repetitive schedule operations. Each row represents a resource requirement and contains a sequence number,the resource's unit of measure, its usage rate or amount, and several other attributes that control how it is scheduled and costed.
Oracle Work in Process uses this information to schedule jobs and repetitive schedules and to charge resources to jobs and schedules.
SQL Queries
SELECT * FROM WIP_ENTITIES WHERE WIP_ENTITY_NAME = 'pt_job01';
SELECT * FROM WIP_DISCRETE_JOBS WHERE WIP_ENTITY_ID = (SELECT WIP_ENTITY_ID FROM WIP_ENTITIES WHERE WIP_ENTITY_NAME = 'pt_job01') ;
SELECT * FROM WIP_REQUIREMENT_OPERATIONS WHERE WIP_ENTITY_ID = (SELECT WIP_ENTITY_ID FROM WIP_ENTITIES WHERE WIP_ENTITY_NAME = 'pt_job01');
select * from WIP_OPERATIONS WHERE WIP_ENTITY_ID = (SELECT WIP_ENTITY_ID FROM WIP_ENTITIES WHERE WIP_ENTITY_NAME = 'pt_job01');
4.发料
在WIP Material Transaction,WIP Component/Issue所处的位置,可以参加下图,先有个大体理解
接下来我们就要从库存中给工单发货,这里有两种方法发料到工单
方法1:WIP > Material Transactions > WIP Material Transactions
这种方式比较简单,直接指定库存并发料
方法2:WIP > Discrete > Component Pick Release > Component Pick Releas (Form) / (SRS)
当BOM的组件很多,使用方法一发料的话,一个个指定库存会很麻烦,Oracle EBS提供了Pick Release的方式来发料,这样用户只要指定合适的Picking Rule,那么系统会自动帮你挑库。
系统会产生一个Move Order(Move Order Type:Manufacturing Pick),这一步实际上非常类似于订单的Pick Release。
接下来去Transact Move Order界面,Transact这个Move Order就完成发料动作了。
注意使用方式一发料的话,后台是不会产生Move Order的,只有方式二才会有Move Order产生。
5.Material Transaction
这个时候可以去Material Transaction form里查看,组件已经从库存中扣减,Transaction Type=WIP Issue(Transaction_Type_id:35,WIP component issue)
这个时候MTL_MATERIAL_TRANSACTIONS表中几个JOB相关的字段
MMT.Transaction_Type_id:35
MMT.TRANSACTION_ACTION_ID:1
MMT.TRANSACTION_SOURCE_TYPE_ID:5
MMT.TRANSACTION_SOURCE_ID -->WIP_DISCRETE_JOBS.WIP_ENTITY_ID
MMT.TRX_SOURCE_LINE_ID-->WIP_REQUIREMENT_OPERATIONS.OPERATION_SEQ_NUM
MMT.SOURCE_LINE_ID -->MTL_TXN_REQUEST_LINES.LINE_ID
MMT.Move_Order_line_ID -->MTL_TXN_REQUEST_LINES.LINE_ID
6.WIP Component Return
物料发到工单后,有可能因为各种原因要把料退回到仓库,可以使用WIP Return
路径:WIP > Material Transactions > WIP Material Transactions,Type选择 WIP Return
查看Material Transaction,就可以看到一条WIP Return的Transaction发生了,并且组件库存数量又恢复到发料前的数量。
Transaction_TYPE_ID:43(WIP Component Return)
ps:不管是上边所说的WIP Issue还是WIP Return,在WIP_TRANSACTIONS表中是没有数据产生的。
WIP_TRANSACTIONS stores information about WIP resource transactions.Each row represents a single resource transaction and includes a uniquetransaction Identifier, a transaction date, the job or repetitiveschedule charged, the WIP operation and resource charges, and thenumber of units of measure applied. Oracle Work in Process uses thisinformation to track resource charges and to calculate the values stored in WIP_TRANSACTION_ACCOUNTS.
转载请注明出处:http://blog.csdn.net/pan_tian/article/details/7755220
===EOF===