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:
吴让宇
2026-09-11 01:52:35 +08:00
parent d0d65db137
commit 53ea2d854d
6 changed files with 69 additions and 13 deletions
+13
View File
@@ -218,5 +218,18 @@ class TestCmdInfoSupplement(unittest.TestCase):
self.assertIn("(未指定)", printed)
class TestTransportRequestSql(unittest.TestCase):
def test_uses_in_not_equals(self):
from sapcli.commands.crud import _query_transport_request
client = _make_client()
client.query_table_data.return_value = {"rows": []}
_query_transport_request(client, "class", "ZCL_MM_BIP_TYPES")
sql = client.query_table_data.call_args[0][0]
self.assertIn("IN ('R3TR')", sql)
self.assertIn("IN ('CLAS')", sql)
self.assertIn("IN ('ZCL_MM_BIP_TYPES')", sql)
self.assertNotIn("=", sql)
if __name__ == "__main__":
unittest.main()