Container kopieren
Diese Aktion kopiert Daten aus einem Container in einen anderen. Felder mit gleichen Namen und Typ werden automatisch übernommen. Für weitere Felder kann über eine Konfiguration eine Zuordnung geschaffen werden. Über solch eine Konfigurationseinstellung können auch mehrere Felder in ein Feld hineinkopiert werden.
Funktionen:
Parameter
source-listid |
gibt die ID der Quell-Liste an |
target-listid |
dies ist die ID der Ziel-Liste |
idfield |
der Name des Request-Parameters, der die ID des zu kopierenden Datensatzes enthält |
config |
die Kopierzuordnung in XML |
Auf die ID des erzeugen Kopie-DS kann man in einem weiteren Actionbaustein über das Action-Attribute copyrecord zugreifen.
Weitere Eigenschaften:
include-child-lists=true (es werden die Untercontainer mit kopiert - wie in der Verwaltung - ab V2.6.6)
attribute-recordid=copyrecord (es kann statt copyrecord für die ID des neuen DS ein anderer Name definiert werden)
XML-Syntax
Die Syntax der Kopierzuordnung folgt diesem Muster:
<rules>
<field name="Titel" source="Name"/>
<field name="Datum"><![CDATA[<bx:recordfield.Datum_Beginn pattern="dd.MM.yyyy"/><bx:if> - <bx:recordfield.Datum_Ende pattern="dd.MM.yyyy"/></bx:if>]]></field>
<field name="Alter"><![CDATA[<bx:pagedata.request name="neuesAlter"/>]]></field>
<field name="Kategorie/Titel" source="Titel"/>
</rules>
| name | Feldname des Zielfelds |
| source | Feldname des Quellfelds |
| <![CDATA[...]]> | zu speichernder Inhalt als Tag-Inhalt es können auch Tags wie bx:recordfield verwendet werden |
| Feld/Unterfeld | Unterelemente einer Einzelverknüpfung ansprechen |
Beispiele
Die XML Datei hat folgendes Format:
Beispiel Titel
<rules>
<field name="Datum" source="Datum_Beginn"/>
<field name="Flat_Ausgabe"><![CDATA[
Beschreibung:
<bx:recordfield.Beschreibung type="plain"/>
Bemerkungen:
<bx:recordfield.Bemerkungen type="plain"/>
]]></field>
<field name="Kategorie" source="Kategorie/Titel"/>
<field name="Zeitstempel" source=""/>
</rules>
Das Haupt-Tag heißt <rules>. Dazwischen dürfen beliebig viele <field>-Einträge stehen, die das Pflicht-Attribut name haben müssen, das den Feldnamen des Zielcontainers enthält.
Bei geschlossenen <field/>-Tag muß in einem Parameter source der Name des Feldes im Quellcontainer angegeben werden. Mit "/" kann auch ein Feld hinter einer Einzelverknüpfung aufgerufen werden.
Wenn ein Feld aus dem Quellcontainer nicht übernommen werden soll, kann bei name der Feldname und source="" angegeben werden. (Hier im Beispiel würde nicht der Inhalt des Timestamp-Feldes des Quellcontainers kopiert werden und so ein aktueller Timestamp im Zielcontainer erstellt werden)
Wenn <field> geöffnet wird, können Batix-Tags benutzt werden, um den Inhalt von Textfeldern im Zieldatensatz aus mehreren Feldern des Quelldatensatzes zusammenzusetzen. An <bx>-Tags können nur einige verwendet werden, z. B. bx:pagedata um der Aktion übergebene Parameter weiterzuleiten oder bx:recordfield bzw. bx:recorddata um Informationen zum aktuellen Datensatz zu übergeben. Der Inhalt sollte in einem CDATA-Block eingeschlossen sein, wenn er XML-Sonderzeichen (z. B. "<", "&") enthalten könnte.