SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Koersionsfehler bei Workflow (E-Mail über neue Telefongesprächsnotiz)

Unbeantwortet Dieser Beitrag hat 9 Antworten

Ohne Rang
12 Beiträge
TG-KH erstellt 6 Dez. 2013 08:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

wir nutzen auf unserem SharePoint die Telefongesprächsnotizen. Um unsere User schnellstmöglich über neue Notizen zu informieren, wurde ein Workflow eingerichtet der eine E-Mail mit dem Inhalt der Notiz an den Benutzer sendet.


In der Regel funktioniert das ganze wunderbar. Leider tauchen im Workflowverlauf immer mal wieder Koersionsfehler auf, in diesem Fall erhält der User natürlich keine E-Mail, was sehr unglücklich ist.


Leider habe ich keine Idee woran das ganze liegen soll...

Hier nochmal ein Beispiel, wie eine eingestellte Notiz aussieht:

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Dez. 2013 08:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Diese Koersionsfehler tauchen immer dann auf, wenn es irgendwo ein Problem bei der Datentypkonvertierung gibt. Und vor allem wenn Felder leer sind und man versucht etwas "Besonderes" damit zu machen, wie z.B. die E-Mailadresse aus einem Personenfeld zu holen. Leider, leider, leider gibt die Workflowengine nicht an, wo genau sie ein Problem hat und die Fehlersuche ist deshalb extrem mühsam.

Ich kann Dir nur empfehlen, Dir ein problematisches Element nochmal ganz genau anzusehen, ob auch wirklich in allen Feldern, auf die der Workflow zugreift, etwas sinnvolles drinsteht. Dabei auch auf die nicht offensichtlichen Dinge achten. Wenn man z.B. eine simple "Log to history" verwendet und darin den Anzeigename aus einem leeren Personenfeld ausgeben möchte, dann hat man auch den Fehler.

Als Workaround kann man Variablen verwenden. Mit einer Bedingung das Feld prüfen ("ist nicht leer") und nur dann den gewünschten Wert in die Variable schreiben. In der Mail gibst Du dann nur die Variablen aus.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
12 Beiträge
TG-KH Als Antwort am 8 Jan. 2014 11:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So, hier meine Ergebnisse.
Ich habe den Workflow jetzt wie folgt umgestellt

Also wird zuerst überprüft ob der Wert nicht leer ist, ist dies der Fall wird der Wert in eine lokale Variable geschrieben.
Sollte der Wert leer sein, so wird in die lokale Variable einfach "leer" geschrieben". Dies geschieht mit allen Werten, lediglich beim Datum kann nicht auf "nicht leer" geprüft werden.
Bei der Protokollierung werden hintereinander der ursprüngliche Wert und der Wert der lokalen Variable ausgegeben.
In der E-Mail am Ende werden nur noch die lokalen Variablen verwendet.

Leider kommt es immernoch zu Koersionsfehlern, hier das letzte Beispiel:


 

Laut dieser Meldung war das Feld "Anruf von" leer. Das Feld ist aber im entsprechenden Element definitiv ausgefüllt und ist auch ein Pflichtfeld genau wie das das Feld Datum...
Kann mir dieses Verhalten leider gar nicht erklären

Ohne Rang
12 Beiträge
TG-KH Als Antwort am 29 Jan. 2014 14:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hat denn niemand noch eine Idee was hier schief laufen könnte? :(

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 29 Jan. 2014 15:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Prüfst Du da ein Personenfeld, ob es leer ist? Falls ja, dann beachte das hier (Personenfelder sind intern auch Nachschlagefelder): http://blogs.evocom.de/af/archive/2013/01/10/per-workflow-feststellen-ob-ein-nachschlagefeld-leer-ist.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
12 Beiträge
TG-KH Als Antwort am 31 Jan. 2014 08:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich prüfe alle Felder, also auch das Feld "Empfänger" und "Erstellt von".

Ist eigentlich ja witzlos, weil die ja ohnehin Pflichtfelder sind, werde aber deinen Tip ausprobieren.

 

Hatte nun noch eine weitere Idee.

Weil es ja nur manchmal nicht klappt...

Könnte es sein, dass der Workflow so schnell gestartet wird, dass die Daten in diesem Moment vielleicht noch nicht in die Datenbank geschrieben wurden? Das würde erklären warum die Felder angeblich leer seien sollen.

Ich habe nun in meinen Workflow am Anfang ein "Für die Dauer anhalten" von 1 Minute eingefügt.

Werde nun mal weiter testen ob es eventuell daran liegen könnte.

Ohne Rang
12 Beiträge
TG-KH Als Antwort am 9 Juli 2014 14:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Leute,

 

die Lösung den Workflow am Anfang anzuhalten hat bisher sehr gut funktioniert.

Nun (ca. 6 Monate später) treten wieder andere Probleme auf.

So werden die Workflows nun teilweise gar nicht mehr gestartet und tauchen auch nicht im Workflowverlauf auf.

Ich kann nicht so wirklich begreifen warum das ganze mal funktioniert und dann mal wieder nicht. Zumal es jetzt auf so lange Zeit echt gut gelaufen ist.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Juli 2014 15:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Schaue Dir mal die Logs (und das Server EventLog) zu den Zeitpunkten an, zu denen Elemente erstellt wurden, die keinen Workflow gestartet haben. Vielleicht findest Du dort einen Hinweis auf die Ursache.

Und noch ein Hinweis, falls Ihr testet: das Systemkonto (engl. System Account) startet nie Workflows).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
12 Beiträge
TG-KH Als Antwort am 9 Juli 2014 15:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Komm ich über die SharePoint Website an die Logs dran?
Wir haben den SharePoint nämlich über www.prowebma.de angemietet

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Juli 2014 16:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann hast Du keine Chance. Du kannst die nur bitten selbst in die Logs zu schauen. Nenne ihnen dazu aber einen Zeitpunkt, der für Dich interessant ist (oder mehrere).

Viele Grüße
Andi
af @ evocom de
Blog