Я использую инфраструктуру хранилища Integration с помощью IntegrationRepositoryView и переопределяю функцию executeUncachedQuery.Получение динамического запроса каждый раз при вызове метода.например (ean EQUALS 5052931399536) или ((ean == 5052931399536) AND (siteIds INCLUDES diyStore)) Я должен манипулировать значением ean внутри метода для различных значений pInput.Как нам этого добиться.
Я делаю следующее:
public RepositoryItem[] executeQueryCommand(final Object pInput) throws RepositoryException {
final String perfName = "executeQueryCommand";
PerformanceMonitor.startOperation("IntegrationRepositoryView", perfName);
boolean perfCancelled = false;
try {
final IntegrationRepositoryItemDescriptor desc = (IntegrationRepositoryItemDescriptor)getItemDescriptor();
final IntegrationRepositoryCommandDescriptor queryCommandDesc = desc.getQueryCommand();
if(queryCommandDesc == null) {
perfCancelled = true;
throw new RepositoryException(IntegrationRepositoryConstants.NULL_QUERY_COMMAND);
}
final Command queryCommand = queryCommandDesc.getCommand();
if(queryCommand == null) {
perfCancelled = true;
throw new RepositoryException(IntegrationRepositoryConstants.NULL_QUERY_COMMAND);
}
final CommandResult result = queryCommand.execute(pInput);
return processResults(queryCommand, result);
} catch(final CommandInvocationException cie) {
perfCancelled = true;
throw new RepositoryException(cie);
}
}