View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005115 | OXID ERP Interface | OXID ERP Interface - sub | public | 2013-05-15 09:32 | 2024-09-18 10:36 |
Reporter | martinwegele | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | acknowledged | Resolution | open | ||
Product Version | 2.11.1_54476 | ||||
Summary | 0005115: no error message if the DB-query fails? | ||||
Description | If you add an additional field to the field list (model) in /modules/erp/objects but this field is missing in the database you will not get an error message anywhere. Instead the XML response (if you are using SOAP) looks ok but the requested data is missing: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="OXERPService"> <SOAP-ENV:Body> <ns1:OXERPGetOrderArticleResponse> <ns1:OXERPGetOrderArticleResult> <ns1:OXERPType> <ns1:aResult/> <ns1:blResult>true</ns1:blResult> <ns1:sMessage></ns1:sMessage> </ns1:OXERPType> </ns1:OXERPGetOrderArticleResult> </ns1:OXERPGetOrderArticleResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> | ||||
Steps To Reproduce | 1. Install ERP connector 2. Add a new field to the array in oxerptype_orderarticle.php (be careful about which interface version you are using!) 3. Now do an OXERPGetOrderArticle-request via SOAP: <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:q0="OXERPService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header></soapenv:Header> <soapenv:Body> <q0:OXERPGetOrderArticle> <q0:sSessionID>insert from your login</q0:sSessionID> <q0:sOrderID>insert an existing oxid from an order in your database</q0:sOrderID> <q0:OXERPSort> <q0:sFieldName>OXID</q0:sFieldName> <q0:sType>ASC</q0:sType> </q0:OXERPSort> <q0:iStart>0</q0:iStart> <q0:iCount>999999</q0:iCount> </q0:OXERPGetOrderArticle> </soapenv:Body> </soapenv:Envelope> 4. You will get the above described response (true), but no data will be included in the response. Additionally there will be no error-message in the shop-exception.log | ||||
Additional Information | This behaviour was found in an EE 4.6.2 with ERP connector 2.10.0 but is probably reproduceable with EE 5.0.x and ERP 2.11.1, too, because of the _export() method in oxerpbase.php: $rs = oxDb::getDb( $iFetchMode )->SelectLimit($sSQL, $iCount, $iStart); } else { $rs = oxDb::getDb( $iFetchMode )->Execute($sSQL); } if ($rs != false && $rs->recordCount() > 0) { while (!$rs->EOF) { ... } } So if $rs is false there is no exception thrown that could be catched in oxerpgateway.php. | ||||
Tags | Mass Data import | ||||