Мы пытаемся настроить пользовательский тип приложения для Backoffice в последней версии Intershop 7.9, но когда мы пытаемся запустить DBInit, мы получаем следующую ошибку:
[xx.xxx.webshop.dbinit.data.organization.Channel,xx.xxx.webshop.dbinit.data.organization.ChannelLocalization,ProcessChannel-DBInit] Version:null] com.intershop.beehive.core.pipelet.pipeline.ExecutePipeline [] [Unknown] [scHAqDIFBIAAAAFjuxgo2CwQ] [RbPAqDIFZAUAAAFjuxgo2CwQ] "main" ISH-CORE-2490: Synchronous called pipeline 'CreateSalesChannel-CreateChannelObjects' of application 'CustomShop@Custom-Site (app=xx.CustomBackoffice)' has finished with exception: com.intershop.beehive.core.internal.pipeline.PipelineCallStackException: com.intershop.beehive.core.capi.pipeline.PipelineExecutionException: Required input parameter 'AppID' missing of pipeline 'ProcessApplication defined in cartridge sld_ch_base' and start node 'Create'!
Ошибка появляется при вызове программы подготовки каналов.
Это соответствующий код из файла apps.component, используемый для создания типа приложения backoffice:
<instance name="xx.CustomBackoffice.ApplicationTypes" with="AppRegistry"/>
<!-- register the custom B2CBackoffice to the Enterprise Backoffice of your choose -->
<fulfill of="intershop.EnterpriseBackoffice" requirement="namedObject">
<instance with="NamedObject">
<fulfill value="ChannelBackofficeApplicationType_52" requirement="name"/>
<fulfill with="xx.CustomBackoffice" requirement="object"/>
</instance>
</fulfill>
<!-- declaration of the cartridge list -->
<instance with="CartridgeListProvider" name="xx.CustomBackoffice.Cartridges">
<!-- Derive from standard webshop if you want to use the same cartridges like standard webshop -->
<fulfill requirement="parent" with="intershop.B2CBackoffice.Cartridges" />
</instance>
<!-- definition of the application type -->
<instance with="ApplicationType" name="xx.CustomBackoffice">
<fulfill requirement="id" value="xx.CustomBackoffice" />
<fulfill requirement="urlIdentifier" value="a1-shop-bo" />
<fulfill requirement="cartridgeListProvider" with="xx.CustomBackoffice.Cartridges" />
<fulfill requirement="namedObject">
<instance with="NamedObject">
<fulfill requirement="name" value="ChannelApps_52" />
<!-- register the AppRegistry containing all storefront applications of this channel -->
<fulfill requirement="object" with="xx.CustomBackoffice.ApplicationTypes" />
</instance>
</fulfill>
<!-- put additional NamedObjects, that are required by the particular business features -->
<!-- ... -->
</instance>
<!-- registration of the application type to the AppEngine -->
<fulfill of="AppEngine" with="xx.CustomBackoffice" requirement="app"/>
<fulfill requirement="namedObject" of="xx.CustomBackoffice" with="intershop.EnterpriseBackoffice.RESTAPI"/>
Как только я удаляю определение для пользовательского типа приложения backoffice, dbinit запускается успешно, и типы приложений frontoffice создаются без ошибок.
Кто-нибудь может увидеть, где находится ошибка или как правильно определить пользовательский тип приложения для backoffice?
Я разыскал эту проблему, чтобы определить 2 пользовательских типа приложений в apps.component, особенно эту часть:
<!-- register the custom B2CBackoffice to the Enterprise Backoffice of your choose -->
<fulfill of="intershop.EnterpriseBackoffice" requirement="namedObject">
<instance with="NamedObject">
<fulfill value="ChannelBackofficeApplicationType_52" requirement="name"/>
<fulfill with="xx.CustomBackoffice" requirement="object"/>
</instance>
</fulfill>
Если я добавлю второй тип приложения BO и попытаюсь зарегистрировать его в intershop.EnterpriseBackoffice с тем же кодом, что и выше (просто измените xx.CustomBackoffice на xx2.CustomBackoffice):
<!-- register the custom B2CBackoffice to the Enterprise Backoffice of your choose -->
<fulfill of="intershop.EnterpriseBackoffice" requirement="namedObject">
<instance with="NamedObject">
<fulfill value="ChannelBackofficeApplicationType_52" requirement="name"/>
<fulfill with="xx2.CustomBackoffice" requirement="object"/>
</instance>
</fulfill>
Ошибка, показанная выше, выдается при запуске DBinit. Так что, если кто-нибудь знает, как определить и зарегистрировать 2 пользовательских типа приложений для backoffice (xx.CustomBackoffice и xx2.CustomBackoffice)?