im Zuge einer Migration von FirstSpirit 4.2R4 auf 5.1 bin ich auf folgendes Problem gestoßen.
Es existiert eine Tabelle "Campaigns" welche eine N:M Beziehung auf sich selbst besitzt. Um diese Beziehung abzubilden wurden zwei Tabellenvorlagen angelegt. campaigns und relatedCampaigns.
<FS_LIST name="campaignsRelated" hFill="yes" height="500">
<LANGINFOS>
<LANGINFO lang="*" label="Zugehörige Kampagnen"/>
</LANGINFOS>
<DATASOURCE type="database" useLanguages="no">
<LABELS>
<LABEL lang="*">#item.label</LABEL>
</LABELS>
<ACTIONS>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
<ACTION name="UP"/>
<ACTION name="DOWN"/>
<ACTION name="GOTO"/>
<ACTION name="VIEW"/>
</ACTIONS>
<TABLE>relatedCampaigns</TABLE>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="overview" constraint="center"/>
<ADD component="toolbar" constraint="top"/>
<ADD component="stackedview" constraint="hide"/>
</LAYOUT>
</DATASOURCE>
</FS_LIST>
Die Tabellenvorlage lässt sich auch ohne Fehlermeldung speichern. Ich erhalte jedoch folgende Fehlermeldung wenn ich versuche über die Liste einen Eintrag hinzuzufügen.
Element 'relatedCampaigns' (ID=<NULL>) wurde nicht gefunden.
Client Version: 5.1.410.67084
Java Version: 1.7.0_11 Oracle Corporation
FSVersion=5.1.410.67084#4490;JDK=1.7.0_11 64bit Oracle Corporation;OS=Windows 7 6.1 amd64;Date=17.06.2015 14:55:44
de.espirit.firstspirit.access.store.ElementNotFoundRuntimeException
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentActions$Add.actionPerformed(ContentActions.java:424)
at de.espirit.firstspirit.access.store.templatestore.gom.fslist.DefaultActionHandler.actionPerformed(DefaultActionHandler.java:39)
at de.espirit.firstspirit.ui.gadgets.swing.fslist.FsListGadgetUI$Handler.actionPerformed(FsListGadgetUI.java:664)
at de.espirit.firstspirit.ui.gadgets.swing.fslist.ToolbarAction.notifyActionListener(ToolbarAction.java:68)
at de.espirit.firstspirit.ui.gadgets.swing.fslist.ToolbarAction.actionPerformed(ToolbarAction.java:41)
at de.espirit.firstspirit.ui.gadgets.aspects.toolbar.Action$1.actionPerformed(Action.java:38)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at de.espirit.firstspirit.common.gui.FsButton.fireActionPerformed(FsButton.java:86)
at de.espirit.firstspirit.common.gui.StoreHoverButton.fireActionPerformed(StoreHoverButton.java:134)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at 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.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Mit der CMS_INPUT_CONTENTLIST funktioniert es ohne Probleme. Woran könnte dies liegen?