浏览代码

Integrated the latest data model and sample data

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@185 a333f486-631f-4898-b8df-5754b55c2be0
romainq 16 年之前
父节点
当前提交
1b4d95f97c
共有 39 个文件被更改,包括 965 次插入866 次删除
  1. 25 13
      business/ServiceDesk.business.php
  2. 2 2
      business/ServiceMgmt.business.php
  3. 61 50
      business/itop.business.class.inc.php
  4. 0 3
      business/templates/Circuits.html
  5. 4 4
      business/templates/application.html
  6. 2 2
      business/templates/change.html
  7. 3 3
      business/templates/contract.html
  8. 2 2
      business/templates/group.html
  9. 1 4
      business/templates/interface.html
  10. 1 1
      business/templates/knownError.html
  11. 7 7
      business/templates/location.html
  12. 3 3
      business/templates/network.device.html
  13. 2 2
      business/templates/pc.html
  14. 2 2
      business/templates/person.html
  15. 2 2
      business/templates/server.html
  16. 1 1
      business/templates/serviceCall.html
  17. 3 3
      business/templates/team.html
  18. 16 4
      setup/data/01.organizations.xml
  19. 7 7
      setup/data/02.locations.xml
  20. 33 13
      setup/data/03.persons.xml
  21. 5 5
      setup/data/04.teams.xml
  22. 172 190
      setup/data/05.pcs.xml
  23. 210 209
      setup/data/06.servers.xml
  24. 9 9
      setup/data/07.applications.xml
  25. 20 20
      setup/data/08.nw-devices.xml
  26. 7 7
      setup/data/09.links_contacts.xml
  27. 5 5
      setup/data/10.workgroups.xml
  28. 155 132
      setup/data/11.incidents.xml
  29. 5 0
      setup/data/12.relatedtickets.xml
  30. 39 14
      setup/data/13.infratickets.xml
  31. 1 1
      setup/data/14.contacttickets.xml
  32. 85 85
      setup/data/15.changetickets.xml
  33. 8 8
      setup/data/16.infrachangetickets.xml
  34. 8 8
      setup/data/17.contactchangetickets.xml
  35. 37 23
      setup/data/18.contracts.xml
  36. 4 4
      setup/data/19.infracontracts.xml
  37. 4 9
      setup/data/20.contactcontracts.xml
  38. 7 7
      setup/data/21.subnets.xml
  39. 7 2
      setup/data/export.cmd

+ 25 - 13
business/ServiceDesk.business.php

