X4 Help Center
7.5 7.4 German English
Auto Light Dark
Auto Light Dark
7.5 7.4 German English

Working Time Calculator

Dieser Adapter berechnet die Arbeitszeit.

Der Working Time Calculator ersetzt mit Version 6.0 der X4 BPMS die veralteten Arbeitszeit-Berechnungsfunktionen in der Java-Klasse de.softproject.xsl.WorkingTimeCalculator, welche zur Verwendung innerhalb von XSL-Mappings bereitstellt wurden.


Eigenschaften (Properties)

Operationen

Vom Adapter ausgeführte Operation

Mögliche Werte:

  • AddWorkingTimeMinutes: Addiert zu einem Start-Datum eine bestimmte Anzahl an Arbeitsminuten und gibt das End-Datum und die Uhrzeit aus

  • GetWorkingTimeMinutes: Berechnet die Arbeitszeit zwischen einem Start-Datum und einem End-Datum und gibt die Arbeitsminuten aus

  • GetEaster: Berechnet den Ostersonntag anhand einer Jahreszahl

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern!)

Mögliche Werte: de.softproject.x4.adapter.workingTimeCalculator: Hauptklasse (Standard)


Statuswerte

1

Die Operation wurde erfolgreich ausgeführt und in der Ausgabe befindet sich ein XML-Dokument mit dem Resultat zur jeweiligen Operation

-1

Es kam zu einem Fehler während der Ausführung:

  • Das erforderliche Datums-Format (yyyy-MM-dd bzw. yyyy-MM-dd hh:mm) wurde nicht eingehalten

  • Die Wochentage wurden nicht richtig eingetragen. Erforderlich ist ein korrekter deutscher oder englischer Wochentag.

  • Es ist kein Input vorhanden


Input

Der Adapter erwartet eine vordefinierte Input-XML-Struktur für die verschiedenen Operationen

  • Feiertage bzw. Urlaubstage (Arbeitsfreie Tage) werden im Datumsformat yyyy-MM-dd innerhalb beliebig vieler <Holiday>-Elemente definiert. Diese werden als Kind-Elemente von <Holidays> angelegt. 

  • Arbeitstage (Wochentage) werden innerhalb von <WorkingDay>-Elementen definiert. Diese werden als Kind-Elemente von <WorkingDays> angelegt. Der Wert von <WorkingDay> ist der jeweilige Wochentag auf deutsch oder auf englisch, z.B. Montag oder Friday. Dabei ist die Groß- und Kleinschreibung egal.

  • Spezielle Tage werden im Datumsformat yyyy-MM-dd hh:mm-hh:mm innerhalb beliebig vieler <SpecialDay>-Elemente definiert. Diese werden als Kind-Elemente von <SpecialDays> angelegt.

    SpecialDays gelten als spezieller Arbeitstag unabhängig davon, ob es sich um einen normalen Arbeitstag oder arbeitsfreien Tag handelt. Als Arbeitszeit zählt nur die Zeit, die innerhalb von <SpecialDay> definiert wurde.


Die Arbeitszeit-Berechnungsfunktionen dateDiff oder dateDiffWorkingMinutes der veralteten Java-Klasse de.softproject.xsl.WorkingTimeCalculator wurden durch folgende Funktionen ersetzt:

  • dateDiffWorkingMinutes kann durch die Operation GetWorkingTimeMinutes umgesetzt werden

  • dateDiff lässt sich umsetzten, indem alle Wochentage als WorkingDay definiert und die Arbeitszeiten von 00:00 bis 23:59 einstellt werden. Dabei dürfen weder Holidays noch SpecialDays definiert werden.


Operation AddWorkingTimeMinutes 



XML
<WorkingTimeCalculator>
	<Holidays>
		<Holiday>2019-01-01</Holiday>
		<Holiday>2019-01-06</Holiday>
		<Holiday>2019-04-19</Holiday>
		<Holiday>2019-04-21</Holiday>
		<Holiday>2019-04-22</Holiday>
	</Holidays>
	<SpecialDays>
		<SpecialDay>2019-12-24 21:00-23:00</SpecialDay>
	</SpecialDays>
	<!--You can use either the German or the English word-->
	<WorkingDays>
		<WorkingDay>Monday</WorkingDay>
		<WorkingDay>Tuesday</WorkingDay>
		<WorkingDay>Wednesday</WorkingDay>
		<WorkingDay>Thursday</WorkingDay>
		<WorkingDay>Friday</WorkingDay>
	</WorkingDays>
	<setWorkingDayBegin>09:30</setWorkingDayBegin>
	<setWorkingDayEnd>17:30</setWorkingDayEnd>
	<StartDate>2019-12-23 10:00</StartDate> <!-- Format yyyy-MM-dd or yyyy-MM-dd hh:mm -->
	<addMinutesToWorkingTime>500</addMinutesToWorkingTime>
</WorkingTimeCalculator>


Operation GetWorkingTimeMinutes

XML
<WorkingTimeCalculator>
	<Holidays>
		<Holiday>2019-01-01</Holiday>
		<Holiday>2019-01-06</Holiday>
		<Holiday>2019-04-19</Holiday>
		<Holiday>2019-04-21</Holiday>
		<Holiday>2019-04-22</Holiday>
	</Holidays>
	<SpecialDays>
		<SpecialDay>2019-12-24 21:00-23:00</SpecialDay>
	</SpecialDays>
	<!--You can use either the German or the English word-->
	<WorkingDays>
		<WorkingDay>Monday</WorkingDay>
		<WorkingDay>Tuesday</WorkingDay>
		<WorkingDay>Wednesday</WorkingDay>
		<WorkingDay>Thursday</WorkingDay>
		<WorkingDay>Friday</WorkingDay>
	</WorkingDays>
	<StartDate>2019-12-23 10:00</StartDate> <!-- Format yyyy-MM-dd or yyyy-MM-dd hh:mm -->
	<EndDate>2020-01-01 10:00</EndDate> <!-- Format yyyy-MM-dd or yyyy-MM-dd hh:mm -->
	<setWorkingDayBegin>09:30</setWorkingDayBegin>
	<setWorkingDayEnd>17:30</setWorkingDayEnd>
</WorkingTimeCalculator>


Operation GetEaster

XML
<WorkingTimeCalculator>
	<GetEaster>2019</GetEaster>
</WorkingTimeCalculator>


Output

Der Adapter gibt je nach Operation ein XML-Dokument aus.

Operation AddWorkingTimeMinutes

XML
<WorkingTimeCalculator>
	<addWorkingTimeMinutes>2019-12-24T21:50:00</addWorkingTimeMinutes>
</WorkingTimeCalculator>

Operation GetWorkingTimeMinutes

XML
<WorkingTimeCalculator>
	<getWorkingTimeMinutes>2010.0</getWorkingTimeMinutes>
</WorkingTimeCalculator>

Operation GetEaster

XML
<EasterHolidays>
	<EasterSunday>2019-04-21</EasterSunday>
</EasterHolidays>