跳轉到內容

ERP5 手冊/入門

來自華夏公益教科書,為開放世界提供開放書籍

待辦事項:需要專家校對和擴充套件。

Clipboard

待辦事項
我們需要分開介紹一般意義上的 ERP(這是一個相當長的主題:ERP 定義、涵蓋範圍、簡要的歷史介紹以及一些參考資料的連結)和 ERP5。


ERP 代表企業資源規劃

(FIXME:"ERP 系統" 做了什麼?你能用一句話概括嗎?)

(FIXME:什麼樣的人會使用 ERP?)

(FIXME:改寫這令人費解的英語...)

關於 ERP 系統的幾句話

[編輯 | 編輯原始碼]

基本理念

[編輯 | 編輯原始碼]

ERP 系統相當複雜 - 它們必須儘可能地實現公司的業務邏輯。ERP5 與其他 ERP 系統(開源和閉源)的區別在於其從最低 - 理論 - 層面的連貫性。它基於一個完善的理論模型,要理解 ERP5 的關鍵概念,就需要簡要地理解這個模型。當然,也需要對技術方面有基本的瞭解。

五類 - 簡介

[編輯 | 編輯原始碼]

ERP5 定義了業務管理的抽象模型。得益於乾淨的抽象層,可以以一致的方式實現新的或專門的業務模組。這種抽象的業務模型既可以用於表示內部管理活動,也可以用於表示跨公司群體的商業和管理活動。

ERP5 抽象模型基於 5 類

  • 資源:資源描述了業務流程中的抽象資源(例如,個人的技能、貨幣、原材料、產品)。節點之間的關係允許定義 BOM(基本物件模型)以及原型。
  • 節點:節點是一個可以接收資源量併發送資源量的地方。節點可以與物理實體相關聯(例如,接收原材料、加工併發送原材料的工廠)或抽象實體(例如,可以接收資金的銀行賬戶)。庫存是一種節點。元節點是包含其他節點的節點。公司是一個元節點。專案既是資源又是節點。
  • 移動:移動描述了在給定時間和給定持續時間內資源量在兩個節點之間移動。例如,移動可以將原材料從庫存傳送到工廠,另一個移動可以將資金從一個賬戶傳送到另一個賬戶。
  • 路徑:路徑允許定義節點訪問其最終可能需要的資源的方式。價格和商業配置檔案可以附加到路徑,以定義從給定製造商處採購的給定資源的預設價格。路徑還可以定義工廠從庫存獲取資源的方式。路徑有開始日期和結束日期。路徑可以用來表示個人分配給臨時專案的分配。
  • 專案:專案描述了資源的物理例項。移動可以擴充套件為一系列可追蹤的專案移動。專案還可以定義如何實際運送給定數量的資源(例如,包裹、每個集裝箱中物品的序列號等)。

這五類足以代表從化工廠到製造、貿易或服務的各種業務,並且可以模擬組織中發生的一切。例如

  • 銷售商品是指以給定價格(路徑)將一定數量的產品(資源)從我們的公司(節點)移動到買方(節點)。
  • 會計分錄是指在兩個賬戶(節點)之間移動一些資金(資源)。
  • 電話是員工時間(資源)在兩個通話者之間的移動。
  • 培訓是指從無處(意外!)到受訓者的技能(資源)的移動。

這聽起來很抽象,但這也正是它如此強大的原因......

用這種方式對現實進行建模,我們使用相同的屬性來描述非常不同的東西:每個移動都有其源和目的地,以及一些變化(例如,在銷售交易中,源是貨物出貨的物理位置,而源部分是銷售貨物的擁有者)。我們可以使用標準的、最佳化的 API 來計算結果。

關鍵問題始終是:我們有多少(這或那)。在這個模型中,節點並沒有真正的“內容”;當我們想知道倉庫中有多少貨物,或者賬戶上有多少金額,或者我們的支援人員花多少時間接聽電話時,我們會將所有傳入和傳出節點的移動量加起來。為此,我們使用一個標準的“getInventory”方法,它可以滿足所有這類目的。

模擬模型

[編輯 | 編輯原始碼]

模擬功能是 ERP5 最強大的功能之一,儘管它們完全隱藏在使用者面前。其理念是,那些應該對未來產生影響 - 或者換句話說,那些將導致其他移動的移動 - 會配備所謂的“規則”,這些規則用於生成“模擬移動”,而模擬移動又可以有自己的規則並生成進一步的模擬移動,從而“模擬”我們業務的未來。當未來變成現在,是時候建立真正的移動時,我們使用模擬移動來檢查什麼,多少,為誰等等。

最好用一個例子來解釋:如果我們接受銷售訂單,我們知道我們遲早會發貨;一旦發貨,我們就會想要開票;一旦開票,我們就會收到貨款。因此,銷售訂單被分解成幾行,每行代表一種產品的交付,每行都會生成一個代表發貨的模擬移動。發貨然後生成模擬的發票行,等等。

