Oinone
产品
Oinone
Oinone Framework
100% 元数据驱动的企业级低代码框架
Aino
Aino
AI Innovation, Now I Know — 企业级智能体平台
用户案例价格社区
资源
📖
文档
开发文档与 API
💬
支持
技术支持
📄
更新日志
产品更新日志
🏡
关于
关于我们
0571-88757863

章节 13:模块间相互作用(Interact With Other Modules)


在上一章中,我们运用继承的方式修改了一个模块的行为。在我们的费用管理业务场景里,我们希望能够更进一步,实现为客户自动生成财务凭证的功能。假设我们基于 Oinone 再开发了一个会计模块,所以要是能直接从我们的费用管理模块中创建会计凭证那就太棒了,也就是说,一旦报销单的状态被设置为 “已生效”,就在会计应用程序中自动生成对应的会计凭证。

一、Link模块

参考:与此主题相关的文档可在 “Module API” 中找到。

目标:在本节结束时

  1. 新增 "account(会计)" 与 "expenses_account" 两个模块。通过将 expenses_account 模块的 application 属性设置为 false,实现其在 AppFinder 中隐藏,仅展示 account 会计模块。
  2. 重写 expenses.ExpenseBill 模型 “接受” 操作逻辑,触发时自动生成会计凭证。

每当我们与其他模块进行交互时,都需要牢记 Oinone 的模块化特性。假设,你同时做了费用管理模块和会计模块。如果我们打算将应用程序出售给企业客户,有些客户可能会需要将费用数据传递给会计系统进行财务处理,生成相应的会计凭证。而有些则可能不需要。 对于这类使用场景,常见的做法是创建一个 “链接” 模块。在我们的例子中,这个模块将依赖于 expenses(费用管理)模块和 account(会计)模块,并包含费用管理中针对报销单创建会计凭证逻辑。通过这种方式,费用管理模块和会计模块可以独立安装。当两个模块都安装后,再安装链接模块就会提供新的功能。

练习(Exercise)

  1. 创建 account 模块
  2. 创建一个链接模块: 创建 expenses_account 模块,application 属性设置为 false ,且依赖增加于 expenses 和 account 模块。

提示:你在本教程开头已经做过类似的操作,过程非常相似。

  1. 给 account 模块,增加一个凭证 account.Voucher 模型,增加四个字段:摘要(summary)、科目(subject)、借贷方向(debitOrCredit)、金额(amount)。
  2. 为account 模型创建菜单“凭证管理”绑定account.Voucher 模型。
  3. 于 expenses_account 模块中,对 expenses.ExpenseBill 模型的 “接受” 操作逻辑予以重写,实现操作触发时自动生成会计凭证。

警告

各个模块的包路径,不能包含相同的包路径,否则会导致元数据加载出问题。所以如链接模块expenses_account 它的包路径建议以link开头如:pro.shushi.oinone.trutorials.link.expenses.account

本章可能是到目前为止所涵盖的最困难的章节之一,但它最接近 Oinone 实际开发中的情况。

编辑此页
最近更新:2026/1/14 08:45
上一页
章节 12:继承(Inheritance)
下一页
章节 14:产品的个性化开发(Customized Features)
默认页脚
Copyright © 2026 Mr.Hope