From 0546a7b82bf47803573f30aca932847e8ad78e1c Mon Sep 17 00:00:00 2001 From: Anne-Catherine <57360138+accognet@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:06:12 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B06808=20-=20Rank=20management=20(order)?= =?UTF-8?q?=20in=20iTop=20actions=20(#558)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/trigger.class.inc.php | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/core/trigger.class.inc.php b/core/trigger.class.inc.php index 705c24a33..19bb3a7c3 100644 --- a/core/trigger.class.inc.php +++ b/core/trigger.class.inc.php @@ -114,17 +114,26 @@ abstract class Trigger extends cmdbAbstractObject // Find the related actions $oLinkedActions = $this->Get('action_list'); - while ($oLink = $oLinkedActions->Fetch()) - { - /** @var \DBObject $oLink */ - $iActionId = $oLink->Get('action_id'); - /** @var \Action $oAction */ - $oAction = MetaModel::GetObject('Action', $iActionId); - if ($oAction->IsActive()) - { - $oKPI = new ExecutionKPI(); - $oAction->DoExecute($this, $aContextArgs); - $oKPI->ComputeStatsForExtension($oAction, 'DoExecute'); + + // Order actions as expected + $aActionListOrdered = []; + while ($oLink = $oLinkedActions->Fetch()) { + $aActionListOrdered[(int) $oLink->Get('order')][] = $oLink; + } + ksort($aActionListOrdered); + + // Execute actions + foreach ($aActionListOrdered as $aActionSubList) { + foreach ($aActionSubList as $oLink) /** @var \DBObject $oLink */ { + /** @var \DBObject $oLink */ + $iActionId = $oLink->Get('action_id'); + /** @var \Action $oAction */ + $oAction = MetaModel::GetObject('Action', $iActionId); + if ($oAction->IsActive()) { + $oKPI = new ExecutionKPI(); + $oAction->DoExecute($this, $aContextArgs); + $oKPI->ComputeStatsForExtension($oAction, 'DoExecute'); + } } } }