tfuchs
Elite Observer

Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

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.

Labels (2)
1 Solution

Accepted Solutions
tfuchs
Elite Observer

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

Info an alle, in 2019-12 wurde dieser Bug behoben.

View solution in original post

0 Kudos
16 Replies
tfuchs
Elite Observer

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

Zur Info an alle: Es handelt sich hierbei laut Aussage vom Helpdesk um einen Bug, der in 2019-12 behoben sein sollte.

0 Kudos
tfuchs
Elite Observer

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

Info an alle, in 2019-12 wurde dieser Bug behoben.

0 Kudos
schlun
I'm new here

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

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

0 Kudos
tfuchs
Elite Observer

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

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

0 Kudos
schlun
I'm new here

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

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)

0 Kudos
tfuchs
Elite Observer

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

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.

0 Kudos
schlun
I'm new here

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

Siehe modifizierte Antwort Smiley Wink

0 Kudos
tfuchs
Elite Observer

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

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?

0 Kudos
schlun
I'm new here

Re: Migration FS_LIST (SERVICE) nach FS_INDEX (DataAccess): Alte Werte werden nicht übernommen

Jump to solution

Hat leider nichts gebracht, immer noch die java.util.MissingResourceException. Auch das löschen und neu hinzufügen der Projekt-Komponente hat nichts gebracht.

0 Kudos