2016-11-23 7 views
3

Я пытаюсь импортировать файлы impex, используя ant importImpex -DSource=items.impex. Это успешно импортирует impex-файлы, но изменения отражаются у арендатора MASTER.Как указать конкретного арендатора в качестве аргумента с командой «ant importImpex»?

Как указать конкретного арендатора в качестве аргумента с помощью команды ant importImpex?

Я пробовал ant importImpex -DSource=items.impex -Dtenant=tenantID, но он не работает.

Есть ли другой способ?

+0

Можете ли вы написать код и скомпилировать проект? –

ответ

2

Невозможно установить арендатора в этой цели муравья.

Чтобы узнать возможные варианты, введите ant -p. Обратите внимание, что в гибриде 6.1 вы увидите, что опция установки пути impex равна -Dresource

Что вы можете сделать, это использовать аннотацию Bean Shell в вашем файле impex.

Добавьте эту строку перед вашим INSERT_UPDATE заявлением:

"#% Registry.setCurrentTenantByID(""tenantId"");"

Затем запустите регулярную ant importImpex цели, и вы увидите, что данные находятся только в арендаторе, установленном в аннотации.

+0

Большое спасибо, это действительно сработало. – ANIL

+1

Я также понял другой подход для этого, с помощью которого мы можем использовать ant ** importImpex -DSource = items.impex -Dtenant = tenantID **. Для этого нам нужно отредактировать ** platformadministration.xml **, находящийся внутри ** HYBRIS_HOME/bin/platform/resources/ant **, и добавить следующее в ** importImpex ** microdef. 'Registry.setCurrentTenantByID (" $ {tenant} ");' Добавьте это после 'import de.hybris.platform.core.Registry; import de.hybris.platform.servicelayer.impex.impl.CmdImpExService; ' – ANIL

+0

Хорошо, что нужно знать! –

0

Также вы можете перейти в раздел арендатора в консоли администратора, а затем открыть консоль для желаемого арендатора (возможно, вам сначала потребуется инициализировать его, если вы еще этого не сделали). Оттуда вы можете получить доступ к консоли impex этого конкретного арендатора и выполнить оттуда impex.