Funktionalität rund um die Zeit(daten)erfassung Generell gilt, dass nur am HELIUM V angemeldete REST-API Benutzer diese Funktionen durchführen können. Weiters werden die Rechte des Benutzers berücksichtigt. Er kann - wenn er darf - im Namen einer anderen Person/Mitarbeiter die Buchungen durchführen.
Der Benutzer der API ist dafür verantwortlich, dass chronologisch richtige Zeitbuchungen entstehen, da der HELIUM V Server zum gegebenen Zeitpunkt (noch) nicht in Zukunft schauen kann.
Weiterführende Dokumentation kann im HELIUM V Benutzerhandbuch nachgelesen werden.
Liefert eine Liste aller verfügbaren Tätigkeiten (Arbeitszeitartikel) die innerhalb der Zeiterfassung durchgeführt werden können.
name | type | description | constraints |
---|---|---|---|
filter_cnr | query | (optional) die Sondertätigkeiten auf diese Kennung einschränken | |
limit | query | (optional) die maximale Anzahl von gelieferten Einträgen. Default ist 50. | int |
startIndex | query | (optional) die Id (eines ItemEntry Eintrags, mit dem die Liste beginnen soll |
int |
userid | query | des am HELIUM V Servers angemeldeten Benutzers |
media type | data type | description |
---|---|---|
application/json | array of ItemEntry (JSON) | eine (leere) Liste der für den Benutzer verfügbaren Tätigkeiten |
application/xml;charset=UTF-8 | object |
GET /api/v1/worktime/activities
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
[ {
"cnr" : "...",
"description" : "...",
"description2" : "...",
"name" : "...",
"shortName" : "...",
"stockAmount" : 12345.0,
"costs" : 12345.0,
"billOfMaterialType" : "...",
"available" : true,
"comments" : [ "...", "..." ],
"hidden" : true,
"unitCnr" : "...",
"typeCnr" : "...",
"itemgroupCnr" : "...",
"itemclassCnr" : "...",
"revision" : "...",
"stockAmountInfo" : {
"stockAmount" : 12345.0,
"reservedAmount" : 12345.0,
"missingAmount" : 12345.0,
"availableAmount" : 12345.0
},
"referenceNumber" : "...",
"index" : "...",
"preferredType" : "...",
"customerItemCnr" : "...",
"id" : 12345
} ]
Eine HELIUM V Barcode Zeitbuchung erzeugen.
media type | data type | description |
---|---|---|
application/json | BarcodeRecordingEntry (JSON) | Datenstruktur für eine (belegbezogene) Zeitbuchung über den Barcode |
application/xml;charset=UTF-8 | object |
POST /api/v1/worktime/barcode
Content-Type: application/json
{
"barcode" : "...",
"machineId" : 12345,
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
name | type | description |
---|---|---|
userid | query |
media type | data type |
---|---|
application/json | TimeRecordingBatchEntryList (JSON) |
application/xml | timeRecordingBatchEntryList (XML) |
POST /api/v1/worktime/batch
Content-Type: application/json
{
"entries" : [ {
"recordingEnum" : "Coming",
"HVID" : 12345,
"todoType" : "PROJECT",
"hvDetailId" : 12345,
"remark" : "...",
"detailItemCnr" : "...",
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}, {
"recordingEnum" : "Stop",
"HVID" : 12345,
"todoType" : "NOTINITIALIZED",
"hvDetailId" : 12345,
"remark" : "...",
"detailItemCnr" : "...",
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
} ],
"rowCount" : 12345
}
HTTP/1.1 201 Created
Eine KOMMT-Buchung durchführen.
media type | data type | description |
---|---|---|
application/json | TimeRecordingEntry (JSON) | ist die Standardzeitbuchung Datenstruktur TimeRecordingEntry |
application/xml | timeRecordingEntry (XML) |
POST /api/v1/worktime/coming
Content-Type: application/json
{
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
Liefert eine Liste aller verfügbaren Belegarten die für die Zeiterfassung verwendet werden können.
Belegarten sind typischerweise Angebot, Auftrag, Los oder Projekt
name | type | description |
---|---|---|
userid | query | der am HELIUM V Server angemeldete Benutzer |
media type | data type | description |
---|---|---|
application/json | array of DocumentType (JSON) | eine (leere) Liste von verfügbaren/bebuchbaren Belegarten |
application/xml;charset=UTF-8 | object |
GET /api/v1/worktime/documenttypes
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
[ {
"id" : "...",
"documentName" : "..."
} ]
Eine GEHT-Buchung durchführen.
media type | data type | description |
---|---|---|
application/json | TimeRecordingEntry (JSON) | ist die Standardzeitbuchung Datenstruktur TimeRecordingEntry |
application/xml | timeRecordingEntry (XML) |
POST /api/v1/worktime/going
Content-Type: application/json
{
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
Ein Start oder Stop einer Maschine durchführen.
Die anzugebende Maschine-Id kann über die Resource machine
ermittelt werden
media type | data type | description |
---|---|---|
application/json | MachineRecordingEntry (JSON) | Datenstruktur zur Speicherung einer Maschinen-Buchung |
application/xml | machineRecordingEntry (XML) |
POST /api/v1/worktime/machine
Content-Type: application/json
{
"machineId" : 12345,
"productionWorkplanId" : 12345,
"machineRecordingType" : "STOP",
"remark" : "...",
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
name | type | description | constraints |
---|---|---|---|
filter_withHidden | query | boolean | |
month | query | int | |
personalid | query | int | |
selectoption | query | "ALL" or "EMPLOYER" or "MY_DEPARTMENT" or "THIS_PERSON" or "WORKER" | |
sortoption | query | "COSTCENTER" or "DEPARTMENT" or "DEPARTMENT_COSTCENTER_NAME" or "NAME" or "PERSONALCNR" | |
toendofmonth | query | boolean | |
userid | query | ||
year | query | int |
media type | data type | description |
---|---|---|
application/json | MonthlyReportEntry (JSON) | |
application/xml;charset=UTF-8 | object |
GET /api/v1/worktime/monthlyreport
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
{
"pdfContent" : "...",
"lastPagePng" : "..."
}
Eine (Beginn) Buchung mit Auftragsbezug erzeugen.
Die anzugebende Order-Id kann über die Resource order
ermittelt werden
media type | data type | description |
---|---|---|
application/json | OrderRecordingEntry (JSON) | ist dabei die Auftragszeit Datenstruktur |
application/xml | orderRecordingEntry (XML) |
POST /api/v1/worktime/order
Content-Type: application/json
{
"orderId" : 12345,
"orderPositionId" : 12345,
"workItemId" : 12345,
"remark" : "...",
"extendedRemark" : "...",
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
Eine PAUSE (Unterbrechung)-Buchung durchführen.
Eine Pause (zum Beispiel Mittagspause) wird durch zwei PAUSE Buchungen erzielt.
media type | data type | description |
---|---|---|
application/json | TimeRecordingEntry (JSON) | ist die Standardzeitbuchung Datenstruktur TimeRecordingEntry |
application/xml | timeRecordingEntry (XML) |
POST /api/v1/worktime/pausing
Content-Type: application/json
{
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
Eine (Beginn) Buchung eines Los durchführen.
media type | data type | description |
---|---|---|
application/json | ProductionRecordingEntry (JSON) | ist die Datenstruktur zur Speicherung einer Los-Buchung
Die anzugebende Los-Id kann über die Resource |
application/xml | productionRecordingEntry (XML) |
POST /api/v1/worktime/production
Content-Type: application/json
{
"productionId" : 12345,
"machineId" : 12345,
"productionWorkplanId" : 12345,
"workItemId" : 12345,
"remark" : "...",
"extendedRemark" : "...",
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
Eine (Beginn) Buchung eines Projekts durchführen.
media type | data type | description |
---|---|---|
application/json | ProjectRecordingEntry (JSON) | ist die Datenstruktur zur Speicherung einer Projekt-Buchung
Die anzugebende Project-Id kann über die Resource |
application/xml | projectRecordingEntry (XML) |
POST /api/v1/worktime/project
Content-Type: application/json
{
"projectId" : 12345,
"workItemId" : 12345,
"remark" : "...",
"extendedRemark" : "...",
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
Liefert eine Liste aller verfügbaren Sondertätigkeiten die für die Zeiterfassung zur Verfügung stehen.
Sondertätigkeiten sind Tätigkeiten wie "KOMMT", "GEHT", "ARZT", "BEHÖRDE", ...
Es können nur jene Sondertätigkeiten gebucht werden, die laut HELIUM V Konfiguration für den Anwender beziehungsweise dessen Benutzerrolle zur Verfügung steht.
name | type | description |
---|---|---|
userid | query |
media type | data type | description |
---|---|---|
application/json | array of SpecialActivity (JSON) | eine (leere) Liste der für den Benutzer verfügbaren Sondertätigkeiten |
application/xml;charset=UTF-8 | object |
GET /api/v1/worktime/specialactivities
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
[ {
"id" : 12345,
"activity" : "..."
} ]
name | type | description |
---|---|---|
userid | query |
media type | data type |
---|---|
application/json | SpecialTimesEntryList (JSON) |
application/xml | specialTimesEntryList (XML) |
POST /api/v1/worktime/specialtimes
Content-Type: application/json
{
"entries" : [ {
"timeType" : "Holiday",
"fromDateMs" : 12345,
"toDateMs" : 12345,
"halfDay" : true
}, {
"timeType" : "Holiday",
"fromDateMs" : 12345,
"toDateMs" : 12345,
"halfDay" : true
} ],
"rowCount" : 12345
}
HTTP/1.1 201 Created
Eine ENDE Buchung durchführen
Eine Belegbuchung wie beispielsweise Auftrags-, Projekt oder Los-Buchung beenden
media type | data type |
---|---|
application/json | TimeRecordingEntry (JSON) |
application/xml | timeRecordingEntry (XML) |
POST /api/v1/worktime/stopping
Content-Type: application/json
{
"forStaffId" : 12345,
"forStaffCnr" : "...",
"userId" : "...",
"year" : 12345,
"month" : 12345,
"day" : 12345,
"hour" : 12345,
"minute" : 12345,
"second" : 12345,
"where" : "..."
}
HTTP/1.1 201 Created
Liefert das Zeitsaldo des angeforderten Benutzers inklusive seines verfügbaren Urlaubs
name | type | description | constraints |
---|---|---|---|
day | query | der Tag (1-31) | int |
forStaffCnr | query | ist die optionale Personalnummer für die der Zeitsaldo abgerufen werden soll. Sind sowohl forStaffId als auch forStaffCnr angegeben, wird forStaffId verwendet. Sind beide nicht angegeben, wird das Zeitsaldo des angemeldeten Benutzer abgerufen. | |
forStaffId | query | ist die optionale PersonalId für die der Zeitsaldo abgerufen werden soll.
Der angemeldete Benutzer kann für jene Personen für die er ausreichend Rechte hat Zeitsalden abrufen. |
int |
month | query | ist das Monat (1-12) | int |
userid | query | der angemeldete Benutzer | |
year | query | ist das Jahr für das der Zeitsaldo abgerufen werden soll | int |
media type | data type | description |
---|---|---|
application/json | TimeBalanceEntry (JSON) | |
application/xml;charset=UTF-8 | object |
GET /api/v1/worktime/timebalance
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
{
"timeBalance" : 12345.0,
"availableVacation" : 12345.0,
"unitVacation" : "..."
}
Eine Zeitbuchung löschen
name | type | description | constraints |
---|---|---|---|
worktimeId | path | die Id der zu löschenden Buchung. Die Zeitbuchungen (und damit auch deren Id) kann über die GET Methode ermittelt werden. |
int |
forStaffCnr | query | ist die optionale Personalnummer für die gelöscht werden soll. Sind sowohl forStaffId als auch forStaffCnr angegeben, wird forStaffId verwendet. Sind beide nicht angegeben, wird das Löschen mit dem angemeldeten Benutzer durchgeführt | |
forStaffId | query | ist die optionale PersonalId für die gelöscht werden soll.
Der angemeldete Benutzer kann für jene Personen für die er ausreichend Rechte hat Zeitbuchungen löschen. |
int |
userId | query | der angemeldete Benutzer |
DELETE /api/v1/worktime/{worktimeId}
Content-Type: */*
...
HTTP/1.1 204 No Content
Liefert alle ZeitdatenEntry
für den angegebenen Tag.
name | type | description | constraints |
---|---|---|---|
day | path | der Tag (1-31) | int |
month | path | ist das Monat (1-12) | int |
year | path | ist das Jahr für das die Zeitdaten abgerufen werden sollen | int |
forStaffCnr | query | ist jene Personalnummer für welche die Zeitdaten abgerufen werden soll. Kann auch leer sein. Ist sowohl forStaffId als auch forStaffCnr angegeben, gilt forStaffId | |
forStaffId | query | ist jene Benutzer-Id für welche die Zeitdaten abgerufen werden sollen. Kann auch leer sein | int |
limit | query | Ist die maximale Anzahl an Datensätzen. Default 50. | int |
userId | query | enthält den angemeldeten Benutzer |
media type | data type | description |
---|---|---|
application/json | array of ZeitdatenEntry (JSON) | eine (leere) Liste von ZeitdatenEntry für den gewünschten Tag |
application/xml;charset=UTF-8 | object |
GET /api/v1/worktime/{year}/{month}/{day}
Content-Type: */*
Accept: application/json
...
HTTP/1.1 200 OK
Content-Type: application/json
[ {
"activityCnr" : "...",
"description" : "...",
"time" : "...",
"duration" : "...",
"flags" : "...",
"where" : "...",
"id" : 12345
} ]