diff --git a/business/itop.business.class.inc.php b/business/itop.business.class.inc.php index caed4161b..a863167f4 100644 --- a/business/itop.business.class.inc.php +++ b/business/itop.business.class.inc.php @@ -191,7 +191,7 @@ class bizContact extends logRealObject "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "contacts", "db_key_field" => "id", "db_finalclass_field" => "", @@ -249,8 +249,8 @@ class bizPerson extends bizContact "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "first_name", "name"), // comment en définir plusieurs - // "reconc_keys" => array("org_name", "employee_number"), + "reconc_keys" => array("org_id", "first_name", "name"), // comment en définir plusieurs + // "reconc_keys" => array("org_id", "employee_number"), "db_table" => "persons", // Can it use the same physical DB table as any contact ? "db_key_field" => "id", "db_finalclass_field" => "", @@ -260,7 +260,7 @@ class bizPerson extends bizContact MetaModel::Init_InheritAttributes(); MetaModel::Init_AddAttribute(new AttributeString("first_name", array("label"=>"First Name", "description"=>"First name", "allowed_values"=>null, "sql"=>"first_name", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("employee_number", array("label"=>"Employee Number", "description"=>"employee number", "allowed_values"=>null, "sql"=>"employee_number", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("status", array("label"=>"Status", "description"=>"Lifecycle status", "allowed_values"=>$oAllowedEmployeeStatuses, "sql"=>"status", "default_value"=>"implementation", "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeEnum("status", array("label"=>"Status", "description"=>"Lifecycle status", "allowed_values"=>$oAllowedEmployeeStatuses, "sql"=>"status", "default_value"=>"available", "is_null_allowed"=>false, "depends_on"=>array()))); MetaModel::Init_InheritFilters(); MetaModel::Init_AddFilterFromAttribute("first_name"); @@ -303,7 +303,7 @@ class bizTeam extends bizContact "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "teams", "db_key_field" => "id", "db_finalclass_field" => "", @@ -340,7 +340,7 @@ class lnkContactTeam extends cmdbAbstractObject "key_label" => "link_id", "name_attcode" => "role", "state_attcode" => "", - "reconc_keys" => array("contact_name", "team_name"), + "reconc_keys" => array("contact_id", "team_name"), "db_table" => "teams_links", "db_key_field" => "link_id", "db_finalclass_field" => "", @@ -387,7 +387,7 @@ class bizDocument extends logRealObject "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "documents", "db_key_field" => "id", "db_finalclass_field" => "", @@ -434,7 +434,7 @@ class bizDocVersion extends cmdbAbstractObject "key_label" => "id", "name_attcode" => "version_number", "state_attcode" => "", - "reconc_keys" => array("docname", "version_number"), + "reconc_keys" => array("document", "version_number"), "db_table" => "document_versions", "db_key_field" => "id", "db_finalclass_field" => "", @@ -482,7 +482,7 @@ class lnkDocumentRealObject extends cmdbAbstractObject "key_label" => "link_id", "name_attcode" => "link_type", "state_attcode" => "", - "reconc_keys" => array("doc_name", "object_name"), + "reconc_keys" => array("doc_id", "object_name"), "db_table" => "documents_links", "db_key_field" => "link_id", "db_finalclass_field" => "", @@ -528,7 +528,7 @@ class lnkContactRealObject extends cmdbAbstractObject "key_label" => "link_id", "name_attcode" => "role", "state_attcode" => "", - "reconc_keys" => array("contact_name", "object_name"), + "reconc_keys" => array("contact_id", "object_name"), "db_table" => "contacts_links", "db_key_field" => "link_id", "db_finalclass_field" => "", @@ -577,7 +577,7 @@ class logInfra extends logRealObject "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "infra", "db_key_field" => "id", "db_finalclass_field" => "", @@ -610,7 +610,7 @@ class lnkContactInfra extends cmdbAbstractObject "key_label" => "link_id", "name_attcode" => "role", "state_attcode" => "", - "reconc_keys" => array("contact_name", "object_name"), + "reconc_keys" => array("contact_id", "infra_id"), "db_table" => "contacts_infra_links", "db_key_field" => "link_id", "db_finalclass_field" => "", @@ -657,7 +657,7 @@ class bizLocation extends logInfra "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "location", "db_key_field" => "id", "db_finalclass_field" => "", @@ -789,7 +789,7 @@ class bizCircuit extends logInfra "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "carrier_name", "carrier_ref", "name"), // inherited attributes + "reconc_keys" => array("org_id", "provider_id", "carrier_ref", "name"), // inherited attributes "db_table" => "circuits", "db_key_field" => "id", "db_finalclass_field" => "", @@ -872,7 +872,7 @@ class bizInterface extends logInfra "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "device_name", "name"), + "reconc_keys" => array("org_id", "device_id", "name"), "db_table" => "interfaces", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1018,7 +1018,7 @@ class bizSubnet extends logInfra "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "subnets", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1101,7 +1101,7 @@ class bizDevice extends logInfra "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "devices", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1174,7 +1174,7 @@ class bizPC extends bizDevice "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "pcs", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1268,7 +1268,7 @@ class bizServer extends bizDevice "key_label" => "id", "name_attcode" => "name", "state_attcode" => "status", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "servers", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1276,7 +1276,7 @@ class bizServer extends bizDevice ); MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeEnum("status", array("label"=>"Status", "description"=>"Status of the server", "allowed_values"=>new ValueSetEnum("InStore,Shipped,Plugged,ProductionCandidate,InProduction,Being Deconfigured,Obsolete"), "sql"=>"status", "default_value"=>"InStore", "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeEnum("status", array("label"=>"Status", "description"=>"Status of the server", "allowed_values"=>new ValueSetEnum("InStore,Shipped,Plugged,ProductionCandidate,InProduction,BeingDeconfigured,Obsolete"), "sql"=>"status", "default_value"=>"InStore", "is_null_allowed"=>false, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("memory_size", array("label"=>"Memory Size", "description"=>"Size of the memory", "allowed_values"=>null, "sql"=>"memory_size", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("cpu", array("label"=>"CPU type", "description"=>"CPU type", "allowed_values"=>null, "sql"=>"cpu_type", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("number_of_cpus", array("label"=>"Number of CPUs", "description"=>"Number of CPUs", "allowed_values"=>null, "sql"=>"number_of_cpus", "default_value"=>"1", "is_null_allowed"=>true, "depends_on"=>array()))); @@ -1442,7 +1442,7 @@ class bizNetworkDevice extends bizDevice "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "network_devices", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1506,7 +1506,7 @@ class bizInfraGroup extends logInfra "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("org_name", "name"), // inherited attributes + "reconc_keys" => array("org_id", "name"), // inherited attributes "db_table" => "infra_group", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1589,7 +1589,7 @@ class bizApplication extends logInfra "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("device_name", "name"), // inherited attributes + "reconc_keys" => array("device_id", "name"), // inherited attributes "db_table" => "applications", "db_key_field" => "id", "db_finalclass_field" => "", @@ -1776,7 +1776,7 @@ class bizPatch extends logRealObject "key_label" => "id", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array("device_name", "name"), // inherited attributes + "reconc_keys" => array("device_id", "name"), // inherited attributes "db_table" => "patches", "db_key_field" => "id", "db_finalclass_field" => "", diff --git a/pages/csvimport.php b/pages/csvimport.php index f20e28eb5..b617192e9 100644 --- a/pages/csvimport.php +++ b/pages/csvimport.php @@ -210,13 +210,25 @@ function ProcessData($oPage, $sClass, $oCSVParser, $aFieldMap, $aIsReconcKey, CM foreach($aFieldMap as $sFieldId=>$sColDesc) { $iFieldId = (int) substr($sFieldId, strlen("field")); + + if (array_key_exists($sFieldId, $aIsReconcKey)) + { + // This column will be used as a reconciliation key + + if (IsExtKeyField($sColDesc)) + { + list($sAttCode, $sExtReconcKeyAttCode) = GetExtKeyFieldCodes($sColDesc); + } + else + { + $sAttCode = $sColDesc; + } + $aReconcilKeys[$sAttCode] = $iFieldId; + } + if ($sColDesc == "id") { $aAttList['id'] = $iFieldId; - if (array_key_exists($sFieldId, $aIsReconcKey)) - { - $aReconcilKeys['id'] = $iFieldId; - } } elseif ($sColDesc == "__none__") { @@ -226,14 +238,12 @@ function ProcessData($oPage, $sClass, $oCSVParser, $aFieldMap, $aIsReconcKey, CM { // This field is value to search on, to find a value for an external key list($sExtKeyAttCode, $sExtReconcKeyAttCode) = GetExtKeyFieldCodes($sColDesc); + if ($sExtKeyAttCode == $sExtReconcKeyAttCode) + { + $aAttList[$sExtKeyAttCode] = $iFieldId; + } $aExtKeys[$sExtKeyAttCode][$sExtReconcKeyAttCode] = $iFieldId; } - elseif (array_key_exists($sFieldId, $aIsReconcKey)) - { - // This value is a reconciliation key - $aReconcilKeys[$sColDesc] = $iFieldId; - $aAttList[$sColDesc] = $iFieldId; // A reconciliation key is also a field - } else { // $sColDesc is an attribute code @@ -471,7 +481,7 @@ function DoProcessOrVerify($oPage, $sClass, CMDBChange $oChange = null) { if (array_key_exists($sFieldId, $aIsReconcKey)) { - $sReconcKey = " [search]"; + $sReconcKey = "
[key]"; } else { @@ -499,7 +509,8 @@ function DoProcessOrVerify($oPage, $sClass, CMDBChange $oChange = null) elseif (IsExtKeyField($sColDesc)) { list($sExtKeyAttCode, $sForeignAttCode) = GetExtKeyFieldCodes($sColDesc); - $aDisplayConfig[$sFieldId] = array("label"=>MakeExtFieldLabel($sClass, $sExtKeyAttCode, $sForeignAttCode), "description"=>""); + $sLabel = MakeExtFieldLabel($sClass, $sExtKeyAttCode, $sForeignAttCode); + $aDisplayConfig[$sFieldId] = array("label"=>"$sLabel$sReconcKey", "description"=>""); $aExtKeys[] = $sExtKeyAttCode; } else