SuperAPI AI 工具集

frappe-syntax-serverscripts

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:在 Frappe/ERPNext 中通过 UI 的 Setup > Server Script 编写 Python 脚本时提供语法与规则参考,覆盖文档事件、API 端点、定时任务与权限查询等类型。

主要能力与规则:脚本运行在 RestrictedPython 沙箱中,所有 import 语句被阻止(包括 import frappe),需改用预加载的 frappe 命名空间,如 frappe.parse_json、frappe.utils.today、frappe.make_get_request 等;正则、os、sys 等不可用。文档事件需注意 UI 名称与内部钩子映射,例如“Before Save”对应 validate 钩子。可用对象包括 doc、frappe.db、frappe.utils、frappe.session、frappe.form_dict、frappe.response 等,并提供 get_all/get_list/db.get_value、frappe.throw、msgprint、log_error、sendmail 等方法。

使用方式:v14 默认启用 Server Scripts;v15+ 默认禁用,需执行 bench set-config -g server_script_enabled 1 或在 site_config.json 中设置 server_script_enabled: true。共享 Frappe Cloud 环境不支持,需私有 bench。定时脚本末尾须 frappe.db.commit(),文档事件脚本不要手动提交,也不要在 Before Save 中调用 doc.save(),SQL 使用参数化查询。

适用场景与限制:适合仅通过 UI 操作的简单校验、字段计算、快速 API 与动态权限过滤;逻辑超过约 50 行或需外部库、文件系统访问时建议改用自定义应用中的 Document Controller。资料未提供收费、价格、平台效果等信息。