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

Antwort per Email an