Veröffentlicht Mon, 28 Oct 2024 18:54:20 GMT von Oliver Acker Property Manager
Hallo zusammen,

mit der .Count() Funktion lassen wir die Anzahl an Einträgen aus einem Stichwortfeld auslesen. Das funktioniert jedoch nur, wenn mind. ein Eintrag vorhanden ist. Nun kann es jedoch vorkommen, dass im Stichwortfeld kein Wert vorhanden ist (da es zum Beispiel kein Bauteil gibt). Wie umgeht man dann die Fehlermeldung, die im Web-Client angezeigt wird? In unserem Beispiel lautet die Fehlermeldung wie folgt:
"Die Aktivität setBauteilZähler ist fehlgeschlagen - mit folgender Fehlermeldung: "[5: AlleBauteileGesamtzahl] Value cannot be null. Parameter name: source" "

Vielen Dank für ihre Lösungsvorschläge.

MfG Oli Acker
Veröffentlicht Tue, 29 Oct 2024 06:11:34 GMT von Roger Goetzendorff GF
Hallo!
Das Indexfeld in eine Variable einlesen sollte helfen - ob Stichwort (dann geht der gv.count()= oder string ( dann geht gv > " " z.B.).
HTH
VG
Roger
Veröffentlicht Tue, 29 Oct 2024 19:01:11 GMT von Oliver Acker Property Manager

Hallo Roger,

das geht leider nicht. Auch in einer Variablen schreibt er diesen Fehler. Ich habe jedoch folgende Lösung gefunden. Im ersten  Schritt werden alle Bauteile ausgelesen. Anschließend werden diese mit dem Befehl KeywordAsString in eine Textvariable geschrieben. Im Anschluss mit einer Bedingung prüfen, ob darin Zeichen enthalten sind. Wenn nein, dann gibt es eben kein Bauteil.

Somit funktioniert der Workflow ohne Fehler und läuft bis zum Ende einwandfrei durch.

Vielen Dank.

MfG Oli Acker

Veröffentlicht Thu, 07 Nov 2024 14:48:08 GMT von Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions
Hallo Oliver Acker,

ich schreibe zwar gerade nur aus dem Kopf ohne zu testen, aber sollte nicht eine Null-Prüfung in einem IIF möglich sein?
Sowas wie:

IIF(DW_KEYWORD != null, DW_Keyword.Count(), 0)

Gruß aus Neuss,
Simon H. Hellmann
DocuWare System Consultant
Veröffentlicht Sat, 09 Nov 2024 20:02:11 GMT von Oliver Acker Property Manager
Hallo Herr Simon,

danke für Ihren Vorschlag, der einwandfrei funktioniert.

Nun ist mir jedoch der Ursprüngliche Fehler aufgefallen: Wenn man im Workflow-Designer mittels der Archiv-Funktion Werte aus einem anderen Archiv auslesen lässt, jedoch in dem zu auslesenden Archiv keine passende Einträge vorhanden sind, kommt er in einen Fehler, da keine Datenbankeinträge gefunden werden können.

In unserem Beispiel ist es jedoch so, dass nicht alle Wohnungen mit "Bauteilen" versehen sind.
Wie kann man somit vermeiden, dass der WF in einen Fehler läuft?
Veröffentlicht Mon, 11 Nov 2024 11:04:18 GMT von Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions
Gute Frage. 
Kann es sein, dass der Fehler bereits im "WHERE"-Teil der Abfrage steckt?
Die Archiv-Funktion sollte ja eigentlich nichts anderes sein als eine Datenbankabfrage.
Läuft eine Datenbankabfrage auf denselben Fehler oder funktioniert diese mit null zurückgegebenen Zeilen?

Gruß aus Neuss,

Simon H. Hellmann
DocuWare System Consultant
Veröffentlicht Mon, 11 Nov 2024 12:26:06 GMT von Roger Goetzendorff GF
@Oliver Acker:
GV LS = Stichwortvariable
Indexfeld Lieferscheinnummer = Stichwortfeld
Das Stichwortfeld in die GV LS, dann funktioniert count(GV_LS) sehr wohl (und gibt 0, wenn das Feld leer ist)

VG
Roger
Veröffentlicht Mon, 11 Nov 2024 18:15:13 GMT von Oliver Acker Property Manager
Hallo zusammen, vielen Dank für den vielen Input.

Zum Testen habe ich ein Szenario nachgebaut.
Beispiel:
- In Wohnung A sind viele Bauteile vorhanden
- In Wohnung B sind gar keine Bauteile vorhanden.

Anhand der WohnungsID werden aus dem Bauteilarchiv alle passenden Einträge gesucht / gefunden (001.jpg und 002.jpg)
Sofern im Bauteilarchiv mind. 1 Bauteil mit der passenden WohnungsID vorhanden ist, klappt der Workflow einwandfrei.

Gibt es jedoch zu der WohnungsID im Bauteil Archiv gar kein passendes Bauteil, erscheint folgender Fehler (siehe 003.jpg). Der Workflow crawlt alle 2 Minuten (insgesamt 5 mal) nach einem passenden Eintrag. Mittlerweile glaube ich, dass das von DocuWare so sein soll, oder?
Veröffentlicht Tue, 12 Nov 2024 09:09:57 GMT von Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions
Mahlzeit, 

ja, hier läuft "Daten zuweisen 0" in den Fehlerstatus. Ursache ist ein Fehler, der beim SQL Aufruf erfolgt.
Blöde Frage: Ist "DW_CONTACT" ein Textfeld?
Falls ja, bitte einmal versuchen im ersten Screenshot das WHERE anzupassen: 

DW_CONTACT = 'GV_OEN'

Gruß aus Neuss,

Simon H. Hellmann
DocuWare System Consultant
 
Veröffentlicht Tue, 12 Nov 2024 19:05:47 GMT von Oliver Acker Property Manager

ja, DW_CONTACT ist ein Textfeld. Leider hilft der Lösungsvorschlag bezüglich der Anführungszeichen nicht.

Es wird immernoch folgende Fehlermeldung ausgegeheb (sie  Screenshot).

Ich vermute mittlerweile, dass das von DocuWare so gewollt ist. Das System versucht alle zwei Minuten einen Eintrag zu finden. Beim fünften Versuch ist dann Schluss, und der Workflow fährt regulär mit den nächsten Aufgaben weiter.

Veröffentlicht Wed, 13 Nov 2024 09:10:59 GMT von Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions
Mahlzeit, 

das Verhalten ist soweit normal. Wenn innerhalb einer automatischen Aktivität ein Fehler entsteht, in diesem Fall wahrscheinlich ein Fehler der Datenbank, versucht DocuWare die Aktion 5x im Abstand von je zwei Minuten durchzuführen, bevor der Prozess gemäß dem verbundenen Fehlerausgang fortfährt. Ist kein Fehlerausgang verbunden, entsteht stattdessen die "General Error"-Aktivität bei den Workflow Controllern.

Interessant wäre hier die genaue Fehlermeldung - sollte in der Historie auftauchen, wenn man einen der fehlerhaften Einträge anklickt.

Gruß aus Neuss,
Simon H. Hellmann
DocuWare System Consultant
Veröffentlicht Wed, 13 Nov 2024 19:15:05 GMT von Oliver Acker Property Manager

Hallo Herr Hellmann,

Ihr Szenario mit dem Fehlerausgang habe ich getestet. Wird kein Fehlerausgang gesetzt, läuft der WF in den General Error. Setzt man jedoch den Fehlerausgang einfach auf die nächste Datenzuweisung, läuft der Workflow bis zum Ende :)

