SAP的ERP一直是其他ERP軟件廠商爭相學(xué)習(xí)和模仿的目標(biāo)鲁纠,但是模仿的過程是曲折的澡屡,很多時候只能學(xué)習(xí)其中的一個部分贱纠,或者因為生態(tài)或者運營體系的差異導(dǎo)致根本沒有進行下去耳峦,筆者結(jié)合自己對于SAP產(chǎn)品的理解伊佃,采用由粗到細(xì)窜司,由淺入深的方式對SAP的應(yīng)用架構(gòu)進行剖析。
從總體來看航揉,SAP的企業(yè)管理軟件分為兩個部分塞祈, ERP和LOB應(yīng)用, ERP是企業(yè)產(chǎn)供銷核心應(yīng)用帅涂,也是企業(yè)管理軟件的backbone议薪,用以支持整個公司的運營胀葱;LOB應(yīng)用則是面向銷售,采購笙蒙,供應(yīng)鏈等公司業(yè)務(wù)部分抵屿,是對ERP對應(yīng)模塊的功能擴展。這部分功能最終后ERP的對應(yīng)模塊進行集成捅位。
視角進一步向下進入到ERP部分轧葛,這部分主要分為企業(yè)營運,財務(wù)和人力資源管理三個大的子應(yīng)用艇搀。企業(yè)營運這部分是ERP的核心尿扯,SAP稱為Enterprise Core Component,主要包括: SD焰雕, MM衷笋, PP, LE和QM幾個模塊矩屁;財務(wù)部分包含財務(wù)會計辟宗,管理會計,財務(wù)供應(yīng)鏈管理和司庫管理吝秕;人力資源管理HCM的功能包括HR基本功能(如薪酬泊脐,績效等)HR服務(wù)(員工自助等),HR擴展(在線招聘等功能)烁峭。
我來繼續(xù)來到ECC部分容客,以MM為例,對于一個模塊的功能约郁,SAP應(yīng)用的基本架構(gòu)除了主數(shù)據(jù)外缩挑,業(yè)務(wù)邏輯是Request--》Order---》Task---》Invoice等財務(wù)憑證的邏輯進行設(shè)計。Request部分主要的目的收集各種業(yè)務(wù)的來源鬓梅,提供其他模塊的集成接口供置,然后針對所有的request,業(yè)務(wù)部分從業(yè)務(wù)優(yōu)化和管理優(yōu)化的角度來分拆或者合并創(chuàng)建order己肮,order代表一個一個確認(rèn)需要做的事情的追蹤士袄,order有不同的狀態(tài)悲关,release的order是已經(jīng)ready需要業(yè)務(wù)部門執(zhí)行的谎僻,如果業(yè)務(wù)部分需要細(xì)化Order執(zhí)行的管理,跟根據(jù)一個預(yù)制的模型產(chǎn)生各種Task寓辱,針對task可以進行分配艘绍,跟蹤和確認(rèn)。當(dāng)所有的Task完成就會產(chǎn)生相應(yīng)的財務(wù)憑證來觸發(fā)財務(wù)記賬秫筏。
Request和Order這種對象在SAP系統(tǒng)稱之為Business Object诱鞠,這是從業(yè)務(wù)到技術(shù)實現(xiàn)的一個定義挎挖,借用了面向?qū)ο笤O(shè)計的概念。過去SAP產(chǎn)品內(nèi)部各個模塊采用自己的方式來進行業(yè)務(wù)實現(xiàn)航夺,但是經(jīng)過幾十年的積累和內(nèi)部技術(shù)競爭蕉朵。BOPF這個框架脫穎而出作為SAP內(nèi)部產(chǎn)品進行業(yè)務(wù)實現(xiàn)的統(tǒng)一框架阳掐。BOPF的偉大之處是統(tǒng)一個產(chǎn)品內(nèi)部的業(yè)務(wù)實現(xiàn)方式始衅,規(guī)范業(yè)務(wù)結(jié)構(gòu),統(tǒng)一業(yè)務(wù)功能的劃分和代碼的邏輯組織缭保。根據(jù)BOPF的思想汛闸,一個BO有Header(Root Node),還有其他的Node艺骂,Node之間有Association诸老,Node可以理解為一個子表。業(yè)務(wù)的邏輯定義在Node之上钳恕,業(yè)務(wù)邏輯按照Action别伏, Validation,Determination進行區(qū)分忧额,避免沒有經(jīng)驗的開發(fā)任務(wù)把一大堆代碼堆砌在一個方法里面畸肆,不容易復(fù)用,也可能導(dǎo)致復(fù)雜的業(yè)務(wù)邏輯混亂宙址。BO的狀態(tài)轉(zhuǎn)移通過狀態(tài)機定義Status和Action之間的轉(zhuǎn)移邏輯轴脐,從而保證也業(yè)務(wù)實現(xiàn)的合理性,模塊化抡砂,可以復(fù)用大咱。