From 86ba340204cdc4a896f764309eb731ffb345327b Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Tue, 30 Jul 2013 16:24:52 +0000 Subject: [PATCH] #747: protects against the non-existence of the UserRequest class (which is not always installed). SVN:trunk[2811] --- .../datamodel.itop-incident-mgmt-itil.xml | 49 ++++++++++--------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/datamodels/2.x/itop-incident-mgmt-itil/datamodel.itop-incident-mgmt-itil.xml b/datamodels/2.x/itop-incident-mgmt-itil/datamodel.itop-incident-mgmt-itil.xml index 85ade8214d..5b6ec5e730 100755 --- a/datamodels/2.x/itop-incident-mgmt-itil/datamodel.itop-incident-mgmt-itil.xml +++ b/datamodels/2.x/itop-incident-mgmt-itil/datamodel.itop-incident-mgmt-itil.xml @@ -1452,28 +1452,31 @@ $sUserString = CMDBChange::GetCurrentUserName(); $oMyChange->Set("userinfo", $sUserString."(automatic resolution)"); $iChangeId = $oMyChange->DBInsert(); - $sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket"; - $oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), - array(), - array( - 'ticket' => $this->GetKey(), - ) - ); - //automatically resolve child requests - while($oRequest = $oChildRequestSet->Fetch()) - { - if ( $oRequest->Get('status') != 'resolved') - { - $oRequest->set('servicesubcategory_id',$this->Get('servicesubcategory_id')); - $oRequest->set('service_id',$this->Get('service_id')); - $oRequest->set('team_id',$this->Get('team_id')); - $oRequest->set('agent_id',$this->Get('agent_id')); - $oRequest->set('resolution_code',$this->Get('resolution_code')); - $oRequest->set('solution','Automatically resolved by incident:[[Incident:'.$this->Get('ref').']]'); - $oRequest->ApplyStimulus('ev_autoresolve'); - $oRequest->DBUpdateTracked($oMyChange); - } - } + if (MetaModel::IsValidClass('UserRequest')) + { + $sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket"; + $oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), + array(), + array( + 'ticket' => $this->GetKey(), + ) + ); + //automatically resolve child requests + while($oRequest = $oChildRequestSet->Fetch()) + { + if ( $oRequest->Get('status') != 'resolved') + { + $oRequest->set('servicesubcategory_id',$this->Get('servicesubcategory_id')); + $oRequest->set('service_id',$this->Get('service_id')); + $oRequest->set('team_id',$this->Get('team_id')); + $oRequest->set('agent_id',$this->Get('agent_id')); + $oRequest->set('resolution_code',$this->Get('resolution_code')); + $oRequest->set('solution','Automatically resolved by incident:[[Incident:'.$this->Get('ref').']]'); + $oRequest->ApplyStimulus('ev_autoresolve'); + $oRequest->DBUpdateTracked($oMyChange); + } + } + } //automatically resolve child incidents $sOQL = "SELECT Incident WHERE parent_incident_id=:ticket"; @@ -1507,6 +1510,8 @@ LifecycleAction