Hallo Reinhard,
vielen Dank für den Tip, ich habe ihn sofort ausprobiert. Leider ohne
Erfolg, es gibt immer noch den gleichen Effekt wie ich unter "Fall 3"
beschrieben habe.
debug=1 zeigt mir, dass nach wie vor ein UPDATE versucht wird.
Als würde andWhere immer noch nicht berücksichtigt bei der Abfrage, ob
der Datensatz existiert.
Seitencache- und Konfigurationscache habe ich geleert. Oder gibt es noch
irgendwelche temp-, cache- oder ähnliche Dateien die ich löschen muss?
Hast du vielleicht noch eine Idee, woran der Fehler liegen könnte?
Vielen Dank auf jeden Fall schonmal für deine Hilfe und auf diesem Wege
auch für die tolle Extension!
Gruß
Susanne
Am 06.06.2013 09:45, schrieb Reinhard Führicht:
Hallo Susanne
Am 05.06.2013 23:36, schrieb Susanne:
Hallo,
ich habe folgendes Problem:
Mit Hilfe von Formhandler werden neue Einträge in die Tabelle Pages
geschrieben, in verschiedene pid?s.
Entscheidend ist der title der neuen Seite, daher habe ich key = title
gesetzt und generiere key_value dynamisch aus der Eingabe im Formular.
Innerhalb jeder pid darf der Seitentitle nur einmal vorkommen. Ist er
schon vorhanden, soll der bestehende Eintrag nur überschrieben werden
und ein neues cr_date erhalten.
Die pid, in der der aktuelle Eintrag geschrieben werden soll, wird
ebenfalls dynamisch generiert und ist sowohl als andWhere-Bedingung als
auch im pid.mapping angegeben.
Ich nutze den Finisher_DB mit einer Kombination aus
.updateInsteadOfInsert = 1 und insertIfNoUpdatePossible = 1
* Fall1: Eine Seite mit dem gewählten Title existiert schon in der
entsprechenden PID: Das Update wird Problemlos ausgeführt
* Fall2: Eine Seite mit dem gewählten Title existiert im kompletten
Seitenbaum noch nicht: Insert wird innerhalb der entsprechenden PID
richtig ausgeführt, alles funktioniert wie es soll
* Fall3: Eine Seite mit dem gewählten Title existiert bereits im
Seitenbaum, aber nicht in der in der andWhere-bedingung vorgegebenen
PID. Dies führt zu folgendem Fehler:
Formhandler führt hier ein UPDATE statt einem INSERT aus. Ein Update
ist aber nicht möglich, da die Seite in der pid aus der
andWhere-Bedingung nicht vorkommt. Die Folge: Die Seite wird nicht
geschrieben.
Ich habe schon versucht, disableUpdateUidFallback = 1 zu setzen. Leider
ohne Erfolg.
Hat jemand eine Idee, wie ich dieses Problem lösen kann?
Schon einmal vielen Dank!
Gruß
Susanne
Kann es sein, dass es an diesem Bug liegt? [1]
Bis zur Version 1.6.0 hängt Finisher_DB das andWhere nicht an die
Abfrage ob der Datensatz bereits existiert.
Der Patch hier [2] sollte das beheben.
Viele Grüße,
Reinhard
[1] http://forge.typo3.org/issues/46502
[2]
http://forge.typo3.org/projects/extension-formhandler/repository/revisions/75391/diff/trunk/Classes/Finisher/Tx_Formhandler_Finisher_DB.php
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german