Veröffentlicht Thu, 31 Jan 2019 15:23:17 GMT von

Hallo Zusammen,

nun habe ich einmal eine Frage zu einer Idee, welche ich gerne mit dem Workflowmanager umsetzen würde, aber derzeit keinen funktionierenden Ansatz finde.

Ich würde gerne mit dem Workflowmanager eine Geburtstagserinnerung für Führungskräfte und HR generieren und zwar auf Basis des Geburtsdatums eines Mitarbeiters, direkt aus den Stammdaten heraus.

Um hier aber die Workflow-Historie der Einträge schlank zu halten, würde ich hier gerne schon im zeitgesteuerten Start des Workflows mit einem SQL-Statement auf das Geburtsdatum filtern und nur Aufgaben am Tag des Geburtstages entstehen lassen.

Nun habe ich schon unterschiedliche Varianten probiert, aber bisher hat sich der Workflow noch nicht zum starten überzeugen lassen.

Hier einmal mein Statement:

datepart(dd,DATE_OF_BIRTH) = datepart(dd,GETDATE()) AND datepart(mm,DATE_OF_BIRTH) = datepart(mm,GETDATE())

Habe ich in der presentationvm mit dem HR-Archiv verknüpft und hier heißt das Feld eben Date_of_Birth

Ich bin mir der Tatsache bewusst das man dies auch in Kombination mit Autoindex machen kann hierfür benötigt man dann aber zur Sicherheit wieder ein extra Statusfeld und dann eben den Workflow-Start.
Charmant fände ich hier wenn man dies direkt aus dem zeitgesteuerten Workflowstart heraus initieren könnte.

Ist dies einfach nur ein "Feature" im WorkflowManager oder ist in meinem Statement einfach noch irgendetwas schief? Wenn ich dies im ManagementStudio ausführe bekomme ich meine gewünschten Ergebnisse.

Vielen Dank Vorab!

Viele Grüße

Martin

Veröffentlicht Fri, 22 Feb 2019 08:07:00 GMT von Detlef Schubert Senior PreSales Consultant

Hallo,

ich fand die Idee gut, und hab mich mal daran ausprobiert, so könnte es gehen. Ich habe mich im HR Archive auf eine Belegart konzentriert, die pro Mitarbeiter wirklich nur ein mal vorkommt, und in dem natürlich auch der Geburtstag vorkommt. Der Workflow ist zeitgesteuert und hat als Auslöser, eben die Belegart PLUS Geburtstag ist nicht leer, dann fülle ich 2 Variablen "Heute" und "Geburtstag", dann kommt eine Bedingung in der ich das eintrage:

datepart(DateInterval.Day,GV_Geburtstag) = datepart(DateInterval.Day,GV_Heute) AND datepart(DateInterval.Month,GV_Geburtstag) = datepart(DateInterval.Month,GV_Heute)

Die eine Abzweigung führt zur Gratulation, und die andere ins Ende, hat geklappt

Klar hat es Nachteile, jeden Tag kommen eben alle Mitarbeiter, wenn auch nur kurz in den Workflow, was einen gewissen Performancepeek verursachen könnte. Ich weiß das die ursprüngliche Idee eine andere war, eben die Historie zu schonen. Denkbar wäre ein eigenes Geburtstagsarchiv zuerstellen,  dessen einziger Zweckeben dieser ist. Dadurch würde auch die Historie geschont.

Liebe Grüße

 

 

 

https://www.docuware.com/sites/default/files/forums-images/geburtstag.png

Veröffentlicht Mon, 25 Feb 2019 07:46:12 GMT von

Hallo Detlef,

ja die Idee über so ein Feld zu gehen und dann jeden Tag die Mitarbeiterparameter zu durchforsten hatte ich so auch schon, aber dachte mir eigentlich das es hier eine charmantere Möglichkeit geben müsste ohne die Workflow-History jeden Tag aufs neue mit Informationen voll zu schreiben.

Die ursprüngliche Idee hierbei war ja die Startbedingung schon mit dem SQL-Statement zu versehen und das Ganze dann einmal täglich starten zu lassen --> wenn die Bedingung erfüllt ist, aber es wirkt ein wenig so, zumindest dadurch das sich die Kollegen von DocuWare hierzu nicht äußern, das ein SQL-Statement mit der Abfrage so einer Bedingung einfach nicht als Start-Bedingung funktionieren kann.
Hattest du das in deinem Fall auch einmal ausprobiert? In meinen Tests lief das leider immer nicht...=/....

Die Ausweichmethode hierzu wäre halt einfach wieder einen AutoIndexJob zu verwenden, der dann halt wie so oft, ein Hidden-Status-Feld beschreibt, wodurch dann der Workflow-Startet --> finde ich aber eben nicht so Charmant...

Viele Grüße und Danke

Martin

Veröffentlicht Tue, 26 Feb 2019 13:03:45 GMT von Detlef Schubert Senior PreSales Consultant

Hallo,

ja, ich habe es auch als Startparamter probiert, das Problem hierbei, das er halt immer die WHERE Bedingung mit dem Feld date_of_birth vorgibt, wenn man das Statement ausprobiert (innerhalb des SQl Studios) nutzt man ja auch nicht das Feld, vielleicht klappt es wenn man die Auslöser so konfiguriert, das es auch innerhalb des MSSQL Studios mit dem Feld date_of_birth klappt also select * from soundso where date_of_birth="neuer Ausdruck". Wäre aber auf jeden Fall en guter Verbesserungsvorschlag

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