用途:为 Frappe Framework v15 设计并实现服务层类,把业务逻辑从控制器和数据访问中分离出来,协调多个 DocType 的操作,并提供可复用的业务接口。触发词包括 create service、add service layer 等。
主要能力:按 CRUD、工作流、集成、编排、批量等模式生成服务类;提供 require_permission、with_transaction、log_operation 等装饰器;支持创建、更新、提交、取消、工作流处理、金额计算、批量操作与统计查询;通过仓储层访问数据,并预留创建后、提交后、取消后的钩子。
使用方式:命令为 /frappe-service <service_name> [--doctype <doctype>] [--operations <op1,op2>],例如 /frappe-service OrderProcessing --doctype "Sales Order"、/frappe-service InventoryManagement --operations allocate,release,transfer、/frappe-service PaymentGateway。生成文件路径为 <app>/<module>/services/<service_name>.py,类继承 BaseService,并引用对应仓储。
适用场景:复杂业务逻辑、跨 DocType 协调、可复用业务操作、控制器与数据访问解耦、事务感知操作。
限制:资料未提供安装方式、收费、价格、平台支持与效果数据;具体实现需结合项目中的 BaseService、仓储与 DocType 结构,示例代码中的占位符需替换。