diff --git a/src/DataService/Batch.php b/src/DataService/Batch.php index bd5a8c99..8a8c8d8c 100644 --- a/src/DataService/Batch.php +++ b/src/DataService/Batch.php @@ -553,6 +553,13 @@ private function ProcessBatchItemResponse($oneXmlObj) case "QueryResponse": $result->responseType = UtilityConstants::Query; $queryResult = array(); + //handle count(*) case, for example Select count(*) from Invoice, and also handle the CDC case + if(isset($oneXmlObj->QueryResponse->attributes()['totalCount']) + && !isset($oneXmlObj->QueryResponse->attributes()['startPosition']) + && !isset($oneXmlObj->QueryResponse->attributes()['maxResults'])) { + $totalCount = (int) $oneXmlObj->QueryResponse->attributes()['totalCount']; + $queryResult = array_merge($queryResult, [$totalCount]); + } foreach ($oneXmlObj->QueryResponse->children() as $oneResponse) { $oneEntity = $this->responseSerializer->Deserialize(''.$oneResponse->asXML().''); $queryResult = array_merge($queryResult, $oneEntity);