Wie bilde ich eine “echte” Applikationsanfoderung mit SPS 2010 ab? (Teil1)

Von Peter Pallierer 25. March 2010 16:55

Hallo, hier ist wieder einmal Peter Pallierer, diesmal mit einer Anforderung die im Rahmen eines Workshops entstanden ist. Wir haben die Aufgabe bekommen einen Urlaubsantrag abzubilden, allerdings nicht nur ein simples Antragformular, mit einem Freigabe Workflow, sondern einen Prozess der folgendermaßen aussieht. image

Das sieht zwar einfach aus, in der Praxis sind aber einige Details zu beachten:

  • Abwesenheitsarten
    Im Antragsformular kann der Benutzer entscheiden, ob er auf Urlaub geht (dann werden die Tage vom Urlaubsbudget abgezogen), oder ob das ein Pflegeurlaub o.ä. ist, dafür werden keine Tage abgebucht
  • Fristenprüfung
    Pro Abwesenheitssart muss eine Frist eingehalten werden – z.B. Urlaube müssen mind. 1 Woche vorher, Pflegeurlaub kann auch 1 Tag vor Antritt eingemeldet werden.
  • Urlaubsrestbudget
    Dieses liegt im seltensten Fall im SPS direkt vor, sondern meist in einer DB oder in SAP HR. In unserem Beispiel verwenden wir eine externe SQL Datenbank in der der Benutzer, der initiale Urlaubsanspruch, und die verbleibenden Tage gespeichert sind.
  • Berechnung der Abwesenheitstage
    Klingt so einfach, aber man muß, abseits der Wochenenden (die natürlich nicht in die Urlaubs/Abwesenheitstage eingerechnet werden) auch Dinge wie Feiertage (die für unterschiedliche User auch verschieden sein könnten – z.B. abhängig vom Religionsbekenntnis) beachtet werden.

Ok, soviel einmal zu den Anforderungen, kommen wir zur geplanten Umsatzung:

  • Abwesenheitsmeldung
    Dabei handelt es sich um ein InfoPath Forms Service 2010 Formular, das direkt auf eine SharePoint Custom List gebunden wird. Eines der neuen Features in SPS 2010 ist es, dass man jedes Listen Form (Display, Edit)  mit einem IP Form anpassen kann. Aus dem IP Form wird dann, anders als in MOSS 2007 wo immer ein XML File erzeugt wurde, dierkt die Daten einer Liste modifizieren.
    Ausserdem können wir damit sehr enfach Reports über alle Abwesenheiten erstellen .
  • Freigabe Workflow
    Das wird ein einfacher Prozess, den wir in Visio entwerfen werden (ist ja eines der bekanntesten neuen Faetures von SPS 2010). Darin werden wir zuerst das Urlaubs Restbudget  ermitteln und falls noch ausreichend Tage vorhanden sind, eine Freigabe Aufgabe für den (dynamisch ermittelten) Vorgesetzten erzeugen. Im Falle einer Freigabe, werden die Urlaubstage aus der externen Datenbank abgebucht und in einen Abwesenheitskalender (ein Standard SharePoint Kalender) eingetragen.
  • Urlaubsbudget Datenbank
    Dabei handelt es sich um eine SQL Server Datenbank, die mittels BCS in den SharePoint Server eingebunden wird. Dadurch das BCS ja ab SPS 2010 Read/Write unterstützt, können wir die verbleibenden Urlaubstage via Workflow ganz einfach zurückschreiben, ohne eine Zeile SQL oder sonstigen Code zu schreiben.
  • Abwesenheitsarten
    Das ist eine Benutzerdefinierte SharePoint Liste, die neben der Bezeichnung der Abwesenheit, auch noch ein Flag hat, ob die gewählte Abwesenheit im Urlaubsbudget verbucht werden muss. Krankheit, Pflegeurlaub usw. führen ja zu keine Abbuchung.
  • Feiertagskalender
    Das ist der Clou – hier werden alle “Nicht Werktage” vermerkt – also gesetzl. Feiertage, Wochenenden, usw. Das Infopath Form kann dann durch einfaches zählen der Tage in diesem Kalender (mit Filter auf den Abwenheitsbegin und Ende) die Anzahl der Abwseneheitstage richtig berechen. Mehr dazu beim Design des Formulars

Das Gesamtbild sieht daher so aus

image

Im nächsten Teil werden wir uns an das Design der Basisstrukturen und des Formulars machen.

Bis dahin – “Stay tuned”

Comments

3/27/2010 2:49:34 PM #

Hi Peter!

I am working on the exact same thing in 2010! But, I have built in a couple of other intersting items.

1. External Content Type that connects to sql table for managing Urlaubsberechung...this is for adding urlaubstagen to the MA's stand on his/her Anniversay using a T-SQL trigger (x Days when month/day = today).

2. Protocoling of the actual event to another list so that the Finanace people can track exactly when the urlaub is taken and how many days.

3. Cancel/Storno of a vacation.

4. Custom buttons on Infopath Abwesenheitsmeldung. When MA takes an Artzbesuch or only wants to register a Krankmeldung, the "zur Genehmigung" buttons do not appear, just "Absenden". Only when he/she selects Urlaub as the Abwesenheitskategorie dos the genehmigung button appear.

5. Custom page using "User Filter" so that users only see their abwesenheiten.

And more!

But, I have found one problem that seems to be recognized by MS in that I get an error when anyone else loads the Infopath browser form about "No user profile application available" Form works fine when authenticated with my full privleges, just no other user. I am still working on this. I am sure it has to do with the External Content Type.

In the past using excel I was also able to create custom formulas to calculate the from-to-dates subtracting for weekends and hand entered holidays. Very complex process in Infopath, but I am still workig on it.

Steve Bruce

Steve Bruce Austria | Reply

Add comment




  Country flag

biuquote
  • Comment
  • Preview
Loading



Menü

Home
Über diesen Blog
Archiv
Abonnieren Feed
Kontakt

Dieser Blog wird von Microsoft Österreich betrieben.

http://www.microsoft.com/austria | © 2009 Microsoft Corporation. Alle Rechte vorbehalten.
BlogEngine.NET 1.5.0.7 powered by atwork