Хотите манипулировать объектом динамического запроса для определенного атрибута в ATG - PullRequest
0 голосов
/ 09 мая 2019

Я использую инфраструктуру хранилища 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);
        } 
    }
...