View Issue Details

IDProjectCategoryView StatusLast Update
0005115OXID ERP InterfaceOXID ERP Interface - subpublic2023-12-13 15:22
Reportermartinwegele Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status acknowledgedResolutionopen 
Product Version2.11.1_54476 
Summary0005115: no error message if the DB-query fails?
DescriptionIf 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 Reproduce1. 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 InformationThis 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.
TagsNo tags attached.

Activities

There are no notes attached to this issue.