SuperAPI AI 工具集

erpnext-syntax-serverscripts

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:在 ERPNext/Frappe 中编写 Server Scripts(Python 脚本),脚本运行于 Frappe 安全沙箱,通过 Setup → Server Script 管理。

主要能力与脚本类型:Document Event(响应文档生命周期,如保存、提交、取消);API(自定义 REST 端点,路径为 /api/method/{name});Scheduler Event(按 Cron 计划执行任务);Permission Query(按用户/角色过滤文档列表视图)。

关键限制:沙箱禁止所有 import 语句,例如 import json 会报 ImportError: import not found。应改用 Frappe 预加载命名空间,如 frappe.utils.nowdate()、frappe.parse_json(data)。

事件名映射:UI 名称与内部 hook 不同,例如 Before Save 对应 validate,After Save 对应 on_update,Before Submit 对应 before_submit,After Submit 对应 on_submit,Before Cancel 对应 before_cancel,After Cancel 对应 on_cancel,Before Delete 对应 on_trash,After Delete 对应 after_delete。

可用 API:文档事件中可用 doc(含 doc.name、doc.doctype、doc.get()、doc.items 等);frappe 命名空间提供 frappe.db、frappe.get_doc()、frappe.get_all()、frappe.throw()、frappe.msgprint()、frappe.log_error()、frappe.utils.*、frappe.session.user;API 脚本中可用 frappe.form_dict 与 frappe.response。

用法要点:文档事件脚本按配置的 DocType 与事件触发;API 脚本需配置 API Method 与 Allow Guest,通过 /api/method/{name} 访问;定时任务配置 Cron 表达式;权限查询输出用于 WHERE 子句的 conditions 字符串。

版本与启用:Frappe v14+ 完整支持 Server Scripts,需执行 bench --site [site] set-config server_script_enabled true 启用;v15 语法无重大变化。

适用场景:需要在 ERPNext 中做校验、自动化、接口扩展或数据权限控制时。限制:沙箱环境不可导入外部模块,具体可用方法以官方资料为准;本资料未提供收费、价格与平台信息。