N°5906 - CRUD Event - fire event EVENT_DB_LINKS_CHANGED when an n-n link is created/updated/deleted

This commit is contained in:
Eric Espie
2023-02-17 14:25:01 +01:00
parent 72dad5dd07
commit 8940051c3d
12 changed files with 1304 additions and 375 deletions

View File

@@ -3535,17 +3535,24 @@ class SynchroExecution
$oSetToProcess = $oSetScope;
}
$iLastReplicaProcessed = -1;
/** @var \SynchroReplica $oReplica */
while ($oReplica = $oSetToProcess->Fetch())
{
set_time_limit(intval($iLoopTimeLimit));
$iLastReplicaProcessed = $oReplica->GetKey();
$this->m_oStatLog->AddTrace("Synchronizing replica id=$iLastReplicaProcessed.");
$oReplica->Synchro($this->m_oDataSource, $this->m_aReconciliationKeys, $this->m_aAttributes, $this->m_oChange,
$this->m_oStatLog);
$this->m_oStatLog->AddTrace("Updating replica id=$iLastReplicaProcessed.");
$oReplica->DBUpdate();
// Avoid too many events
cmdbAbstractObject::SetEventDBLinksChangedBlocked(true);
try {
$iLastReplicaProcessed = -1;
/** @var \SynchroReplica $oReplica */
while ($oReplica = $oSetToProcess->Fetch()) {
set_time_limit(intval($iLoopTimeLimit));
$iLastReplicaProcessed = $oReplica->GetKey();
$this->m_oStatLog->AddTrace("Synchronizing replica id=$iLastReplicaProcessed.");
$oReplica->Synchro($this->m_oDataSource, $this->m_aReconciliationKeys, $this->m_aAttributes, $this->m_oChange,
$this->m_oStatLog);
$this->m_oStatLog->AddTrace("Updating replica id=$iLastReplicaProcessed.");
$oReplica->DBUpdate();
}
} finally {
// Send all the retained events for further computations
cmdbAbstractObject::SetEventDBLinksChangedBlocked(false);
cmdbAbstractObject::FireEventDbLinksChangedForAllObjects();
}
if ($iMaxReplica)