cmdbAbstractObject * @author Romain Quetiez * @author Denis Flaven * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL */]]> bizmodel,searchable,structure false autoincrement organization id %1$s name false code true active inactive status active true parent_id true DEL_MANUAL parent_id name
name code status parent_id
name code status parent_id status parent_id
cmdbAbstractObject bizmodel,searchable,structure false autoincrement location id %1$s images/location.png name false active inactive status active true org_id Organization false DEL_MANUAL org_id name address true postal_code true city true country true parent_id true DEL_MANUAL org_id]]> parent_id name Contact location_id 0 0 InfrastructureCI location_id 0 0
name status org_id address postal_code city country parent_id contact_list infra_list
name status org_id city country parent_id status org_id city country
cmdbAbstractObject bizmodel,searchable,structure true autoincrement contact id finalclass %1$s images/team.png name false active inactive status active false org_id Organization false DEL_MANUAL org_id name email false phone true org_id]]> location_id Location true DEL_MANUAL location_id name lnkContractToContact contact_id 0 0 contract_id lnkServiceToContact contact_id 0 0 service_id lnkTicketToContact contact_id 0 0 ticket_id lnkCIToContact contact_id 0 0 ci_id lnkTeamToContact contact_id 0 0 team_id
name status org_id email phone location_id contract_list service_list ticket_list ci_list team_list
name status org_id email phone location_id finalclass status org_id email phone location_id
Contact bizmodel,searchable,structure false autoincrement person id %1$s %2$s images/person.png first_name false employee_id true
name first_name org_id status location_id email phone employee_id team_list contract_list service_list ticket_list ci_list
name status org_id email phone location_id first_name employee_id name first_name status org_id email phone location_id
Contact bizmodel,searchable,structure false autoincrement team id %1$s images/team.png lnkTeamToContact team_id 0 0 contact_id
name status org_id location_id email phone member_list contract_list service_list ticket_list ci_list team_list
name status org_id email phone location_id status org_id email phone location_id
cmdbAbstractObject 1 bizmodel,searchable,structure false autoincrement lnkteamtocontact id %1$s team_id Team false DEL_AUTO team_id name contact_id Contact false DEL_AUTO contact_id name contact_id location_id contact_id location_name contact_id email contact_id phone role true
team_id contact_id role
team_id contact_id role team_id contact_id contact_location_id contact_email contact_phone role
cmdbAbstractObject bizmodel,searchable,documentation true autoincrement document id finalclass %1$s images/document.png name false org_id Organization false DEL_MANUAL org_id name description true contract networkmap presentation training whitePaper workinginstructions type presentation true draft published obsolete status draft false lnkContractToDoc document_id 0 0 contract_id lnkServiceToDoc document_id 0 0 service_id lnkTicketToDoc document_id 0 0 ticket_id lnkCIToDoc document_id 0 0 ci_id
name org_id description type status contract_list service_list ticket_list ci_list
name org_id description type status org_id type status
Document bizmodel,searchable,documentation false autoincrement externaldoc id %1$s images/document.png url false _blank
name org_id description type status contract_list service_list ticket_list ci_list url
name org_id description type status url org_id type status url
Document bizmodel,searchable,documentation false autoincrement note id %1$s images/document.png note true
name org_id description type status contract_list service_list ticket_list ci_list note
name org_id description type status note org_id type status note
Document bizmodel,searchable,documentation false autoincrement filedoc id %1$s images/document.png /** * Overload the display of the properties to add a tab (the first one) * with the preview of the document */ false public Overload-cmdbAbstractObject SetCurrentTab(Dict::S('Class:Document:PreviewTab')); $oPage->add($this->DisplayDocumentInline($oPage, 'contents')); $oPage->SetCurrentTab(Dict::S('UI:PropertiesTab')); } parent::DisplayBareProperties($oPage, $bEditMode, $sPrefix, $aExtraParams); }]]>
name org_id description type status contract_list service_list ticket_list ci_list contents
name org_id description type status org_id type status contents
cmdbAbstractObject bizmodel,searchable,configmgmt false autoincrement licence id %1$s images/licence.png provider false org_id Organization false DEL_MANUAL org_id name product false name false start true end true licence_key true scope true usage_limit true SoftwareInstance licence_id 0 0
name org_id provider product start end licence_key scope usage_limit usage_list
org_id provider product name start end licence_key scope org_id provider product start end
cmdbAbstractObject bizmodel,searchable,configmgmt false autoincrement subnet id %1$s / %2$s images/subnet.png description true org_id Organization false DEL_MANUAL org_id name ip false ip_mask false false public Overload-cmdbAbstractObject SetCurrentTab(Dict::S('Class:Subnet/Tab:IPUsage')); $bit_ip = ip2long($this->Get('ip')); $bit_mask = ip2long($this->Get('ip_mask')); $iIPMin = sprintf('%u', ($bit_ip & $bit_mask) | 1); // exclude the first one: identifies the subnet itself $iIPMax = sprintf('%u', (($bit_ip | (~$bit_mask))) & 0xfffffffe); // exclude the last one : broadcast address $sIPMin = long2ip($iIPMin); $sIPMax = long2ip($iIPMax); $oPage->p(Dict::Format('Class:Subnet/Tab:IPUsage-explain', $sIPMin, $sIPMax)); $oIfFilter = DBObjectSearch::FromOQL("SELECT NetworkInterface AS if WHERE INET_ATON(if.ip_address) >= INET_ATON('$sIPMin') AND INET_ATON(if.ip_address) <= INET_ATON('$sIPMax')"); $oIfSet = new CMDBObjectSet($oIfFilter); $oBlock = new DisplayBlock($oIfFilter, 'list', false); $oBlock->Display($oPage, 'nwif', array('menu' => false)); $iCountUsed = $oIfSet->Count(); $iCountRange = $iIPMax - $iIPMin; // On 32-bit systems the substraction will be computed using floats for values greater than PHP_MAX_INT; $iFreeCount = $iCountRange - $iCountUsed; $oPage->SetCurrentTab(Dict::S('Class:Subnet/Tab:FreeIPs')); $oPage->p(Dict::Format('Class:Subnet/Tab:FreeIPs-count', $iFreeCount)); $oPage->p(Dict::S('Class:Subnet/Tab:FreeIPs-explain')); $aUsedIPs = $oIfSet->GetColumnAsArray('ip_address', false); $iAnIP = $iIPMin; $iFound = 0; while (($iFound < min($iFreeCount, 10)) && ($iAnIP <= $iIPMax)) { $sAnIP = long2ip($iAnIP); if (!in_array($sAnIP, $aUsedIPs)) { $iFound++; $oPage->p($sAnIP); } else { } $iAnIP++; } } }]]>
ip ip_mask org_id description
ip ip_mask org_id description ip ip_mask org_id
cmdbAbstractObject bizmodel,searchable,configmgmt false autoincrement patch id %1$s images/patch.png name false description true target_sw true version true application os security servicepack type security false lnkPatchToCI patch_id 0 0 ci_id
name description target_sw version type ci_list
name target_sw version type description target_sw version type
cmdbAbstractObject bizmodel,searchable,configmgmt true autoincrement software id finalclass %1$s images/software.png name false description true
name description
name description description
Software bizmodel,searchable,configmgmt false autoincrement software_app id %1$s images/software.png ApplicationInstance software_id 0 0
name description instance_list
name description description
Software bizmodel,searchable,configmgmt false autoincrement software_db id %1$s images/software.png DBServerInstance software_id 0 0
name description instance_list
name description description
cmdbAbstractObject 1 bizmodel,configmgmt false autoincrement lnkpatchtoci id %1$s patch_id Patch false DEL_AUTO patch_id name ci_id Device false DEL_AUTO ci_id name ci_id status
patch_id ci_id ci_status
patch_id ci_id patch_id ci_id ci_status
cmdbAbstractObject bizmodel,searchable,configmgmt true autoincrement functionalci id finalclass %1$s images/server.png name false implementation production obsolete status implementation false org_id Organization false DEL_MANUAL org_id name low medium high importance medium false lnkCIToContact ci_id 0 0 contact_id lnkCIToDoc ci_id 0 0 document_id lnkSolutionToCI ci_id 0 0 solution_id lnkContractToCI ci_id 0 0 contract_id lnkTicketToCI ci_id 0 0 ticket_id true public Overload-DBObject array("sQuery"=>"SELECT Contact AS c JOIN lnkCIToContact AS l1 ON l1.contact_id = c.id WHERE l1.ci_id = :this->id", "bPropagate"=>true, "iDistance"=>3), "solution" => array("sQuery"=>"SELECT ApplicationSolution AS s JOIN lnkSolutionToCI AS l1 ON l1.solution_id = s.id WHERE l1.ci_id = :this->id", "bPropagate"=>true, "iDistance"=>2), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; default: return parent::GetRelationQueries($sRelCode); } }]]>
name status org_id importance contact_list document_list solution_list contract_list ticket_list
name status org_id importance finalclass status org_id importance
FunctionalCI bizmodel,searchable,configmgmt true autoincrement softwareinstance id %1$s - %2$s images/application.png org_id]]> device_id Device false DEL_MANUAL device_id name org_id]]> licence_id Licence true DEL_MANUAL licence_id name version true description true false public Overload-DBObject public function ComputeValues() { } true public Overload-DBObject array("sQuery"=>"SELECT DatabaseInstance AS db WHERE db.db_server_instance_id = :this->id", "bPropagate"=>true, "iDistance"=>5), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; case 'depends on': $aRels = array( "applications" => array("sQuery"=>"SELECT Device JOIN SoftwareInstance AS app ON app.device_id = Device.id WHERE app.id = :this->id", "bPropagate"=>true, "iDistance"=>5), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; default: return parent::GetRelationQueries($sRelCode); } }]]>
name status org_id importance device_id licence_id version description contact_list document_list solution_list contract_list ticket_list
status org_id importance device_id licence_id version finalclass status org_id importance device_id version
SoftwareInstance bizmodel,searchable,configmgmt false autoincrement softwareinstance_dbserver id %1$s - %2$s images/database.png software_id DBServer false DEL_MANUAL software_id name DatabaseInstance db_server_instance_id 0 0
name status org_id importance device_id licence_id software_id version description contact_list document_list solution_list contract_list ticket_list dbinstance_list
status org_id importance device_id licence_id software_id version status org_id importance device_id software_id version
SoftwareInstance bizmodel,searchable,configmgmt false autoincrement softwareinstance_application id %1$s - %2$s images/application.png software_id Application false DEL_MANUAL software_id name
name status org_id importance device_id licence_id software_id version description contact_list document_list solution_list contract_list ticket_list
status org_id importance device_id licence_id software_id version status org_id importance device_id software_id version
FunctionalCI bizmodel,searchable,configmgmt false autoincrement databaseinstance id %1$s - %2$s images/database-instance.png org_id]]> db_server_instance_id DBServerInstance false DEL_MANUAL db_server_instance_id name db_server_instance_id version description true true public Overload-DBObject array("sQuery"=>"SELECT DBServerInstance AS db_server_inst JOIN DatabaseInstance AS db ON db.db_server_instance_id = db_server_inst.id WHERE db.id = :this->id", "bPropagate"=>true, "iDistance"=>5), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; default: return parent::GetRelationQueries($sRelCode); } }]]>
name status org_id importance db_server_instance_id db_server_instance_version description contact_list document_list solution_list contract_list ticket_list
name status org_id importance db_server_instance_id db_server_instance_version status org_id importance db_server_instance_id db_server_instance_version
FunctionalCI bizmodel,searchable,configmgmt false autoincrement applicationsolution id %1$s images/solution.png description true lnkSolutionToCI solution_id 0 0 ci_id lnkProcessToSolution solution_id 0 0 process_id true public Overload-DBObject array("sQuery"=>"SELECT BusinessProcess AS p JOIN lnkProcessToSolution AS l1 ON l1.process_id = p.id WHERE l1.solution_id = :this->id", "bPropagate"=>true, "iDistance"=>3), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; case "depends on": $aRels = array( "solution" => array("sQuery"=>"SELECT FunctionalCI AS ci JOIN lnkSolutionToCI AS l1 ON l1.ci_id = ci.id WHERE l1.solution_id = :this->id", "bPropagate"=>true, "iDistance"=>2), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; default: return parent::GetRelationQueries($sRelCode); } }]]>
name status org_id importance description contact_list document_list solution_list contract_list ticket_list ci_list process_list
name status org_id importance status org_id importance
FunctionalCI bizmodel,searchable,configmgmt false autoincrement businessprocess id %1$s images/business-process.png description true lnkProcessToSolution process_id 0 0 solution_id true public Overload-DBObject array("sQuery"=>"SELECT ApplicationSolution AS app JOIN lnkProcessToSolution AS l1 ON l1.solution_id = app.id WHERE l1.process_id = :this->id", "bPropagate"=>true, "iDistance"=>3), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; default: return parent::GetRelationQueries($sRelCode); } }]]>
name status org_id importance description contact_list document_list contract_list ticket_list used_solution_list
name status org_id importance description status org_id importance
FunctionalCI bizmodel,searchable,configmgmt true autoincrement connectableci id %1$s images/server.png brand true model true serial_number true asset_ref true
name status org_id importance brand model serial_number asset_ref contact_list document_list solution_list contract_list ticket_list
name status org_id importance brand model serial_number asset_ref finalclass status org_id importance brand model serial_number asset_ref
ConnectableCI bizmodel,searchable,configmgmt false autoincrement networkinterface id %1$s - %2$s images/interface.png org_id]]> device_id Device false DEL_AUTO device_id name backup logical port primary secondary logical_type primary false atm ethernet framerelay vlan physical_type ethernet false ip_address true ip_mask true mac_address true speed true full half auto unknown duplex full true org_id]]> connected_if NetworkInterface true DEL_AUTO connected_if name connected_if device_id connected_if device_name uplink downlink link_type uplink false connected_if device_id_friendlyname true public Overload-DBObject array("sQuery"=>"SELECT Device AS dev JOIN NetworkInterface AS if1 ON if1.device_id = dev.id JOIN NetworkInterface AS if2 ON if2.connected_if = if1.id WHERE if2.id = :this->id AND if2.link_type='downlink'", "bPropagate"=>true, "iDistance"=>5), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; default: return parent::GetRelationQueries($sRelCode); } }]]> false protected Overload-DBObject m_aOrigValues['connected_if']; // The interface this interface was connected to if ($iPrevTargetIf != 0) { // The interface was previosuly connected to another interface. Make sure that we reset this 'previously connected interface' $oPrevConnectedIf = MetaModel::GetObject('NetworkInterface', $iPrevTargetIf, false); if (!is_null($oPrevConnectedIf)) { $oPrevConnectedIf->Set('connected_if', 0); // Need to backup the current change, because it is reset when DBUpdateTracked is complete $oCurrChange = self::$m_oCurrChange; $oPrevConnectedIf->DBUpdateTracked($oCurrChange); self::$m_oCurrChange = $oCurrChange; } } $oConnIf = MetaModel::GetObject('NetworkInterface', $this->Get('connected_if'), false /* no exception if not found */); if (!is_null($oConnIf)) { $sLink = $this->Get('link_type'); $sConnLink = ($sLink == 'uplink') ? 'downlink' : 'uplink'; if (($oConnIf->Get('connected_if') != $this->GetKey()) || ($sConnLink != $oConnIf->Get('link_type'))) { // Something has to be changed on the connected interface... if ($oConnIf->Get('connected_if') != $this->GetKey()) { // It is connected to another interface: reset that third one... $oThirdIf = MetaModel::GetObject('NetworkInterface', $oConnIf->Get('connected_if'), false); if (!is_null($oThirdIf)) { $oThirdIf->Set('connected_if', 0); // Need to backup the current change, because it is reset when DBUpdateTracked is complete $oCurrChange = self::$m_oCurrChange; $oThirdIf->DBUpdateTracked($oCurrChange); self::$m_oCurrChange = $oCurrChange; } } // Connect the remote interface to the current one $oConnIf->Set('connected_if', $this->GetKey()); $oConnIf->Set('link_type', $sConnLink); // Need to backup the current change, because it is reset when DBUpdateTracked is complete $oCurrChange = self::$m_oCurrChange; $oConnIf->DBUpdateTracked($oCurrChange); self::$m_oCurrChange = $oCurrChange; } } }]]> false protected Overload-DBObject UpdateConnectedInterface(); parent::AfterInsert(); }]]> false protected Overload-DBObject UpdateConnectedInterface(); parent::AfterUpdate(); }]]>
name status org_id importance brand model serial_number asset_ref device_id logical_type physical_type ip_address ip_mask mac_address speed duplex link_type connected_if connected_if_device_id contact_list document_list solution_list contract_list ticket_list
name status org_id importance device_id logical_type physical_type ip_address ip_mask mac_address connected_if_device_id status ip_address importance device_id logical_type physical_type link_type connected_if_device_id
ConnectableCI bizmodel,searchable,configmgmt true autoincrement device id %1$s images/server.png NetworkInterface device_id 0 0 true public Overload-DBObject array("sQuery"=>"SELECT SoftwareInstance AS app WHERE app.device_id = :this->id", "bPropagate"=>true, "iDistance"=>5), "connected_devices" => array("sQuery"=>"SELECT Device AS dev JOIN NetworkInterface AS if1 ON if1.device_id = dev.id JOIN NetworkInterface AS if2 ON if2.connected_if = if1.id WHERE if2.device_id = :this->id AND if2.link_type='downlink'", "bPropagate"=>true, "iDistance"=>5), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; case "depends on": $aRels = array( "connected_devices" => array("sQuery"=>"SELECT Device AS dev JOIN NetworkInterface AS if1 ON if1.device_id = dev.id JOIN NetworkInterface AS if2 ON if2.connected_if = if1.id WHERE if2.device_id = :this->id AND if2.link_type='uplink'", "bPropagate"=>true, "iDistance"=>5), ); return array_merge($aRels, parent::GetRelationQueries($sRelCode)); break; default: return parent::GetRelationQueries($sRelCode); } }]]>
name status org_id importance brand model serial_number asset_ref contact_list document_list solution_list contract_list ticket_list nwinterface_list
name status org_id importance brand model serial_number asset_ref finalclass status org_id importance brand model serial_number asset_ref
Device bizmodel,searchable,configmgmt false autoincrement pc id %1$s images/laptop.png cpu true ram true hdd true os_family true os_version true SoftwareInstance device_id 0 0 lnkPatchToCI ci_id 0 0 patch_id
name status org_id importance brand model serial_number asset_ref cpu ram hdd os_family os_version contact_list document_list solution_list contract_list ticket_list nwinterface_list application_list patch_list
name status org_id importance brand model serial_number asset_ref os_family os_version status org_id importance brand model os_family
Device bizmodel,searchable,configmgmt true autoincrement mobileci id %1$s images/mobile-phone.png
name status org_id importance brand model serial_number asset_ref contact_list document_list solution_list contract_list ticket_list nwinterface_list
name status org_id importance brand model serial_number asset_ref status org_id importance brand model
MobileCI bizmodel,searchable,configmgmt false autoincrement mobilephone id %1$s images/mobile-phone.png number true IMIE true hw_pin true
name status org_id importance brand model serial_number asset_ref number imei hw_pin contact_list document_list solution_list contract_list ticket_list nwinterface_list
name status org_id importance brand model serial_number asset_ref number imei status org_id importance brand model
Device bizmodel,searchable,configmgmt true autoincrement infrastructureci id %1$s images/server.png description true org_id]]> location_id Location true DEL_MANUAL location_id name location_details true management_ip true default_gateway true
name status org_id importance brand model serial_number asset_ref description location_id location_details management_ip default_gateway contact_list document_list solution_list contract_list ticket_list nwinterface_list
name status org_id importance brand model serial_number asset_ref location_id management_ip default_gateway status org_id importance brand model location_id
InfrastructureCI bizmodel,searchable,configmgmt false autoincrement networkdevice id %1$s images/switch.png wanaccelerator firewall hub loadbalancer router switch type switch true ios_version true ram true snmp_read true snmp_write true
name status org_id importance brand model serial_number asset_ref description location_id location_details management_ip default_gateway type ios_version ram snmp_read snmp_write contact_list document_list solution_list contract_list ticket_list nwinterface_list
name status org_id importance brand model serial_number asset_ref location_id management_ip default_gateway type ios_version status org_id importance brand model location_id type
InfrastructureCI bizmodel,searchable,configmgmt false autoincrement server id %1$s images/server.png cpu true ram true hdd true os_family true os_version true SoftwareInstance device_id 0 0 lnkPatchToCI ci_id 0 0 patch_id
name status org_id importance brand model serial_number asset_ref description location_id location_details management_ip default_gateway cpu ram hdd os_family os_version contact_list document_list solution_list contract_list ticket_list nwinterface_list application_list patch_list
name status org_id importance brand model serial_number asset_ref location_id management_ip default_gateway os_family os_version status org_id importance brand model location_id os_family
InfrastructureCI bizmodel,searchable,configmgmt false autoincrement printer id %1$s images/printer.png mopier printer type printer true laser inkjet tracer technology laser true
name status org_id importance brand model serial_number asset_ref description location_id location_details management_ip default_gateway type technology contact_list document_list solution_list contract_list ticket_list nwinterface_list
name status org_id importance brand model serial_number asset_ref description location_id location_details management_ip default_gateway type technology status org_id importance brand model serial_number asset_ref location_id management_ip default_gateway type technology
cmdbAbstractObject bizmodel,searchable,configmgmt false autoincrement group id %1$s images/group.png name false production implementation obsolete status implementation false org_id Organization false DEL_MANUAL org_id name description true type true parent_id true DEL_MANUAL parent_id name lnkGroupToCI group_id 0 0 ci_id
name status org_id type description parent_id ci_list
name status org_id type status org_id type parent_id
cmdbAbstractObject 1 bizmodel,configmgmt false autoincrement lnkgrouptoci id %1$s group_id Group false DEL_MANUAL group_id name ci_id FunctionalCI false DEL_MANUAL ci_id name ci_id status reason true
group_id ci_id ci_status reason
group_id ci_id reason group_id ci_id ci_status reason
cmdbAbstractObject 1 bizmodel,configmgmt false autoincrement lnkcitodoc id %1$s ci_id FunctionalCI false DEL_AUTO ci_id name ci_id status document_id Document false DEL_AUTO document_id name document_id type document_id status
ci_id ci_status document_id document_type document_status
ci_id document_id ci_id ci_status document_id document_type document_status
cmdbAbstractObject 1 bizmodel,configmgmt false autoincrement lnkcitocontact id %1$s images/contact.png ci_id FunctionalCI false DEL_AUTO ci_id name ci_id status contact_id Contact false DEL_AUTO contact_id name contact_id email role true
ci_id ci_status contact_id contact_email role
ci_id contact_id role ci_id ci_status contact_id contact_email role
cmdbAbstractObject 1 bizmodel,configmgmt false autoincrement lnksolutiontoci id %1$s solution_id ApplicationSolution false DEL_AUTO solution_id name ci_id FunctionalCI false DEL_AUTO ci_id name ci_id status utility true
solution_id ci_id ci_status utility
solution_id ci_id utility solution_id ci_id ci_status utility
cmdbAbstractObject 1 bizmodel,configmgmt false autoincrement lnkprocesstosolution id %1$s solution_id ApplicationSolution false DEL_AUTO solution_id name process_id BusinessProcess false DEL_AUTO process_id name reason true
solution_id process_id reason
solution_id process_id reason solution_id process_id reason
70 Organization UR_ACTION_MODIFY UR_ALLOWED_YES 33 DataAdministration $pages/audit.php 50 DataAdministration 10 Catalogs SELECT Organization 1 20 Catalogs SELECT Application 40 Catalogs SELECT DBServer 20 0 ConfigManagement config-dashboard.xml 1 ConfigManagement contacts_menu.xml 1 Contact Contact 2 Contact Contact 2 ConfigManagement SELECT Document 1 3 ConfigManagement SELECT Location 1 4 ConfigManagement SELECT Group 1 5 ConfigManagement cis_menu.xml 0 ConfigManagementCI FunctionalCI 1 ConfigManagementCI FunctionalCI 6 ConfigManagement 1 ConfigManagement:Shortcuts SELECT Server 2 ConfigManagement:Shortcuts SELECT NetworkDevice 3 ConfigManagement:Shortcuts SELECT Printer 4 ConfigManagement:Shortcuts SELECT PC 5 ConfigManagement:Shortcuts SELECT BusinessProcess 6 ConfigManagement:Shortcuts SELECT ApplicationSolution