CoRu Aktion "Daten ändern" - ASQL Fehler

Antworten
Christoph
Beiträge: 44
Registriert: 30. Mär 2016, 15:47
Kontaktdaten:

CoRu Aktion "Daten ändern" - ASQL Fehler

Beitrag von Christoph » 20. Feb 2019, 14:52

Hallo,
ich stehe auf der Leitung oder irgendetwas anderes ist faul, aber ich bekomme etwas ganz einfaches bei einer CoRu nicht hin: Ich möchte bei der Aktion "Daten ändern" dem betroffenen Asset einen Wert per ASQL aus einem anderen Asset zuweisen. Folgendes ASQL-Statement habe ich in mehreren Syntaxvarianten als "Werteausdruck" versucht:
=SUBQUERY(SPSAssetClassBase AS acb, acb.AssignedUser, acb.Name='Datenbasis Verschrottung')

Das sagt auch schon alles über den Zweck der Übung. Wir haben ein Dummy-Asset mit Daten, die bei verschrotteten Assets eingetragen werden sollen. Ich bekomme aber immer die Fehlermeldung:
"System.ApplicationException: Expression ... <siehe oben> is not a Asql Expression"

Wo steckt der Wurm, der da drin ist?

Danke für Hinweise!
Gruß
Christoph

Benutzeravatar
FrankPree
Beiträge: 116
Registriert: 25. Aug 2011, 08:41
Kontaktdaten:

Re: CoRu Aktion "Daten ändern" - ASQL Fehler

Beitrag von FrankPree » 21. Feb 2019, 10:20

Hallo Christoph,

leider habe ich keine Lösung, aber vielleicht einen Vorschlag.

Vor Jahren hatte ich eine ähnliche Anforderung mit Datenänderung per ASQL aus einer CoRu. Ich habe es nicht direkt in der CoRu geschafft ein funktionierendes Statement zum Ändern von Daten zu schaffen.
Letztlich habe ich die Datenänderung dann per Workflow realisiert. Das geht insgesamt dann doch schneller als unzählige Versuche mit der ASQL Syntax. Außerdem kann man die Datenänderung am Asset mit einem Workflow auch wunderbar Journalisieren.

Also, mein Vorschlag ist einen Workflow zum Ändern am Asset zu nutzen.

LG
Frank
Bitte für meine Ideen im Matrix Ideenportal voten:
Slider Control: https://ideas.matrix42.com/ideas/SB-I-45

Christoph
Beiträge: 44
Registriert: 30. Mär 2016, 15:47
Kontaktdaten:

Re: CoRu Aktion "Daten ändern" - ASQL Fehler

Beitrag von Christoph » 21. Feb 2019, 12:58

Hallo Frank,
danke für den Tipp! Einen Workflow sollte ich hinbekommen. Aber die CoRus werden so schön schlank in der DB als Trigger abgelegt und ein Workflow zieht doch immer ziemlich Overhead mit. Ich versuche immer möglichst Workflows zu "sparen".
Ist doch auch komisch, dass das mit den Statements nicht geht. Vielleicht schlummert da ja noch ein Bug. Ich werde mich mal an den Support wenden.

Viele Grüße
Christoph

Benutzeravatar
FrankPree
Beiträge: 116
Registriert: 25. Aug 2011, 08:41
Kontaktdaten:

Re: CoRu Aktion "Daten ändern" - ASQL Fehler

Beitrag von FrankPree » 21. Feb 2019, 13:06

Hallo Christoph,

klar, der Workflow wirkt erst mal aufwändiger. Der Trigger aus der CoRu bleibt ja der gleiche, nur die Aktion dahinter unterscheidet sich. Workflows müssen nicht vermieden werden, das haben sie nicht verdient :)

Vor allem mit dem Hintergrund der Journalisierung bleibt einem fast nix anderes übrig. Besonders wertvoll ist es, wenn man die vorher Variablen aus der CoRu an den Workflow als Argumente übergibt. Dann hat man nämlich wunderbare vorher/nachher Daten, die man perfekt im Journal darstellen kann. Tolle Sache.

Ich liebe Workflows :-)

Viele Grüße
Frank
Bitte für meine Ideen im Matrix Ideenportal voten:
Slider Control: https://ideas.matrix42.com/ideas/SB-I-45

Christoph
Beiträge: 44
Registriert: 30. Mär 2016, 15:47
Kontaktdaten:

Re: CoRu Aktion "Daten ändern" - ASQL Fehler

Beitrag von Christoph » 06. Mär 2019, 16:26

Hallo ,
danke Frank für die Hinweise!
Ich habe meine CoRu jetzt mal versucht mit einem Workflow umzusetzen.
Das funktioniert leider auch nicht, da auch die Aktivitäten im WF-Studio nicht das Setzen eines Wertes auf NULL erlauben. Ich brauche das bei Asset.AssignedUser. Die WF-Aktivität "Update Objects" akzeptiert "NULL" oder "=NULL" jedoch nicht als Wert oder Ausdruck. Wenn ich bei der WF-Aktivität "Update Objects" unter "Operation" für das Attribut statt "Update" "Clear" auswähle, dann versucht die Aktion eine GUID=0000-00000 usw. zu schreiben, was eine Constraint-Verletzung zur Laufzeit erzeugt. Das gleiche passiert, wenn ich einen "NULL"-Wert aus einem anderen Objekt kopiere (als dynamischer Wert). Ich habe auch versucht eine Variable vom Typ System.DBNull zu erzeugen, diese kann ich aber nicht dem Feld AssignedUser zuweisen (weil es eben keine GUID ist).
Ich bin am Ende und habe es jetzt erstmal mit SQL hart in die DB geschrieben. Das finde ich aber eigentlich schade. Hat noch jemand eine andere Idee?

Danke und Gruß
Christoph

Benutzeravatar
FrankPree
Beiträge: 116
Registriert: 25. Aug 2011, 08:41
Kontaktdaten:

Re: CoRu Aktion "Daten ändern" - ASQL Fehler

Beitrag von FrankPree » 06. Mär 2019, 17:43

Hallo Christoph,

ich habe das gerade mal kurz per Workflow für eine Asset Änderung nachgebaut.
In meinem Workflow habe ich bei Änderung des Status den Hauptbenutzer entfernt. Dies ganze realisiert mit einem Update-Objects -> Attribut AssignedUser -> Clear. Das hat wunderbar funktioniert.

Welches Attribut des Assets möchtest Du denn "NULL"en, bzw. leeren?
Wenn wirklich alle Stricke reißen, dann kannst Du im Workflow immer noch mit einer ExecuteSQLNonQuery in der Datenbank hantieren, dass wenigstens der Auslöser aus dem Workflow kommt.

Ich bin gespannt welches Feld das ist, das in der UpdateObjects nicht funktioniert.

LG
Frank
Bitte für meine Ideen im Matrix Ideenportal voten:
Slider Control: https://ideas.matrix42.com/ideas/SB-I-45

Antworten

Zurück zu „Customizing und Reporting“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste