diff --git a/docs/user-documentation/legacy-advance-features/openbis-kinme-nodes.md b/docs/user-documentation/legacy-advance-features/openbis-kinme-nodes.md index 4ab906fafda676f9b5c267c567ec2c4a44d83e12..0f69db691e80476fa9b75c2dc29d207e9dba9ca6 100644 --- a/docs/user-documentation/legacy-advance-features/openbis-kinme-nodes.md +++ b/docs/user-documentation/legacy-advance-features/openbis-kinme-nodes.md @@ -324,74 +324,77 @@ argument: The string array of vocabulary terms. #### Example for an Aggregation Service Report Reader - from ch.systemsx.cisd.openbis.knime.server import AggregationCommand - from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchCriteria - from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchSubCriteria - from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClause - from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClauseAttribute - EXPERIMENT = 'Experiment' - DATA_SET_COLUMN = 'Data Set' - PATH_COLUMN = 'Path' - SIZE_COLUMN = 'Size' - def scan(tableBuilder, dataSetCode, node): - if node.isDirectory(): - for child in node.childNodes: - scan(tableBuilder, dataSetCode, child) - else: - row = tableBuilder.addRow() - row.setCell(DATA_SET_COLUMN, dataSetCode) - row.setCell(PATH_COLUMN, node.relativePath) - row.setCell(SIZE_COLUMN, node.fileLength) - class MyAggregationCommand(AggregationCommand): - def defineParameters(self, builder): - builder.parameter(EXPERIMENT).experiment() - - def aggregate(self, parameters, tableBuilder): - experiment = searchService.getExperiment(parameters.get(EXPERIMENT)) - searchCriteria = SearchCriteria() - subCriteria = SearchCriteria() - subCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.PERM_ID, experiment.permId)) - searchCriteria.addSubCriteria(SearchSubCriteria.createExperimentCriteria(subCriteria)) - dataSets = searchService.searchForDataSets(searchCriteria) - tableBuilder.addHeader(DATA_SET_COLUMN) - tableBuilder.addHeader(PATH_COLUMN) - tableBuilder.addHeader(SIZE_COLUMN) - for dataSet in dataSets: - dataSetCode = dataSet.dataSetCode - try: - content = contentProvider.getContent(dataSetCode) - scan(tableBuilder, dataSetCode, content.rootNode) - finally: - if content != None: - content.close() - - def aggregate(parameters, tableBuilder): - MyAggregationCommand().handleRequest(parameters, tableBuilder) +```py +from ch.systemsx.cisd.openbis.knime.server import AggregationCommand +from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchCriteria +from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchSubCriteria +from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClause +from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClauseAttribute +EXPERIMENT = 'Experiment' +DATA_SET_COLUMN = 'Data Set' +PATH_COLUMN = 'Path' +SIZE_COLUMN = 'Size' +def scan(tableBuilder, dataSetCode, node): + if node.isDirectory(): + for child in node.childNodes: + scan(tableBuilder, dataSetCode, child) + else: + row = tableBuilder.addRow() + row.setCell(DATA_SET_COLUMN, dataSetCode) + row.setCell(PATH_COLUMN, node.relativePath) + row.setCell(SIZE_COLUMN, node.fileLength) +class MyAggregationCommand(AggregationCommand): + def defineParameters(self, builder): + builder.parameter(EXPERIMENT).experiment() + + def aggregate(self, parameters, tableBuilder): + experiment = searchService.getExperiment(parameters.get(EXPERIMENT)) + searchCriteria = SearchCriteria() + subCriteria = SearchCriteria() + subCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.PERM_ID, experiment.permId)) + searchCriteria.addSubCriteria(SearchSubCriteria.createExperimentCriteria(subCriteria)) + dataSets = searchService.searchForDataSets(searchCriteria) + tableBuilder.addHeader(DATA_SET_COLUMN) + tableBuilder.addHeader(PATH_COLUMN) + tableBuilder.addHeader(SIZE_COLUMN) + for dataSet in dataSets: + dataSetCode = dataSet.dataSetCode + try: + content = contentProvider.getContent(dataSetCode) + scan(tableBuilder, dataSetCode, content.rootNode) + finally: + if content != None: + content.close() + +def aggregate(parameters, tableBuilder): + MyAggregationCommand().handleRequest(parameters, tableBuilder) +``` -#### Example for an Aggregated Data File Importer -Â +#### Example for an Aggregated Data File Importer - import os.path - from java.util import Date - from ch.systemsx.cisd.openbis.knime.server import AggregationFileCommand - - class MyAggregationFileCommand(AggregationFileCommand): - def defineParameters(self, builder): - builder.parameter('Greeting Type').vocabulary(['Hi', 'Hello']) - builder.parameter('Name') - builder.parameter('Sample').sample() - - def createFile(self, parameters): - sessionWorkspace = sessionWorkspaceProvider.getSessionWorkspace() - filename = "report.txt" - output = open(os.path.join(sessionWorkspace.getAbsolutePath(), filename), "w") - name = parameters.get('Name') - sample = searchService.getSample(parameters.get('Sample')) - output.write(str(parameters.get('Greeting Type')) + " " + str(name) + "!\n\n" + Date().toString() + "\n") - output.write(sample.getSampleType()) - output.close() - return filename - - def aggregate(parameters, tableBuilder): - MyAggregationFileCommand().handleRequest(parameters, tableBuilder) +```java +import os.path +from java.util import Date +from ch.systemsx.cisd.openbis.knime.server import AggregationFileCommand + +class MyAggregationFileCommand(AggregationFileCommand): + def defineParameters(self, builder): + builder.parameter('Greeting Type').vocabulary(['Hi', 'Hello']) + builder.parameter('Name') + builder.parameter('Sample').sample() + + def createFile(self, parameters): + sessionWorkspace = sessionWorkspaceProvider.getSessionWorkspace() + filename = "report.txt" + output = open(os.path.join(sessionWorkspace.getAbsolutePath(), filename), "w") + name = parameters.get('Name') + sample = searchService.getSample(parameters.get('Sample')) + output.write(str(parameters.get('Greeting Type')) + " " + str(name) + "!\n\n" + Date().toString() + "\n") + output.write(sample.getSampleType()) + output.close() + return filename + +def aggregate(parameters, tableBuilder): + MyAggregationFileCommand().handleRequest(parameters, tableBuilder) +```