ofbiz 业务代码剖析
1 制造模块剖析
mrp算法
为了方便说明,给一个最简单的生产模式
m1-p1
也就是由原材料m1直接加工生产p1,比例是1:1
我们设m1的库存量是1000,最低库存200,采购提前期6天,p1的库存是900个,最低库存100
现在接到一个订单,2月2号要2000个p1发运(ofbiz是按照发运期来算提前量的),该怎么算呢
很显然,我们立刻得出,应该生产p1 1200个
但我们的实际生产量并不一定是1200,我们应该先找一下已经安排下的p1的生产单,看有多少
好,找到一个生产单,1月30号生产完毕300个,这样,我们只需要生产900个p1就能满足2月2号的需求
那什么时候开始生产,就需要计算制造提前期,ofbiz是按照工艺路线*数量来计算的,比设一个固定的制造提前期要精确的多,经过计算,需要1月26号开始生产
为了生产p1我们需要多少m1呢,如果不考虑损耗率,应该是900个,现在m1的库存是1000个,能满足需要么
不能,因为m1的最低库存是200个,也就是最多只有800个m1可用,那我们是不是还需要采购100个
和生产一样,先要查一下有没有在1月26号前到货的采购订单,这次发现没有,那我们就要给供应商发一个采购订单,订购600个,为什么是600个
这里有一个采购批量的概念,也就是说采购不是你需要多少就订多少,供应商有一个批量规则,比如m1的供应商的要求是每次订购必须是一箱,一箱是多少呢,600个
ofbiz并没有给出采购批量的算法,只是给出了接口,保证了最大的灵活性,因为实际中,对每一个采购订单计算批量可能导致过大的采购量
比如,现在mrp运算得出 1月26号采购到货100个m1,2月2号采购到货300个m1,2月6号采购到货200个m1,批量是600
在实际中采购员会把数量汇总,给供应商发出一张1月26号到货的采购600个m1的订单,这张订单应该提前6天发出去,因为采购提前期是6天,考虑到日历的休息日,实际应该是提前6个工作日
如果按每张订单分别来,同时考虑批量,就会是1月26号采购600个m1,2月2号采购600个m1,2月6号采购600个m1
以上流程分析清楚了,mrp算法就是一个大循环,先把需求按产品排序,然后按llc循环,计算实际生产或采购需求量,对于需要生产和采购的就生成采购建议和生产建议
代码里也有一些小技巧决定了运行的速度,要避免使用递归函数,一遍循环就要全部算完
制造模块还有一些比较细致的设计,比如考虑产品属性,考虑产品配置bom(这两个功能很重要),考虑虚拟件,引入非库存件的概念
以库存件和非库存件的概念分析一下
我们考虑如下的生产模式
m1-p1_2-p1_1-p1
由原材料m1加工成半成品p1_2,再由p1_2加工成p1_1,最后由p1_1加工成成品p1
按很多erp的设计,先是领料m1,生产p1_2,然后将生产出来的p1_2入库,然后领料p1_2,生产p1_1,将生产出来的p1_1入库,然后领料p1_1,生产p1
看上去不是很严谨么
问题在与,在车间的实际生产中,生产出p1_2,就直接拿去生产p1_1了,根本不会做什么入库再领料的操作,不然,一天要输多少单据,如果所有半成品都严格要求做要出入库操作的话,就会不符合实际的车间生产情况
所以,非库存件是一个非常好的设计,我们把p1_2和p1_1设置成非库存件,可以很好的适应实际的生产管理的需要
当然,还有其他需要考虑的,比如,如果非库存件生产有结余要入库也需要处理
- 浏览: 8347 次
- 性别:
- 来自: 南京
相关推荐
文档中提供的"新建 Microsoft Word 文档 (2).docx"和"新建 Microsoft Word 文档.docx"可能是详细的学习笔记或者教程,涵盖了Ofbiz的基础概念、配置步骤、实例分析等内容。建议首先阅读这些文档,以便对Ofbiz有一个...
1. 产品模块:涉及到产品的基本信息,如产品代码、名称、类型、品牌、库存等,以及产品分类、变种、属性等复杂关系。 2. 订单模块:涵盖订单头信息、订单行项、付款、发票、运输和配送等,反映了整个交易流程。 3. ...
5. **文档资料**:除了代码和演示数据,压缩包可能还包含OfBiz的官方文档,包括用户手册、开发者指南和技术参考,这些都是学习OfBiz的重要资源。 6. **源码分析**:对于开发人员而言,理解OfBiz的源码结构和设计...
- **第一章:OFBiz入门**(Chapter1:Getting Started with OFBiz) - **获取OFBiz代码**:通过SVN下载OFBiz项目。 - **下载并安装SVN**:详细介绍如何安装Subversion客户端。 - **使用TortoiseSVN**:推荐使用...
7. **案例分析**:提供一些实际应用场景,通过实例演示如何使用OFBiz解决特定的业务问题。 总之,"ofbiz开发文档"对于想要学习和掌握OFBiz开发的人员来说,是一份宝贵的参考资料。它结合了Groovy语言的优势,使...
通过上述分析,可以看出,OFBIZ的MVC模式不仅体现在其框架结构中,还体现在其对业务流程的管理、数据处理以及用户交互的设计上,为开发者提供了高效、可维护的开发环境。理解和掌握MVC模式对于开发和维护OFBIZ应用...
对于Ofbiz的源码分析,手册可能会涵盖如何阅读和理解Ofbiz的Java源代码,特别是与数据模型相关的部分。这将帮助开发者更有效地调试和扩展系统,同时也会介绍一些常用的开发工具和技巧,如IDE集成、版本控制和构建...
1. **Ofbiz简介**:介绍Ofbiz的基本概念,包括它的设计理念、组件结构、支持的业务场景。 2. **安装与配置**:指导如何下载Ofbiz源码,配置开发环境,以及启动和停止Ofbiz服务器。 3. **核心组件**:解释Ofbiz中的...
1. **Ofbiz框架概述**:了解Ofbiz的基本架构,包括服务层、实体模型、工作流、事件驱动模型等核心概念。 2. **环境搭建**:如何配置Java环境,安装Ofbiz框架,设置数据库连接,以及启动和运行Ofbiz应用。 3. **...
- 业务逻辑代码(可能在components目录下的service或webapp目录下) - 测试用例(test目录下的Java文件) 通过分析和运行这个示例,你可以逐步了解OFBiz的工作原理,掌握如何在实际项目中使用它进行数据操作。同时...
- **目标用户:** 本指南主要面向企业级应用开发者、架构师以及希望了解或使用OFBiz的业务分析师。 - **项目意义:** 通过提供一套松耦合的应用程序,使得各个组件易于理解、扩展和定制,从而极大地降低了开发成本。...
OFBiz,全称为Open for Business Project,是一个开源的企业级应用套件,旨在提供全面的业务自动化解决方案。它由Apache软件基金会维护,支持多种业务功能,如电子商务、供应链管理、客户关系管理、财务管理等。这个...
此外,还需要研究OFBiz的核心业务代码,特别是那些涉及订单创建、运费计算、价格规则解析以及促销策略实现的部分。 **2.2 分析自有业务模式** 接下来,需要详细分析自己的业务模型,尤其是那些与现有OFBiz标准功能...
1. **OFBiz简介** - OFBiz是由Apache软件基金会维护的项目,旨在提供一个灵活、可扩展的框架,用于构建和部署企业级应用。 - 它基于Java技术栈,利用服务组件架构(Service Component Architecture, SCA)设计,...
3. 工作流:OFBiz使用流程定义文件(`.pd`)描述业务流程,对应的工作流服务和任务处理代码位于`servicelayer/workflow`目录。 四、关键模块分析 1. 订单管理:OFBiz的订单模块包括报价、订单创建、订单状态跟踪等...
2. **Eclipse**或**IntelliJ IDEA**:主流的Java集成开发环境,支持OFBiz插件,方便代码编辑、调试。 3. **Git**:版本控制工具,管理OFBiz源码的版本变更。 4. **Docker**:容器化技术,可快速部署OFBiz环境,便于...
本文将根据提供的文本内容对OFBiz的程序结构进行深入分析。 #### 二、核心概念 1. **Application**:在OFBiz中,应用程序是构成整个系统的基本单位,每个应用程序都包含了特定的功能模块。 2. **Component-Load....
此外,还可以通过 OFBiz 提供的 API 在代码中直接调用服务。 - **事务管理**:OFBiz 支持细粒度的事务管理,可以在服务级别控制事务的行为,确保数据的一致性。 #### 五、Apache OFBiz 实体引擎使用 - **实体定义**...
1. **OFBiz架构**:深入探讨了OFBiz的核心架构,包括服务组件(Service Engine)、实体引擎(Entity Engine)、工作流引擎(WorkEffort Engine)等,这些组件如何协同工作以支持复杂的业务流程。 2. **开发工具与...