public function deleteManyRecords(array $apidata, $preview = false)
    {
        if (is_array($apidata)) {
            $this->setSource(new ArrayBulkLoaderSource($apidata));
        }
        $this->preprocessChecks();
        $this->mappableFields_cache = $this->getMappableColumns();
        $results = new BulkLoaderResult();
        $iterator = $this->getSource()->getIterator();
        foreach ($iterator as $record) {
            //map incoming record according to the standardisation mapping (columnMap)
            $record = $this->columnMapRecord($record);

            // Establish placeholder
            $modelClass = $this->objectClass;
            $placeholder = new $modelClass();

            //populate placeholder object with transformed data
            foreach ($this->mappableFields_cache as $field => $label) {
                //skip empty fields
                if (!isset($record[$field]) || empty($record[$field])) {
                    continue;
                }
                $this->transformField($placeholder, $field, $record[$field]);
            }

            // Obtain data and compare
            $data = $placeholder->getQueriedDatabaseFields();
            $existing = $this->findExistingObject($data);
            if ($existing) {
                $results->addDeleted($existing, 'Record deleted');
                if (!$preview) {
                    $existing->delete();
                }
            } else {
                $results->addSkipped('Record not deleted');
            }
        }
        return $results;
    }