這樣做的益處是雙重的

  • 一旦我們接受了訂單,我們就可以直接從系統中獲得財務預測。
  • 當我們開始打包時,我們可以以任何我們喜歡的方式彙總訂單 - 我們不必按訂單打包,而是可以為每條產品線生成一個單獨的打包清單,或者將同一個客戶的所有訂單合併到一個大的清單中,甚至可以同時進行 - 例如,為同一個客戶在上個月訂購的相同產品線的產品建立單獨的打包清單。關鍵是為我們的 ERP5 配備適當配置的“構建器”來完成這項工作。

MySQL 和 ZODB 之間的關聯

[編輯 | 編輯原始碼]

在 ERP5 中,所有物件都被放入 ZODB(Zope 物件資料庫)中,並且它們在 SQL 資料庫(在 MySQL RDBMS 上執行)中被索引。這種做法可以實現快速的物件搜尋和訪問,另一方面也可以方便地操作物件。

使用者介面 - 列表框,檢視

[編輯 | 編輯原始碼]

報告和列印

[編輯 | 編輯原始碼]

報表允許使用者生成模組中儲存資料的摘要和規範。報表可以以兩種形式生成:OpenOffice.org 文件PDF 表格

表單上顯示圖示的位置。

報表與特定模組相關聯。如果該模組定義了任何報表,則在標準模組視圖表單上,在包含該模組資料的列表框中,報表圖示將出現在工具欄中。(如果沒有資料,圖示仍然會顯示 :))

雖然報表以這種方式與模組相關聯,並且人們期望找到與模組相關的資料,但實際上它們可能包含任何型別的資料。

建立報表的詳細指南可以在 ERP5 Wiki 頁面上找到,包括 OpenOffice 報表PDF 報表。 還有一個關於 如何將建立的報表新增到 ERP5 站點 的指南。

後臺程序呼叫 - CMFActivity 系統

[編輯 | 編輯原始碼]

ERP 系統邏輯可能非常複雜 - 任何指令碼都可以附加到系統中的任何物件。在負載過重的系統上,伺服器資源可能會過載。這種方法的優勢在於,顧問或應用程式管理員可能希望能夠逐個設定一些指令碼,或者選擇一些特殊條件,這些條件將在呼叫某些操作之前發生。

ERP5 提供了一個內建的後臺程序呼叫系統,稱為CMFActivity。藉助此係統,可以優先處理資源密集型任務並將其放到後臺。它們將以任何所需的順序,一次一個地被呼叫,這樣機器的資源就不會被過度使用。在呼叫這些任務後,在與該物件直接相關的物件的介面上會出現一個圖示,通知使用者該物件正在等待一個待處理的活動進行處理。

在配置正確的系統上,CMFActivity可以傳送有關任務失敗的訊息。開發人員和顧問能夠附加一個特殊的控制檯(從 Zope,甚至從系統 shell)來觀察、取消或強制執行活動。

從技術意義上講,每個放入活動的 tasks 都是 SQL 表中的一行。這裡描述了每個物件的活動將執行什麼,活動是什麼以及其他屬性。CMFActivity支援任務佇列的叢集和負載均衡。

關於深入的後臺程序呼叫的描述,請參見 ERP5 wiki 頁面 HowToUseTheCmfActivityTool.

ERP5 系統基於類別,用於定義系統中物件的分類和描述性關係。

類別可以透過 Zope 介面訪問和配置。為此,請訪問

[your_site]/portal_categories

(使用者“zope”可以從左上角的“我的收藏夾”下拉選單中訪問)

你會看到一個很長的“基本類別”列表。點選其中的任何一個,你會看到它有很多欄位,你目前不需要了解它們。在“操作”下拉選單下,有一個選項可以建立子類別。然後可以建立子子類別,併為每個子子類別建立子子子類別,以此類推,無限迴圈

一些基本類別(地區、站點、組、職能、技能……)用於分類,因此您可以在其中構建樹結構;另一些(來源、目的地、從屬關係……)用於設定物件之間的關係,它們不需要任何子類別。

系統使用特殊的訪問器訪問類別,這使得類別可翻譯。

分類使用

[編輯 | 編輯原始碼]

透過在給定的基本類別中定義樹結構,顧問可以設定所需的深度的分類。分類類別的例子有

  • 地區 - 用於說明人員居住地或組織的總部所在地
  • 技能 - 用於說明誰可以做什麼
  • 數量單位 - 用於定義資源的數量單位
  • 交付方式 - 用於描述訂單的運輸方式
  • 間隙 - 用於一般會計計劃

