Search the FirstSpirit Knowledge Base
Ich möchte eine FS_LIST in eine FS_INDEX umwandeln und dabei möglichst die Daten nicht verlieren.
Die FS_LIST sah bisher folgendermaßen aus:
<FS_LIST name="db_um_channels" hFill="yes" rows="10">
<DATASOURCE type="service" useLanguages="yes">
<LABELS>
<LABEL lang="*">#item.channelTitle + " (" + #item.channelId + ")"</LABEL>
</LABELS>
<ACTIONS>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
<ACTION name="UP"/>
<ACTION name="DOWN"/>
</ACTIONS>
<LAYOUT>
<ADD component="toolbar" constraint="top"/>
<ADD component="overview" constraint="center"/>
<ADD component="singleview" constraint="bottom"/>
</LAYOUT>
<PROVIDER name="NewsletterChannelProvider"/>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="Channels"/>
</LANGINFOS>
</FS_LIST>
Der FS_INDEX sieht nun so aus:
<FS_INDEX name="db_um_channels" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Empfängerlisten/-segmente (DataAccess)"/>
</LANGINFOS>
<SOURCE name="EmailMarketing/ChannelDataAccessPlugin" semtagName=""/>
</FS_INDEX>
Ich habe einfach die o.g. Komponente ausgetauscht und auf dasselbe Datenbankfeld gemappt.
Leider ist das FS_INDEX-Feld danach leer, d.h. offenbar können die im alten Format persistierten Inhalte nicht von der FS_INDEX gelesen werden. Ich habe mir das einmal direkt in der Datenbank angeschaut. Was die FS_LIST speichert sieht so aus:
<CMS_VALUE name="db_um_channels" tag="FS_LIST"><LANG id="DE" set="1"><DATA><ID>2337200</ID></DATA></LANG></CMS_VALUE>
Wenn ich mit der FS_INDEX die Daten neu speichere sieht es in der Datenbank danach so aus:
<CMS_VALUE name="db_um_channels_da" tag="FS_INDEX"><LANG id="DE" set="1"><INDEX><RECORD>2337200</RECORD></INDEX></LANG></CMS_VALUE>
D.h. Record und ID sind dieselbe, prinzipiell sollte also das DataAccessPlugin mit dem in der FS_LIST gespeicherten Wert was anfangen können.
Fehlermeldungen kommen keine weder im Client, noch im Server.
Info an alle, in 2019-12 wurde dieser Bug behoben.
Zur Info an alle: Es handelt sich hierbei laut Aussage vom Helpdesk um einen Bug, der in 2019-12 behoben sein sollte.
Info an alle, in 2019-12 wurde dieser Bug behoben.
Hallo,
ich bin auch gerade dabei, von FS_LIST umzusteigen und habe das EmailMarketing Modul ebenfalls im Einsatz. Wenn ich jetzt aber auf FS_Index umstelle, kommt die Fehlermeldung
Ungültige GOM-Benutzung!
Das referenzierte Plug-in 'EmailMarketing/NewsletterChannelProvider' existiert nicht.
In den Server-Eigenschaften unter Module existiert dies natürlich. Habe ich noch was vergessen/übersehen?
Server Version ist 2019-12
Danke und viele Grüße
Matthias Schlun
Hallo Matthias,
der NewsletterChannelProvider ist noch der alte Service, der nur mit FS_LIST funktioniert. Das FS_INDEX muss so aussehen
<FS_INDEX name="tt_um_channels" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Empfängerlisten/-segmente" />
</LANGINFOS>
<SOURCE name="EmailMarketing/ChannelDataAccessPlugin" semtagName="" />
</FS_INDEX>
Voraussetzung dafür ist die Modulversion 6.5.0, die Du im Downloadbereich von e-Spirit (oder auf www.universal-messenger.de) findest.
Grüße
Timo
Danke, das war es. Jetzt schmeißt es nur leider eine Exception, wenn ich das neue Modul konfigurieren möchte:
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key fs-resource.module.newsletter.NewsletterConfigurator_SemTag
at java.base/java.util.ResourceBundle.getObject(Unknown Source)
at java.base/java.util.ResourceBundle.getObject(Unknown Source)
at java.base/java.util.ResourceBundle.getString(Unknown Source)
at de.pinuts.firstspirit.newsletter.admin.NewsletterConfig.configure(NewsletterConfig.java:22)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel.init(GenericConfigPanel.java:123)
at de.espirit.firstspirit.admin.gui.projectpanels.ApplicationsPanel$ApplicationListPane.openConfigurationDialog(ApplicationsPanel.java:384)
at de.espirit.firstspirit.admin.gui.projectpanels.ApplicationsPanel$ApplicationListPane.actionPerformed(ApplicationsPanel.java:266)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at de.espirit.firstspirit.common.gui.FsButton.fireActionPerformed(FsButton.java:86)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:161)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:138)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:131)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.desktop/java.awt.Dialog.show(Unknown Source)
at java.desktop/java.awt.Component.show(Unknown Source)
at java.desktop/java.awt.Component.setVisible(Unknown Source)
at java.desktop/java.awt.Window.setVisible(Unknown Source)
at java.desktop/java.awt.Dialog.setVisible(Unknown Source)
at de.espirit.common.gui.SelfDisposingDialog.setVisible(SelfDisposingDialog.java:159)
at de.espirit.firstspirit.admin.gui.ProjectDialog.showDialog(ProjectDialog.java:428)
at de.espirit.firstspirit.admin.gui.CMSAdminConsole.openProjectDialog(CMSAdminConsole.java:1173)
at de.espirit.firstspirit.admin.gui.CMSAdminConsole.actionPerformed(CMSAdminConsole.java:1030)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at de.espirit.firstspirit.common.gui.FsButton.fireActionPerformed(FsButton.java:86)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at java.desktop/javax.swing.AbstractButton.doClick(Unknown Source)
at java.desktop/javax.swing.AbstractButton.doClick(Unknown Source)
at de.espirit.firstspirit.admin.gui.CMSAdminConsole$11.mouseClicked(CMSAdminConsole.java:1579)
at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:161)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:138)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:131)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Hast Du auch die Version 6.5.0 des Moduls installiert und auf allen Projekten aktualisiert? Bei der Version 6.1.0 gab es einen solchen Bug.
Siehe modifizierte Antwort
Ich schätze, dass hier der FS-Server ein bisschen mit den verschiedenen Versionen des Moduls durcheinander gekommen ist. Evtl. mal FS ganz neu starten?
Hat leider nichts gebracht, immer noch die java.util.MissingResourceException. Auch das löschen und neu hinzufügen der Projekt-Komponente hat nichts gebracht.