diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d10bc729121ee73bc560f9ef6943d795c2ad207..7691a97ca4750a8a532cbe191acac068410171be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ -# Version 1.99 (not yet released) +# Version 1.99 + +* Fixed issue with in memory data flows. Such as the duplicate contacts. # Version 1.98 diff --git a/CRM/Contact/DataProcessorContactSummaryTab.php b/CRM/Contact/DataProcessorContactSummaryTab.php index 7f25cbaf24f160aa8b15b29a71d0543bf1c994a5..52454424eefb7c25c403b5df7bf7c3ff4aabbeba 100644 --- a/CRM/Contact/DataProcessorContactSummaryTab.php +++ b/CRM/Contact/DataProcessorContactSummaryTab.php @@ -353,7 +353,7 @@ class CRM_Contact_DataProcessorContactSummaryTab implements UIFormOutputInterfac $fieldSpecification = clone $fieldSpecification; $fieldSpecification->alias = 'contact_summary_tab_contact_id'; $dataFlow = $dataSource->ensureField($fieldSpecification); - if ($dataFlow && $dataFlow instanceof SqlDataFlow && $this->filterCollection->useWhere()) { + if ($dataFlow && $dataFlow instanceof SqlDataFlow && $dataProcessorClass->isAllSql()) { $tableAlias = self::getTableAlias($dataFlow); $whereClause = new SimpleWhereClause($tableAlias, $fieldSpecification->name, '=', $contact_id, $fieldSpecification->type); $dataFlow->addWhereClause($whereClause); diff --git a/Civi/DataProcessor/DataFlow/CombinedDataFlow/CombinedDataFlow.php b/Civi/DataProcessor/DataFlow/CombinedDataFlow/CombinedDataFlow.php index dd944f05bb9b122e48cd26f84140eefc593fcbe2..079d27a099a40eaa04d2604e33d2981448e4bd47 100644 --- a/Civi/DataProcessor/DataFlow/CombinedDataFlow/CombinedDataFlow.php +++ b/Civi/DataProcessor/DataFlow/CombinedDataFlow/CombinedDataFlow.php @@ -158,9 +158,13 @@ class CombinedDataFlow extends AbstractDataFlow implements MultipleSourceDataFlo protected function getAllRecordsFromDataFlowAsArray(AbstractDataFlow $dataFlow, int $batchSize=0): array { $records = array(); $i = 0; - while(($record = $dataFlow->retrieveNextRecord()) && ($i < $batchSize || $batchSize == 0)) { - $records[] = $record; - $i++; + try { + while (($record = $dataFlow->retrieveNextRecord()) && ($i < $batchSize || $batchSize == 0)) { + $records[] = $record; + $i++; + } + } catch (EndOfFlowException $e) { + // Do nothing } return $records; } @@ -208,6 +212,8 @@ class CombinedDataFlow extends AbstractDataFlow implements MultipleSourceDataFlo foreach ($record as $field => $value) { $out[$fieldNameprefix . $field] = $value; } + } else { + $out = $record; } $this->currentRecordIndex++; return $out; diff --git a/info.xml b/info.xml index 5d72da8b927c1795b364f75c6e3e02fe6d998912..d2b2ed23edc7498420b1156c18511255eb077b4e 100644 --- a/info.xml +++ b/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2024-03-12</releaseDate> - <version>1.99-dev</version> + <version>1.99</version> <develStage>stable</develStage> <compatibility> <ver>5.37</ver>