WorkingTimeCalculator (Veraltet)
Die Arbeitszeit-Berechnungsfunktionen der Java-Klasse de.softproject.xsl.WorkingTimeCalculator
zur Verwendung innerhalb von XSL-Mappings sind veraltet und werden in künftigen Versionen der X4 BPMS abgekündigt.
Ab Version 6.0.0 der X4 BPMS steht hierfür der Adapter Working Time Calculator zur Verfügung.
Die Java-Klasse de.softproject.xsl.WorkingTimeCalculator
befindet sich innerhalb der X4 Server-Bibliothek x4-client.jar
(<X4>\Server\<wildfly>\modules\de\softproject\x4\client\main
).
Ein XSL-Mapping, das diese Hilfsklasse verwendet, kann nicht in der Transformations-Vorschau des Mapping Editors ausgeführt werden.
Methoden zum Definieren der Arbeitszeit
Bevor die unten genannten Methoden für die Arbeitszeitberechnung verwendet werden können, ist es erforderlich, für das Objekt WorkingTimeCalculator
die gewünschten Arbeitszeiten (Beginn und Ende des Arbeitstages, Anzahl der Wochenarbeitstage, Urlaubstage etc.) über folgende Methoden zu definieren.
setHolidays( java.lang.String holidays) | Setzt für ein Beispiel: |
setSpecialDays( java.lang.String specialDays) | Setzt für ein Dieser Tageszeitraum wird in jedem Fall als Arbeitszeit berechnet, besitzt also Vorrang gegenüber Feiertagen und Arbeitszeiten. Beispiel: |
setWorkingDayBegin( int hr, int min) | Setzt für ein Beispiel: |
setWorkingDayBegin( java.lang.String hr, java.lang.String min) | Setzt für ein Beispiel: |
setWorkingDayEnd( int hr, int min) | Setzt für ein Beispiel: |
setWorkingDayEnd( java.lang.String hr, java.lang.String min) | Setzt für ein Beispiel: |
setWorkingDays( java.lang.String days) | Setzt für ein Wochentage werden gemäß Beispiel: |
Arbeitszeit-Berechnungsfunktionen
addWorkingTimeMinutes( WorkingTimeCalculator wtc, java.util.Date from, int minutes) | Fügt einem Voraussetzung: ein Objekt |
addWorkingTimeMinutesString( WorkingTimeCalculator wtc, java.util.Date from, int minutes) | Fügt einem Voraussetzung: ein Objekt Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9! |
addWorkingTimeMinutesString( WorkingTimeCalculator wtc, java.lang.String from, int minutes) | Fügt einer Zeichenkette gemäß Voraussetzung: ein Objekt Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9! Beispiel: |
dateDiff( java.util.Date from, java.util.Date to) | Vergleicht zwei Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9! |
dateDiffWorkingMinutes( WorkingTimeCalculator wtc, java.util.Date from, java.util.Date to) | Vergleicht zwei Voraussetzung: ein Objekt Nur mit Xalan 2.7.1 kompatibel, nicht mit Saxon 9! |
getOstern(double year) | Ermittelt das Osterdatum für ein Jahr, das als vierstellige Zahl vom Typ Beispiel: |
getWorkingTimeMinutes( WorkingTimeCalculator wtc, java.util.Date from, java.util.Date to) | Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Start- und einem Enddatum jeweils vom Typ Voraussetzung: ein Objekt |
getWorkingTimeMinutes( WorkingTimeCalculator wtc, int fromYear, int fromMonth, int fromDay, int fromHr, int fromMin) | Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Startdatum (definiert als Ganzzahlen für Jahr, Monat, Tag, Stunde und Minute) und dem aktuellen Zeitpunkt liegen, und gibt eine Zahl vom Typ Voraussetzung: ein Objekt |
getWorkingTimeMinutes( WorkingTimeCalculator wtc, int fromYear, int fromMonth, int fromDay, int fromHr, int fromMin, java.util.Date to) | Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Startdatum (definiert als Ganzzahlen für Jahr, Monat, Tag, Stunde und Minute) und einem Enddatum vom Typ Voraussetzung: ein Objekt |
getWorkingTimeMinutes( WorkingTimeCalculator wtc, int fromYear, int fromMonth, int fromDay, int fromHr, int fromMin, int toYear, int toMonth, int toDay, int toHr, int toMin) | Ermittelt die Anzahl der Minuten innerhalb der definierten Arbeitszeiten, die zwischen einem Start- und Enddatum (jeweils definiert als Ganzzahlen für Jahr, Monat, Tag, Stunde und Minute) liegen, und gibt eine Zahl vom Typ Voraussetzung: ein Objekt |
Beispiel
<xsl:stylesheet xmlns:x4time="de.softproject.xsl.TimeHelperDate"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x4wtc="de.softproject.xsl.WorkingTimeCalculator"
exclude-result-prefixes="x4time x4wtc" version="1.0">
<xsl:output indent="yes" method="xml" media-type="text/xml"></xsl:output>
<xsl:template match="/">
<Output>
<!-- Create new WorkingTimeCalculator object and store it in variable WTC -->
<xsl:variable select="x4wtc:new()" name="WTC1"></xsl:variable>
<!-- Get a java.util.date object with current date/time -->
<xsl:variable select="x4time:now()" name="date"></xsl:variable>
<now><xsl:value-of select="$date"></xsl:value-of></now>
<!-- Set 2013 holidays to new year's eve and christmas -->
<xsl:variable select="x4wtc:setHolidays($WTC1,'2013-1-1, 2013-12-25')" name="WTC2"></xsl:variable>
<!-- Set extra working time to December 24th from (Santa's X-mas delivery shift) -->
<xsl:variable select="x4wtc:setSpecialDays($WTC2,'2013-12-24 23:0-23:59')" name="WTC3"></xsl:variable>
<!-- Set working day begin time to 9:00 AM for the WTC object variable -->
<xsl:variable select="x4wtc:setWorkingDayBegin($WTC3,9,0)" name="WTC4"></xsl:variable>
<!-- Set working day end time to 5:00 PM (17:00) for the WTC object variable -->
<xsl:variable select="x4wtc:setWorkingDayEnd($WTC4, 17, 0)" name="WTC5"></xsl:variable>
<!-- Set working days to Monday, Tuesday, Wednesday, Thursday, Friday for the WTC object variable -->
<xsl:variable select="x4wtc:setWorkingDays($WTC5,'2,3,4,5,6')" name="WTC"></xsl:variable>
<!-- Add 500 working time minutes to a date -->
<xsl:variable select="x4wtc:addWorkingTimeMinutes($WTC, $date,500)" name="addWorkingTimeMinutes"></xsl:variable>
<addWorkingTimeMinutes><xsl:value-of select="$addWorkingTimeMinutes"></xsl:value-of></addWorkingTimeMinutes>
<!-- Get Easter date for year 2014 -->
<xsl:variable select="x4wtc:getOstern(2014)" name="getOstern"></xsl:variable>
<getOstern><xsl:value-of select="$getOstern"></xsl:value-of></getOstern>
<!-- Calculate working minutes between two java.util.Date objects -->
<xsl:variable select="x4wtc:getWorkingTimeMinutes($WTC,$date,$addWorkingTimeMinutes)" name="getWorkingTimeMinutes"></xsl:variable>
<getWorkingTimeMinutes type="date"><xsl:value-of select="$getWorkingTimeMinutes"></xsl:value-of></getWorkingTimeMinutes>
</Output>
</xsl:template>
</xsl:stylesheet>