跳转到内容

ERP5 手册/ERP5 特定的 Zope 工具

来自 Wikibooks,为开放世界提供开放书籍

关于 ERP5 特定的 Zope 工具的通用描述应该在这里。

portal_activities

[编辑 | 编辑源代码]

portal_activities(又名 CMF Activity Tool)的理念在以下部分描述

后台进程调用 - CMFActivity 系统

维基上很好地描述了它的使用方法

http://wiki.erp5.org/HowToUseTheCmfActivityTool

因此这里没什么好补充的。

portal_catalog

[编辑 | 编辑源代码]

用于索引对象、对象之间的关系、安全信息和其他一些经常使用的数据,以允许快速访问、搜索和排序。

当您对对象调用 .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

portal_categories

[编辑 | 编辑源代码]

类别理念和使用在以下位置描述

类别

可以添加基本类别而没有任何限制(虽然始终建议您思考一下,也许现有的类别可以完成任务)。类别在 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

[编辑 | 编辑源代码]

这是一个多功能工具,可以吞噬(或者如果你愿意的话,可以吸收)你扔进它的任何东西,猜测它是什么,找到合适的地方放它,分析它并设置它的各种属性。

更具体地说:您调用 portal_contributions.newContent 方法,为其提供一些数据(例如上传的文件)或 url,以及其他可选的许多内容(请参阅该方法的文档字符串,它非常好)。然后,该工具会

  • 使用 WebDAV 机制找出内容的门户类型(它使用 content_type_registry,因此这是设置它的位置)
  • 调用 ZMI 脚本
    • [Type]_getPropertyDictFromFilename
    • [Type]_getPropertyDictFromContent

找出对象的属性,如果它得到任何属性,则将其设置在对象上;这些脚本基于类型,因此例如,如果对象被识别为电子表格,该工具会查找名为 “Spreadsheet_getPropertyDictFromFilename” 的脚本,如果找不到,则会调用一个通用脚本 “Document_getPropertyDictFromFilename”。

这些脚本应返回从文件名和内容派生的属性字典;它们也可以返回门户类型,并且最终将应用此门户类型,因此您可以在文件名中编码内容类型。

  • 找出放置内容的正确模块
  • 将内容放置在正确的模块中

贡献工具主要由 DMS 模块用于吸收通过 Web 界面上传、通过电子邮件发送或通过 WebDAV 拖放的文档。在不久的将来,它也可以用于接收和吸收电子邮件。

portal_rules

[编辑 | 编辑源代码]

关于 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

在您的发票交易规则中创建谓词

  1. 用于从波兰购买
    • 标题:从波兰购买
    • 维度:region
    • 测试方法 ID:Movement_explanationPortalTypeIsPurchase
    • 成员资格条件:source_region
    • 成员资格值:仅 source_region/europe/eu/pl
  2. 用于从欧盟购买
    • 标题:从欧盟进口
    • 维度:region
    • 测试方法 ID:Movement_explanationPortalTypeIsPurchase
    • 成员资格条件:source_region
    • 成员资格值:source_region/europe/eu 中的所有内容,不包括 source_region/europe/eu/pl 和 source_region/europe/eu
  3. 用于从世界其他地区购买
    • 标题:从欧盟以外进口
    • 维度:region
    • 测试方法 ID:Movement_explanationPortalTypeIsPurchase
    • 成员资格条件:source_region
    • 成员值:source_region 中的所有内容,但不包括 source_region/europe/eu 及其以下内容
  4. 销往波兰
    • 标题:销往波兰
    • 维度:region
    • 测试方法 ID:Movement_explanationPortalTypeIsSale
    • 成员标准:destination_region
    • 成员值:destination_region/europe/eu/poland
  5. 销往欧盟
    • 标题:出口到欧盟
    • 维度:region
    • 测试方法 ID:Movement_explanationPortalTypeIsSale
    • 成员标准:destination_region
    • 成员值:destination_region/europe/eu 中的所有内容,但不包括 destination_region/europe/eu/pl 和 destination_region/europe/eu
  6. 销往世界其他地区
    • 标题:出口到欧盟以外地区
    • 维度:region
    • 测试方法 ID:Movement_explanationPortalTypeIsSale
    • 成员标准:destination_region
    • 成员值:destination_region 中的所有内容,但不包括 destination_region/europe/eu 及其以下内容

现在使用创建的会计规则单元格进行操作,然后创建一些订单 - 销售和采购,通过订购或计划扩展它们,并检查模拟(例如,通过使用 Base_viewSimulationTree)。当然,您也可以进一步创建一些发票。

注意:以上配置仅用于示例目的。

华夏公益教科书