ERP5 中這種類別機制的妙處在於,您可以根據自己的需要將一個物件分配給一個或多個類別,並且“類別成員資格”的概念一直延伸到基本類別樹的頂端(這意味著,如果一個物件屬於類別“a/b/c”,那麼它也屬於類別“a/b”和“a”。這樣,您可以設定一個類別樹

skill/dance
skill/dance/latino
skill/dance/latino/samba
skill/dance/latino/salsa
skill/dance/latino/rumba
skill/dance/classic
skill/dance/classic/waltz
skill/dance/classic/tango
skill/dance/ballet
skill/coding/c

然後將人員分配到類別

Joan
skill/dance/latino/samba
skill/dance/classic/tango
Mary
skill/dance/latino
Paul
skill/dance/ballet
Peter
skill/coding/c

現在,如果您詢問系統誰可以跳桑巴舞 - 您會得到 Joan,拉丁美洲 - 您會得到 Mary 和 Joan,古典/探戈 - Joan,古典 - Joan 也是;詢問誰可以跳任何舞 - 您會得到 Mary、Joan 和 Paul;如果您想知道誰完全不會跳舞,您也可以得到答案。所有這些都是透過使用自動生成的訪問器方法完成的,無需任何麻煩。

要檢視實際效果,請轉到“人員”模組並開啟該模組列表框的“域樹”模式;從下拉列表中選擇“技能”,然後您可以瀏覽您的舞蹈資源。

如果您計劃開辦舞蹈學校,那麼該系統非常適合您。

請檢視 瞭解列表框 部分,瞭解更多詳細資訊和一些螢幕截圖。

關係使用

[編輯 | 編輯原始碼]

與分類使用相反,一些類別用於關係系統。假設我們有一個組織物件ACME和一個銷售訂單物件SO-1。我們可以使用來源類別來定義SO-1ACME之間的關係。銷售系統是這樣實現的,來源類別意味著商品將從ACME傳送。

最常用的關係類別有

  • 來源
  • 來源部分
  • 目的地
  • 目的地部分
  • 父級

有關使用關係的詳細說明,請參見此處:http://wiki.erp5.org/HowToConfigureRelationField

TODO: How reader shall identify distinction between categories in portal_categories?

工作流程

[編輯 | 編輯原始碼]

一般介紹

[編輯 | 編輯原始碼]

工作流程是 ERP5 的關鍵概念之一。它們在所有地方使用,用於所有事情。它們之所以如此重要,是因為工作流程代表一個流程 - 而業務中完成的所有事情都是流程。工作流程可以表示任何流程,例如,編輯和釋出文章、招聘人員、接收和處理銷售訂單、記賬等。

  • 狀態和轉換

當一個物件由工作流程管理時,這意味著它受此工作流程代表的流程的約束。一個流程由一些狀態狀態之間轉換組成,可以用圖形很好地表示出來,其中方框表示狀態,箭頭表示轉換。工作流程有一個初始狀態,物件在建立時就會進入這個狀態。如果進行了轉換,它會將狀態更改為該轉換的目標狀態。然後可以進行另一次轉換,以此類推,直到物件到達沒有更多轉換的狀態。

ERP5 標準介面在主表單中顯示物件的“工作流程狀態”,並在“操作”下拉列表中顯示可用的轉換。

  • 安全性

工作流程執行的一個重要操作是管理物件的訪問許可權。例如,處於“草稿”狀態的文章應該只對作者(讀寫)可見,而“已釋出”的文章應該對所有人可見,但不能由任何人編輯。可以為每個工作流程狀態分別定義和設定訪問許可權。

  • 條件

轉換隻能對在系統中具有某些許可權的使用者可用 - 例如,您必須是“主編”才能釋出文章。如果您不是,那麼您的操作框中將不會出現“釋出”操作。轉換也可以依賴於其他物件屬性 - 只有包含一些文字的文章才能提交發表,只有當貸方和借方相等時,記賬條目才能確認。

  • 副作用

工作流程轉換可以有“副作用” - 在進行轉換時要執行的操作。按照我們的釋出工作流程,當文件被髮布時,系統可以向所有訂閱者傳送電子郵件通知。一個更面向業務的例子是,當確認銷售訂單時,系統會生成一張計劃發票。

  • 互動工作流程

這是一種不同型別的流程 - 它沒有狀態,也沒有轉換。相反,它有“互動”,當對物件執行某個操作時觸發。互動式流程基本上是實現副作用更乾淨、更便攜的方式 - 如果我們希望在釋出文件時傳送通知,可以透過調整發布流程來實現,但我們也可以新增一個互動式流程,並將其中的“傳送通知”互動與釋出流程的“釋出”操作掛鉤。

  • 編輯流程

這是一個特殊流程,它與 ERP5 中幾乎所有物件都掛鉤。它比較獨特,因為它只有一個狀態 - “當前” - 以及一個返回到同一狀態的轉換。每次編輯物件時都會執行此轉換;該流程的唯一目的是記錄物件的更改歷史。

如何實現

[編輯 | 編輯原始碼]

有關詳細說明和技術資訊,請參見 http://wiki.erp5.org/HowToUseAndDefineWorkflows

安全介紹

[編輯 | 編輯原始碼]

請參考這篇文章

http://wiki.erp5.org/HowToDesignSecurity

瞭解有關如何為 ERP5 應用程式設計安全性的指南,並參考此

http://wiki.erp5.org/HowTo/HowToUseNewSecurity

瞭解如何實現。

五個類 - 擴充套件

[編輯 | 編輯原始碼]
華夏公益教科書