diff --git a/pages/ajax.csvimport.php b/pages/ajax.csvimport.php index 7bbc0ad4d..9dfe62fce 100644 --- a/pages/ajax.csvimport.php +++ b/pages/ajax.csvimport.php @@ -327,8 +327,19 @@ switch($sOperation) $oAttDef = MetaModel::GetAttributeDef($sClassName, $sAttCode); if ($oAttDef->IsExternalKey()) { + // An external key is specified as a reconciliation key: this means that all the reconciliation + // keys of this class are proposed to identify the target object $aMoreReconciliationKeys = array_keys(GetMappingsForExtKey($sAttCode, $oAttDef, $bAdvanced)); } + elseif($oAttDef->IsExternalField()) + { + // An external field is specified as a reconciliation key, translate the field into a field on the target class + // since external fields are not writable, and thus never appears in the mapping form + $sKeyAttCode = $oAttDef->GetKeyAttCode(); + $sTargetAttCode = $oAttDef->GetExtAttCode(); + + $aMoreReconciliationKeys = array($sKeyAttCode.'->'.$sTargetAttCode); + } } $sDefaultKeys = '"'.implode('", "',array_merge($aReconciliationKeys,$aMoreReconciliationKeys)).'"'; $oPage->add_ready_script(