v0.4.9
Fixes / 修复
- RFC_RC 常量值与 NWRFC SDK 头文件对齐(
RFC_NOT_FOUND18→17):此前部分错误码会被误判。
RFC_RC constant values aligned with the NWRFC SDK headers (RFC_NOT_FOUND18→17); some return codes were previously misclassified. table_outputs/struct_outputs小写字段名静默返回空值:字段名现在统一按大写匹配(实测修复BAPI_USER_GETLIST小写username读不到值的问题)。
Lowercase field names in table/struct outputs silently returned empty values; field names are now normalized to uppercase.- 非 BMP 字符截断:写入字符串参数的长度改用 UTF-16 码元计数,emoji 等 4 字节 UTF-8 字符不再被截断。
String input length is now measured in UTF-16 code units, so non-BMP characters (emoji, rare CJK) are no longer truncated. function_doc的short_text不再用首个参数的描述冒充函数说明。
short_textno longer falls back to the first parameter's description.
Hardening / 加固
table_outputs/read_return增加输出行数上限(MAX_OUTPUT_ROWS = 10000),防止大结果集 OOM/DoS。
Output rows fromtable_outputs/read_returnare capped at 10,000 rows to prevent OOM/DoS from huge result sets.timeout_secs钳制到[1, 1800]秒,防止恶意长超时长期占用连接池。
Per-requesttimeout_secsis clamped to [1, 1800] seconds to prevent connections being held by abusive timeouts.- 超时与限流 fallback 路径补充告警日志,提升可观测性。
Warning logs added on timeout / rate-limit fallback paths for better observability.
Improvements / 改进
write_outputs按 DDIC 真实类型分派 setter(INT / INT8 / FLOAT / XSTRING)。
write_outputsnow dispatches typed setters by DDIC type (INT / INT8 / FLOAT / XSTRING).auto标量读取使用 metadata 中的真实长度,替代硬编码 255。
autoscalar reads use the metadata length instead of a hardcoded 255..gitignore忽略servers.toml,防止 server 凭据误提交。
servers.tomlis now git-ignored to avoid committing credentials.
Docs / 文档
- 文档与欢迎页中英双语化。
Docs and the welcome page are now bilingual (EN / 简体中文). - 欢迎页补充
/api/table/read端点说明(补 v0.4.8 遗漏)。
Welcome page now documents the/api/table/readendpoint.
Full Changelog: v0.4.8...v0.4.9