Ich habe die beiden Workshops mit der User Group zum Anlass genommen, einige meiner Prozesse noch einmal zu optimieren und wieder einmal einige Zeit in Prozess- und Workflow-Scripting zu investieren.
Ich würde mir erlauben im Verlaufe des Monats einige Beispiele auf das QAS zu stellen, damit ihr vielleicht einige Inputs oder Lösungsansätze mitnehmen könnt.
Im Vorfeld möchte ich einige Erfahrungen teilen damit ihr dieselben Fehler im Idealfall nicht auch selber herausfinden müsst.
Bekannte Fehler/Probleme mit "Umgehungslösungen" in CIS610PB-Fix05
- E-Mail Knoten in Prozessdefinition generiert nach einem vorgängigen Serviceknoten mit setJobWaitFinish (Serviceknoten welcher den Status des Verarbeitungsauftrages mittels getJobResult abfragt) einen Fehler mit....
Es ist wahrscheinlich so, dass die Aktion setJobWaitFinish in bestimmten Kombinationen die DB Referenz zurücksetzt und so die nachfolgenden Knoten diese Informationen verlieren.Content language not defined because no OLTP database is active
Ich habe dies so gelöst, dass ich einen Pseudo Webservice Knoten eingebaut habe (welcher nur ein POST auf eine Demo REST Abfrage absetzt) ohne setJobWaitFinish. Damit war es stabiler.
- getJobResult via setJobWaitFinish kann für Activity2BatchJob nicht wirklich stabil verwendet werden. Dies ist gemäss Björn Johansson auch noch in der aktuellsten Version teilweise der Fall. Ich habe dies für meine Variante des "selbstheilenden" Datenimports verwendet.
Dabei Importiere ich das XML und Frage den Status des Erstimportes via getJobResult ab. Wenn dieser nicht erfolgreich ist, rufe ich mehrfach via Activity2BatchJob die Anwendung com.cisag.sys.tools.bi.log.CorrectionRun (Unveränderte Fehlerdatei importieren) auf. Dies hat den Vorteil, dass der Ursprungsimport im Datenaustausch-Protokoll danach als Erfolgreich gilt wenn der Korrekturimport gefruchtet hat.
Da die Aktion Activity2BatchJob nicht mit getJobResult geprüft werden kann, habe ich danach den Status des Datenaustausch-Protokolls via OQL abgefragt.
- Erinnerungsmail auf verspätete Aufgaben kann mittels ActivityTimeoutTemplate_de.html im Ordner Documents\Workflow definiert werden.
Auch hier habe ich lange geübt und dank der neusten Doku von Bjoern Johansson dann schlussendlich die Lösung gefunden.
Man kann via setMailTemplate eine abweichende Mailvorlage verwenden (im Anhang ein Beispiel da auch hier nicht alle üblichen HTML Tags sauber funktionieren).
Muss als DOCX hochgeladen werden. Inhalt kopieren und als HTML speichern.
Das Problem war nun aber, dass wenn eine Aufgabe verspätet ist, dass das Erinnerungsmail nicht beeinflusst werden kann. Gemäss Doku von der Workflow Schulung wäre es eigentlich so, dass der Status in die HTML Vorlage geschrieben wird, und so eine Vorlage für das Erinnerungsmail definiert werden kann. Dies hat aber nie geklappt. Björn hat mir daraufhin die aktuellste Doku gesendet und da war es korrekt beschrieben.
(Als Hinweis weshalb überhaupt der Aufwand. Im Erinnerungsmail ist der Link auf die Aktivität und nicht auf das WorkItem drin. So wird die Aufgabe nicht im Workflow Modus geöffnet).
Im QAS hat sich einiges getan. Die kompletten Dokus wurden überarbeitet und es hat nun meiner Meinung nach gute Dokumentationen inklusive Beispielen in der Standardhilfe. Einige Funktionen sind sicher neu und erst mit 6.2 verwendbar, aber die neuen Dokumentation sind in jedem Fall ein Blick Wert.
Ich stelle diese hier noch in den Post inklusive der Doku welche mit Björn gesendet hat und noch nicht auf dem QAS ist.
Vorabversion. Noch nicht auf QAS.
Gruss an alle und ein schönes Wochenende.
Akobu