Standard-Webschnittstelle für Zeiterfassung im PLANTA-Hybrid Neu ab DB 39.5.16
Benutzerbezogene Schnittstellen
Alle benutzerbezogenen Schnittstellen haben in ihrer URL einen Parameter, mit dem die Benutzer-ID aus PLANTA
pulse übergeben wird.
Query-Parameter:
GET /pulse/timeTracking/1.0/users/{userID}/postingObjects
Query-Parameter:
| Name |
Mussfeld |
Datentyp |
Format |
| plannedOnly |
|
String |
Wird für plannedOnly der Wert "true" (Groß-/Kleinschreibung irrelevant) übergeben, dann werden nur die Buchungsobjekte zurückgegeben, auf die der Benutzer eingeplant ist. |
| queryText |
|
String |
Erlaubt die Übergabe eines Strings, um die Ergebnisse einzuschränken. Implementierung basiert auf der pulse Such-Implementation. Beispiel: projectId:4711 Konzept |
| projectsOnly |
|
String |
Wird für projectsOnly der Wert "true" (Groß-/Kleinschreibung irrelevant) übergeben, dann werden in dem Resultat keine Vorgänge ausgegeben. |
Ruft die bebuchbaren Planungsobjekte des Systems für den übergebenen Benutzer ab.
- Die Implementation ist der Funktion "Projekte und Vorgänge für Zeiterfassung hinzufügen" aus dem Standard-Zeiterfassungsmodul nachempfunden:
- Projekte
- Nicht gesperrt
- Kein Ist-Ende
- Aktiv
- Vorgänge
- Nicht gesperrt
- Kein Ist-Ende
- Kein Meilenstein
- Kein Sammelvorgang
- Nicht nach pulse als Board exportiert
- Ein Abteilungsfilter existiert im Standard seit DB 13 nicht mehr.
- Die Schnittstelle kann beim Kunden dann individuell angepasst werden, so wie man auch die Funktion im Zeiterfassungsmodul anpassen würde.
Rückgabewert:
Eine Liste von Planungsobjekten:
| Name |
Datentyp |
Beschreibung |
| projectUUID |
String |
UUID des Projekts in PLANTA project (DI 060934) |
| functionalID |
String |
Fachliche ID des Projekts (DI 041317) |
| name |
String |
Projektbezeichnung (DI 023655) |
| keyDate |
String |
Globaler Stichtag (DI 000132). Wird hier für alle Projekte ausgegeben, um später auf PLANTA project-Seite einfach Anpassungen zu machen, um die bebuchbaren Objekte einzuschränken. Format: yyyy-mm-dd oder leer |
| tasks |
Array |
Array von Task Objekten |
Task
| Name |
Datatyp |
Beschreibung |
| UUID |
String |
UUID des Vorgangs in PLANTA project (DI 060936) |
| functionalID |
String |
Fachliche ID des Vorgangs (DI 041467). Wenn diese leer ist, dann die technische ID (DI 001098) |
| name |
String |
Vorgangsbezeichnung (DI 000807) |
| planned |
Boolean |
Gibt an, ob der Benutzer als Ressource in diesem Vorgang eingeplant ist |
GET /pulse/timeTracking/1.0/users/{userID}/attendance
Ruft die Soll-/Ist-Arbeitszeit ab.
- Die Daten sind eine Kombination der Daten aus DT203 (Anwesenheit) und DT468 (Periode).
- Über die optionalen Query-Parameter kann der abgerufene Zeitraum eingeschränkt werden.
Query-Parameter:
Rückgabewert:
Chronologisch sortierter Array von
Attendance
| Name |
Datentyp |
Beschreibung |
| periodUUID |
String |
UUID aus der DT468 (DI 060941) |
| unitPerPeriod |
Float |
Soll-Arbeitszeit an diesem Tag (DI 001339) |
| availCap |
Float |
Verfügbare Kapazität an diesem Tag (Soll * Faktoren) (DI 001337) |
| vacation |
Float |
Anzahl Stunden Urlaub an diesem Tag (DI 001340 umgerechnet) |
| absence |
Float |
Anzahl Stunden Abwesenheit an diesem Tag (DI 001341 umgerechnet) |
| date |
String |
Datum im Format yyyy-mm-dd (DI 001327) |
| time |
Array |
Array von Time Objekten |
Time
| Name |
Datentyp |
Beschreibung |
| attendanceUUID |
String |
UUID aus der DT203 (DI 065304) |
| type |
String |
Ein Kenner aus dem AttendanceType enum (DI 065317) |
| duration |
Float |
Dauer in Stunden (DI 065320) |
| startTime |
Uhrzeit |
Start der Zeitscheibe (DI 065318) |
| endTime |
Uhrzeit |
Ende der Zeitscheibe (DI 065319) |
| comment |
String |
Kommentar (DI 065321) |
AttendanceType Enum
| Schlüssel |
Beschreibung |
| attendance |
Anwesenheit |
| break |
Pause |
| travel_billable |
Fahrzeit (Arbeitszeit) |
| travel_time |
Fahrzeit (keine Arbeitszeit) |
| travel |
1 Fahrt |
| overnight_stay |
1 Übernachtung |
| unknown |
Unbekannter Wert |
GET /pulse/timeTracking/1.0/users/{userID}/workloads
Ruft die gefilterten Belastungsdatensätze des Benutzers ab. Die Filter:
- Belastung-Ist = 0
- Nicht storniert
- Die Stunden kamen nicht über Hybrid von einer Karte
Query-Parameter:
| Name |
Mussfeld |
Datentyp |
Format |
| startDate |
|
String |
yyyy-mm-dd |
| endDate |
|
String |
yyyy-mm-dd |
| modifiedSince |
|
String |
yyyy-mm-dd |
| modifiedUntil |
|
String |
yyyy-mm-dd |
Rückgabewert
Eine Liste an Buchungen:
| Name |
Datentyp |
Beschreibung |
| taskUUID |
String |
UUID des Vorgangs in PLANTA project (DI 060936) |
| taskName |
String |
Vorgangsbezeichnung in PLANTA project (DI 000807) |
| taskFunctionalID |
String |
Fachliche ID des Vorgangs (DI 041467). Wenn diese leer ist, dann die technische ID (DI 001098) |
| bookingPossible |
Boolean |
Bildet die Filter ab, die in PLANTA project den Bereich "Nicht bebuchbare Objekte" ausmachen (Projekt/Vorgang gesperrt, Projekt inaktiv oder Ressourcenzuordnung hat Ist-Ende) |
| projectUUID |
String |
UUID des Projekts in PLANTA project (DI 060934) |
| projectFunctionalID |
String |
Fachliche ID des Projekts (DI 041317) |
| projectName |
String |
Projektbezeichnung in PLANTA project (DI 000690) |
| load |
Number |
Belastung als Zahl (DI 001510) |
| date |
String |
Datum im Format YYYY-MM-DD (DI 001519) |
| comment |
String |
Kommentar (DI 001438) |
| order |
String |
Auftrag (DI 027646) |
| orderItem |
Number |
Auftragsposition (DI 027647) |
| loadUUID |
String |
UUID der Belastung in PLANTA project (DI 060945) |
| created_on |
String |
Anlagedatum im Format YYYY-MM-DD (DI 001500) |
| modified_on |
String |
Änderungsdatum im Format YYYY-MM-DD (DI 001501) |
| created_by |
String |
Anlagebenutzer (DI 001503) |
| modified_by |
String |
Änderungsbenutzer (DI 001504) |
| keyDate |
String |
Globaler Stichtag (DI 000132). Wird hier für alle Projekte ausgegeben, um später auf PLANTA project-Seite einfach Anpassungen zu machen, um die bebuchbaren Objekte einzuschränken. Format: yyyy-mm-dd oder leer |
GET /pulse/timeTracking/1.0/users/{userID}/subordinates
Ruft die Ressourcen ab, für die ein gewisser Mitarbeiter buchen darf.
- Es werden nur interne und externe Mitarbeiter ausgegeben, keine Abteilungen (
DI 003414 = "1I" OR "1E")
- Wird gesteuert über Zugriff auf Ressourcen
- Es werden nur Ressourcen ausgegeben, die auch mit PLANTA pulse verknüpft sind.
- Der Benutzer, für den abgefragt wird, ist in der Ergebnissmenge nicht enthalten.
Rückgabewert:
Ein Array von
Resource Objekten
Resource
| Name |
Datentyp |
Beschreibung |
| resourceUUID |
String |
PLANTA pulse-ID des Benutzers |
| resourceName |
String |
Name der Ressource (DI 001275) |
| resourceType |
String |
1I für Interner Mitarbeiter, 1E für Externer Mitarbeiter |
/pulse/timeTracking/1.0/users/{userID}/bookingFavorite
GET
Wird benutzt, um die Buchungsobjekte zu holen, die in PLANTA
project vom übergebenen Benutzer als Favorit markiert sind.
- Es werden nur Daten zu Vorgängen gesendet, die im PLANTA project-Standard im Zeiterfassungsmodul unter "Meine Zeiterfassungsfavoriten" auftauchen würden:
- Projekt/Vorgang ist nicht gesperrt
- Projekt ist aktiv
- Vorgang ist kein Meilenstein
- Vorgang ist kein Sammelvorgang
- Ressourcenzuordnung hat kein Ist-Ende
Rückgabewert:
bookingFavorite
| Name |
Datentyp |
Beschreibung |
| taskUUID |
String |
UUID des Vorgangs in PLANTA project (DI 060936) |
| taskFunctionalID |
String |
Fachliche ID des Vorgangs (DI 041467). Wenn diese leer ist die technische ID (DI 001098) |
| taskName |
String |
Vorgangsbezeichnung in PLANTA project (DI 000807) |
| projectUUID |
String |
UUID des Projekts in PLANTA project (DI 060934) |
| projectFunctionalID |
String |
Fachliche ID des Projekts (DI 041317) |
| projectName |
String |
Projektbezeichnung in PLANTA project (DI 000690) |
| keyDate |
String |
Globaler Stichtag (DI 000132) Format: yyyy-mm-dd oder leer |
POST
Setzt den Favoritenflag auf einer Ressourcenzuordnung.
Parameter:
DELETE
Löscht den Favoritenflag auf einer Ressourcenzuordnung.
Parameter:
Workloads
Die PUT/DELETE-Schnittstellen haben in ihrer URL einen Parameter, mit dem die Belastungs-ID aus PLANTA
project übergeben wird.
Workload
Parameter:
| Name |
Mussfeld bei POST |
Datentyp |
Beschreibung |
| taskUUID |
x |
String |
UUID des Vorgangs in PLANTA project (DI 060936) |
| userID |
x |
String |
PLANTA pulse-ID des Benutzers |
| load |
x |
Number |
Belastung (DI 001510) |
| comment |
x |
String |
Kommentar (DI 001438) |
| date |
x |
String |
Belastungsdatum (DI 001519) im Format yyyy-MM-dd'T'HH:mm:ss.SSSZ |
| order |
|
String |
Auftrag (DI 027646) |
| orderItem |
|
Number |
Auftragsposition (DI 027647) |
Es gibt keine Mussfelder bei PUT (außer die
workloadID in der URL natürlich!)
- Es ist nur nötig, die geänderten Felder zu schicken.
- Da in PLANTA project das Verschieben einer Belastung unter ein anderes Projekt / einen anderen Vorgang nicht erlaubt ist, macht es keinen Sinn, die
taskUUID zu schicken.
POST /pulse/timeTracking/1.0/workloads
Erstellt eine Belastung (DT472)
Kostenart wird von der Default-Kostenart der Ressource übernommen
Rückgabewert:
| Name |
Datentyp |
Beschreibung |
| UUID |
String |
UUID der Belastung |
| taskUUID |
String |
UUID des Vorgangs in PLANTA project (DI 060936) |
| userID |
String |
PLANTA project-ID des Benutzers |
| load |
Number |
Belastung (DI 001510) |
| comment |
String |
Kommentar (DI 001438) |
| date |
String |
Belastungsdatum (DI 001519) (Format ist zurzeit nicht definiert) |
/pulse/timeTracking/1.0/workloads/{workloadID}
PUT
Ändert eine Belastung
Rückgabewert:
| Name |
Datentyp |
Beschreibung |
| UUID |
String |
UUID der Belastung |
| taskUUID |
String |
UUID des Vorgangs in PLANTA project (DI 060936) |
| load |
Number |
Belastung (DI 001510) |
| comment |
String |
Kommentar (DI 001438) |
| date |
String |
Belastungsdatum (DI 001519) (Format ist zurzeit nicht definiert) |
DELETE
Löscht eine Belastung
Rückgabewert:
Aufträge / Kontierungselemente
GET /pulse/timeTracking/1.0/orders
Hiermit können Kontierungselemente zur Buchung zurückgegeben werden. Sobald diese Schnittstelle aktiv ist, werden auf der UI entsprechende Felder freigeschaltet.
Rückgabewert:
Order
| Name |
Datentyp |
Beschreibung |
| orderId |
String |
Identifier |
| orderName |
String |
Bezeichnung |
| orderItems |
Array<OrderPosition> |
Auftragspositionen |
OrderPosition
Fehlerbehandlung
Fehler Objekt
| Name |
Datentyp |
Beschreibung |
| statusCode |
Number |
HTTP Statuscode |
| message |
String |
Fehler Nachricht |
| details |
String |
z.B. Stacktrace |
| type (opt.) |
String |
Bei PLANTA pulse: PLANTA project-Request |
HTTP Statuscodes
| Status Code |
Description |
| 200 |
Returned when successful |
| 400 |
Bad Request |
| 401 |
Forbidden |
| 403 |
Returned when the user is not authorized |
| 404 |
Returned when no endpoint exists at the given address |
| 500 |
Internal Server Error |