diff --git a/webservices/export.php b/webservices/export.php index 5ca52e41c..6a53881d5 100644 --- a/webservices/export.php +++ b/webservices/export.php @@ -125,6 +125,7 @@ if (!empty($sExpression)) // Check and adjust column names // + $aAliasToFields = array(); foreach($aFields as $index => $sField) { if (preg_match('/^(.*)\.(.*)$/', $sField, $aMatches)) @@ -136,8 +137,11 @@ if (!empty($sExpression)) { $sClassAlias = $oFilter->GetClassAlias(); $sAttCode = $sField; + // Disambiguate the class alias $aFields[$index] = $sClassAlias.'.'.$sAttCode; } + $aAliasToFields[$sClassAlias][] = $sAttCode; + $sClass = $oFilter->GetClassName($sClassAlias); if (!MetaModel::IsValidAttCode($sClass, $sAttCode)) { @@ -161,6 +165,7 @@ if (!empty($sExpression)) if ($oFilter) { $oSet = new CMDBObjectSet($oFilter, array(), $aArgs); + $oSet->OptimizeColumnLoad($aAliasToFields); switch($sFormat) { case 'html':