aVogt
Returning Creator

Arbeitsablauf mit unterschiedlichen Datenmasken

Hallo,

folgende Aufgabenstellung:

Ich habe eine Datenquelle. Auf einem Datensatz sollen unterschiedliche Aktionen ausgeführt werden (über unterschiedliche Arbeitsabläufe).
Je nachdem welcher Arbeitsablauf ausgeführt wird, soll ein anderes Formular für die Datenerfassung angezeigt werden.
Ich habe mir das so vorgestellt, dass über den Arbeitsablauf ein Script ausgeführt wird, dass das Formular bereitstellt. In den Formular sollen dann z.T. die Daten des Datensatz angezeigt werden. Das zu definierende Formular im Script nutzt mir da leider nichts.
Geht so was überhaupt? Wenn ja, wie würde man vorgehen?

Bisher verwenden wir unterschiedliche Datenquellen, auf dem dann nur ein spezieller Arbeitsablauf ausgeführt wird. Ist das einfacher?

Grüße

Andreas

0 Kudos
5 Replies
broszeit
I'm new here

Hallo Andreas,

hier gibt es ein paar Anregungen zum Einsatz von Formularen:

https://community.e-spirit.com/message/2137#2137

Wenn ich die Problemstellung richtig verstanden habe, benötigen wir hier den zweiten Ansatz. Dieser ist im Abschnitt 4.4 der Entwicklerdokumentation sehr gut beschrieben. Du kannst im Arbeitsablauf direkt ein Formular definieren, wo Daten eingegeben werden können. Dieses kann man dann später mithilfe eines Skripts auslesen.

In den Formular sollen dann z.T. die Daten des Datensatz angezeigt werden.

Wie soll das konkret aussehen? Die Daten des Datensatzes kann man z.B. mithilfe einer FS_LIST auswählen.

Viele Grüße

Rouven

0 Kudos
aVogt
Returning Creator

Hallo Rouven,

das ist mir schon bekannt und verwende ich schon ...ist aber leider nicht ganz das was ich benötige.

Ich versuche es mal ausführlicher zu beschreiben:

Ich habe einen Datensatz. Auf diesem kann ich unterschiedliche Arbeitsabläufe starten.

1. neue Version

2. Metadaten editieren

3. verlinkte Datei austauschen

Bei den drei Aktionen sollen unterschiedliche Formulare angezeigt werden. Es müssen bei den unterschiedlichen Aktionen nicht alle Daten geändert/erfasst werden.Die Eingabefelder sollen mit den jeweiligen Daten des Datensatzes, auf dem der Arbeitsablauf ausgeführt wird, vorbelegt werden. Nachdem das Formular ausgefüllt wurde, werden je nach Arbeitsablauf unterschiedliche Aktionen ausgeführt (z.B. Datei archivieren - in ein externes Archivsystem; Mail verschicken ...).

Es müsste also so etwas geben. Der Arbeitsablauf startet ein Script. Dieses baut das notwendige Formular zusammen (also kein vordefiniertes im reiter Formular des Scriptes) und füllt die Felder mit den Daten des ausgewählten Datensatzes. Beim speichern werden dann die notwendigen weiteren Aktionen ausgeführt.

Mir ist bekannt, dass für jede Datenquelle ein Formular "gebaut" werden kann. Da können die notwendigen Felder dargestellt werden. Auch werden die Daten des jeweiligen datensatzes angezeigt.

Allerdings arbeiten wir in dem Projekt ohne Freigabe. Beim Speichern wäre die Änderung aktiv, ohne dass die weiteren notwendigen Aktionen ausgeführt wurden (Archivierung, Mail...). Falls die o.g. Variante nicht gehen sollte, fällt mir nur so was ein, dass die für jede notwendige Aktion eine Tabellendefinition und somit eine Datenquelle angelegt wird. Die Daten werden alle in "Temp-Feldern" gespeichert und erst mit ausführen des Arbeitsablaufen in die "aktiven-Felder" umkopiert.

In einem Projekt (allerdings mit Freigabe) verwenden wir etwas ähnliches. Da existiert aber für jede Aktion eine eigene Tabelledefinition und somit eine eigene Datenquelle. Die Daten werden in die jeweiligen Felder geschrieben und gespeichert. Da eine Freigabe erforderlich ist, geht das ja.

Grüße

Andreas

0 Kudos

Hallo Andreas,

achso, ich glaube so langsam wird mir das Vorhaben etwas klarer.

Im Grundsatz ist dann also Ansatz drei aus dem oben verlinkten Beitrag der Richtige.

Auf den Workflows gibt es ja bereits Scripte, welche die jeweiligen Operationen durchführen oder?

Diese müssen, dann ja "nur" die Daten aus dem jeweiligen Datensatz abrufen und als Vorgabewert in das jeweilige Feld des Formulars schreiben.

Zu diesem Ansatz findest Du hier und hier Informationen.

Folgender Code-Schnipsel sollte funktionieren:

editorValueComment = context.getScript().getDefaults().data.get("sc_comment");

commentEditor = editorValueComment.getEditor();

commentEditor.set(context.getProject().getMasterLanguage(), "Default Text");

"sc_comment" durch den Namen der Eingabekomponente des im Script definierten Formulars und "Default Text" durch die entsprechenden Daten aus der Datenquelle ersetzen.

Wie man ein komplettes Formular von Grund auf zusammenbaut, ist in dem zweiten Link beschrieben, dies sollte hier aber nicht nötig sein, wenn man das jeweilige Formular in den einzelnen Scripten definiert.

Gruß

Rouven

aVogt
Returning Creator

Hallo Rouven,

danke für die Infos. Ich werds mal versuchen, hab allerdings erst mal eine andere Aufgabe bekommen, die wichtiger ist. Ich melde mich ggf. noch mal.

Grüße

Andreas

0 Kudos
aVogt
Returning Creator

Hallo Rouven,

ich bin eigentlich ganz gut vorangekommen und das ist genau das, was ich brauche.

Allerdings wäre eine ausführliche API sicher sehr hilfreich, gibt es die irgendwo?
z.B. Ich noch Probleme bei der Bezeichnung (gom***.setLabel(String) ist deprecated)
und bei Erstellung einer FSReference komme ich auch nicht so voran wie ich mir das vorgestellt habe (Ziel ist: nur Upload von Medien erlauben).

Grüße

Andreas

[EDIT]: Ich hab mal dazu ein neues Ticket geöffnet:

FS_Referenz in einem Script (Formular) erstellen

0 Kudos