From 89deb108b0974609d9920f7562be2c7a54fc0110 Mon Sep 17 00:00:00 2001 From: "byeongwook.choi" Date: Mon, 21 Sep 2026 14:42:03 +0900 Subject: [PATCH] =?UTF-8?q?sap=5Fclient:=20asXML=20=EC=9D=B4=20=EC=95=84?= =?UTF-8?q?=EB=8B=8C=20XML/HTML=20=EC=9D=91=EB=8B=B5(=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=93=B1)=EC=9D=80?= =?UTF-8?q?=20=EC=98=A4=EB=A5=98=EB=A1=9C=20=ED=8C=90=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- sap/sap_client.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sap/sap_client.py b/sap/sap_client.py index 377e9c1..9219424 100644 --- a/sap/sap_client.py +++ b/sap/sap_client.py @@ -124,7 +124,11 @@ def parse_asxml(text: str) -> dict: return out data_el = root.find(".//DATA") - data = coerce_lists(xml_to_data(data_el)) if data_el is not None else {} + if data_el is None: # asXML 이 아닌 XML/HTML (로그인 페이지 등) — 성공으로 오인하지 않게 + out["error"] = f"SAP 응답이 아님 (루트 <{root.tag}>, DATA 없음)" + out["return"] = {"type": "X", "message": out["error"]} + return out + data = coerce_lists(xml_to_data(data_el)) out["parsed"] = data ret = data.get("RETURN") if isinstance(data, dict) else None if isinstance(ret, dict):