Questions & Answers

SOLVED
aVogt
Returning Creator

Datensatz kopieren

Jump to solution

Hallo,

in einer Datenquelle A gibt es Datensรคtze (DS), die von anderen Datensรคtzen einer anderen Datenquelle B referenziert werden (รผber eine Beziehung).

Nun mรถchte ich den DS der DQ A kopieren und ebenso alle DS der DQ B, die auf den DS der DQ A refernzieren.

(Somit scheidet das "Kopieren eines DS" in den DQ aus)

รœber ein Script habe ich dies geschafft (script.txt). Um den zu kopieren DS (der DQ A) auszuwรคhlen habe ich eine Eingabekomponente erstellt, die alle DS anzeigt. Nach Auswahl des DS werden die Aktionen ausgefรผhrt (erst kopieren des DS der DQ A, dann kopieren der DS der DQ B und Referenz der kopierten DS der DQ B auf den neu kopierten DS der DQ A setzen).

Nun sind es mittlerweile recht viele DS geworden, so dass man in der Eingabekomponente etwas scrollen/suchen muss um den passenden DS zu finden.

Ich wollte daraufhin einen Workflow (WF) bauen, der direkt auf dem zu kopierenden DS ausgefรผhrt wird (wf_script.txt). Das funktioniert so weit, nur dass die kopierten DS in einem fรผr mich nicht nachvollziehbarem Status stehen.

Die kopierten DS bekommen ein "schwarzes Kรคstchen" und es kรถnnen keine weiteren WF auf diesen DS ausgefรผhrt werden. Unter Auftrรคge finde ich keinen offenen oder fehlgeschlagenen WF. Somit kann ich mit den DS nichts mehr anfanen.

Eine automatische Freigabe der kopierten DS darf nicht erfolgen

Frage:

  1. Werden event. die WF Eigenschaften mit kopiert und kann ich die "irgendwie" zurรผcksetzen/lรถschen?
  2. Kann ich ein Script auch direkt auf einem DS ausfรผhren? Wenn ja, wie komme ich an die Entity, auf dem das Script ausgefรผhrt wurde?

Ein Wf wรคre mir lieber, da ich bei einem Script erst noch abfragen muss, ob das Kopieren auf dem DS auch erlaubt ist (oder kann man ein Script nur auf bestimmte DQ zulassen?)

Danke schon mal fรผr Hinweise

Andreas Vogt

1 Solution

Accepted Solutions
gockel
Crownpeak employee

Hallo,

Kann ich ein Script auch direkt auf einem DS ausfรผhren? Wenn ja, wie  komme ich an die Entity, auf dem das Script ausgefรผhrt wurde?

ja das geht.

Einfach ein Skript vom Typ "Kontext" anlegen.

Im ViewSkript kann man dann definieren, dass das Skript z.B. nur auf Datenquellen ausgefรผhrt wird:

cs_skript.jpg

Ausgefรผhrt wird das Skript dann einfach per Rechtsklick auf dem entsprechenden Datensatz:

cs_execute.jpg

Der Context, der im Skriptcode zur Verfรผgung steht ist dann vom Typ Content2ScriptContext. Hier kann die Methode #getSelectedRow() verwendet werden, um an das Entity zu kommen.

context.getSelectedRow()

(oder kann man ein Script nur auf bestimmte DQ zulassen?)

Im Viewscript kรถnnen sie auch speziellere Prรผfungen vornehmen, um das Skript nur auf ganz speziellen Datenquellen zu erlauben. Hierbei sollte man immer berรผcksichtigen, dass die Viewskripte beim Aufklappen des Menรผeintrages ausgefรผhrt werden. Es sollten also keine performancekritischen Operationen in Viewskripten implementiert werden.

View solution in original post

2 Replies
gockel
Crownpeak employee

Hallo,

Kann ich ein Script auch direkt auf einem DS ausfรผhren? Wenn ja, wie  komme ich an die Entity, auf dem das Script ausgefรผhrt wurde?

ja das geht.

Einfach ein Skript vom Typ "Kontext" anlegen.

Im ViewSkript kann man dann definieren, dass das Skript z.B. nur auf Datenquellen ausgefรผhrt wird:

cs_skript.jpg

Ausgefรผhrt wird das Skript dann einfach per Rechtsklick auf dem entsprechenden Datensatz:

cs_execute.jpg

Der Context, der im Skriptcode zur Verfรผgung steht ist dann vom Typ Content2ScriptContext. Hier kann die Methode #getSelectedRow() verwendet werden, um an das Entity zu kommen.

context.getSelectedRow()

(oder kann man ein Script nur auf bestimmte DQ zulassen?)

Im Viewscript kรถnnen sie auch speziellere Prรผfungen vornehmen, um das Skript nur auf ganz speziellen Datenquellen zu erlauben. Hierbei sollte man immer berรผcksichtigen, dass die Viewskripte beim Aufklappen des Menรผeintrages ausgefรผhrt werden. Es sollten also keine performancekritischen Operationen in Viewskripten implementiert werden.

aVogt
Returning Creator

Hallo,

funktioniert bestens (wie gewรผnscht) Smiley Happy

Vielen Dank.

0 Kudos

Type a product name