/** * Import value maps. */ protected function processValueMaps() { if (!$this->options['valueMaps']['createMissing'] && !$this->options['valueMaps']['updateExisting']) { return; } $all_valuemaps = $this->getFormattedValueMaps(); if (!$all_valuemaps) { return; } $valuemaps_to_create = []; $valuemaps_to_update = []; foreach ($all_valuemaps as $valuemap) { $valuemapid = $this->referencer->resolveValueMap($valuemap['name']); if ($valuemapid) { $valuemap['valuemapid'] = $valuemapid; $valuemaps_to_update[] = $valuemap; } else { $valuemaps_to_create[] = $valuemap; } } if ($this->options['valueMaps']['createMissing'] && $valuemaps_to_create) { $valuemapids = API::ValueMap()->create($valuemaps_to_create); foreach ($valuemaps_to_create as $key => $valuemap) { $this->referencer->addValueMapRef($valuemap['name'], $valuemapids['valuemapids'][$key]); } } if ($this->options['valueMaps']['updateExisting'] && $valuemaps_to_update) { API::ValueMap()->update($valuemaps_to_update); } }