Frage zu "dynamischen" Stichwort

acam_gruber

Member
Ich habe beim "Urlaub"-Datensatz ein Feld hinzugefügt (Urlaub genehmigt). Nun möchte ich das Stichwort des Urlaubs dahingehend ändern, dass bei "Urlaub genehmigt = TRUE" das Wort "genehmigt" ans Stichwort angehängt wird.

Dazu habe ich ein weiteres Feld "A_TEMP_UG" und Formelfeld angelegt. Darin prüfe ich auf
if {Urlaub.Urlaub genehmigt} = TRUE then {Urlaub.Stichwort} + " genehmigt" else {Urlaub.Stichwort}
doch ich speichere den Wert in A_TEMP_UG. Wenn ich in "Stichwort" speichern will, ist dieses Feld ja nicht vorhanden.

Dann wollte ich mir nochmals ein Formelfeld machen und den Wert aus A_TEMP_UG in Stichwort speichern, doch aufgrund der Verweise lässt das Genesis das nicht speichern.

Wie würde das funktionieren?


Weiters: Ist es möglich Felder im Form-Designer auf Personengruppen einzuschränken? Es gibt ja bei den Eigenschaften den Bereich "Bearbeiten" aber da kann ich nur auf die Eigenschaften prüfen. Ich kann zwar abfragen ob die letzte Änderung vom Benutzer "GM" gemacht wurde, aber das wäre ja hardcodiert.

Danke, beste Grüße

Michael
 

Alexis Kälin

Administrator
Teammitglied
Hallo Michael

Du musst beim zweiten CAS genesisWorld Formelfeld, welches du im Stichwort speicherst nicht auf das erste Formelfeld verweisen, sondern das neue Feld (also A_TEMP_UG). Dann kriegst du auch keinen Zyklusfehler.

Felder kannst du auf Gruppen einschränken mit: IsCurrentUserInGroup("Hier Gruppenname einfügen")

Bei "Hier Gruppenname einfügen" den Name 1:1 so eingeben, wie dieser unter Gruppen benannt ist.

Dann sollte es klappen.

Beste Grüsse

Alexis
 

acam_gruber

Member
Das habe ich auch schon versucht, aber dann passiert folgendes: :eek::eek::eek:
1622467618956.png
Solange bis die Länge des Feldes (64) erreicht ist..


Das mit der Gruppe funktioniert, danke. Hätte ich wohl mal unter "Weitere" nachsehen sollen ;)
 

Marcel Graber

Super Moderator
Hallo Michael

Ergänze doch die erste Formel noch indem da abgefragt wird ob " genehmigt" bereits im Stichwort vor kommt und dies dann so nicht nochmals hinzufügt:
Code:
if {Urlaub.Urlaub genehmigt} = TRUE AND Contains({Urlaub.Stichwort} ," genehmigt")=false then {Urlaub.Stichwort} + " genehmigt" else {Urlaub.Stichwort}

Beste Grüsse
Marcel
 

Alexis Kälin

Administrator
Teammitglied
Hallo Michael

Ja, mit der Lösung von Marcel sollte dies nicht mehr passieren. Ich hatte die Formel nicht genau geprüft gehabt, aber genau hier, muss man den Zyklus abfangen. Ist eigentlich identisch wie bei der Lösung Projektnummer dynamisch ändern, hier mussten wir ebenfalls prüfen, ob die Nummer mit P beginnt:

if Left( {Projekt.Nummer},1) = "P" then
Right( {Projekt.Nummer},Length( {Projekt.Nummer} )-1) else
noChange

Ansonsten wäre es 1:1 zu dem gleichen Verhalten gekommen, welches du geschildert hast.

Beste Grüsse

Alexis
 

acam_gruber

Member
Danke. Nun gehts ;)


PS: Wisst ihr warum ich hier nichts ändern kann? Bin als Admin in der MMC eingeloggt. (Oder soll ich einen neuen Post machen?)1622526634693.png
 

Alexis Kälin

Administrator
Teammitglied
Hallo Michael

Dies hat damit zu tun, dass dies ein Systemfeld ist und die Eingabehilfen bewusst von der CAS Software gesperrt wurden:

1622529154952.png

Beim Urlaub werden einige Felder für Prozesse genutzt, wenn du zum Beispiel noch CAS teamWorks einsetzt - wo die Urlaubsverwaltung noch ein bisschen weitergeht. Daher ist dies an der Stelle bewusst nicht möglich.

Ich würde dir empfehlen entweder ein anderes Feld dazu zu verwenden (z.B. Kategorie) oder ein eigenes zu verwenden. Es gäbe auf DB-Ebene schon die Möglichkeit, auch gesperrte Felder/Eingabehilfen aktiv zu schalten. Davon würde ich erstmal abraten.

Beste Grüsse

Alexis
 
Oben Unten