Ereignis "Feldänderung" ohne Funktion?

Hallo allerseits,

ich habe in letzter Zeit ein wenig mit der Testversion rumgespielt und komme gerade mit dem Ereignis „Feldänderung“ nicht voran.
Habe das Ereignis mit der Aktion „Scriptzeilen ausführen“ angelegt, ein numerisches Feld zugewiesen und ein korrektes Script eingegeben (erstmal nur ein cRM.DebugOutput zum gucken).

Es wurde auch ein changedatacapture-Trigger in der DB angelegt.

Leider passiert nichts, wenn ich eine entsprechende Änderung mache.

Wenn ich den Trigger im SQL Server Management Studio doppelklicke bekomme ich die folgende Meldung:

[code]Fehler bei Skript für Trigger ‚cmbt_trigger_changedatacapture_m4f_offers‘. (Microsoft.SqlServer.Smo)

Hilfe erhalten Sie durch Klicken auf: [url=http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.2500.0+((KJ_PCU_Main).110617-0026+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Skript+Trigger&LinkId=20476


ZUSÄTZLICHE][/url] INFORMATIONEN:

Syntaxfehler in ‚TextHeader‘ von Trigger ‚cmbt_trigger_changedatacapture_m4f_offers‘. (Microsoft.SqlServer.Smo)

Hilfe erhalten Sie durch Klicken auf: [url=http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.2500.0+((KJ_PCU_Main).110617-0026+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&LinkId=20476 [/code]

Jemand][/url] eine Idee was ich falsch mache?

Tausend Dank im Voraus!

[quote]Leider passiert nichts, wenn ich eine entsprechende Änderung mache.
[/quote]

nur zur Sicherheit: Läuft bei dir der Workflow Server?

Den Syntax Fehler unten hab ich noch nie gesehen.

Gruß Alex

Hallo Alex,

zur Sicherheit ist immer gut. Er lief in der Tat nicht. Mir war bis dato nicht klar, dass der Workflow-Server auch die Ereignisse managed.

Jetzt wird das Event korrekt behandelt. Leider löst das mein ursprüngliches Problem nicht, weil die Events zum Teil zeitlich stark verzögert verarbeitet werden, aber das ist ein anderes Thema :slight_smile:

1000 Dank für den Hinweis. Wieder etwas dazugelernt.

Gruß

Stanislav

Hi Stanislav,

ja, der Workflow Server ist für die serverseitigen Ereignisse zuständig. Ich hätte gedacht, dass in dem Augenblick wo du ein derartiges Ereignis anlegst, eine Hinweismeldung kommt, die dich genau auf den Workflow Server hinweist, ich kann mich aber auch täuschen. Gut, dass es jetzt fluppt.

Wenn du eine Verarbeitung „in Echtzeit“ brauchst, dann musst du das über einen eigenen Datenbanktrigger machen. In der Praxis hatte ich aber noch kein Fall, wo es auf die Sekunde ankam, denn das Versenden einer Benachrichtigung an den Kunden-Betreuer oder eine Auto-Email an einen Kunden/Außendienstler, oder das Anlegen eines Datensatzes aufgrund eines Statusänderung eines anderen, o.ä. sind ja alle nicht Echtzeit-kritisch.

Gruß

Alex

Hallo Alex,

das Problem das ich versucht hatte mit dem Ereignis-Handler zu lösen ist einer ein UI-Problem.

Ich habe eine Ansicht für Rechnungen, wo es einen Container für Rechnungspositionen gibt. D.h. ich kann einer Rechnung mehrere Positionen zuweisen ähnlich wie in der Belege-Ansicht der Large-Solution.
Ich habe einen Trigger für die Rechnungsposten-Tabelle geschrieben, der die Gesamtsumme der Rechnung im entsprechenden Rechnungsdatensatz aktualisiert. Dadurch habe ich in den Daten immer die korrekte Gesamtsumme zu jedem Rechnungsdatensatz. Funktioniert hervorragend, ausser dass die Eingabemaske der offenen Rechnung sich nicht aktualisiert und so nach Änderungen eine falsche Gesamtsumme anzeigt und manuell aktualisiert werden muss, damit die richtige Summe angezeigt wird.

Ich habe naiverweise gedacht, ich würde nach Feldänderungen im Gesamtsumme-Feld hören und beim eintretenden Ereignis die Ansicht aktualisieren. Funktioniert wergen der Zeitverzögerung natürlich nicht richtig.

Gibt es vielleicht einen anderen Lösungsansatz für diese „Unschönheit?“ Wenn ich das richtig sehe, ist in der Large-Solution auch nur ein manuelles Aktualisieren der Ansicht vorgesehen.

Viele Grüße

Stanislav

Hi Stanislav,

nö, fällt mir auch nichts ein, ich persönlich fände ein manuelles Aktualisieren - man könnte ja neben der Summe einen Button platzieren, damit das noch klarer wird - „verschmerzbar“. Kannst aber auch das direkte Editieren des Postens im Container verbieten, dann muss der Posten halt kurz per Doppelklick in der Eingabemaskenansicht geändert werden (und dann würde dort das ‚Datensatz wurde gespeichert‘ Ereignis greifen und du könntest dann die andere Ansicht aktualisieren).

Gruß

Alex

Hi Alex,

da müssen die Sachbearbeiter dann wohl durch :slight_smile: Danke für Deine Hilfe.

Gruß

Stanislav