public function createDimensionStorage(DataControllerCallContext $callcontext, DataSourceStructureHandler $datasourceStructureHandler, DatasetMetaData $logicalDataset, $columnName) { parent::createDimensionStorage($callcontext, $datasourceStructureHandler, $logicalDataset, $columnName); $lookupDatasetName = StarSchemaNamingConvention::getAttributeRelatedName($logicalDataset->name, $columnName); $request = new DatasetStorageRequest($lookupDatasetName); LogHelper::log_debug($request); $datasourceStructureHandler->createDatasetStorage($callcontext, $request); $factsDatasetName = StarSchemaNamingConvention::getFactsRelatedName($logicalDataset->name); $request = new UpdateDatasetStorageRequest($factsDatasetName); $request->addOperation(new CreateColumnReferenceOperation($columnName, $lookupDatasetName)); LogHelper::log_debug($request); $datasourceStructureHandler->updateDatasetStorage($callcontext, $request); }
public function createDimensionStorage(DataControllerCallContext $callcontext, DataSourceStructureHandler $datasourceStructureHandler, DatasetMetaData $logicalDataset, $columnName) { parent::createDimensionStorage($callcontext, $datasourceStructureHandler, $logicalDataset, $columnName); $metamodel = data_controller_get_metamodel(); $column = $logicalDataset->getColumn($columnName); $referencedLogicalDatasetName = $column->type->getReferencedDatasetName(); $referencedCubeName = $referencedLogicalDatasetName; $referencedCube = $metamodel->getCube($referencedCubeName); $datasetName = StarSchemaNamingConvention::getFactsRelatedName($logicalDataset->name); $request = new UpdateDatasetStorageRequest($datasetName); $request->addOperation(new CreateColumnReferenceOperation($columnName, $referencedCube->factsDatasetName)); LogHelper::log_debug($request); $datasourceStructureHandler->updateDatasetStorage($callcontext, $request); }