I have a SAP SOAP interface that I want to be able to store in the database.Can be parsed successfully but cannot be stored in the database smoothly.Plese help
import requests
import pyodbc
import xml.etree.ElementTree as ET
headers = {
'Accept-Encoding': 'gzip,deflate',
'Content-Type': 'text/xml;charset=UTF-8',
'SOAPAction': 'urn:sap-com:document:sap:soap:functions:mc-style:Z_cE01_SALES_INFO:Zce01SalesInfoRequest',
'Host': 'XX.XX.XX.XX:XXXX',
'Connection': 'Keep-Alive',
'User-Agent': 'Apache-HttpClient/4.5.5 (Java/16.0.2)'
}
xml_body = '''
<soapenv:Header/>
<soapenv:Body>
<urn:cPe01SalesInfo>
<EsKhjq1>
<item>
<DatumFrom>2024-05-01</DatumFrom>
<DatumTo>2024-05-30</DatumTo>
</item>
</EsKhjq1>
<EsKhjq2>
<item>
<DatumFrom></DatumFrom>
<DatumTo></DatumTo>
</item>
</EsKhjq2>
<EsKhjq3>
<item>
<DatumFrom></DatumFrom>
<DatumTo></DatumTo>
</item>
</EsKhjq3>
<EsKhjq4>
<item>
<DatumFrom></DatumFrom>
<DatumTo></DatumTo>
</item>
</EsKhjq4>
<EsWadat>
<item>
<DatumFrom></DatumFrom>
<DatumTo></DatumTo>
</item>
</EsWadat>
<EsYcqj>
<item>
<DatumFrom></DatumFrom>
<DatumTo></DatumTo>
</item>
</EsYcqj>
<EtResult>
<item>
<Sort></Sort>
<Period></Period>
<Prctr></Prctr>
<Vkgrp></Vkgrp>
<Ktext></Ktext>
<Bezei></Bezei>
<Yye></Yye>
<Szje></Szje>
<Wjsze></Wjsze>
<Syyce></Syyce>
<Wzpyy></Wzpyy>
<Wzpsz></Wzpsz>
<Sosze></Sosze>
<SumKwmeng></SumKwmeng>
<SumLfimg></SumLfimg>
<ReturnValue></ReturnValue>
</item>
</EtResult>
<IvBukrs>AE01</IvBukrs>
<IvDcmb></IvDcmb>
<IvMimmb></IvMimmb>
<IvWxmb></IvWxmb>
<IvZlmb></IvZlmb>
</urn:Zce01SalesInfo>
</soapenv:Body>
</soapenv:Envelope>
'''
if response.status_code == 200:
root = ET.fromstring(response.text)
data = []
for item in root.findall('.//{urn:sap-com:document:sap:soap:functions:mc-style}item'😞
sort = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Sort').text
period = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Period').text
prctr = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Prctr').text
vkgrp = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Vkgrp').text
ktext = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Ktext').text
bezei = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Bezei').text
yye = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Yye').text
szje = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Szje').text
wjsze = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Wjsze').text
syyce = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Syyce').text
wzpyy = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Wzpyy').text
wzpsz = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Wzpsz').text
sosze = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}Sosze').text
sumKwmeng = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}SumKwmeng').text
sumLfimg = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}SumLfimg').text
returnValue = item.find('{urn:sap-com:document:sap:soap:functions:mc-style}ReturnValue').text
data.append((sort, period, prctr, vkgrp, ktext, bezei, yye, szje, wjsze, syyce, wzpyy, wzpsz, sosze, sumKwmeng, sumLfimg, returnValue))
print("print:")
for row in data:
print(row)
print(response.text)
if data:
conn_str = (
'DRIVER={SQL Server};'
'SERVER=XX.XX.XX.XX;'
'DATABASE=test;'
'UID=user;'
'PWD=XXXXXXXX;'
)
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
insert_sql = '''
INSERT INTO test_20240515 (Sort, Period, Prctr, Vkgrp, Ktext, Bezei, Yye, Szje, Wjsze, Syyce, Wzpyy, Wzpsz, Sosze, SumKwmeng, SumLfimg, ReturnValue)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
'''
cursor.executemany(insert_sql, data)
conn.commit()
cursor.close()
conn.close()
print("completeTABLE test_20240515")
else:
print("nodata")
else:
print(f"error!HTTPcode:{response.status_code}")
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.