### 業務模塊
> OFBiz中自帶的業務模塊是經過OFBiz社區所有人的協作和不斷積累而逐漸完善的, 它是16年的OFBizer共同的結晶.
> 在研發初期, 初創團隊研究過很多其他優秀的ERP和CRM系統,
> 最終, 以Len Silverston的書籍 **“數據模型資源手冊”第1卷和第2卷** 為業務模型構建的主要參考(書籍鏈接請看本文末尾).
> 業務塊如下:
> 1. 通用數據(Common Data)
> 2. 內容(Content)
> 3. 安全(Security)
> 4. 當事人(Party)
> 5. 產品(Product)
> 6. 訂單(Order)
> 7. 場所/設施(Facility)
> 8. 裝運(Shipment)
> 9. 會計(Accounting)
> 10. 營銷(Marketing)
> 11. 人工服務(WorkEffort)
> 12. 制造(Manufacturing)
> 13. 人力資源(Humans)
>
> 接下來我將為大家簡單介紹下OFBiz支持的業務能力
#### 1. 通用數據(Common Data)
> 集中管理系統中的公共數據, 包括地理位置(Geo)、計量單位(Uom)、狀態機(Status)、枚舉常量(Enum)、語種(Language)、主題(Theme)、門戶(Portal)等.
> 這些數據在項目初始化時就會以種子數據的形式存在于數據庫, 為其他模塊提供支持.
#### 2. 內容(Content)
> 一切信息的載體皆是資源, 資源皆存取于內容, 如圖片(image)、文件(file)、網站(website)、博客(blog)、論壇(forums)、郵件(email)、調查問卷(survey)、文章(article)、文檔(document)、幫助文檔(helpdata)、模板(template)、說明書(annotation)、產品詳情大文本(html)等任何(MIME)標準的文件, 還可以存儲二進制文件到數據庫, 內容相關實體記錄并跟蹤這些數據資源.
> 為了確保數據資源的獨立性和公用性, OFBiz的模型設計時將信息和使用者分離了, 那樣就允許數據資源被多方使用, 達到資源存儲的原子性唯一, 用者關聯管者專注
#### 3. 安全(Security)
> 安全模塊, 顧名思義就是專注負責系統數據操作權限的, 管理著系統賬戶的各種信息, 控制著頁面(查看/操作)和數據(查看/管理)的各種功能權限和業務權限的授予和校驗.
> 比如驗證登錄的賬戶(可用/可訪問/可查看/可操作), 審計用戶操作的數據.
> 使用權限組輔助**業務實體**和**用戶角色類型的限定**, 達到更多的權限限定和校驗, 輔助完成業務權限控制
#### 4. 當事人(Party)
> Party, 一個神奇的單詞, 中文釋義一直找不到很準確的表述.
> 我個人認為**當事人**一詞尚可, 類似法律條文中有當事人的定義及用法.
> 但是在被關聯到其他業務實體時建議解釋為**干系人**, 即多種角色的關聯人, 如產品生產者和租賃者.
> 它分兩種類型, 一個是組織(Group), 一個是人(Person), 沒有明顯的職能屬性, 都是通過角色(Role)來標記其職能和特性的.
> - 組織(Group): 團體性機構, 如: 客戶(公司)、供應商(公司)、集團、企業、公司、門店、辦事處、家族、部門、團體、小組等任何多人團體的代表
> - 人(Person): 個體性機構, 如: 客戶(個人)、供應商(個人)、員工、工人、人等任何相對個體性的代表
> 這個模塊同時維護著與當事人直接相關的各種信息, 如當事人相互關系(relationship)、合同協議(agreement)、溝通事件(communication)、聯系信息(contact)、需求(need)
#### 5. 產品(Product)
> 任意當事人之間交易品的定義, 既可以是實物也可以是服務, 它將根據任意的需求產生, 并實例化于當事人之間的訂單里.
> 為了順暢的提供產品(product), 這里同時維護了產品相關的所有輔助信息, 如產品分類(category)、存儲倉庫(facility)、庫存記錄(inventory)、產品價格(price)、產品成本(cost)、產品特征(feature)、產品屬性(attribute)、產品配置(config) 產品圖片庫(image)、產品促銷(promo)、產品售賣的店鋪(store)、產品訂閱記錄(subscription)、產品維修記錄(maintain)、產品供應商(supplier)等.
> 同時因為倉庫主要用于產品(成品)的存儲, 因而和倉庫相關的收貨(receive)、揀貨(packing)、送貨(shipment)、退單貨(return)業務也在這里一并維護.
>
> 產品故事: 一個可購買也可租賃的多配置型辦公電腦
> - (標準辦公電腦)產品在(OFBiz官方)店鋪中的(辦公用品)分類下公開售賣, 參與店鋪的(一周年慶)促銷活動
> - 銷售(最低)配置價格在(4000元), 不同(CPU頻率)特征不同價格, 提供(電腦)屬性和詳細介紹
> - 在(一號)倉庫中還有庫存(98件), (價格有時段性)年初從(多幣種轉換)國外(進貨)成本是(售價*80%),
> - 客戶可以訂閱(產品動態), 并租賃電腦, 此時會登記租賃產品的訂單, 并提供電腦的(維修記錄)
> - 產品角色(生產商,供應商,代理商,客戶), 每個角色都有聯系信息(電話、地址、手機號、郵箱等)
> - 倉庫在收貨后,盤點庫存,然后根據銷售訂單生成揀貨單,揀好貨品后按訂單送貨,不符合客戶要求的訂單可以退貨
> 產品示例
>
| 產品類型 | 產品示例 | 生成的訂單類型 |
| --- | --- | --- |
| 有實物(Asset) | 服裝美食、超市進貨、服裝生產訂貨 | 購物單、采購單、訂購單 |
| 虛擬資產(Asset) | 人力外包、辦公室租賃、阿里云服務器租賃、京東會員 | 服務單、租賃單、訂閱單 |
#### 6. 訂單(Order)
> 集中管理系統中任何方式產生的交易單, 此訂單包括采購單(購入)和銷售單(售出)
> 訂單將關聯購買的產品,接受訂單的店鋪,訂單總金額可以調整(稅/運費/折扣/附加費),收款(payment)后可以提供發票(invoice),還可以進行期結.
> 當然, 可以退貨(return)
> 因為購物清單(shoppinglist)和購物車(shoppingcart)是為了訂單而存在的, 銷售機會(opportunity)是為了促進下單率的, 所以也在這里維護.
> 訂單會因類型和產品性質的不同, 細化觸發不同用途的交易后續業務流程.
> 采購單
> - 實物(現貨): 公司采購直接購買,產生對非本部門(其他事業部/外部公司)的采購訂單,跟進產品交付進展
> - 實物(待生產):
> - 若需要向賣方詢價,則發起客戶請求(request); 等待一到多個賣方報價(quote); 根據收到的報價生成采購單(order)
> - 若直接訂購,則直接下采購單,視采購量和交付周期簽訂合同(agreement),
>
> 銷售單
> - 實物(現貨): 客戶直接購買,產生普通的銷售訂單; 后續涉及到財務(accounting),倉儲(facility),庫存(inventory),包裹(package),發貨(shipment)等環節.
> - 實物(待生產): 若客戶發起詢價,則接收客戶請求(request); 發回復報價(quote); 等待客戶下訂單(order)
> 庫存不足或后續服務
> - 若客戶購買的產品本公司沒有現貨(庫存數量不足)
> - 當產品是采購來的情況時,創建產品需求(requirement),對供應商發起采購單
> - 當產品是自己生產時,創建內部需求(requirement),對生產車間發起生產單(workeffort)
> - 若客戶購買的是本公司提供的服務,則創建作業需求(requirement),對相關職員發起人工服務(workeffort)
#### 7. 場所/設施(Facility)
> 任何場地、場所、建筑、樓棟、工廠、車間、公共設施、房間、門店、倉庫等可定義的空間(物理位置)都在這里統一管理.
> 同時管理著場所的聯系信息(contact)、干系人(party)、空間內的容器及貨架(container)、所在地理位置(geo)等.
> 場所還可以分組管理, 如連鎖店, 專業的倉儲公司的倉庫.
> 實物可以與場所或場所內的(容器/貨架/巷道/特定位置)關聯, 形成實物庫存記錄, 可對庫存物品進行跟蹤和管理.
> 人或組織可以和場所關聯, 那樣就可以設定辦公地點, 倉庫管理員, 倉庫的揀貨員等.
#### 8. 裝運(Shipment)
> 此塊是用于集中追蹤進貨和出貨記錄的, 登記了物品出庫(庫存)或物品接收(receive)放入庫存的所有痕跡
> 一次裝運涉及到多個運輸物品, 如裝運的物品和訂單項的關聯, 這是是訂單指定的固定數量的產品, 所以收到貨時可以與訂單進行核對, 同時還可以查閱裝運收據中相關信息.
> 當一次貨運是用于對庫存物品進行出庫時, 會生成揀貨單(PickList)來與之關聯, 以便快速的從指定倉庫或庫位揀出待出庫物品.
> 可以創建代表一個貨箱或裝運實例的包裹(package), 一個箱子可以包含多個裝運物品, 當裝運送貨目的地一致時,甚至一個箱子可以包含不同裝運實例的物品.
> 貨運路由(route), 同如今快遞的物流記錄, 記錄著一個裝運實例中所有包裹的運輸路段(軌跡),
> - 可以將整個貨運任務交給指定承運商(carrier),那樣整個運輸軌跡將有此商家所在公司來提供.
> - 也可以將運輸路段拆分開, 其中每個路段可以指定不同的承運商(carrier)
#### 9. 會計(Accounting)
> 這個模塊還是按古老且普遍接受的方式進行組織的, 如復式會計、具有分級賬戶的總賬、日記賬和過賬交易及相應的條目.
> 業務實現主要基于(OMG GL)標準以及在此標準的(AR/AP)上擴展的功能, 這個標準可以很好的與(ebXML或OAGIS)標準關聯起來.
> 本模塊的模型設計, 允許管理多個組織的賬戶, 多個組織可以是任何有團體特性的組織, 如公司、事業部、內部部門等.
> - 每個組織都可以有與之關聯的各種總賬科目, 以便它可以使用自己的主科目表的子集進行操作
> - 每個組織也可以有自己的一套靈活的日記賬, 可以盡量少用日記賬功能, 這樣系統可以根據標準的程序規則來觸發業務事件的自動創建, 如采購訂單、銷售訂單、發票、庫存轉移、付款(payment)、收據(receipts)等.
>
> 這里同時可以進行預算管理, 且可以將預算與特定的財政周期對應的實際總分類賬余額進行對賬.
> 追蹤固定資產的使用情況也是會計功能的一部分, 如維護(maintenance)、折舊(scheduling)、人工服務(workeffort)相關的資產調度等
#### 10. 營銷(Marketing)
> 在這里對營銷活動相關的信息進行統一管理和跟蹤.
> - 聯系人列表(ContactList): 包含聯系人相關的郵件(mailing)、電子郵件(email)、電話(calling))列表
> - 跟蹤碼: 跟蹤碼主要用于自動化系統,
> - 跟蹤客戶來源, 用于分析包括廣告(advertisements)、合作關系(partnerships)、從屬關系(affiliations)等特定的營銷活動
> - 還可以用于傭金目的的跟進(commission)
#### 11. 人工服務(WorkEffort)
> 統一管理著人工事件(工單)及其處理的記錄, 如任務(task)、項目(project)、項目階段(phase)、里程碑(milestone)、待辦事項(todo)、事件(event)、工作日程(calendar)、個人日程(timeoff)、工作流程(workflow)、活動(activity)、工藝路線(routing)、生產任務(ProductionRun)、會議(Meeting)、培訓(Training)等
> 因為管理著工單, 自然要跟蹤工單的執行耗時(工時-timesheet)和成果, 這將用于檢查工作效率、計算人工成本、計算計時工資、計件工資等.
> 同時因為涉及到人工服務, 人會使用各種資源, 那么就需要同時記錄工作場所(facility)、使用資產(asset)、干系人(party)、相關聯系信息(contact)等.
> 若人工服務的實例是用于生產制造或其他產品維護的時候, 還可以追蹤工作耗時、計件效率、產量等.
#### 12. 制造(Manufacturing)
> 這個模塊專注于生產制造環節, 從生產成品的物料清單(BOM)計算, 到工單(ProductionRun)生成, 然后進行生產計劃安排(MRP), 按工藝路線(Routing)進行生產作業, 定期提交生產進度匯總報告(Report).
> 生產環節的主要單據與作業流程的全程管理, 會涉及到車間、作業區、工位、制造設備、工人、工作計劃、物料計劃、半成品準備、工時記錄、工人工時內生產件數等各種信息的計劃與實際情況的作業記錄.
#### 13. 人力資源(Humans)
> 此模塊是專用于跟蹤職位(positions)、職能(responsibilities)、技能(skills)、雇用情況(employment)、解雇(termination)、員工福利(benefits)、培訓(training)、薪酬等級(PayGrades)、薪資偏好(PayrollPreferences)、績效評估(PerformanceReviews)、招聘簡章(recruitment)、簡歷(resumes)、應聘記錄(applications)等各種人力資源相關的信息的.
#### 本文相關書籍
- The Data Model Resource CD, Volume 1: A Library of Universal Data Models for All Enterprises(https://www.amazon.cn/dp/0471388289)
- 數據模型資源手冊 第1卷
- The Data Model Resource Book: Volume 2: A Library of Universal Data Models by Industry Types(https://www.amazon.cn/dp/0471353485)
- 數據模型資源手冊 第2卷
- The Data Model Resource Book: Volume 3: Universal Patterns for Data Modeling(https://www.amazon.cn/dp/0470178450)
- 中文版: 數據模型資源手冊(卷3):數據模型通用模式(https://www.amazon.cn/dp/B01N5Y4H0F)
#### 參考
https://cwiki.apache.org/confluence/display/OFBIZ/Apache+OFBiz+Project+Overview
https://cwiki.apache.org/confluence/display/OFBIZ/Chinese+-+Apache+OFBiz+Project+Overview
- OFBiz開發手冊
- 關于
- 更新日志
- 快速引導
- 關于本書
- 關于作者
- 認知篇
- 認識OFBiz
- 什么是OFBiz
- 架構圖析
- 依賴庫
- 請求核心流程
- 獲取框架
- 衍生項目
- OFBiz的特點
- 框架特性
- 業務能力
- 框架優勢
- 框架劣勢
- 行業解決方案
- 架構對比
- OFBiz適應癥
- 適合我嗎
- OFBiz中國
- 中國業界
- 優秀博客
- 基礎篇
- 開發準備
- 操作系統
- 開發環境
- 框架導入IDE
- 配置運行
- 創建模塊
- 模塊介紹
- 模塊結構
- 模塊創建
- 模塊載入訪問
- 標準CRUD
- 文件關系
- 實體設計-Entity
- 國際化-UiLabel
- 配置菜單-Menu
- 配置請求-Controller
- 配置屏幕-Screen
- 配置表單-Form
- 配置服務-Service
- 配置業務腳本-Minilang
- 測試CRUD
- 基礎進階
- 中文環境配置
- 通用搜索服務
- 文件上傳
- Form表單驗證
- 導出PDF
- 導出Excel
- 發送Email
- 配置Job
- 配置視圖-view-entity
- 動態請求-ajax
- 常用功能
- 加速Gradle
- 常用命令
- 修改端口
- 調試模式
- 調試項目
- 重啟生效
- 數據導入
- 緩存清理
- 在線日志
- 更換數據庫
- 實體設計管理
- 表數據管理
- 配置本地dtd
- 使用Static靜態文件
- 驗證碼-RandomCode
- 主題切換-Theme
- 時區切換-TimeZone
- 語種切換-Language
- webtools在線框架管理功能介紹
- 編碼規范
- 駝峰命名法
- 代碼編碼規范
- 實體設計規范
- 字段類型規范
- 請求命名規范
- 業務實現規范
- 提高篇
- 環境上下文
- 上下文-ftl
- 上下文-groovy
- 上下文-event
- 上下文-form
- 上下文-screen
- 上下文-minilang
- 標簽API
- 實體設計-entitymodel
- 實體觸發器-eeca
- 國際化-UiLabel
- 菜單-Menu
- 請求-Controller
- 屏幕-Screen
- 表單-Form
- 服務-Service
- 服務觸發器-seca
- 腳本-Minilang
- 腳本-Groovy
- 模板-Freemarker
- 演示數據-Data
- PDF標簽-XSL-FO
- 工具類
- 調試-Debug.java
- 對象類型-ObjectType.java
- 字符串工具-StringUtil.java
- 日期時間-UtilDateTime.java
- 通用-UtilGenerics.java
- Http-UtilHttp.java
- 綜合-UtilMisc.java
- 屬性-UtilProperties.java
- URL-UtilURL.java
- 校驗-UtilValidate.java
- XML操作-UtilXml.java
- 高級實現
- 忽略版本控制
- 配置項目使用MySQL數據庫
- 配置項目使用Postgres數據庫
- 擴展支付寶支付
- Webservice公共服務
- Rest接口
- Ftl自定義宏與使用
- 接入條形碼
- 接入二維碼
- 自定義主題-Theme
- error頁面自定義
- 接入SMS手機短信服務
- QQ微信聯合登錄
- 微信服務號接管
- 頁面靜態化
- CMS幫助中心
- 訪客IP與城市定位
- 使用二級域名
- Tenant多租戶應用
- date-time中國化顯示
- datepicker日期控件
- 圖片處理
- SSL安全證書
- 接入workflow
- 使用solr搜索引擎
- 生產服務器性能優化
- 框架篇
- 框架模塊
- 模塊關系
- 框架基礎-base
- 通用功能-common
- 運行容器-catalina
- 實體引擎-entity
- 靜態資源-images
- XML腳本-minilang
- 用戶權限-security
- 服務引擎-service
- 項目啟動-start
- 測試工具-testtools
- 應用站點-webapp
- 在線框架管理-webtools
- 裝飾器-widget
- 核心類
- 請求核心類
- 實體核心類
- 服務核心類
- 框架原理
- Start啟動過程
- 實體引擎
- 請求控制
- 服務引擎
- ECA觸發器
- 實體主鍵生成器
- Job定時任務
- 跨模塊免登陸訪問
- 無處不在的UEL表達式
- cache緩存的實現
- minilang原理
- 實體相關資源加載模式
- OFBiz支持的模塊目錄
- OFBiz請求處理過程分析
- 權限
- 權限介紹
- 權限分布
- 權限運用
- 重要文件
- 模塊加載component-load.xml
- 模塊配置ofbiz-component.xml
- 站點配置web.xml
- 緩存cache.properties
- 調試debug.properties
- 綜合配置general.properties
- 二維碼qrcode.properties
- 安全security.properties
- 服務端統計serverstats.properties
- 啟動配置start.properties
- 網絡訪問配置url.properties
- 裝飾器配置widget.properties
- 業務篇
- 業務模塊
- 業務介紹
- 模塊關系
- 內容-content
- 當事人-party
- 人事-humanres
- 商品-product
- 跟進-marketing
- 訂單-order
- 制造-manufacturing
- 人工服務-workeffort
- 財務-accounting
- 行業解決方案
- 電商綜合應用
- 運維篇
- 運行環境
- 服務器硬件要求
- Linux服務器初始化
- JDK安裝與配置
- MySQL安裝與配置
- SVN客戶端安裝
- Nginx安裝與配置
- 項目部署
- 項目父目錄
- 修改端口
- 一個服務器運行多個項目實例
- 運行項目
- 常用命令
- 番外篇
- 進階技巧
- 標準CRUD完整模板
- 參考書目與簡介
- 數據模型資源手冊
- Freemarker語法
- Freemarker介紹
- Groovy語法
- Groovy介紹
- Groovy比之Java
- OFBiz中的Groovy增強
- 常見問題
- Ftl中文亂碼
- PDF中文亂碼
- 數據庫中文亂碼
- Console中文亂碼
- 下載文件亂碼
- http鏈接存數據庫異常
- html代碼存數據庫異常
- OFBiz框架精簡
- OFBiz_v16.11初始化好慢 為什么?
- 怎么查看自己的項目基于OFBiz的哪個版本
- IDEA里Gradle執行命令時提示 No cached version available for offline mode 錯誤
- OFBiz為什么可以下載了就能直接運行起來用?
- 用IDEA手工執行Gradle指令
- 不允許你瀏覽這個頁面
- 使用[loadDefault]或[load-demo]指令到底加載了哪些實體和數據
- OFBiz中怎么手工導入Data.xml數據
- 怎么確認一個用戶是否配置并授予了某個權限
- 哪些情況下需要重啟OFBiz系統
- 如何清空緩存呢?
- MySQL或PostSQL等數據庫時,更新一個實體字段類型,重啟OFBiz并沒有生效,為什么?
- 實體添加字段,重啟在數據庫沒看到此字段,為什么?
- Gradle項目在Eclipse中自動鏈接依賴的jar包
- 解決Gradle項目導入Eclipse后拋出UnsupportedConfigurationException異常
- 為Eclipse安裝Gradle環境
- Eclipse配置顯示工具窗口
- 用Eclipse手工執行Gradle指令
- 回答問題
- 看云使用小記