cmdbAbstractObjectbizmodel,searchable,structurefalseautoincrementorganizationidimages/building.pngnamefalsecodetrueactiveinactivestatusactivetruelistparent_idtrueDEL_MANUALparent_idname1020304010203040102030cmdbAbstractObjectbizmodel,searchable,structurefalseautoincrementlocationidimages/location.pngnamefalseactiveinactivestatusactivetruelistorg_idOrganizationfalseDEL_MANUALorg_idnameaddresstruepostal_codetruecitytruecountrytruePhysicalDevicelocation_idadd_only00Personlocation_idadd_only001020304050607080901020304050607010203040cmdbAbstractObjectbizmodel,searchable,structuretrueautoincrementcontactidfinalclassimages/team.pngnamefalseactiveinactivestatusactivefalselistorg_idOrganizationfalseDEL_MANUALorg_idnameemailtruephonetrueyesnonotifyyestrueradio_horizontalfunctiontruelnkContactToFunctionalCIcontact_id00functionalci_id10203040506070102030405060701020304050Contactbizmodel,searchable,structurefalseautoincrementpersonidimages/person.png9696128128images/silhouette.pngtruefirst_namefalseemployee_numbertruemobile_phonetrueorg_id]]>location_idLocationtrueDEL_MANUALfalselocation_idnamemanager_idPersontrueDEL_MANUALmanager_idnamelnkPersonToTeamperson_id00team_idTicketcaller_idadd_only0010203040101020304050607080505101010203040102030405060708090100110102030405060Contactbizmodel,searchablefalseautoincrementteamidimages/team.pnglnkPersonToTeamteam_id00person_idTicketteam_idnone001020304050607080901001020304050607010203040cmdbAbstractObjectbizmodel,searchabletrueautoincrementdocumentidfinalclassimages/document.pngnamefalseorg_idOrganizationfalseDEL_MANUALorg_idnamedocumenttype_idDocumentTypetrueDEL_MANUALdocumenttype_idnameversiontruedescriptiontruedraftpublishedobsoletestatustruelistlnkDocumentToFunctionalCIdocument_id00functionalci_idlnkContractToDocumentdocument_id00contract_idlnkDocumentToServicedocument_id00service_id102030354050607080102030405010203040Documentbizmodel,searchablefalseautoincrementdocumentfileidimages/document.pngfalsepublicOverload-cmdbAbstractObjectadd('');
}
return $aFieldsMap;
}]]>10203035405060708090102030405010203040Documentbizmodel,searchablefalseautoincrementdocumentnoteidimages/document.pngtextfalse10203035405060708090102030405010203040Documentbizmodel,searchablefalseautoincrementdocumentwebidimages/document.pngurltrue_blank102030354050607080102030405010203040cmdbAbstractObjectbizmodel,searchabletrueautoincrementfunctionalciidfinalclassimages/server.pngnamefalsedescriptiontrueorg_idOrganizationfalseDEL_MANUALorg_idnamehighmediumlowbusiness_criticitylowtruelistmove2productiontruelnkContactToFunctionalCIfunctionalci_id00contact_idlnkDocumentToFunctionalCIfunctionalci_id00document_idlnkApplicationSolutionToFunctionalCIfunctionalci_id00applicationsolution_idlnkFunctionalCIToProviderContractfunctionalci_id00providercontract_idlnkFunctionalCIToServicefunctionalci_id00service_idSoftwareInstancesystem_idin_placeall00lnkFunctionalCIToTicketfunctionalci_id00ticket_id10203040506070901001101020304010203040/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectfalsepublicOverload-cmdbAbstractObjectGetLinkedClass();
$sExtKeyToMe = $oAttDef->GetExtKeyToMe();
$sExtKeyToRemote = $oAttDef->GetExtKeyToRemote();
$iTotal = 0;
$aSearches = array();
foreach (MetaModel::EnumChildClasses('Ticket') as $sSubClass)
{
if (!MetaModel::HasChildrenClasses($sSubClass))
{
$sStateAttCode = MetaModel::GetStateAttributeCode($sSubClass);
if ($sStateAttCode != '')
{
$oSearch = DBSearch::FromOQL("SELECT $sSubClass AS t JOIN $sLnkClass AS lnk ON lnk.$sExtKeyToRemote = t.id WHERE $sExtKeyToMe = :myself AND $sStateAttCode NOT IN ('rejected', 'resolved', 'closed')", array('myself' => $this->GetKey()));
$aSearches[$sSubClass] = $oSearch;
$oSet = new DBObjectSet($oSearch);
$iTotal += $oSet->Count();
}
}
}
$sCount = ($iTotal > 0) ? ' ('.$iTotal.')' : '';
$oPage->SetCurrentTab(Dict::S('Class:FunctionalCI/Tab:OpenedTickets').$sCount);
foreach ($aSearches as $sSubClass => $oSearch)
{
$sBlockId = __class__.'_opened_'.$sSubClass;
$oPage->add('');
}
}
}]]>contacts_listdownapplicationsolution_listsoftwares_listFunctionalCIbizmodel,searchabletrueautoincrementphysicaldeviceidimages/server.pngserialnumbertrueorg_id]]>location_idLocationtrueDEL_MANUALfalselocation_idnameproductionimplementationstockobsoletestatusproductiontruelistbrand_idBrandtrueDEL_MANUALbrand_idnamebrand_id AND type=:this->finalclass]]>model_idModeltrueDEL_MANUALmodel_idnameasset_numbertruepurchase_datetrueend_of_warrantytrue1020304050607080901001101201301401501020304050607080901001101201020304050607080PhysicalDevicebizmodel,searchabletrueautoincrementconnectableciidimages/server.pnglnkConnectableCIToNetworkDeviceconnectableci_id00networkdevice_idtruePhysicalInterfaceconnectableci_idin_placeall001020304050607080901001101201301401501601020304050607080901001101201020304050607080/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectConnectableCIbizmodel,searchabletrueautoincrementdatacenterdeviceidimages/server.pnglocation_id]]>rack_idRacktrueDEL_MANUALfalserack_idnamerack_id]]>enclosure_idEnclosuretrueDEL_MANUALfalseenclosure_idnamenb_utruemanagementiptruelocation_id]]>powera_idPowerConnectiontrueDEL_MANUALfalsepowerA_idnamelocation_id]]>powerB_idPowerConnectiontrueDEL_MANUALfalsepowerB_idnameFiberChannelInterfacedatacenterdevice_idin_placeall00lnkSanToDatacenterDevicedatacenterdevice_id00san_idredundancyimpactsPowerConnectiondatacenterdevicetruefixed1countfixed1020304050607080901001101201301401501601701801902002102201020304050607080901001101201301401020304050607080DatacenterDevicebizmodel,searchablefalseautoincrementnetworkdeviceidimages/switch.pngnetworkdevicetype_idNetworkDeviceTypefalseDEL_MANUALnetworkdevicetype_idnamelnkConnectableCIToNetworkDevicenetworkdevice_id00connectableci_idtrueiosversion_idIOSVersiontrueDEL_MANUALiosversion_idnameramtrue102035405060708010102030405060702010203040455060708090101020302010203030101020304050556070809010011012013014010203040506070/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectSELECT ConnectableCI AS d JOIN lnkConnectableCIToNetworkDevice AS l1 ON l1.connectableci_id = d.id WHERE l1.networkdevice_id = :this->id AND l1.connection_type='downlink'SELECT NetworkDevice AS nw JOIN lnkConnectableCIToNetworkDevice AS l1 ON l1.networkdevice_id = nw.id WHERE l1.connectableci_id = :this->id AND l1.connection_type='downlink'DatacenterDevicebizmodel,searchablefalseautoincrementserveridimages/server.pngosfamily_idOSFamilytrueDEL_MANUALosfamily_idnameosfamily_id]]>osversion_idOSVersiontrueDEL_MANUALosversion_idnameosversion_id]]>oslicence_idOSLicencetrueDEL_MANUALoslicence_idnamecputrueramtruelnkServerToVolumeserver_id00volume_id10203045506070809010011012010102030405060702010203040455060708090100130101020302010203030101020304050556070809010011012013014010203040506070/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectFunctionalCIbizmodel,searchablefalseautoincrementapplicationsolutionidimages/solution.pnglnkApplicationSolutionToFunctionalCIapplicationsolution_id00functionalci_idlnkApplicationSolutionToBusinessProcessapplicationsolution_id00businessprocess_idactiveinactivestatusactivetruelistredundancyimpactsFunctionalCIapplicationsolutionfalseuser1usercount102030405060708010011012013010203040102030/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectbusinessprocess_listFunctionalCIbizmodel,searchablefalseautoincrementbusinessprocessidimages/business-process.pnglnkApplicationSolutionToBusinessProcessbusinessprocess_id00applicationsolution_idactiveinactivestatusactivetruelist102030405060708010010203040102030/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectFunctionalCIbizmodel,searchabletrueautoincrementsoftwareinstanceidimages/application.pngfunctionalci_idFunctionalCIfalseDEL_AUTOfalsesystem_idnamefinalclass]]>software_idSoftwaretrueDEL_MANUALsoftware_idnamesoftware_id]]>softwarelicence_idSoftwareLicencetrueDEL_MANUALfalsesoftwarelicence_idnamepathtrueactiveinactivestatustruelist102030405060708090100110120130102030401020304050/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectSoftwareInstancebizmodel,searchablefalseautoincrementmiddlewareidimages/middleware.pngMiddlewareInstancemiddleware_idin_placeall001020304050607080901001101201401501601701020304010203040/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectmiddlewareinstance_listSoftwareInstancebizmodel,searchablefalseautoincrementdbserveridimages/database.pngDatabaseSchemadbserver_idin_placeall001020304050607080901001101201401501601701020304010203040/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectdbschema_listSoftwareInstancebizmodel,searchablefalseautoincrementwebserveridimages/webserver.pngWebApplicationwebserver_idin_placeall001020304050607080901001101201401501601701020304010203040/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectwebapp_listSoftwareInstancebizmodel,searchablefalseautoincrementpcsoftwareidimages/application.png1020304050607080901001101201401501601020304010203040SoftwareInstancebizmodel,searchablefalseautoincrementothersoftwareidimages/application.png1020304050607080901001101201401501601020304010203040FunctionalCIbizmodel,searchablefalseautoincrementmiddlewareinstanceidimages/middleware.pngmiddleware_idMiddlewarefalseDEL_MANUALmiddleware_idname102030405060708010011012010203040102030/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectFunctionalCIbizmodel,searchablefalseautoincrementdatabaseschemaidimages/database-schema.pngdbserver_idDBServerfalseDEL_MANUALdbserver_idname102030405060708010011012010203040102030/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectFunctionalCIbizmodel,searchablefalseautoincrementwebapplicationidimages/webapp.pngwebserver_idWebServerfalseDEL_MANUALwebserver_idnameurltrue_blank10203040506070809011012013010203040102030/**
* Placeholder for backward compatibility (iTop <= 2.1.0)
* in case an extension attempts to redefine this function...
*/truepublicOverload-DBObjectcmdbAbstractObjectbizmodel,searchablefalseautoincrementsoftwareidimages/software.pngnamefalsevendorfalseversionfalselnkDocumentToSoftwaresoftware_id00document_idMiddlewareDBServerPCSoftwareOtherSoftwareWebServertypetruelistSoftwareInstancesoftware_idadd_only00SoftwarePatchsoftware_idadd_only00SoftwareLicencesoftware_idadd_only00102030405060708010203040102030cmdbAbstractObjectbizmodel,searchabletrueautoincrementpatchidfinalclassimages/patch.pngnamefalselnkDocumentToPatchpatch_id00document_iddescriptiontrue102030101020Patchbizmodel,searchablefalseautoincrementospatchidimages/patch.pnglnkFunctionalCIToOSPatchospatch_id00functionalci_idosversion_idOSVersionfalseDEL_MANUALosversion_idname10203040501020301020Patchbizmodel,searchablefalseautoincrementsoftwarepatchidimages/patch.pngsoftware_idSoftwarefalseDEL_MANUALsoftware_idnamelnkSoftwareInstanceToSoftwarePatchsoftwarepatch_id00softwareinstance_id10203040501020301020cmdbAbstractObjectbizmodel,searchabletrueautoincrementlicenceidfinalclassimages/licence.pngnamefalselnkDocumentToLicencelicence_id00document_idorg_idOrganizationfalseDEL_MANUALorg_idnameusage_limittruedescriptiontruestart_datetrueend_datetruelicence_keytrueyesnoperpetualnofalselist102030405055607080101520304010203040506070Licencebizmodel,searchablefalseautoincrementoslicenceidimages/licence.pngosversion_idOSVersionfalseDEL_MANUALosversion_idnameVirtualMachineoslicence_idnone00Serveroslicence_idnone0010203040506065708090100110101520304010203040506070Licencebizmodel,searchablefalseautoincrementsoftwarelicenceidimages/licence.pngsoftware_idSoftwarefalseDEL_MANUALsoftware_idnameSoftwareInstancesoftwarelicence_idnone0010203040506065708090100101520304010203040506070cmdbAbstractObject1bizmodelfalseautoincrementlnkdocumenttolicenceidlicence_idLicencefalseDEL_AUTOlicence_idnamedocument_idDocumentfalseDEL_AUTOdocument_idname102010201020cmdbAbstractObjectbizmodel,searchabletrueautoincrementtypologyidfinalclassnamefalse101010Typologybizmodel,searchablefalseautoincrementosversionidosfamily_idOSFamilyfalseDEL_MANUALosfamily_idname1020101020Typologybizmodel,searchablefalseautoincrementosfamilyid101010Typologybizmodel,searchablefalseautoincrementdocumenttypeid101010Typologybizmodel,searchablefalseautoincrementcontacttypeid101010Typologybizmodel,searchablefalseautoincrementbrandidPhysicalDevicebrand_idadd_only0010201010Typologybizmodel,searchablefalseautoincrementmodelidbrand_idBrandfalseDEL_MANUALbrand_idnameNetworkDeviceServerSANSwitchStorageSystemRackEnclosurePCTabletPhoneMobilePhonePrinterDiskArrayNASTapeLibraryIPPhonePeripheralPowerSourcePDUtypefalselistPhysicalDevicemodel_idadd_only00102030401020102030Typologybizmodel,searchablefalseautoincrementnetworkdevicetypeidNetworkDevicenetworkdevicetype_idadd_only0010201010Typologybizmodel,searchablefalseautoincrementiosversionidbrand_idBrandfalseDEL_MANUALbrand_idname1020101020cmdbAbstractObject1bizmodelfalseautoincrementlnkdocumenttopatchidpatch_idPatchfalseDEL_AUTOpatch_idnamedocument_idDocumentfalseDEL_AUTOdocument_idname102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnksoftwareinstancetosoftwarepatchidsoftwarepatch_idSoftwarePatchfalseDEL_AUTOsoftwarepatch_idnamesoftwareinstance_idSoftwareInstancefalseDEL_AUTOsoftwareinstance_idname102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnkfunctionalcitoospatchidospatch_idOSPatchfalseDEL_AUTOospatch_idnamefunctionalci_idFunctionalCIfalseDEL_AUTOfunctionalci_idname102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnkdocumenttosoftwareidsoftware_idSoftwarefalseDEL_AUTOsoftware_idnamedocument_idDocumentfalseDEL_AUTOdocument_idname102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnkcontacttofunctionalciidfunctionalci_idFunctionalCIfalseDEL_AUTOfunctionalci_idnamecontact_idContactfalseDEL_AUTOcontact_idname102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnkdocumenttofunctionalciidfunctionalci_idFunctionalCIfalseDEL_AUTOfunctionalci_idnamedocument_idDocumentfalseDEL_AUTOdocument_idname102010201020cmdbAbstractObjectbizmodel,searchable,configmgmtfalseautoincrementsubnetidimages/subnet.pngdescriptiontruesubnet_nametrueorg_idOrganizationfalseDEL_MANUALorg_idnameipfalseip_maskfalselnkSubnetToVLANsubnet_id00vlan_idfalsepublicOverload-cmdbAbstractObjectSetCurrentTab(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 IPInterface AS if WHERE INET_ATON(if.ipaddress) >= INET_ATON('$sIPMin') AND INET_ATON(if.ipaddress) <= 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('ipaddress', 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++;
}
}
}]]>10202530405010202530401020253040cmdbAbstractObjectbizmodel,searchable,configmgmtfalseautoincrementvlanidimages/vlan.pngvlan_tagfalsedescriptiontrueorg_idOrganizationfalseDEL_MANUALorg_idnamelnkSubnetToVLANvlan_id00subnet_idlnkPhysicalInterfaceToVLANvlan_id00physicalinterface_id102030405010203010cmdbAbstractObject1bizmodelfalseautoincrementlnksubnettovlanidsubnet_idSubnetfalseDEL_AUTOsubnet_idipsubnet_idsubnet_namevlan_idVLANfalseDEL_AUTOvlan_idvlan_tag10201020102030cmdbAbstractObjectbizmodel,searchabletrueautoincrementnetworkinterfaceidfinalclassimages/interface.pngnamefalse101010NetworkInterfacebizmodel,searchabletrueautoincrementipinterfaceidimages/interface.pngipaddresstruemacaddresstruecommenttrueipgatewaytrueipmasktruespeedtrue12210203040506070102030405010203040506070IPInterfacebizmodel,searchablefalseautoincrementphysicalinterfaceidimages/interface.pngconnectableci_idConnectableCIfalseDEL_AUTOconnectableci_idnamelnkPhysicalInterfaceToVLANphysicalinterface_id00vlan_id10203040506070809010203040102030405060cmdbAbstractObject1bizmodelfalseautoincrementlnkphysicalinterfacetovlanidphysicalinterface_idPhysicalInterfacefalseDEL_AUTOphysicalinterface_idnamephysicalinterface_idconnectableci_idphysicalinterface_idconnectableci_namevlan_idVLANfalseDEL_AUTOvlan_idvlan_tag102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnkconnectablecitonetworkdeviceidnetworkdevice_idNetworkDevicefalseDEL_AUTOnetworkdevice_idnameconnectableci_idConnectableCIfalseDEL_AUTOconnectableci_idnamenetwork_porttruedevice_porttrueuplinkdownlinktypedownlinkfalselistfalseprotectedOverload-cmdbAbstractObjectGet('connectableci_id'));
if (is_object($oDevice) && (get_class($oDevice) == 'NetworkDevice'))
{
$sOQL = "SELECT lnkConnectableCIToNetworkDevice WHERE connectableci_id = :device AND networkdevice_id = :network AND network_port = :nwport AND device_port = :devport";
$oConnectionSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
array(),
array(
'network' => $this->Get('connectableci_id'),
'device' => $this->Get('networkdevice_id'),
'devport' => $this->Get('network_port'),
'nwport' => $this->Get('device_port'),
)
);
if ($oConnectionSet->Count() == 0)
{
$sLink = $this->Get('connection_type');
$sConnLink = ($sLink == 'uplink') ? 'downlink' : 'uplink';
$oNewLink = new lnkConnectableCIToNetworkDevice();
$oNewLink->Set('networkdevice_id', $this->Get('connectableci_id'));
$oNewLink->Set('connectableci_id', $this->Get('networkdevice_id'));
$oNewLink->Set('network_port', $this->Get('device_port'));
$oNewLink->Set('device_port', $this->Get('network_port'));
$oNewLink->Set('connection_type', $sConnLink);
$oNewLink->DBInsert();
}
}
}]]>falseprotectedOverload-cmdbAbstractObjectGet('connectableci_id'));
if (is_object($oDevice) && (get_class($oDevice) == 'NetworkDevice'))
{
// Note: in case a port has been changed, search with the original values
$sOQL = "SELECT lnkConnectableCIToNetworkDevice WHERE connectableci_id = :device AND networkdevice_id = :network AND network_port = :nwport AND device_port = :devport";
$oConnectionSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
array(),
array(
'network' => $this->Get('connectableci_id'),
'device' => $this->Get('networkdevice_id'),
'devport' => $this->GetOriginal('network_port'),
'nwport' => $this->GetOriginal('device_port'),
)
);
$sLink = $this->Get('connection_type');
$sConnLink = ($sLink == 'uplink') ? 'downlink' : 'uplink';
// There should be one link - do it in a safe manner anyway
while ($oConnection = $oConnectionSet->Fetch())
{
$oConnection->Set('connection_type', $sConnLink);
$oConnection->Set('network_port', $this->Get('device_port'));
$oConnection->Set('device_port', $this->Get('network_port'));
$oConnection->DBUpdate();
}
}
}]]>falseprotectedOverload-cmdbAbstractObjectGet('connectableci_id'), false);
if (is_object($oDevice) && (get_class($oDevice) == 'NetworkDevice'))
{
// Track and delete the counterpart link
$sOQL = "SELECT lnkConnectableCIToNetworkDevice WHERE connectableci_id = :device AND networkdevice_id = :network AND network_port = :nwport AND device_port = :devport";
$oConnectionSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
array(),
array(
'network' => $this->Get('connectableci_id'),
'device' => $this->Get('networkdevice_id'),
'devport' => $this->Get('network_port'),
'nwport' => $this->Get('device_port'),
)
);
// There should be one link - do it in a safe manner anyway
while ($oConnection = $oConnectionSet->Fetch())
{
$oConnection->DBDelete();
}
}
}]]>falseprotectedOverload-DBObjectAddConnectedNetworkDevice();
parent::AfterInsert();
}]]>falseprotectedOverload-DBObjectUpdateConnectedNetworkDevice();
parent::AfterUpdate();
}]]>falseprotectedOverload-DBObjectDeleteConnectedNetworkDevice();
parent::AfterDelete();
}]]>102030405010203040501020304050cmdbAbstractObject1bizmodelfalseautoincrementlnkapplicationsolutiontofunctionalciidapplicationsolution_idApplicationSolutionfalseDEL_AUTOapplicationsolution_idnamefunctionalci_idFunctionalCIfalseDEL_AUTOfunctionalci_idname102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnkapplicationsolutiontobusinessprocessidbusinessprocess_idBusinessProcessfalseDEL_AUTObusinessprocess_idnameapplicationsolution_idApplicationSolutionfalseDEL_AUTOapplicationsolution_idname102010201020cmdbAbstractObject1bizmodelfalseautoincrementlnkpersontoteamidteam_idTeamfalseDEL_AUTOteam_idnameperson_idPersonfalseDEL_AUTOperson_idnamerole_idContactTypetrueDEL_MANUALrole_idname102030102030102030cmdbAbstractObjectbizmodel,searchable,configmgmtfalseautoincrementgroupidimages/group.pngnamefalseproductionimplementationobsoletestatusimplementationfalselistorg_idOrganizationfalseDEL_MANUALorg_idnamedescriptiontruetypetrueparent_idtrueDEL_MANUALparent_idnamelnkGroupToCIgroup_id00ci_id102030405060701020304010203040cmdbAbstractObject1bizmodel,configmgmtfalseautoincrementlnkgrouptociidgroup_idGroupfalseDEL_AUTOgroup_idnameci_idFunctionalCIfalseDEL_AUTOci_idnamereasontrue102030102030102030