fix: list/search quickSearch 参数名修正 + SQL 方言友好报错 + E071 传输请求改 IN
- list_objects: maxrow/name/type 改为 operation=quickSearch/query/maxResults/objectType, 并剥离 NW 7.40/7.50 quickSearch name 里的本地化类型标签(如 "ZCL_FOO (Class)") - query_table_data: HTTP 400 转抛 SapCliError,说明方言限制(WHERE 仅 IN/LIKE),不再打堆栈 - _query_transport_request: E071 查询 WHERE 改用 IN(...),区分「无」与「无法获取」
This commit is contained in:
@@ -6,7 +6,7 @@ import logging
|
||||
import xml.etree.ElementTree as ET
|
||||
from typing import Any
|
||||
|
||||
from sapcli.exceptions import CreateError, DeleteError
|
||||
from sapcli.exceptions import CreateError, DeleteError, SapCliError
|
||||
from sapcli.types import ObjectTypeConfig, get_type_config
|
||||
|
||||
logger = logging.getLogger("sapcli.client")
|
||||
@@ -839,6 +839,12 @@ class DdicMixin:
|
||||
logger.info("QUERY TABLE DATA: POST %s sql=%s maxRows=%d", url, sql[:80], max_rows)
|
||||
resp = self.session.post(url, headers=hdrs, params=params, data=sql.encode("utf-8"))
|
||||
logger.info("QUERY TABLE DATA RESPONSE: HTTP %s", resp.status_code)
|
||||
if resp.status_code == 400:
|
||||
raise SapCliError(
|
||||
"ADT Data Preview 拒绝该 SQL(HTTP 400)。本系统 SQL 方言限制:"
|
||||
"WHERE 只支持 IN(...) / LIKE '...',不支持 '=';SELECT 列表必须逗号分隔。"
|
||||
"请改用 IN / LIKE 重试。"
|
||||
)
|
||||
resp.raise_for_status()
|
||||
|
||||
root = ET.fromstring(resp.content)
|
||||
|
||||
Reference in New Issue
Block a user