ERP5 手冊/ERP5 特定的 Zope 工具
關於 ERP5 特定的 Zope 工具的通用描述應該在這裡。
portal_activities(又名 CMF Activity Tool)的理念在以下部分描述
維基上很好地描述了它的使用方法
http://wiki.erp5.org/HowToUseTheCmfActivityTool
因此這裡沒什麼好補充的。
用於索引物件、物件之間的關係、安全資訊和其他一些經常使用的資料,以允許快速訪問、搜尋和排序。
當您對物件呼叫 .reindexObject 時,該物件就會被記錄在目錄中。此方法會在每次編輯時自動呼叫(從技術上講,每個 setter - 一個 setThisProperty 方法 - 會觸發重新索引;如果您編寫了一個要設定許多屬性的指令碼,最好使用 _setThisProperty,它不會重新索引,然後呼叫 reindexObject;或者更簡潔地呼叫 edit(property1 = value, property2 = value2),它會在設定完所有給定的屬性後重新索引一次)。
portal_catalog 的基本用法在此處描述
http://wiki.erp5.org/HowToSearchPortalCatalog
TODO: advanced usage (I do not know enough...)
在實現 ERP5 時,幾乎不需要調整目錄;這裡解釋了一些技巧
http://wiki.erp5.org/HowToCreateRelatedKeys
http://wiki.erp5.org/HowToAddTableToCatalog
TODO: check if related keys are not deprecated
類別理念和使用在以下位置描述
可以新增基本類別而沒有任何限制(雖然始終建議您思考一下,也許現有的類別可以完成任務)。類別在 MySQL 中索引;重要的是,類別成員資格和物件之間的關係也被索引,因此資料模型可以擴充套件而不會帶來太多開銷。
可以透過屬性表或簡單地在 portal_types 工具中透過 ZMI 將基本類別分配給門戶型別。如果一個物件具有給定的基本類別,它就擁有所有自動生成的訪問器(setXXX、getXXX、setXXXList、getXXXlist)。
類別擁有豐富的 API;最常用的方法是
.getCategoryChildLogicalPathItemList
遞迴地返回所有子類別作為對,適合填充下拉選單或 ListField;
.getCategoryChildTranslatedLogicalPathItemList
相同,但已翻譯;
.getCategoryMemberValueList
返回所有分類到該類別或其任何直接或間接子類別中的物件(這包括子類別本身,但您可以為其提供 portal_type 引數)。
從另一端來看,每個 ERP5 物件(例如一個人)都有一個方法
.isMemberOf
如果物件屬於給定類別或其任何直接或間接子類別,則返回 True。例如,如果一個人具有以下職能:“銷售/零售/專家”,那麼
.isMemberOf("function/sales") == True.
基本類別有一個豐富的使用者介面,其中包含許多神秘的選項,其中大多數與可程式設計獲取相關,這裡對此進行了解釋:http://wiki.erp5.org/HowToUseProgrammableAcquisition
這是一個多功能工具,可以吞噬(或者如果你願意的話,可以吸收)你扔進它的任何東西,猜測它是什麼,找到合適的地方放它,分析它並設定它的各種屬性。
更具體地說:您呼叫 portal_contributions.newContent 方法,為其提供一些資料(例如上傳的檔案)或 url,以及其他可選的許多內容(請參閱該方法的文件字串,它非常好)。然後,該工具會
- 使用 WebDAV 機制找出內容的門戶型別(它使用 content_type_registry,因此這是設定它的位置)
- 呼叫 ZMI 指令碼
- [Type]_getPropertyDictFromFilename
- [Type]_getPropertyDictFromContent
找出物件的屬性,如果它得到任何屬性,則將其設定在物件上;這些指令碼基於型別,因此例如,如果物件被識別為電子表格,該工具會查詢名為 “Spreadsheet_getPropertyDictFromFilename” 的指令碼,如果找不到,則會呼叫一個通用指令碼 “Document_getPropertyDictFromFilename”。
這些指令碼應返回從檔名和內容派生的屬性字典;它們也可以返回門戶型別,並且最終將應用此門戶型別,因此您可以在檔名中編碼內容型別。
- 找出放置內容的正確模組
- 將內容放置在正確的模組中
貢獻工具主要由 DMS 模組用於吸收透過 Web 介面上傳、透過電子郵件傳送或透過 WebDAV 拖放的文件。在不久的將來,它也可以用於接收和吸收電子郵件。
關於 portal_rules 的通用描述應該在這裡。
此規則由構建器在確認銷售發票交易後使用,以建立會計交易行。您需要建立一個規則矩陣,該矩陣將用於生成預定義的會計交易行。
如果您需要定義會計系統,那麼此規則正是您需要的。它的定義將根據謂詞建立正確的會計變動。
在 portal_rules 工具中開始建立新的發票交易規則,為其提供一個Id,然後按照以下步驟進行示例解釋。
新增謂詞後,將顯示謂詞螢幕。設定描述性標題,它將用作矩陣列或行標題。設定成員資格條件後,您將能夠設定一些成員資格值。
謂詞按一個共同的維度進行分組,因此請謹慎設定它。
請記住,可以為某種型別的物件構造謂詞。在會計方面,您可能希望為銷售和購買建立單獨的謂詞。要實現這一點,請使用Movement_explanationPortalTypeIsPurchase 填充測試方法 ID 欄位,用於購買補丁,使用Movement_explanationPortalTypeIsSale 填充測試方法 ID 欄位,用於銷售補丁。
當您的矩陣準備就緒後,您可以開始編輯會計交易行的模板。要測試它,請確認處於計劃狀態的銷售發票交易,並觀察會計交易行物件是如何建立和填充的。
不要忘記使用正確的帳戶填充源和目標檢視。在此之前,系統將無法生成正確的模擬。
此示例取自現實世界情況 - 波蘭的貿易商。要求是定義區域類別,至少 3 個不同的區域 - 波蘭、歐盟和世界其他地區。示例區域樹是
- region/africa
- region/asia
- region/europe
- region/europe/eu
- region/europe/eu/bg
- region/europe/eu/de
- region/europe/eu/fr
- region/europe/eu/ie
- region/europe/eu/pl (是的,這是波蘭)
- region/europe/eu/uk
- region/europe/non-eu/ua
- region/north_america
- region/south_america
在您的發票交易規則中建立謂詞
- 用於從波蘭購買
- 標題:從波蘭購買
- 維度:region
- 測試方法 ID:Movement_explanationPortalTypeIsPurchase
- 成員資格條件:source_region
- 成員資格值:僅 source_region/europe/eu/pl
- 用於從歐盟購買
- 標題:從歐盟進口
- 維度:region
- 測試方法 ID:Movement_explanationPortalTypeIsPurchase
- 成員資格條件:source_region
- 成員資格值:source_region/europe/eu 中的所有內容,不包括 source_region/europe/eu/pl 和 source_region/europe/eu
- 用於從世界其他地區購買
- 標題:從歐盟以外進口
- 維度:region
- 測試方法 ID:Movement_explanationPortalTypeIsPurchase
- 成員資格條件:source_region
- 成員值:source_region 中的所有內容,但不包括 source_region/europe/eu 及其以下內容
- 銷往波蘭
- 標題:銷往波蘭
- 維度:region
- 測試方法 ID:Movement_explanationPortalTypeIsSale
- 成員標準:destination_region
- 成員值:destination_region/europe/eu/poland
- 銷往歐盟
- 標題:出口到歐盟
- 維度:region
- 測試方法 ID:Movement_explanationPortalTypeIsSale
- 成員標準:destination_region
- 成員值:destination_region/europe/eu 中的所有內容,但不包括 destination_region/europe/eu/pl 和 destination_region/europe/eu
- 銷往世界其他地區
- 標題:出口到歐盟以外地區
- 維度:region
- 測試方法 ID:Movement_explanationPortalTypeIsSale
- 成員標準:destination_region
- 成員值:destination_region 中的所有內容,但不包括 destination_region/europe/eu 及其以下內容
現在使用建立的會計規則單元格進行操作,然後建立一些訂單 - 銷售和採購,透過訂購或計劃擴充套件它們,並檢查模擬(例如,透過使用 Base_viewSimulationTree)。當然,您也可以進一步建立一些發票。
注意:以上配置僅用於示例目的。