Project

General

Profile

Actions

Bug #12045

open

templateGroup afterSave FE: Aufruf ohne sqlHonorFormElements funktioniert nicht

Added by Elias Villiger about 3 years ago. Updated about 3 years ago.

Status:
New
Priority:
Normal
Assignee:
Carsten Rose
Target version:
Start date:
18.02.2021
Due date:
% Done:

0%

Estimated time:
Discuss:
Prio Planung:
Vote:

Description

Szenario:
templateGroup mit non-native FEs. Zum Speichern der Werte braucht es immer ein afterSave FE mit slaveId, sqlInsert, ...

Beobachtetes Verhalten
Wenn beim afterSave FE kein sqlHonorFormElements = sampleColumn%d definiert ist, wird der afterSave Record zwar korrekt oft (z.B. 5x) aufgerufen, jedoch ist %d jedesmal = 1 (bzw. %D = 0), statt inkrementell.

Erwartetes Verhalten
Erwartet wäre, dass bei fehlendem sqlHonorFormElements die sqlInsert/Update/Delete statements unabhängig von irgendwelchen TemplateGroup-FE-Werten ausgeführt werden, nur abhängig von der slaveId, wie auch bei anderen afterSave-FEs. Und zwar mit %d = 1, 2, 3, 4, 5, nicht jedesmal = 1.

Actions #1

Updated by Elias Villiger about 3 years ago

Beispiel-Setup, was aktuell nicht funktioniert:

fe[0].class = Container
fe[0].type = template Group
fe[0].name = Names

fe[1].class = Native
fe[1].type = input
fe[1].container = Names
fe[1].name = name%d

fe[2].class = Action
fe[2].type = afterSave
fe[2].parameter = slaveId = {{SELECT id FROM person ORDER BY id LIMIT %D,1 }}
                  sqlInsert = {{INSERT INTO person (name) SELECT '{{name%d}}' FROM (SELECT '') AS _ WHERE '{{name%d}}' != '' }}
                  sqlUpdate = {{UPDATE person SET name = '{{name%d}}' WHERE id={{slaveId:V}} }}
                  sqlDelete = {{DELETE FROM person WHERE id={{slaveId:V}} }}

Damit es funktioniert, muss

fe[2].parameter = sqlHonorFormElements = name%d
ergänzt werden. In den meisten Fällen ist das sowieso sinnvoll, aber für andere Fälle, sollte es trotzdem funktionieren.

Actions

Also available in: Atom PDF