78 $errorDescription =
null 87 $errorMessage = $this->
getErrorMessage($errorCode, $errorMessage, $columnName);
90 $newError = $this->errorFactory->create();
91 $newError->init($errorCode, $errorLevel, $rowNumber, $columnName, $errorMessage, $errorDescription);
92 $this->items[
'rows'][$rowNumber][] = $newError;
93 $this->items[
'codes'][$errorCode][] = $newError;
94 $this->items[
'messages'][$errorMessage][] = $newError;
104 $rowNumber = (int)$rowNumber;
105 if (!in_array($rowNumber, $this->skippedRows)) {
106 $this->skippedRows[] = $rowNumber;
118 if (
null !== $rowNumber) {
119 $rowNumber = (int)$rowNumber;
120 if (!in_array($rowNumber, $this->invalidRows)) {
121 $this->invalidRows[] = $rowNumber;
146 return in_array((
int)$rowNumber, array_merge($this->invalidRows, $this->skippedRows));
154 return count($this->invalidRows);
170 throw new \Magento\Framework\Exception\LocalizedException(
171 __(
'ImportExport: Import Data validation - Validation strategy not found')
175 $this->allowedErrorsCount = (int)$allowedErrorCount;
196 && $this->validationStrategy == self::VALIDATION_STRATEGY_STOP_ON_ERROR
197 && $errorsCount >= $this->allowedErrorsCount
219 if (empty($this->items)) {
223 foreach (array_values($this->items[
'rows']) as
$errors) {
237 foreach ($codes as
$code) {
238 if (isset($this->items[
'codes'][
$code])) {
253 if (isset($this->items[
'rows'][$rowNumber])) {
254 $result = $this->items[
'rows'][$rowNumber];
267 array $errorCode = [],
268 array $excludedCodes = [],
269 $replaceCodeWithMessage =
true 271 if (empty($this->items)) {
274 $allCodes = array_keys($this->items[
'codes']);
275 if (!empty($excludedCodes)) {
276 $allCodes = array_diff($allCodes, $excludedCodes);
278 if (!empty($errorCode)) {
279 $allCodes = array_intersect($errorCode, $allCodes);
283 foreach ($allCodes as
$code) {
286 $key = $replaceCodeWithMessage ? $error->getErrorMessage() :
$code;
287 $result[$key][] = $error->getRowNumber() + 1;
307 array $errorLevels = [
313 foreach ($errorLevels as $errorLevel) {
314 $result += isset($this->errorStatistics[$errorLevel]) ? $this->errorStatistics[$errorLevel] : 0;
326 $this->errorStatistics = [];
327 $this->invalidRows = [];
328 $this->skippedRows = [];
343 if ($rowNum == $error->getRowNumber() && $columnName == $error->getColumnName()) {
358 if (
null === $errorMessage && isset($this->messageTemplate[$errorCode])) {
359 $errorMessage = (string)
__($this->messageTemplate[$errorCode]);
361 if ($columnName && $errorMessage) {
362 $errorMessage = sprintf($errorMessage, $columnName);
364 if (!$errorMessage) {
365 $errorMessage = $errorCode;
368 return $errorMessage;
377 if (!empty($errorLevel)) {
378 isset($this->errorStatistics[$errorLevel]) ?
379 $this->errorStatistics[$errorLevel]++ : $this->errorStatistics[$errorLevel] = 1;
getErrorByRowNumber($rowNumber)
__construct(\Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorFactory $errorFactory)
const ERROR_LEVEL_NOT_CRITICAL
getRowsGroupedByErrorCode(array $errorCode=[], array $excludedCodes=[], $replaceCodeWithMessage=true)
const VALIDATION_STRATEGY_STOP_ON_ERROR
initValidationStrategy($validationStrategy, $allowedErrorCount=0)
const ERROR_LEVEL_CRITICAL
getErrorMessage($errorCode, $errorMessage, $columnName)
addErrorMessageTemplate($code, $template)
getErrorsByCode(array $codes)
addError( $errorCode, $errorLevel=ProcessingError::ERROR_LEVEL_CRITICAL, $rowNumber=null, $columnName=null, $errorMessage=null, $errorDescription=null)
getErrorsCount(array $errorLevels=[ProcessingError::ERROR_LEVEL_CRITICAL, ProcessingError::ERROR_LEVEL_NOT_CRITICAL])
processErrorStatistics($errorLevel)
const VALIDATION_STRATEGY_SKIP_ERRORS
processInvalidRow($rowNumber)
isErrorAlreadyAdded($rowNum, $errorCode, $columnName=null)