@@ -54,13 +54,13 @@ class bizServiceCall extends cmdbAbstractObject
 	  MetaModel::Init_AddAttribute(new AttributeDate("next_update", array("label"=>"Next update", "description"=>"next time the Ticket is expected to be  modified", "allowed_values"=>null, "sql"=>"next_update", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 
 		MetaModel::Init_AddAttribute(new AttributeDate("end_date", array("label"=>"Closure Date", "description"=>"Date when the call was closed", "allowed_values"=>null, "sql"=>"closed_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
-	  MetaModel::Init_AddAttribute(new AttributeExternalKey("caller_id", array("targetclass"=>"bizPerson", "jointype"=> "", "label"=>"Caller", "description"=>"person that trigger this call", "allowed_values"=>null, "sql"=>"caller_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
+	  MetaModel::Init_AddAttribute(new AttributeExternalKey("caller_id", array("targetclass"=>"bizPerson", "jointype"=> "", "label"=>"Caller", "description"=>"person that trigger this call", "allowed_values"=>new ValueSetObjects('SELECT bizPerson AS p WHERE p.org_id = :this->org_id'), "sql"=>"caller_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array('org_id'))));
 		MetaModel::Init_AddAttribute(new AttributeExternalField("caller_mail", array("label"=>"Caller", "description"=>"Person that trigger this call", "allowed_values"=>null, "extkey_attcode"=> 'caller_id', "target_attcode"=>"email")));
 	
   	MetaModel::Init_AddAttribute(new AttributeString("impact", array("label"=>"Impact", "description"=>"Impact for this call", "allowed_values"=>null, "sql"=>"impact", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
   	MetaModel::Init_AddAttribute(new AttributeExternalKey("workgroup_id", array("targetclass"=>"bizWorkgroup", "jointype"=> "", "label"=>"Workgroup", "description"=>"which workgroup is owning call", "allowed_values"=>null, "sql"=>"workgroup_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeExternalField("workgroup_name", array("label"=>"Workgroup", "description"=>"name of workgroup managing the call", "allowed_values"=>null, "extkey_attcode"=> 'workgroup_id', "target_attcode"=>"name")));  
-    MetaModel::Init_AddAttribute(new AttributeExternalKey("agent_id", array("targetclass"=>"bizPerson", "jointype"=> "", "label"=>"Agent", "description"=>"who is managing the call", "allowed_values"=>null, "sql"=>"agent_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array("workgroup_id"))));
+    MetaModel::Init_AddAttribute(new AttributeExternalKey("agent_id", array("targetclass"=>"bizPerson", "jointype"=> "", "label"=>"Agent", "description"=>"who is managing the call", "allowed_values"=>new ValueSetObjects('SELECT bizPerson AS p JOIN lnkContactTeam AS l ON l.contact_id=p.id JOIN bizTeam AS t ON l.team_id=t.id JOIN bizWorkgroup AS w ON w.team_id=t.id WHERE w.id = :this->workgroup_id'), "sql"=>"agent_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array("workgroup_id"))));
 		MetaModel::Init_AddAttribute(new AttributeExternalField("agent_mail", array("label"=>"Agent", "description"=>"mail of agent managing the call", "allowed_values"=>null, "extkey_attcode"=> 'agent_id', "target_attcode"=>"email")));
 		// Comment afficher le first + last name de l'agent ? Est-ce utile d'ajouter ce champ?
 		MetaModel::Init_AddAttribute(new AttributeText("action_log", array("label"=>"Action Logs", "description"=>"List all action performed during the call", "allowed_values"=>null, "sql"=>"action_log", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
@@ -98,14 +98,20 @@ class bizServiceCall extends cmdbAbstractObject
 
 		// State machine
 		MetaModel::Init_DefineState("New", array("label"=>"New (Unassigned)", "description"=>"Newly created call", "attribute_inherit"=>null,
-												 "attribute_list"=>array('name' => OPT_ATT_READONLY, 'end_date' => OPT_ATT_HIDDEN, 'last_update' =>  OPT_ATT_HIDDEN,
+												 "attribute_list"=>array('name' => OPT_ATT_READONLY, 'end_date' => OPT_ATT_HIDDEN, 'last_update' =>  OPT_ATT_READONLY,
 												 "title"=>OPT_ATT_MANDATORY, "org_id"=>OPT_ATT_MANDATORY, "caller_id"=>OPT_ATT_MANDATORY, "call_description"=>OPT_ATT_MANDATORY, "creation_date"=>OPT_ATT_MANDATORY, "workgroup_id"=>OPT_ATT_MANDATORY,
 												 "severity"=>OPT_ATT_MANDATORY, "agent_id"=>OPT_ATT_HIDDEN,"impacted_infra_manual"=>OPT_ATT_MANDATORY, "related_tickets"=>OPT_ATT_MUSTPROMPT)));
 		MetaModel::Init_DefineState("Assigned", array("label"=>"Assigned", "description"=>"Call is assigned to somebody", "attribute_inherit"=>null,
-												"attribute_list"=>array('name' => OPT_ATT_READONLY, "title"=>OPT_ATT_READONLY, "org_id"=>OPT_ATT_READONLY, "caller_id"=>OPT_ATT_READONLY, "call_description"=>OPT_ATT_READONLY, "creation_date"=>OPT_ATT_READONLY,'end_date' => OPT_ATT_HIDDEN, "workgroup_id"=>OPT_ATT_MUSTCHANGE, "agent_id"=>OPT_ATT_MUSTCHANGE)));
-		MetaModel::Init_DefineState("WorkInProgress", array("label"=>"Work In Progress", "description"=>"Work is in progress", "attribute_inherit"=>null, "attribute_list"=>array("title"=>OPT_ATT_READONLY, "org_id"=>OPT_ATT_READONLY, "caller_id"=>OPT_ATT_READONLY, "call_description"=>OPT_ATT_READONLY,'end_date' => OPT_ATT_HIDDEN, "creation_date"=>OPT_ATT_READONLY,"workgroup_id"=>OPT_ATT_MANDATORY, "agent_id"=>OPT_ATT_MANDATORY)));
-		MetaModel::Init_DefineState("Resolved", array("label"=>"Resolved", "description"=>"Call is resolved", "attribute_inherit"=>null, "attribute_list"=>array("workgroup_id"=>OPT_ATT_MANDATORY, "agent_id"=>OPT_ATT_MANDATORY, "resolution"=>OPT_ATT_MANDATORY, "end_date"=>OPT_ATT_MANDATORY,"resolution"=>OPT_ATT_MANDATORY)));
-		MetaModel::Init_DefineState("Closed", array("label"=>"Closed", "description"=>"Call is closed", "attribute_inherit"=>null, "attribute_list"=>array("workgroup_id"=>OPT_ATT_READONLY, "agent_id"=>OPT_ATT_READONLY, "resolution"=>OPT_ATT_READONLY, "end_date"=>OPT_ATT_READONLY)));
+												"attribute_list"=>array('name' => OPT_ATT_READONLY, "title"=>OPT_ATT_READONLY, "org_id"=>OPT_ATT_READONLY,"source"=>OPT_ATT_READONLY, "caller_id"=>OPT_ATT_READONLY, "call_description"=>OPT_ATT_READONLY, "creation_date"=>OPT_ATT_READONLY,'end_date' => OPT_ATT_HIDDEN, "workgroup_id"=>OPT_ATT_READONLY, "agent_id"=>OPT_ATT_MUSTCHANGE)));
+		MetaModel::Init_DefineState("WorkInProgress", array("label"=>"Work In Progress", "description"=>"Work is in progress", "attribute_inherit"=>null, "attribute_list"=>array('name' => OPT_ATT_READONLY, 'end_date' => OPT_ATT_HIDDEN, 'last_update' =>  OPT_ATT_READONLY,
+												 "title"=>OPT_ATT_READONLY, "org_id"=>OPT_ATT_READONLY,"source"=>OPT_ATT_READONLY, "caller_id"=>OPT_ATT_READONLY, "call_description"=>OPT_ATT_READONLY, "creation_date"=>OPT_ATT_READONLY, "workgroup_id"=>OPT_ATT_READONLY,
+												 "severity"=>OPT_ATT_MANDATORY, "agent_id"=>OPT_ATT_MANDATORY,"action_log"=>OPT_ATT_MUSTPROMPT,"impacted_infra_manual"=>OPT_ATT_MANDATORY, "related_tickets"=>OPT_ATT_MUSTPROMPT)));
+		MetaModel::Init_DefineState("Resolved", array("label"=>"Resolved", "description"=>"Call is resolved", "attribute_inherit"=>null, "attribute_list"=>array('name' => OPT_ATT_READONLY, 'end_date' => OPT_ATT_HIDDEN, 'last_update' =>  OPT_ATT_READONLY,
+												 "title"=>OPT_ATT_READONLY, "org_id"=>OPT_ATT_READONLY, "source"=>OPT_ATT_READONLY,"caller_id"=>OPT_ATT_READONLY, "call_description"=>OPT_ATT_READONLY, "creation_date"=>OPT_ATT_READONLY, "workgroup_id"=>OPT_ATT_READONLY,
+												 "severity"=>OPT_ATT_READONLY, "agent_id"=>OPT_ATT_READONLY,"action_log"=>OPT_ATT_READONLY,"impacted_infra_manual"=>OPT_ATT_MANDATORY, "related_tickets"=>OPT_ATT_MUSTPROMPT, "resolution"=>OPT_ATT_MUSTCHANGE)));
+		MetaModel::Init_DefineState("Closed", array("label"=>"Closed", "description"=>"Call is closed", "attribute_inherit"=>null, "attribute_list"=>array('name' => OPT_ATT_READONLY, 'end_date' => OPT_ATT_READONLY, 'last_update' =>  OPT_ATT_READONLY,"next_update"=>OPT_ATT_READONLY,
+												 "title"=>OPT_ATT_READONLY, "org_id"=>OPT_ATT_READONLY,"source"=>OPT_ATT_READONLY, "caller_id"=>OPT_ATT_READONLY, "call_description"=>OPT_ATT_READONLY, "creation_date"=>OPT_ATT_READONLY,"impact"=>OPT_ATT_READONLY,"type"=>OPT_ATT_READONLY, "workgroup_id"=>OPT_ATT_READONLY,
+												 "severity"=>OPT_ATT_READONLY, "agent_id"=>OPT_ATT_READONLY,"action_log"=>OPT_ATT_READONLY,"impacted_infra_manual"=>OPT_ATT_READONLY, "related_tickets"=>OPT_ATT_READONLY, "resolution"=>OPT_ATT_READONLY)));
 
 		MetaModel::Init_DefineStimulus("ev_assign", new StimulusUserAction(array("label"=>"Assign this call", "description"=>"Assign this call to a group and an agent")));
 		MetaModel::Init_DefineStimulus("ev_reassign", new StimulusUserAction(array("label"=>"Reassign this call", "description"=>"Reassign this call to a different group and agent")));
@@ -113,12 +119,12 @@ class bizServiceCall extends cmdbAbstractObject
 		MetaModel::Init_DefineStimulus("ev_resolve", new StimulusUserAction(array("label"=>"Resolve this call", "description"=>"Resolve this call")));
 		MetaModel::Init_DefineStimulus("ev_close", new StimulusUserAction(array("label"=>"Close this call", "description"=>"Close this call")));
 
-		MetaModel::Init_DefineTransition("New", "ev_assign", array("target_state"=>"Assigned", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Assigned", "ev_reassign", array("target_state"=>"Assigned", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Assigned", "ev_start_working", array("target_state"=>"WorkInProgress", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("WorkInProgress", "ev_reassign", array("target_state"=>"Assigned", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("WorkInProgress", "ev_resolve", array("target_state"=>"Resolved", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Resolved", "ev_close", array("target_state"=>"Closed", "actions"=>array('SetClosureDate'), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("New", "ev_assign", array("target_state"=>"Assigned", "actions"=>array('SetLastUpdate'), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("Assigned", "ev_reassign", array("target_state"=>"Assigned", "actions"=>array('SetLastUpdate'), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("Assigned", "ev_start_working", array("target_state"=>"WorkInProgress", "actions"=>array('SetLastUpdate'), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("WorkInProgress", "ev_reassign", array("target_state"=>"Assigned", "actions"=>array('SetLastUpdate'), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("WorkInProgress", "ev_resolve", array("target_state"=>"Resolved", "actions"=>array('SetLastUpdate'), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("Resolved", "ev_close", array("target_state"=>"Closed", "actions"=>array('SetLastUpdate','SetClosureDate'), "user_restriction"=>null));
 		
 	}
 
@@ -147,6 +153,12 @@ class bizServiceCall extends cmdbAbstractObject
 		return true;
 	}
 	
+			public function SetLastUpdate($sStimulusCode)
+	{
+		$this->Set('last_update', time());
+		return true;
+	}
+	
 	public function ComputeValues()
 	{
 		$iKey = $this->GetKey();

+ 2 - 2
business/ServiceMgmt.business.php

@@ -147,11 +147,11 @@ class bizContract extends cmdbAbstractObject
 		MetaModel::Init_DefineState("Signed", array("label"=>"Signed", "description"=>"The contract has been signed", "attribute_inherit"=>null,
 													"attribute_list"=>array( 'name' => OPT_ATT_READONLY,'org_id' => OPT_ATT_READONLY, 'service_id' => OPT_ATT_READONLY,'type' => OPT_ATT_READONLY, 'service_level' => OPT_ATT_MANDATORY , 'cost_unit' => OPT_ATT_MANDATORY , 'cost_freq' => OPT_ATT_MANDATORY , 'cost' => OPT_ATT_MANDATORY, 'currency' => OPT_ATT_MANDATORY)));
 		MetaModel::Init_DefineState("Production", array("label"=>"Production", "description"=>"The contract is effective in production", "attribute_inherit"=>null,
-												"attribute_list"=>array('name' => OPT_ATT_READONLY,'org_id' => OPT_ATT_READONLY, 'service_id' => OPT_ATT_READONLY,'type' => OPT_ATT_READONLY, 'service_level' => OPT_ATT_READONLY , 'cost_unit' => OPT_ATT_READONLY , 'cost_freq' => OPT_ATT_READONLY , 'cost' => OPT_ATT_READONLY, 'currency' => OPT_ATT_READONLY,'move2prod_date' => OPT_ATT_MANDATORY,'end_prod' => OPT_ATT_MANDATORY)));
+												"attribute_list"=>array('name' => OPT_ATT_READONLY,'org_id' => OPT_ATT_READONLY, 'service_id' => OPT_ATT_READONLY,'type' => OPT_ATT_READONLY, 'service_level' => OPT_ATT_READONLY , 'cost_unit' => OPT_ATT_READONLY , 'cost_freq' => OPT_ATT_READONLY , 'cost' => OPT_ATT_READONLY, 'currency' => OPT_ATT_READONLY,'move2prod_date' => OPT_ATT_MUSTPROMPT,'end_prod' => OPT_ATT_MANDATORY)));
 		MetaModel::Init_DefineState("Finished", array("label"=>"Finished", "description"=>"The contract is terminated", "attribute_inherit"=>null,
 												"attribute_list"=>array('name' => OPT_ATT_READONLY,'org_id' => OPT_ATT_READONLY, 'service_id' => OPT_ATT_READONLY,'type' => OPT_ATT_READONLY, 'service_level' => OPT_ATT_READONLY , 'cost_unit' => OPT_ATT_READONLY , 'cost_freq' => OPT_ATT_READONLY , 'cost' => OPT_ATT_READONLY, 'currency' => OPT_ATT_READONLY,'move2prod_date' => OPT_ATT_READONLY,'end_prod' => OPT_ATT_READONLY,'team_id' => OPT_ATT_READONLY,'description' => OPT_ATT_READONLY)));
 
-		MetaModel::Init_DefineStimulus("ev_negociate", new StimulusUserAction(array("label"=>"Negociate this contract", "description"=>"This version of the contract is published")));
+		MetaModel::Init_DefineStimulus("ev_negociate", new StimulusUserAction(array("label"=>"Negotiate this contract", "description"=>"This version of the contract is published")));
 		MetaModel::Init_DefineStimulus("ev_sign", new StimulusUserAction(array("label"=>"Sign this contract", "description"=>"This contract is being signed")));
 		MetaModel::Init_DefineStimulus("ev_begin", new StimulusUserAction(array("label"=>"Move to production", "description"=>"The contract becomes applicable in production")));
 		MetaModel::Init_DefineStimulus("ev_terminate", new StimulusUserAction(array("label"=>"Ends this contract", "description"=>"The contract is ending")));

+ 61 - 50
business/itop.business.class.inc.php

@@ -797,28 +797,39 @@ class bizCircuit extends logInfra
 		MetaModel::Init_Params($aParams);
 		MetaModel::Init_InheritAttributes();
 		MetaModel::Init_AddAttribute(new AttributeString("speed", array("label"=>"speed", "description"=>"speed of the circuit", "allowed_values"=>null, "sql"=>"speed", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeExternalKey("location_id", array("targetclass"=>"bizLocation", "label"=>"Location ID", "description"=>"Id of the location", "allowed_values"=>null, "sql"=>"location_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeExternalField("location_name", array("label"=>"Location", "description"=>"Name of the location", "allowed_values"=>null, "extkey_attcode"=> 'location_id', "target_attcode"=>"name")));
-		MetaModel::Init_AddAttribute(new AttributeExternalKey("interface_id", array("targetclass"=>"bizInterface", "label"=>"Interface Id", "description"=>"id of the interface", "allowed_values"=>null, "sql"=>"interface_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeExternalField("interface_name", array("label"=>"Interface", "description"=>"Name of the interface", "allowed_values"=>null, "extkey_attcode"=> 'interface_id', "target_attcode"=>"name")));
-		MetaModel::Init_AddAttribute(new AttributeExternalKey("provider_id", array("targetclass"=>"bizOrganization", "label"=>"Carrier ID", "description"=>"Organization ID of the provider of the Circuit", "allowed_values"=>null, "sql"=>"provider_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeExternalKey("location1_id", array("targetclass"=>"bizLocation", "label"=>"Location 1", "description"=>"Id of the location 1", "allowed_values"=>null, "sql"=>"location1_id", "is_null_allowed"=>false,"on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeExternalField("location1_name", array("label"=>"Location 1", "description"=>"Name of the location", "allowed_values"=>null, "extkey_attcode"=> 'location1_id', "target_attcode"=>"name")));
+		MetaModel::Init_AddAttribute(new AttributeExternalKey("location2_id", array("targetclass"=>"bizLocation", "label"=>"Location 2", "description"=>"Id of the location 2", "allowed_values"=>null, "sql"=>"location2_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL,"depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeExternalField("location2_name", array("label"=>"Location 2", "description"=>"Name of the location", "allowed_values"=>null, "extkey_attcode"=> 'location2_id', "target_attcode"=>"name")));
+
+		MetaModel::Init_AddAttribute(new AttributeExternalKey("interface1_id", array("targetclass"=>"bizInterface", "label"=>"Interface 1", "description"=>"id of the interface 1", "allowed_values"=>null, "sql"=>"interface1_id", "is_null_allowed"=>false,"on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeExternalField("interface1_name", array("label"=>"Interface", "description"=>"Name of the interface 1", "allowed_values"=>null, "extkey_attcode"=> 'interface1_id', "target_attcode"=>"name")));
+		MetaModel::Init_AddAttribute(new AttributeExternalField("device1_name", array("label"=>"Device 1", "description"=>"Name of the device 1", "allowed_values"=>null, "extkey_attcode"=> 'interface1_id', "target_attcode"=>"device_name")));
+	
+  	MetaModel::Init_AddAttribute(new AttributeExternalKey("interface2_id", array("targetclass"=>"bizInterface", "label"=>"Interface 2", "description"=>"id of the interface 2", "allowed_values"=>null, "sql"=>"interface2_id", "is_null_allowed"=>false,"on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeExternalField("interface2_name", array("label"=>"Interface", "description"=>"Name of the interface 2", "allowed_values"=>null, "extkey_attcode"=> 'interface2_id', "target_attcode"=>"name")));
+		MetaModel::Init_AddAttribute(new AttributeExternalField("device2_name", array("label"=>"Interface", "description"=>"Name of the device 2", "allowed_values"=>null, "extkey_attcode"=> 'interface2_id', "target_attcode"=>"device_name")));
+
+		MetaModel::Init_AddAttribute(new AttributeExternalKey("provider_id", array("targetclass"=>"bizOrganization", "label"=>"Carrier ID", "description"=>"Organization ID of the provider of the Circuit", "allowed_values"=>null, "sql"=>"provider_id", "is_null_allowed"=>false,"on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeExternalField("carrier_name", array("label"=>"Carrier", "description"=>"Name of the carrier", "allowed_values"=>null, "extkey_attcode"=> 'provider_id', "target_attcode"=>"name")));
 		MetaModel::Init_AddAttribute(new AttributeString("carrier_ref", array("label"=>"Carrier reference", "description"=>"reference of the circuit used by the carrier", "allowed_values"=>null, "sql"=>"carrier_ref", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 
 		MetaModel::Init_InheritFilters();
 		MetaModel::Init_AddFilterFromAttribute("speed");
-		MetaModel::Init_AddFilterFromAttribute("location_id");
-		MetaModel::Init_AddFilterFromAttribute("location_name");
-		MetaModel::Init_AddFilterFromAttribute("interface_id");
+		MetaModel::Init_AddFilterFromAttribute("location1_id");
+		MetaModel::Init_AddFilterFromAttribute("location2_id");
+		MetaModel::Init_AddFilterFromAttribute("interface1_id");
+		MetaModel::Init_AddFilterFromAttribute("interface2_id");
+
 		MetaModel::Init_AddFilterFromAttribute("provider_id");
 		MetaModel::Init_AddFilterFromAttribute("carrier_ref");
 		
 		// Display lists
-		MetaModel::Init_SetZListItems('details', array('name', 'status', 'org_id', 'speed', 'provider_id', 'carrier_ref', 'location_id')); // Attributes to be displayed for the complete details
+		MetaModel::Init_SetZListItems('details', array('name', 'status', 'org_id', 'speed', 'location1_id','interface1_id','device1_name','location2_id','interface2_id','device2_name','provider_id', 'carrier_ref')); // Attributes to be displayed for the complete details
 		MetaModel::Init_SetZListItems('list', array('name', 'status', 'org_id', 'provider_id', 'carrier_ref', 'speed')); // Attributes to be displayed for a list
 		// Search criteria
-		MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'carrier_ref', 'speed', 'provider_id')); // Criteria of the std search form
-		MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'carrier_ref', 'speed', 'provider_id')); // Criteria of the advanced search form
+		MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'location1_id','location2_id','carrier_ref', 'speed', 'provider_id')); // Criteria of the std search form
+		MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'location1_id','location2_id','carrier_ref', 'speed', 'provider_id')); // Criteria of the advanced search form
 	}
 	
 	public function ComputeValues()
@@ -1013,8 +1024,8 @@ class bizSubnet extends logInfra
 		);
 		MetaModel::Init_Params($aParams);
 		MetaModel::Init_InheritAttributes();
-		MetaModel::Init_AddAttribute(new AttributeString("ip", array("label"=>"IP", "description"=>"IP", "allowed_values"=>null, "sql"=>"ip", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("mask", array("label"=>"IP mask", "description"=>"IP mask", "allowed_values"=>null, "sql"=>"mask", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("ip", array("label"=>"IP", "description"=>"IP", "allowed_values"=>null, "sql"=>"ip", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("mask", array("label"=>"IP mask", "description"=>"IP mask", "allowed_values"=>null, "sql"=>"mask", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
 
 		MetaModel::Init_InheritFilters();
 		MetaModel::Init_AddFilterFromAttribute("ip");
@@ -1099,9 +1110,9 @@ class bizDevice extends logInfra
 		MetaModel::Init_AddAttribute(new AttributeExternalKey("location_id", array("targetclass"=>"bizLocation", "label"=>"Location", "description"=>"where is the located object physically located", "allowed_values"=>null, "sql"=>"location_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeExternalField("location_name", array("label"=>"Location Name", "description"=>"name of the location", "allowed_values"=>null, "extkey_attcode"=> 'location_id', "target_attcode"=>"name")));
 		MetaModel::Init_AddAttribute(new AttributeExternalField("country", array("label"=>"Country", "description"=>"country where the device is located", "allowed_values"=>null, "extkey_attcode"=> 'location_id', "target_attcode"=>"country")));
-		MetaModel::Init_AddAttribute(new AttributeString("brand", array("label"=>"Brand", "description"=>"The manufacturer of the device", "allowed_values"=>null, "sql"=>"brand", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("model", array("label"=>"Model", "description"=>"The model number of the device", "allowed_values"=>null, "sql"=>"model", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("serial_number", array("label"=>"Serial Number", "description"=>"The serial number of the device", "allowed_values"=>null, "sql"=>"serial_number", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("brand", array("label"=>"Brand", "description"=>"The manufacturer of the device", "allowed_values"=>null, "sql"=>"brand", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("model", array("label"=>"Model", "description"=>"The model number of the device", "allowed_values"=>null, "sql"=>"model", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("serial_number", array("label"=>"Serial Number", "description"=>"The serial number of the device", "allowed_values"=>null, "sql"=>"serial_number", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 	  MetaModel::Init_AddAttribute(new AttributeString("mgmt_ip", array("label"=>"Mgmt IP", "description"=>"Management IP", "allowed_values"=>null, "sql"=>"mgmt_ip", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 	
 		MetaModel::Init_InheritFilters();
@@ -1170,11 +1181,11 @@ class bizPC extends bizDevice
 		MetaModel::Init_Params($aParams);
 		MetaModel::Init_InheritAttributes();
 		MetaModel::Init_AddAttribute(new AttributeEnum("type", array("label"=>"Type", "description"=>"Type of computer", "allowed_values"=>new ValueSetEnum("desktop PC,laptop"), "sql"=>"type", "default_value"=>"desktop PC", "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"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("cpu", array("label"=>"CPU", "description"=>"CPU type", "allowed_values"=>null, "sql"=>"cpu_type", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("hdd_size", array("label"=>"HDD Size", "description"=>"Size of the hard drive", "allowed_values"=>null, "sql"=>"hdd_size", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("os_family", array("label"=>"OS Family", "description"=>"Type of operating system", "allowed_values"=>null, "sql"=>"os_family", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("os_version", array("label"=>"OS Version", "description"=>"Detailed version number of the operating system", "allowed_values"=>null, "sql"=>"os_version", "default_value"=>"", "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", "description"=>"CPU type", "allowed_values"=>null, "sql"=>"cpu_type", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("hdd_size", array("label"=>"HDD Size", "description"=>"Size of the hard drive", "allowed_values"=>null, "sql"=>"hdd_size", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("os_family", array("label"=>"OS Family", "description"=>"Type of operating system", "allowed_values"=>null, "sql"=>"os_family", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("os_version", array("label"=>"OS Version", "description"=>"Detailed version number of the operating system", "allowed_values"=>null, "sql"=>"os_version", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("shipment_number", array("label"=>"Shipment Code", "description"=>"Number for tracking shipment", "allowed_values"=>null, "sql"=>"shipment_number", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("default_gateway", array("label"=>"Default Gateway", "description"=>"Default Gateway for this device", "allowed_values"=>null, "sql"=>"default_gateway", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 
@@ -1263,14 +1274,14 @@ 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("In Store,Shipped,Plugged,Production Candidate,In Production,Being Deconfigured,Obsolete"), "sql"=>"status", "default_value"=>"In Store", "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"=>false, "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"=>false, "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"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("hdd_size", array("label"=>"HDD Size", "description"=>"Size of the hard drive", "allowed_values"=>null, "sql"=>"hdd_size", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("hdd_free_size", array("label"=>"Free HDD Size", "description"=>"Size of the free space on the hard drive(s)", "allowed_values"=>null, "sql"=>"hdd_free_size", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("os_family", array("label"=>"OS Family", "description"=>"Type of operating system", "allowed_values"=>null, "sql"=>"os_family", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("os_version", array("label"=>"OS Version", "description"=>"Detailed version number of the operating system", "allowed_values"=>null, "sql"=>"os_version", "default_value"=>"", "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,Being Deconfigured,Obsolete"), "sql"=>"status", "default_value"=>"In Store", "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())));
+		MetaModel::Init_AddAttribute(new AttributeString("hdd_size", array("label"=>"HDD Size", "description"=>"Size of the hard drive", "allowed_values"=>null, "sql"=>"hdd_size", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("hdd_free_size", array("label"=>"Free HDD Size", "description"=>"Size of the free space on the hard drive(s)", "allowed_values"=>null, "sql"=>"hdd_free_size", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("os_family", array("label"=>"OS Family", "description"=>"Type of operating system", "allowed_values"=>null, "sql"=>"os_family", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("os_version", array("label"=>"OS Version", "description"=>"Detailed version number of the operating system", "allowed_values"=>null, "sql"=>"os_version", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("shipment_number", array("label"=>"Shipment number", "description"=>"Number for tracking shipment", "allowed_values"=>null, "sql"=>"shipment_number", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("default_gateway", array("label"=>"Default Gateway", "description"=>"Default Gateway for this device", "allowed_values"=>null, "sql"=>"default_gateway", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 
@@ -1285,17 +1296,17 @@ class bizServer extends bizDevice
 	
  
 		// Life cycle
-		MetaModel::Init_DefineState("In Store", array("label"=>"InStore", "description"=>"Device in store", "attribute_inherit"=>null,
+		MetaModel::Init_DefineState("InStore", array("label"=>"InStore", "description"=>"Device in store", "attribute_inherit"=>null,
 												 "attribute_list"=>array()));
 		MetaModel::Init_DefineState("Shipped", array("label"=>"Shipped", "description"=>"The device had been shipped to future location", "attribute_inherit"=>null,
 												"attribute_list"=>array("location_id"=>OPT_ATT_MANDATORY,"serial_number"=>OPT_ATT_MANDATORY,"shipment_number"=>OPT_ATT_MANDATORY)));
 		MetaModel::Init_DefineState("Plugged", array("label"=>"Plugged", "description"=>"The device is connected to the network", "attribute_inherit"=>null,
 													"attribute_list"=>array("location_id"=>OPT_ATT_MANDATORY,"mgmt_ip"=>OPT_ATT_MANDATORY,"name"=>OPT_ATT_MANDATORY)));
-		MetaModel::Init_DefineState("Production Candidate", array("label"=>"Pre-Production", "description"=>"The device is ready to be move to production", "attribute_inherit"=>null,
+		MetaModel::Init_DefineState("ProductionCandidate", array("label"=>"Pre-Production", "description"=>"The device is ready to be move to production", "attribute_inherit"=>null,
 												"attribute_list"=>array()));
-		MetaModel::Init_DefineState("In Production", array("label"=>"Production", "description"=>"The device is on production", "attribute_inherit"=>null,
+		MetaModel::Init_DefineState("InProduction", array("label"=>"Production", "description"=>"The device is on production", "attribute_inherit"=>null,
 												"attribute_list"=>array()));
-		MetaModel::Init_DefineState("Being Deconfigured", array("label"=>"BeingDeconfigured", "description"=>"The device is about to be removed from is current location", "attribute_inherit"=>null,
+		MetaModel::Init_DefineState("BeingDeconfigured", array("label"=>"BeingDeconfigured", "description"=>"The device is about to be removed from is current location", "attribute_inherit"=>null,
 												"attribute_list"=>array()));
 		MetaModel::Init_DefineState("Obsolete", array("label"=>"Obsolete", "description"=>"The device is no more used", "attribute_inherit"=>null,
 												"attribute_list"=>array()));
@@ -1311,22 +1322,22 @@ class bizServer extends bizDevice
 		MetaModel::Init_DefineStimulus("ev_obsolete", new StimulusUserAction(array("label"=>"Obsolete", "description"=>"The server is no more used")));
 		MetaModel::Init_DefineStimulus("ev_recycle", new StimulusUserAction(array("label"=>"Recycle this server", "description"=>"The server is move back to deconfiguration")));
 
-		MetaModel::Init_DefineTransition("In Store", "ev_ship", array("target_state"=>"Shipped", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("In Store", "ev_plug", array("target_state"=>"Plugged", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Shipped", "ev_store", array("target_state"=>"In Store", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("InStore", "ev_ship", array("target_state"=>"Shipped", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("InStore", "ev_plug", array("target_state"=>"Plugged", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("Shipped", "ev_store", array("target_state"=>"InStore", "actions"=>array(), "user_restriction"=>null));
 		MetaModel::Init_DefineTransition("Shipped", "ev_plug", array("target_state"=>"Plugged", "actions"=>array(), "user_restriction"=>null));
 		MetaModel::Init_DefineTransition("Plugged", "ev_ship", array("target_state"=>"Shipped", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Plugged", "ev_store", array("target_state"=>"In Store", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Plugged", "ev_configuration_finished", array("target_state"=>"Production Candidate", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Production Candidate", "ev_val_failed", array("target_state"=>"Plugged", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Production Candidate", "ev_mtp", array("target_state"=>"In Production", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("In Production", "ev_obsolete", array("target_state"=>"Obsolete", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("In Production", "ev_decommission", array("target_state"=>"Being Deconfigured", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Being Deconfigured", "ev_ship", array("target_state"=>"Shipped", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Being Deconfigured", "ev_plug", array("target_state"=>"Plugged", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Being Deconfigured", "ev_store", array("target_state"=>"In Store", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Being Deconfigured", "ev_obsolete", array("target_state"=>"Obsolete", "actions"=>array(), "user_restriction"=>null));
-		MetaModel::Init_DefineTransition("Obsolete", "ev_recycle", array("target_state"=>"Being Deconfigured", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("Plugged", "ev_store", array("target_state"=>"InStore", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("Plugged", "ev_configuration_finished", array("target_state"=>"ProductionCandidate", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("ProductionCandidate", "ev_val_failed", array("target_state"=>"Plugged", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("ProductionCandidate", "ev_mtp", array("target_state"=>"InProduction", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("InProduction", "ev_obsolete", array("target_state"=>"Obsolete", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("InProduction", "ev_decommission", array("target_state"=>"BeingDeconfigured", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("BeingDeconfigured", "ev_ship", array("target_state"=>"Shipped", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("BeingDeconfigured", "ev_plug", array("target_state"=>"Plugged", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("BeingDeconfigured", "ev_store", array("target_state"=>"InStore", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("BeingDeconfigured", "ev_obsolete", array("target_state"=>"Obsolete", "actions"=>array(), "user_restriction"=>null));
+		MetaModel::Init_DefineTransition("Obsolete", "ev_recycle", array("target_state"=>"BeingDeconfigured", "actions"=>array(), "user_restriction"=>null));
 		
 
 
@@ -1439,11 +1450,11 @@ class bizNetworkDevice extends bizDevice
 		MetaModel::Init_InheritAttributes();
 		MetaModel::Init_AddAttribute(new AttributeEnum("type", array("label"=>"Type", "description"=>"Type of device", "allowed_values"=>new ValueSetEnum("switch,router,firewall,load balancer,hub,WAN accelerator"), "sql"=>"type", "default_value"=>"switch", "is_null_allowed"=>false, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("default_gateway", array("label"=>"Default Gateway", "description"=>"Default Gateway for this device", "allowed_values"=>null, "sql"=>"default_gateway", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("ios_version", array("label"=>"IOS version", "description"=>"IOS (software) version", "allowed_values"=>null, "sql"=>"ios_version", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("ios_version", array("label"=>"IOS version", "description"=>"IOS (software) version", "allowed_values"=>null, "sql"=>"ios_version", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 		MetaModel::Init_AddAttribute(new AttributeString("memory", array("label"=>"Memory", "description"=>"Memory description", "allowed_values"=>null, "sql"=>"memory", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 
-		MetaModel::Init_AddAttribute(new AttributeString("snmp_read", array("label"=>"SNMP Community (Read)", "description"=>"SNMP Read Community String", "allowed_values"=>null, "sql"=>"snmp_read", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
-		MetaModel::Init_AddAttribute(new AttributeString("snmp_write", array("label"=>"SNMP Community (Write)", "description"=>"SNMP Write Community String", "allowed_values"=>null, "sql"=>"snmp_write", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("snmp_read", array("label"=>"SNMP Community (Read)", "description"=>"SNMP Read Community String", "allowed_values"=>null, "sql"=>"snmp_read", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
+		MetaModel::Init_AddAttribute(new AttributeString("snmp_write", array("label"=>"SNMP Community (Write)", "description"=>"SNMP Write Community String", "allowed_values"=>null, "sql"=>"snmp_write", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
 
 		MetaModel::Init_InheritFilters();
 		MetaModel::Init_AddFilterFromAttribute("type");

+ 0 - 3
business/templates/Circuits.html

@@ -6,7 +6,4 @@
 <img src="../images/WanLinks.jpg" style="margin-top:-10px; margin-right:10px; float:right">
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/sibusql">$class$: pkey = $pkey$</itopblock>
 <itoptabs>
-	<itoptab name="Interfaces">
-		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizInterface: PKEY IS interface_id IN (bizCircuit: pkey = $pkey$)</itopblock>
-	</itoptab>
 </itoptabs>

+ 4 - 4
business/templates/application.html

@@ -7,10 +7,10 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT bizApplication WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Impacted_Client_Applications">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="server_id" object_id="$pkey$" target_attr="client_id" encoding="text/oql">SELECT lnkClientServer WHERE server_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="server_id" object_id="$pkey$" target_attr="client_id" encoding="text/oql">SELECT lnkClientServer WHERE server_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Application_Server">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="client_id" object_id="$pkey$" target_attr="server_id" encoding="text/oql">SELECT lnkClientServer WHERE client_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="client_id" object_id="$pkey$" target_attr="server_id" encoding="text/oql">SELECT lnkClientServer WHERE client_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Incidents">
 		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="ticket_id" encoding="text/sibusql">lnkInfraTicket: infra_id = $pkey$</itopblock>
@@ -20,10 +20,10 @@
 	</itoptab>
 
  	<itoptab name="Contracts">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_id" object_id="$pkey$" target_attr="contract_id" encoding="text/oql">SELECT lnkInfraContract WHERE infra_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="contract_id" encoding="text/oql">SELECT lnkInfraContract WHERE infra_id = $pkey$</itopblock>
 	</itoptab>
  	<itoptab name="Groups">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
 	</itoptab>
 
 

+ 2 - 2
business/templates/change.html

@@ -7,10 +7,10 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT $class$ WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Impacted_Infrastructures">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="ticket_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraChangeTicket WHERE ticket_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="ticket_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraChangeTicket WHERE ticket_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Contacts_to_Notify">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="change_id" object_id="$pkey$" target_attr="contact_id"  encoding="text/oql">SELECT lnkContactChange WHERE change_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="change_id" object_id="$pkey$" target_attr="contact_id"  encoding="text/oql">SELECT lnkContactChange WHERE change_id = $pkey$</itopblock>
 	</itoptab>
 
 </itoptabs>

+ 3 - 3
business/templates/contract.html

@@ -7,12 +7,12 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT bizContract WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Covered_Infrastructures">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="contract_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraContract WHERE contract_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="contract_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraContract WHERE contract_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Contacts">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="contract_id" object_id="$pkey$" target_attr="contact_id" encoding="text/oql">SELECT lnkContactContract WHERE contract_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="contract_id" object_id="$pkey$" target_attr="contact_id" encoding="text/oql">SELECT lnkContactContract WHERE contract_id = $pkey$</itopblock>
 	</itoptab>	
 	<itoptab name="Documents">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="contract_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentContract WHERE contract_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="contract_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentContract WHERE contract_id = $pkey$</itopblock>
 	</itoptab>
 </itoptabs>

+ 2 - 2
business/templates/group.html

@@ -7,10 +7,10 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT bizInfraGroup WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Infrastructures">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_group_id" object_id="$pkey$" target_attr="infra_id"  encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_group_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_group_id" object_id="$pkey$" target_attr="infra_id"  encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_group_id = $pkey$</itopblock>
 	</itoptab>
 		<itoptab name="Contacts">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="object_id" object_id="$pkey$" target_attr="contact_id"  encoding="text/oql">SELECT lnkContactRealObject WHERE object_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="object_id" object_id="$pkey$" target_attr="contact_id"  encoding="text/oql">SELECT lnkContactRealObject WHERE object_id = $pkey$</itopblock>
 	</itoptab>
 	
 </itoptabs>

+ 1 - 4
business/templates/interface.html

@@ -6,11 +6,8 @@
 <img src="../images/tar.png" style="margin-top:-10px; margin-right:10px; float:right">
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT bizInterface WHERE id = $pkey$</itopblock>
 <itoptabs>
-	<itoptab name="Linked_interfaces">
-		<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT bizInterface WHERE if_connected_id = $pkey$</itopblock>
-	</itoptab>
 	<itoptab name="Groups">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
 	</itoptab>
 
 	

+ 1 - 1
business/templates/knownError.html

@@ -6,6 +6,6 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT bizKnownError WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Related_Intrastructures">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="error_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraError WHERE error_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="error_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraError WHERE error_id = $pkey$</itopblock>
 	</itoptab>
 </itoptabs>

+ 7 - 7
business/templates/location.html

@@ -1,25 +1,25 @@
 <div class="page_header">
-	<itopblock blockclass="MenuBlock" type="popup" encoding="text/sibusql" label="Actions">$class$: pkey = $pkey$</itopblock>
+	<itopblock blockclass="MenuBlock" type="popup" encoding="text/oql" label="Actions">SELECT $class$ WHERE id = $pkey$</itopblock>
 	<h1>$class_name$: <span class="hilite">$name$</span></h1>
 	<itopblock blockclass="HistoryBlock" type="toggle" encoding="text/oql">SELECT CMDBChangeOp WHERE objkey = $pkey$ AND objclass = '$class$'</itopblock>
 </div>
 <img src="../images/starthere.png" style="margin-top:-20px; margin-right:10px; float:right">
-<itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/sibusql">bizLocation: pkey = $pkey$</itopblock>
+<itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT bizLocation WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Contacts">
-		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizContact: location_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT bizContact WHERE location_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Servers">
-		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizServer: location_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT bizServer WHERE location_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="PCs">
-		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizPC: location_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT bizPC WHERE location_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Network_Devices">
-		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizNetworkDevice: location_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT bizNetworkDevice WHERE location_id = $pkey$</itopblock>
 	</itoptab>
 
 	<itoptab name="Documents">
-		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">lnkDocumentRealObject: object_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
 	</itoptab>
 </itoptabs>

+ 3 - 3
business/templates/network.device.html

@@ -10,7 +10,7 @@
 		<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql" linkage="device_id">SELECT bizInterface WHERE device_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Contacts">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_id" object_id="$pkey$" target_attr="contact_id" encoding="text/oql">SELECT lnkContactInfra WHERE infra_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="contact_id" encoding="text/oql">SELECT lnkContactInfra WHERE infra_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Incidents">
 		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizIncidentTicket:PKEY IS ticket_id IN (lnkInfraTicket: infra_id = $pkey$)</itopblock>
@@ -19,10 +19,10 @@
 		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizChangeTicket: PKEY IS ticket_id IN (lnkInfraChangeTicket: infra_id = $pkey$)</itopblock>
 	</itoptab>
 	<itoptab name="Groups">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Documents">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
 	</itoptab>
  </itoptabs>
 

+ 2 - 2
business/templates/pc.html

@@ -22,9 +22,9 @@
 		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizIncidentTicket: PKEY IS ticket_id IN (lnkInfraTicket: infra_id = $pkey$)</itopblock>
 	</itoptab>
 	<itoptab name="Groups">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Documents">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
 	</itoptab>
 </itoptabs>

+ 2 - 2
business/templates/person.html

@@ -7,7 +7,7 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT bizPerson WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Teams">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="contact_id" object_id="$pkey$" target_attr="team_id" encoding="text/oql">SELECT lnkContactTeam WHERE contact_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="contact_id" object_id="$pkey$" target_attr="team_id" encoding="text/oql">SELECT lnkContactTeam WHERE contact_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Infrastructure">	
 		<itopblock blockclass="DisplayBlock" type="links" link_attr="contact_id" object_id="$pkey$" target_attr="object_id" encoding="text/oql">SELECT lnkContactRealObject WHERE contact_id = $pkey$</itopblock>	
@@ -17,6 +17,6 @@
 	</itoptab>
 
 	<itoptab name="Documents">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
 	</itoptab>
 </itoptabs>

+ 2 - 2
business/templates/server.html

@@ -25,10 +25,10 @@
 		<itopblock blockclass="DisplayBlock" type="list" encoding="text/sibusql">bizChangeTicket: PKEY IS ticket_id IN (lnkInfraChangeTicket: infra_id = $pkey$)</itopblock>
 	</itoptab>
 	<itoptab name="Groups">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="infra_id" object_id="$pkey$" target_attr="infra_group_id" encoding="text/oql">SELECT lnkInfraGrouping WHERE infra_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Documents">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
 	</itoptab>
 
 </itoptabs>

+ 1 - 1
business/templates/serviceCall.html

@@ -7,7 +7,7 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT $class$ WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Impacted_Infrastructures">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="call_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraCall WHERE call_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="call_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkInfraCall WHERE call_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Related_Incidents">
 		<itopblock blockclass="DisplayBlock" type="links" link_attr="call_id" object_id="$pkey$" target_attr="ticket_id" encoding="text/oql">SELECT lnkCallTicket WHERE call_id = $pkey$</itopblock>

+ 3 - 3
business/templates/team.html

@@ -7,16 +7,16 @@
 <itopblock blockclass="DisplayBlock" asynchronous="true" type="bare_details" encoding="text/oql">SELECT $class$ WHERE id = $pkey$</itopblock>
 <itoptabs>
 	<itoptab name="Members">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="team_id" object_id="$pkey$" target_attr="contact_id" encoding="text/oql">SELECT lnkContactTeam WHERE team_id=$pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="team_id" object_id="$pkey$" target_attr="contact_id" encoding="text/oql">SELECT lnkContactTeam WHERE team_id=$pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Infrastructures">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="contact_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkContactInfra WHERE contact_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="contact_id" object_id="$pkey$" target_attr="infra_id" encoding="text/oql">SELECT lnkContactInfra WHERE contact_id = $pkey$</itopblock>
 	</itoptab>
 	<itoptab name="Workgroups">
 		<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT bizWorkgroup WHERE team_id = $pkey$</itopblock>
 	</itoptab>
 
 	<itoptab name="Documents">
-		<itopblock blockclass="DisplayBlock" type="list" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
+		<itopblock blockclass="DisplayBlock" type="links" link_attr="object_id" object_id="$pkey$" target_attr="doc_id" encoding="text/oql">SELECT lnkDocumentRealObject WHERE object_id = $pkey$</itopblock>
 	</itoptab>
 </itoptabs>

+ 16 - 4
setup/data/01.organizations.xml

@@ -1,15 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizOrganization id="3">
+<bizOrganization id="2">
 <name>Demo</name>
 <code>MCO</code>
 <status>implementation</status>
-<parent_id>3</parent_id>
+<parent_id>2</parent_id>
+</bizOrganization>
+<bizOrganization id="4">
+<name>France Telecom</name>
+<code>FT</code>
+<status>production</status>
+<parent_id>0</parent_id>
 </bizOrganization>
-<bizOrganization id="6">
+<bizOrganization id="1">
+<name>My Company/Department</name>
+<code>SOMECODE</code>
+<status>implementation</status>
+<parent_id>0</parent_id>
+</bizOrganization>
+<bizOrganization id="3">
 <name>Oracle</name>
 <code>ORA</code>
 <status>production</status>
-<parent_id>6</parent_id>
+<parent_id>3</parent_id>
 </bizOrganization>
 </Set>

+ 7 - 7
setup/data/02.locations.xml

@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizLocation id="29">
+<bizLocation id="2">
 <name>Grenoble</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
 <address>5 Avenue de la Poste</address>
 <country>France</country>
-<parent_location_id>1</parent_location_id>
+<parent_location_id>3</parent_location_id>
 </bizLocation>
-<bizLocation id="1">
+<bizLocation id="3">
 <name>Paris</name>
 <status>implementation</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<address>5 rue de la Paroisse
+<address>5 rue de la Paroisse
 15eme arrondissement</address>
 <country>France</country>
-<parent_location_id>1</parent_location_id>
+<parent_location_id>3</parent_location_id>
 </bizLocation>
 </Set>

+ 33 - 13
setup/data/03.persons.xml

@@ -1,33 +1,53 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizPerson id="21">
-<name>Verne</name>
+<bizPerson id="327">
+<name>Dali</name>
 <status>available</status>
-<org_id>3</org_id>
-<email>jules.verne@gmail.com</email>
+<org_id>2</org_id>
+<email>salvador.dali@combodo.com</email>
 <phone></phone>
-<location_id>29</location_id>
-<first_name>Jules</first_name>
+<location_id>3</location_id>
+<first_name>Salvador</first_name>
 <employee_number></employee_number>
 </bizPerson>
-<bizPerson id="20">
+<bizPerson id="5">
 <name>Dumas</name>
 <status>available</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <email>alexandre.dumas@gmail.com</email>
 <phone></phone>
-<location_id>1</location_id>
+<location_id>3</location_id>
 <first_name>Dumas</first_name>
 <employee_number></employee_number>
 </bizPerson>
-<bizPerson id="7">
-<name>Hugo</name>
+<bizPerson id="320">
+<name>Greg</name>
 <status>available</status>
 <org_id>3</org_id>
+<email>gre.bob@oracle.com</email>
+<phone></phone>
+<location_id>0</location_id>
+<first_name>bob</first_name>
+<employee_number></employee_number>
+</bizPerson>
+<bizPerson id="6">
+<name>Hugo</name>
+<status>available</status>
+<org_id>2</org_id>
 <email>victor.hugo@gmail.com</email>
 <phone>33172382223</phone>
-<location_id>1</location_id>
+<location_id>3</location_id>
 <first_name>Victor</first_name>
 <employee_number>e12345</employee_number>
 </bizPerson>
-</Set>
+<bizPerson id="4">
+<name>Verne</name>
+<status>available</status>
+<org_id>2</org_id>
+<email>jules.verne@gmail.com</email>
+<phone></phone>
+<location_id>2</location_id>
+<first_name>Jules</first_name>
+<employee_number></employee_number>
+</bizPerson>
+</Set>

+ 5 - 5
setup/data/04.teams.xml

@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizTeam id="26">
+<bizTeam id="7">
 <name>Application support</name>
 <status>implementation</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <email>application@mecanorama.com</email>
 <phone>33456456788</phone>
-<location_id>29</location_id>
+<location_id>2</location_id>
 </bizTeam>
 <bizTeam id="8">
 <name>ITOP admin team</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <email>combodo@gmail.com</email>
 <phone>33123453612</phone>
-<location_id>1</location_id>
+<location_id>3</location_id>
 </bizTeam>
 </Set>

文件差异内容过多而无法显示
+ 172 - 190
setup/data/05.pcs.xml


文件差异内容过多而无法显示
+ 210 - 209
setup/data/06.servers.xml


+ 9 - 9
setup/data/07.applications.xml

@@ -1,31 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizApplication id="22">
+<bizApplication id="310">
 <name>Oracle 10g</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<device_id>5</device_id>
+<device_id>107</device_id>
 <install_date>2008-11-05 00:00:00</install_date>
 <version>10g</version>
 <function>Database</function>
 </bizApplication>
-<bizApplication id="15">
+<bizApplication id="311">
 <name>outlook Office</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<device_id>2</device_id>
+<device_id>9</device_id>
 <install_date>2008-12-30 00:00:00</install_date>
 <version>8.4</version>
 <function>Mail client</function>
 </bizApplication>
-<bizApplication id="14">
+<bizApplication id="312">
 <name>Outlook server</name>
 <status>implementation</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<device_id>5</device_id>
+<device_id>107</device_id>
 <install_date>2008-12-20 00:00:00</install_date>
 <version>8.1</version>
 <function>Mail Server</function>

+ 20 - 20
setup/data/08.nw-devices.xml

@@ -1,67 +1,67 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizNetworkDevice id="6">
+<bizNetworkDevice id="313">
 <name>router01</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<location_id>1</location_id>
+<location_id>3</location_id>
 <brand>Cisco</brand>
 <model>6500</model>
 <serial_number>S2345985</serial_number>
-<type>switch</type>
-<ip_address>10.25.3.45</ip_address>
-<default_gateway>10.25.3.1</default_gateway>
+<mgmt_ip>10.2.22.1</mgmt_ip>
+<type>router</type>
+<default_gateway></default_gateway>
 <ios_version>8.2</ios_version>
 <memory>flash :1=16.48MB</memory>
 <snmp_read>public</snmp_read>
 <snmp_write>private</snmp_write>
 </bizNetworkDevice>
-<bizNetworkDevice id="323">
+<bizNetworkDevice id="314">
 <name>router02</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<location_id>1</location_id>
+<location_id>2</location_id>
 <brand>Cisco</brand>
 <model>6500</model>
 <serial_number>S2345985</serial_number>
+<mgmt_ip></mgmt_ip>
 <type>switch</type>
-<ip_address>10.25.3.46</ip_address>
 <default_gateway>10.25.3.1</default_gateway>
 <ios_version>8.2</ios_version>
 <memory>flash :1=16.48MB</memory>
 <snmp_read>public</snmp_read>
 <snmp_write>private</snmp_write>
 </bizNetworkDevice>
-<bizNetworkDevice id="324">
+<bizNetworkDevice id="315">
 <name>router03</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<location_id>1</location_id>
+<location_id>3</location_id>
 <brand>Cisco</brand>
 <model>6500</model>
 <serial_number>S2345985</serial_number>
+<mgmt_ip></mgmt_ip>
 <type>switch</type>
-<ip_address>10.25.3.47</ip_address>
-<default_gateway>10.25.3.1</default_gateway>
+<default_gateway>10.25.3.6</default_gateway>
 <ios_version>8.2</ios_version>
 <memory>flash :1=16.48MB</memory>
-<snmp_read>public</snmp_read>
+<snmp_read>toto</snmp_read>
 <snmp_write>private</snmp_write>
 </bizNetworkDevice>
-<bizNetworkDevice id="17">
+<bizNetworkDevice id="316">
 <name>switch01</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <severity>high</severity>
-<location_id>1</location_id>
+<location_id>3</location_id>
 <brand></brand>
 <model></model>
 <serial_number></serial_number>
+<mgmt_ip></mgmt_ip>
 <type>switch</type>
-<ip_address></ip_address>
 <default_gateway></default_gateway>
 <ios_version></ios_version>
 <memory></memory>

+ 7 - 7
setup/data/09.links_contacts.xml

@@ -2,22 +2,22 @@
 <Set>
 <lnkContactRealObject id="1">
 <contact_id>8</contact_id>
-<object_id>7</object_id>
+<object_id>6</object_id>
 <role>business model expert</role>
 </lnkContactRealObject>
 <lnkContactRealObject id="2">
-<contact_id>21</contact_id>
-<object_id>2</object_id>
+<contact_id>4</contact_id>
+<object_id>9</object_id>
 <role>owner</role>
 </lnkContactRealObject>
-<lnkContactRealObject id="5">
-<contact_id>7</contact_id>
-<object_id>5</object_id>
+<lnkContactRealObject id="3">
+<contact_id>6</contact_id>
+<object_id>107</object_id>
 <role>Server Owner</role>
 </lnkContactRealObject>
 <lnkContactRealObject id="4">
 <contact_id>8</contact_id>
-<object_id>21</object_id>
+<object_id>4</object_id>
 <role>Team Leader</role>
 </lnkContactRealObject>
 </Set>

+ 5 - 5
setup/data/10.workgroups.xml

@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizWorkgroup id="19">
+<bizWorkgroup id="317">
 <name>FLS Desktop</name>
 <status>production</status>
-<org_id>3</org_id>
-<team_id>8</team_id>
+<org_id>2</org_id>
+<team_id>7</team_id>
 <role>1st level support</role>
 </bizWorkgroup>
-<bizWorkgroup id="24">
+<bizWorkgroup id="318">
 <name>FLS Network</name>
 <status>production</status>
-<org_id>3</org_id>
+<org_id>2</org_id>
 <team_id>8</team_id>
 <role>2nd level support</role>
 </bizWorkgroup>

+ 155 - 132
setup/data/11.incidents.xml

@@ -1,132 +1,155 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Set>
-<bizIncidentTicket id="1">
-<name>I-000001</name>
-<title>PC issue</title>
-<type>Desktop</type>
-<org_id>3</org_id>
-<ticket_status>WorkInProgress</ticket_status>
-<initial_situation>there is an issue with my PC</initial_situation>
-<current_situation></current_situation>
-<start_date>2009-02-10 21:30:55</start_date>
-<last_update></last_update>
-<next_update></next_update>
-<end_date></end_date>
-<caller_id>21</caller_id>
-<impact>not able to start IE</impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>7</agent_id>
-<action_log>We are about to connect to your PC via Netmeeting and troubleshoot what&apos;s up.
-
-Then we will try to contact Microsoft to understand if it is a known issue</action_log>
-<severity>critical</severity>
-<assignment_count>1</assignment_count>
-<resolution></resolution>
-</bizIncidentTicket>
-<bizIncidentTicket id="2">
-<name>I-000002</name>
-<title>Network issue</title>
-<type>Network</type>
-<org_id>3</org_id>
-<ticket_status>Assigned</ticket_status>
-<initial_situation>No more access to the network</initial_situation>
-<current_situation>Network connectivity lost</current_situation>
-<start_date>2009-02-19 19:07:25</start_date>
-<last_update>0000-00-00 00:00:00</last_update>
-<next_update>0000-00-00 00:00:00</next_update>
-<end_date>0000-00-00 00:00:00</end_date>
-<caller_id>7</caller_id>
-<impact>high</impact>
-<workgroup_id>24</workgroup_id>
-<agent_id>21</agent_id>
-<action_log>need to investigate the network</action_log>
-<severity>low</severity>
-<assignment_count>2</assignment_count>
-<resolution></resolution>
-</bizIncidentTicket>
-<bizIncidentTicket id="3">
-<name>I-000003</name>
-<title>Disk Failure on Server01</title>
-<type>Server</type>
-<org_id>3</org_id>
-<ticket_status>WorkInProgress</ticket_status>
-<initial_situation>Partition /var is no more accessible.
-It seems that hard disk is broken</initial_situation>
-<current_situation>Filesystem is full</current_situation>
-<start_date>2009-03-21 08:27:46</start_date>
-<last_update>2009-02-10 22:25:00</last_update>
-<next_update>2009-02-10 00:25:00</next_update>
-<end_date>0000-00-00 00:00:00</end_date>
-<caller_id>20</caller_id>
-<impact>Really important for the business</impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>7</agent_id>
-<action_log>There are lot of logs file to be trimed</action_log>
-<severity>medium</severity>
-<assignment_count>2</assignment_count>
-<resolution></resolution>
-</bizIncidentTicket>
-<bizIncidentTicket id="4">
-<name>I-000004</name>
-<title>Oracle Database down on domino</title>
-<type>Server</type>
-<org_id>3</org_id>
-<ticket_status>New</ticket_status>
-<initial_situation>Database Oracle is no more accessible on Server01</initial_situation>
-<current_situation>Customer cannot access Order web site.</current_situation>
-<start_date>2009-03-17 09:31:09</start_date>
-<last_update>0000-00-00 00:00:00</last_update>
-<next_update>0000-00-00 00:00:00</next_update>
-<end_date>0000-00-00 00:00:00</end_date>
-<caller_id>7</caller_id>
-<impact>Very critical</impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>0</agent_id>
-<action_log></action_log>
-<severity>low</severity>
-<assignment_count>0</assignment_count>
-<resolution></resolution>
-</bizIncidentTicket>
-<bizIncidentTicket id="5">
-<name>I-000005</name>
-<title>Issue with my pc</title>
-<type>Desktop</type>
-<org_id>3</org_id>
-<ticket_status>Assigned</ticket_status>
-<initial_situation>My PC is locked</initial_situation>
-<current_situation>We have to analyze</current_situation>
-<start_date>2009-03-01 23:22:38</start_date>
-<last_update>0000-00-00 00:00:00</last_update>
-<next_update>0000-00-00 00:00:00</next_update>
-<end_date>0000-00-00 00:00:00</end_date>
-<caller_id>7</caller_id>
-<impact></impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>20</agent_id>
-<action_log></action_log>
-<severity>medium</severity>
-<assignment_count>1</assignment_count>
-<resolution></resolution>
-</bizIncidentTicket>
-<bizIncidentTicket id="6">
-<name>I-000006</name>
-<title>Demo</title>
-<type>Server</type>
-<org_id>3</org_id>
-<ticket_status>New</ticket_status>
-<initial_situation>gdfgl</initial_situation>
-<current_situation></current_situation>
-<start_date>2009-03-18 22:00:00</start_date>
-<last_update>0000-00-00 00:00:00</last_update>
-<next_update>0000-00-00 00:00:00</next_update>
-<end_date>0000-00-00 00:00:00</end_date>
-<caller_id>20</caller_id>
-<impact>personne ne peut acceder au site de paris</impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>0</agent_id>
-<action_log></action_log>
-<severity>low</severity>
-<assignment_count>0</assignment_count>
-<resolution></resolution>
-</bizIncidentTicket>
-</Set>
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<bizIncidentTicket id="1">
+<name>I-000001</name>
+<title>PC issue</title>
+<type>Desktop</type>
+<org_id>2</org_id>
+<ticket_status>WorkInProgress</ticket_status>
+<initial_situation>there is an issue with my PC</initial_situation>
+<current_situation></current_situation>
+<start_date>2009-02-10 21:30:55</start_date>
+<last_update>0000-00-00 00:00:00</last_update>
+<next_update>0000-00-00 00:00:00</next_update>
+<end_date>0000-00-00 00:00:00</end_date>
+<caller_id>4</caller_id>
+<impact>not able to start IE</impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>6</agent_id>
+<action_log>We are about to connect to your PC via Netmeeting and troubleshoot what&apos;s up.
+
+Then we will try to contact Microsoft to understand if it is a known issue</action_log>
+<severity>critical</severity>
+<assignment_count>1</assignment_count>
+<resolution></resolution>
+</bizIncidentTicket>
+<bizIncidentTicket id="2">
+<name>I-000002</name>
+<title>Network issue</title>
+<type>Network</type>
+<org_id>2</org_id>
+<ticket_status>Assigned</ticket_status>
+<initial_situation>No more access to the network</initial_situation>
+<current_situation>Network connectivity lost</current_situation>
+<start_date>2009-02-19 19:07:25</start_date>
+<last_update>0000-00-00 00:00:00</last_update>
+<next_update>0000-00-00 00:00:00</next_update>
+<end_date>0000-00-00 00:00:00</end_date>
+<caller_id>6</caller_id>
+<impact>not important</impact>
+<workgroup_id>318</workgroup_id>
+<agent_id>6</agent_id>
+<action_log>need to investigate the network</action_log>
+<severity>low</severity>
+<assignment_count>2</assignment_count>
+<resolution></resolution>
+</bizIncidentTicket>
+<bizIncidentTicket id="3">
+<name>I-000003</name>
+<title>Disk Failure on Server01</title>
+<type>Server</type>
+<org_id>2</org_id>
+<ticket_status>WorkInProgress</ticket_status>
+<initial_situation>Partition /var is no more accessible.
+It seems that hard disk is broken</initial_situation>
+<current_situation>Filesystem is full</current_situation>
+<start_date>2009-03-21 08:27:46</start_date>
+<last_update>2009-02-10 22:25:00</last_update>
+<next_update>2009-02-10 00:25:00</next_update>
+<end_date>0000-00-00 00:00:00</end_date>
+<caller_id>5</caller_id>
+<impact>Really important for the business</impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>6</agent_id>
+<action_log>There are lot of logs file to be trimed</action_log>
+<severity>medium</severity>
+<assignment_count>2</assignment_count>
+<resolution></resolution>
+</bizIncidentTicket>
+<bizIncidentTicket id="4">
+<name>I-000004</name>
+<title>Oracle Database down on domino</title>
+<type>Server</type>
+<org_id>2</org_id>
+<ticket_status>New</ticket_status>
+<initial_situation>Database Oracle is no more accessible on Server01</initial_situation>
+<current_situation>Customer cannot access Order web site.</current_situation>
+<start_date>2009-03-17 09:31:09</start_date>
+<last_update>0000-00-00 00:00:00</last_update>
+<next_update>0000-00-00 00:00:00</next_update>
+<end_date>0000-00-00 00:00:00</end_date>
+<caller_id>6</caller_id>
+<impact>Very critical</impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>0</agent_id>
+<action_log></action_log>
+<severity>low</severity>
+<assignment_count>0</assignment_count>
+<resolution></resolution>
+</bizIncidentTicket>
+<bizIncidentTicket id="5">
+<name>I-000005</name>
+<title>Issue with my pc</title>
+<type>Desktop</type>
+<org_id>2</org_id>
+<ticket_status>Assigned</ticket_status>
+<initial_situation>My PC is locked</initial_situation>
+<current_situation>We have to analyze</current_situation>
+<start_date>2009-03-01 23:22:38</start_date>
+<last_update>0000-00-00 00:00:00</last_update>
+<next_update>0000-00-00 00:00:00</next_update>
+<end_date>0000-00-00 00:00:00</end_date>
+<caller_id>6</caller_id>
+<impact></impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>5</agent_id>
+<action_log></action_log>
+<severity>medium</severity>
+<assignment_count>1</assignment_count>
+<resolution></resolution>
+</bizIncidentTicket>
+<bizIncidentTicket id="6">
+<name>I-000006</name>
+<title>Demo</title>
+<type>Desktop</type>
+<org_id>2</org_id>
+<ticket_status>WorkInProgress</ticket_status>
+<initial_situation>gdfgl</initial_situation>
+<current_situation></current_situation>
+<start_date>2009-03-18 22:00:00</start_date>
+<last_update>2009-09-17 18:41:44</last_update>
+<next_update>0000-00-00 00:00:00</next_update>
+<end_date>0000-00-00 00:00:00</end_date>
+<caller_id>5</caller_id>
+<impact>personne ne peut acceder au site de paris</impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>6</agent_id>
+<action_log>posjgsrkg
+jgmklerjg
+gejrg</action_log>
+<severity>low</severity>
+<assignment_count>1</assignment_count>
+<resolution></resolution>
+</bizIncidentTicket>
+<bizIncidentTicket id="9">
+<name>I-000009</name>
+<title>Issue on WAN</title>
+<type>Server</type>
+<org_id>2</org_id>
+<ticket_status>Assigned</ticket_status>
+<initial_situation>no access to Grenoble From Paris</initial_situation>
+<current_situation></current_situation>
+<start_date>2009-09-19 10:51:00</start_date>
+<last_update>2009-09-19 10:52:00</last_update>
+<next_update>0000-00-00 00:00:00</next_update>
+<end_date>0000-00-00 00:00:00</end_date>
+<caller_id>5</caller_id>
+<impact>Site isolated</impact>
+<workgroup_id>318</workgroup_id>
+<agent_id>6</agent_id>
+<action_log></action_log>
+<severity>critical</severity>
+<assignment_count>1</assignment_count>
+<resolution></resolution>
+</bizIncidentTicket>
+</Set>

+ 5 - 0
setup/data/12.relatedtickets.xml

@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
+<lnkRelatedTicket id="2">
+<rel_ticket_id>1</rel_ticket_id>
+<ticket_id>5</ticket_id>
+<impact></impact>
+</lnkRelatedTicket>
 <lnkRelatedTicket id="1">
 <rel_ticket_id>2</rel_ticket_id>
 <ticket_id>1</ticket_id>

+ 39 - 14
setup/data/13.infratickets.xml

@@ -1,33 +1,58 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<lnkInfraTicket id="12">
-<infra_id>125</infra_id>
+<lnkInfraTicket id="21">
+<infra_id>108</infra_id>
 <ticket_id>6</ticket_id>
 <impact>c&apos;est down</impact>
 </lnkInfraTicket>
-<lnkInfraTicket id="13">
-<infra_id>5</infra_id>
+<lnkInfraTicket id="16">
+<infra_id>308</infra_id>
+<ticket_id>2</ticket_id>
+<impact>eger</impact>
+</lnkInfraTicket>
+<lnkInfraTicket id="17">
+<infra_id>307</infra_id>
+<ticket_id>2</ticket_id>
+<impact>egertg</impact>
+</lnkInfraTicket>
+<lnkInfraTicket id="19">
+<infra_id>309</infra_id>
+<ticket_id>2</ticket_id>
+<impact>hn,hn</impact>
+</lnkInfraTicket>
+<lnkInfraTicket id="2">
+<infra_id>107</infra_id>
 <ticket_id>3</ticket_id>
 <impact>main application is broken</impact>
 </lnkInfraTicket>
-<lnkInfraTicket id="5">
-<infra_id>5</infra_id>
+<lnkInfraTicket id="24">
+<infra_id>328</infra_id>
+<ticket_id>9</ticket_id>
+<impact>no access to Grenoble</impact>
+</lnkInfraTicket>
+<lnkInfraTicket id="20">
+<infra_id>107</infra_id>
 <ticket_id>2</ticket_id>
 <impact>no more access to network</impact>
 </lnkInfraTicket>
 <lnkInfraTicket id="4">
-<infra_id>2</infra_id>
+<infra_id>9</infra_id>
 <ticket_id>1</ticket_id>
 <impact>not able to start IE</impact>
 </lnkInfraTicket>
-<lnkInfraTicket id="9">
-<infra_id>28</infra_id>
-<ticket_id>5</ticket_id>
-<impact>not able to work</impact>
-</lnkInfraTicket>
-<lnkInfraTicket id="10">
-<infra_id>5</infra_id>
+<lnkInfraTicket id="6">
+<infra_id>107</infra_id>
 <ticket_id>4</ticket_id>
 <impact>Order web site is no more working</impact>
 </lnkInfraTicket>
+<lnkInfraTicket id="22">
+<infra_id>9</infra_id>
+<ticket_id>5</ticket_id>
+<impact>PC is down</impact>
+</lnkInfraTicket>
+<lnkInfraTicket id="18">
+<infra_id>306</infra_id>
+<ticket_id>2</ticket_id>
+<impact>sgjgjklekglekg</impact>
+</lnkInfraTicket>
 </Set>

+ 1 - 1
setup/data/14.contacttickets.xml

@@ -6,7 +6,7 @@
 <role>Team that need to be informed</role>
 </lnkContactTicket>
 <lnkContactTicket id="2">
-<contact_id>21</contact_id>
+<contact_id>4</contact_id>
 <ticket_id>3</ticket_id>
 <role>to be informed</role>
 </lnkContactTicket>

+ 85 - 85
setup/data/15.changetickets.xml

@@ -1,85 +1,85 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Set>
-<bizChangeTicket id="1">
-<name>CM-0000003</name>
-<title>1st change</title>
-<type>Routine</type>
-<domain>Desktop</domain>
-<reason>reason</reason>
-<requestor_id>20</requestor_id>
-<org_id>3</org_id>
-<ticket_status>PlannedScheduled</ticket_status>
-<creation_date>2009-02-19 21:35:47</creation_date>
-<last_update>2009-02-18 18:33:14</last_update>
-<start_date>0000-00-00 00:00:00</start_date>
-<end_date>0000-00-00 00:00:00</end_date>
-<close_date>0000-00-00 00:00:00</close_date>
-<impact>There is no impact</impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>21</agent_id>
-<supervisorgroup_id>19</supervisorgroup_id>
-<supervisor_id>20</supervisor_id>
-<managergroup_id>19</managergroup_id>
-<manager_id>7</manager_id>
-<outage>No</outage>
-<change_request>I would like to install SQL plus on my laptop.
-Could you make it please</change_request>
-<change_log>We will push via netmeeting the package and install it at 10:00 tomorrow</change_log>
-<fallback>If there is any issue we will uninstall it</fallback>
-<assignment_count>0</assignment_count>
-</bizChangeTicket>
-<bizChangeTicket id="2">
-<name>CM-0000004</name>
-<title>Oracle upgrade on domino</title>
-<type>Routine</type>
-<domain>Application</domain>
-<reason>Patch Installation for Oracle</reason>
-<requestor_id>21</requestor_id>
-<org_id>3</org_id>
-<ticket_status>Approved</ticket_status>
-<creation_date>2009-03-17 14:50:34</creation_date>
-<last_update>2009-03-17 14:50:34</last_update>
-<start_date>2009-02-24 00:00:00</start_date>
-<end_date>2009-02-24 02:00:00</end_date>
-<close_date>0000-00-00 00:00:00</close_date>
-<impact>application impacted</impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>20</agent_id>
-<supervisorgroup_id>19</supervisorgroup_id>
-<supervisor_id>21</supervisor_id>
-<managergroup_id>19</managergroup_id>
-<manager_id>7</manager_id>
-<outage>Yes</outage>
-<change_request>We wan to install last Oracle Patch in order to fix rollback management issues</change_request>
-<change_log>We will install patch and reboot the server</change_log>
-<fallback>If not working we will remove this patch</fallback>
-<assignment_count>0</assignment_count>
-</bizChangeTicket>
-<bizChangeTicket id="3">
-<name>CM-0000005</name>
-<title>IOS upgrade</title>
-<type>Routine</type>
-<domain>Desktop</domain>
-<reason>security issue</reason>
-<requestor_id>21</requestor_id>
-<org_id>3</org_id>
-<ticket_status>New</ticket_status>
-<creation_date>2009-04-04 23:23:37</creation_date>
-<last_update>0000-00-00 00:00:00</last_update>
-<start_date>0000-00-00 00:00:00</start_date>
-<end_date>0000-00-00 00:00:00</end_date>
-<close_date>0000-00-00 00:00:00</close_date>
-<impact></impact>
-<workgroup_id>19</workgroup_id>
-<agent_id>21</agent_id>
-<supervisorgroup_id>19</supervisorgroup_id>
-<supervisor_id>20</supervisor_id>
-<managergroup_id>19</managergroup_id>
-<manager_id>7</manager_id>
-<outage>No</outage>
-<change_request>Upgrade to new IOS due to security reason</change_request>
-<change_log></change_log>
-<fallback></fallback>
-<assignment_count>0</assignment_count>
-</bizChangeTicket>
-</Set>
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<bizChangeTicket id="1">
+<name>C-000001</name>
+<title>1st change</title>
+<type>Routine</type>
+<domain>Desktop</domain>
+<reason>reason</reason>
+<requestor_id>5</requestor_id>
+<org_id>2</org_id>
+<ticket_status>PlannedScheduled</ticket_status>
+<creation_date>2009-02-19 21:35:47</creation_date>
+<last_update>2009-02-18 18:33:14</last_update>
+<start_date>0000-00-00 00:00:00</start_date>
+<end_date>0000-00-00 00:00:00</end_date>
+<close_date>0000-00-00 00:00:00</close_date>
+<impact>There is no impact</impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>4</agent_id>
+<supervisorgroup_id>317</supervisorgroup_id>
+<supervisor_id>5</supervisor_id>
+<managergroup_id>317</managergroup_id>
+<manager_id>6</manager_id>
+<outage>No</outage>
+<change_request>I would like to install SQL plus on my laptop.
+Could you make it please</change_request>
+<change_log>We will push via netmeeting the package and install it at 10:00 tomorrow</change_log>
+<fallback>If there is any issue we will uninstall it</fallback>
+<assignment_count>0</assignment_count>
+</bizChangeTicket>
+<bizChangeTicket id="2">
+<name>C-000002</name>
+<title>Oracle upgrade on domino</title>
+<type>Routine</type>
+<domain>Application</domain>
+<reason>Patch Installation for Oracle</reason>
+<requestor_id>4</requestor_id>
+<org_id>2</org_id>
+<ticket_status>Approved</ticket_status>
+<creation_date>2009-03-17 14:50:34</creation_date>
+<last_update>2009-03-17 14:50:34</last_update>
+<start_date>2009-02-24 00:00:00</start_date>
+<end_date>2009-02-24 02:00:00</end_date>
+<close_date>0000-00-00 00:00:00</close_date>
+<impact>application impacted</impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>5</agent_id>
+<supervisorgroup_id>317</supervisorgroup_id>
+<supervisor_id>4</supervisor_id>
+<managergroup_id>317</managergroup_id>
+<manager_id>6</manager_id>
+<outage>Yes</outage>
+<change_request>We wan to install last Oracle Patch in order to fix rollback management issues</change_request>
+<change_log>We will install patch and reboot the server</change_log>
+<fallback>If not working we will remove this patch</fallback>
+<assignment_count>0</assignment_count>
+</bizChangeTicket>
+<bizChangeTicket id="3">
+<name>C-000003</name>
+<title>IOS upgrade</title>
+<type>Routine</type>
+<domain>Desktop</domain>
+<reason>security issue</reason>
+<requestor_id>4</requestor_id>
+<org_id>2</org_id>
+<ticket_status>New</ticket_status>
+<creation_date>2009-04-04 23:23:37</creation_date>
+<last_update>2009-09-19 11:13:23</last_update>
+<start_date>0000-00-00 00:00:00</start_date>
+<end_date>0000-00-00 00:00:00</end_date>
+<close_date>0000-00-00 00:00:00</close_date>
+<impact></impact>
+<workgroup_id>317</workgroup_id>
+<agent_id>6</agent_id>
+<supervisorgroup_id>317</supervisorgroup_id>
+<supervisor_id>5</supervisor_id>
+<managergroup_id>317</managergroup_id>
+<manager_id>6</manager_id>
+<outage>No</outage>
+<change_request>Upgrade to new IOS due to security reason</change_request>
+<change_log></change_log>
+<fallback></fallback>
+<assignment_count>0</assignment_count>
+</bizChangeTicket>
+</Set>

+ 8 - 8
setup/data/16.infrachangetickets.xml

@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<lnkInfraChangeTicket id="7">
-<infra_id>22</infra_id>
+<lnkInfraChangeTicket id="1">
+<infra_id>310</infra_id>
 <ticket_id>2</ticket_id>
 <impact>impacted application</impact>
 </lnkInfraChangeTicket>
-<lnkInfraChangeTicket id="6">
-<infra_id>5</infra_id>
+<lnkInfraChangeTicket id="2">
+<infra_id>107</infra_id>
 <ticket_id>2</ticket_id>
 <impact>impacted server</impact>
 </lnkInfraChangeTicket>
-<lnkInfraChangeTicket id="5">
-<infra_id>2</infra_id>
+<lnkInfraChangeTicket id="3">
+<infra_id>9</infra_id>
 <ticket_id>1</ticket_id>
 <impact>PC where to install new appli</impact>
 </lnkInfraChangeTicket>
-<lnkInfraChangeTicket id="8">
-<infra_id>6</infra_id>
+<lnkInfraChangeTicket id="4">
+<infra_id>313</infra_id>
 <ticket_id>3</ticket_id>
 <impact>router not available </impact>
 </lnkInfraChangeTicket>

+ 8 - 8
setup/data/17.contactchangetickets.xml

@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<lnkContactChange id="3">
-<contact_id>7</contact_id>
+<lnkContactChange id="1">
+<contact_id>6</contact_id>
 <change_id>1</change_id>
 <role>DB admin</role>
 </lnkContactChange>
-<lnkContactChange id="4">
-<contact_id>20</contact_id>
+<lnkContactChange id="2">
+<contact_id>5</contact_id>
 <change_id>2</change_id>
 <role>Db administrator</role>
 </lnkContactChange>
-<lnkContactChange id="1">
-<contact_id>21</contact_id>
+<lnkContactChange id="3">
+<contact_id>4</contact_id>
 <change_id>1</change_id>
 <role>notify me</role>
 </lnkContactChange>
-<lnkContactChange id="5">
-<contact_id>7</contact_id>
+<lnkContactChange id="4">
+<contact_id>6</contact_id>
 <change_id>2</change_id>
 <role>Server Owner for reboot</role>
 </lnkContactChange>

+ 37 - 23
setup/data/18.contracts.xml

@@ -1,23 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Set>
-<bizContract id="1">
-<name>Oracle Support</name>
-<org_id>3</org_id>
-<provider_id>6</provider_id>
-<service_name>Software support</service_name>
-<team_id>8</team_id>
-<service_level>Gold</service_level>
-<cost_unit>Global</cost_unit>
-<cost_freq>Yearly</cost_freq>
-<cost>30000</cost>
-<currency>Euros</currency>
-<description>This contract define Oracle Support contract between Mecanorama and Oracle company.
-
-Yearly cost is 30.000 euros</description>
-<move2prod_date>2009-02-22 18:54:14</move2prod_date>
-<end_prod>2009-03-04 00:01:38</end_prod>
-<status>Signed</status>
-<type>Software</type>
-<version_number>3</version_number>
-</bizContract>
-</Set>
+<?xml version="1.0" encoding="UTF-8"?>
+<Set>
+<bizContract id="2">
+<name>Support for Database</name>
+<org_id>2</org_id>
+<service_id>1</service_id>
+<team_id>7</team_id>
+<service_level>Bronze</service_level>
+<cost_unit>Global</cost_unit>
+<cost_freq>Once</cost_freq>
+<cost>234570</cost>
+<currency>Euros</currency>
+<description>xcbvxdb</description>
+<move2prod_date>2009-09-23 21:44:07</move2prod_date>
+<end_prod>0000-00-00 00:00:00</end_prod>
+<status>Production</status>
+<type>Support</type>
+<version_number>2</version_number>
+</bizContract>
+<bizContract id="4">
+<name>test</name>
+<org_id>2</org_id>
+<service_id>1</service_id>
+<team_id>0</team_id>
+<service_level>Bronze</service_level>
+<cost_unit>Global</cost_unit>
+<cost_freq>Once</cost_freq>
+<cost>qfqsf</cost>
+<currency>Euros</currency>
+<description>wsdqsdf</description>
+<move2prod_date>2009-09-23 22:55:50</move2prod_date>
+<end_prod>0000-00-00 00:00:00</end_prod>
+<status>Production</status>
+<type>Support</type>
+<version_number>2</version_number>
+</bizContract>
+</Set>

+ 4 - 4
setup/data/19.infracontracts.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<lnkInfraContract id="1">
-<infra_id>22</infra_id>
-<contract_id>1</contract_id>
-<coverage>Office Hour</coverage>
+<lnkInfraContract id="2">
+<infra_id>310</infra_id>
+<contract_id>2</contract_id>
+<coverage>8*5</coverage>
 <service_level>Gold</service_level>
 </lnkInfraContract>
 </Set>

+ 4 - 9
setup/data/20.contactcontracts.xml

@@ -1,13 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<lnkContactContract id="1">
-<contact_id>21</contact_id>
-<contract_id>1</contract_id>
-<role>Contract Manager</role>
-</lnkContactContract>
-<lnkContactContract id="2">
-<contact_id>8</contact_id>
-<contract_id>1</contract_id>
-<role>Team in charge to manage Oracle</role>
+<lnkContactContract id="3">
+<contact_id>6</contact_id>
+<contract_id>2</contract_id>
+<role>contract manager</role>
 </lnkContactContract>
 </Set>

+ 7 - 7
setup/data/21.subnets.xml

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Set>
-<bizSubnet id="500">
-<org_id>3</org_id>
-<name>my subnet</name>
+<bizSubnet id="321">
+<name>subnet 1</name>
 <status>implementation</status>
-<criticity>low</criticity>
-<ip>10.22.0.0</ip>
-<mask>255.255.0.0</mask>
+<org_id>2</org_id>
+<severity>low</severity>
+<ip>15.128.3.0</ip>
+<mask>255.255.255.0</mask>
 </bizSubnet>
-</Set>
+</Set>

+ 7 - 2
setup/data/export.cmd

@@ -1,4 +1,4 @@
-SET WEBROOT=http://localhost:81
+SET WEBROOT=http://localhost:81/trunk
 SET EXPORT=%WEBROOT%/webservices/export.php
 
 SET USER=admin
@@ -8,13 +8,15 @@ REM The order (numbering) of the files is important since
 REM it dictates the order to import them back
 wget --output-document=01.organizations.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizOrganization&format=xml"
 wget --output-document=02.locations.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizLocation&format=xml"
-wget --output-document=03.persons.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizPerson&format=xml"
+wget --output-document=03.persons.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizPerson WHERE id !%%3D 1&format=xml"
 wget --output-document=04.teams.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizTeam&format=xml"
 wget --output-document=05.pcs.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizPC&format=xml"
 wget --output-document=06.servers.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizServer&format=xml"
 wget --output-document=07.applications.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizApplication&format=xml"
 wget --output-document=08.nw-devices.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizNetworkDevice&format=xml"
 wget --output-document=09.links_contacts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkContactRealObject&format=xml"
+wget --output-document=09.1.interfaces.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizInterface&format=xml"
+wget --output-document=09.2.circuits.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizCircuit&format=xml"
 wget --output-document=10.workgroups.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizWorkgroup&format=xml"
 wget --output-document=11.incidents.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizIncidentTicket&format=xml"
 wget --output-document=12.relatedtickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkRelatedTicket&format=xml"
@@ -24,6 +26,9 @@ wget --output-document=15.changetickets.xml --post-data="auth_user=%USER%&auth_p
 wget --output-document=16.infrachangetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkInfraChangeTicket&format=xml"
 wget --output-document=17.contactchangetickets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkContactChange&format=xml"
 wget --output-document=18.contracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizContract&format=xml"
+wget --output-document=18.1.services.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizService&format=xml"
 wget --output-document=19.infracontracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkInfraContract&format=xml"
 wget --output-document=20.contactcontracts.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT lnkContactContract&format=xml"
 wget --output-document=21.subnets.xml --post-data="auth_user=%USER%&auth_pwd=%PWD%&operation=login" "%EXPORT%?expression=SELECT bizSubnet&format=xml"
+
+pause

部分文件因为文件数量过多而无法显示