P.S. Die Fehlermeldung lautet wie folgt :

...Fehler in einer Systemaktivität: [4: count] Value cannot be null. Parameter name: source...
Abschließend kann man folgendes zusammenfassen:
Wenn kein Match gefunden wird, wird 5x versucht, einen Match zu finden. Wenn danach dennoch nichts gefunden wird, läuft der Workflow ganz normal weiter, sofern man den Fehlerausgang auf die nächste Datenzuweisung verbindet. Lässt man jedoch den Fehlerausgang ohne Zuweisung, geht der WF in einen general error und bricht ab.
Somit werden wir fortan, alle "Archiv-Counts" mit Fehlerausgängen versehen und alle Probleme sind gelöst :)
Vielen Dank an Alle.
VG Oli Acker
Veröffentlicht Thu, 14 Nov 2024 10:24:53 GMT von Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions
Hallo Oliver Acker, 

die Fehlermeldung ist doch schön spezifisch.
Das heißt, der Fehler entsteht nicht in der SQL-Abfrage, sondern vermutlich bei einem Aufruf eines arithmetischen Ausdrucks, genauer: in der vierten Datenzuweisung der Systemaktivität, die auf Fehler läuft.

Das Szenario mit dem Fehlerausgang hat den Nachteil, dass der Workflow dort für 10 Minuten stillsteht, daher wäre es mMn schon sinnvoll, den Fehler zu beheben.
Was steht denn in der vierten Datenzuweisung? Falls hier ein Count passiert, könnte das IIF aus meinem ersten Kommentar Abhilfe schaffen. 

Gruß aus Neuss,
Simon H. Hellmann
DocuWare System Consultant

 
Veröffentlicht Thu, 14 Nov 2024 18:42:30 GMT von Oliver Acker Property Manager
Hallo Herr Hellmann,

vielen Dank für die Klarstellung. Ich habe nun den "Fehler" verstanden und Ihre Lösung funktioniert einwandfrei IIF(DW_KEYWORD != null, DW_Keyword.Count(), 0)

Somit läuft der Workflow einwandfrei, auch wenn keine Matches gefunden wurden und folglich keinen Counts möglich sind.

Vielen Dank und ein schönes Wochenende.

VG Oliver Acker

Sie müssen angemeldet sein um Beiträge in den Foren zu erstellen.