API - Zeiterfassung
api_get
Diese generische Methode ist hier dokumentiert: API & OTA-Integration#Datenlesenmitapi_get
Die Optionen innerhalb der Projekte API sind hier gelistet
Verfügbare Tabellen | gesperrte Felder |
---|---|
Auftragspositio | PKUUID_16 |
Kostenstellen | PKUUID_14 |
Zeitdatei | PKUUID_19 |
Personal | PKUUID_13 |
ZeitmodellZuweisung | PKUUID_259 |
Betriebskalende | PKUUID_93 |
BDEActivity | PKUUID_66 |
Personal_Kostenstellen | PKUUID_202 |
Zeiterfassung - API-Methoden
api_time_start (API Zeiterfassung) - Startet einen Zeiterfassungsvorgang im Browser - Kern der WebZE
Die API api_time_start gibt ein Webanwendung (WebZE) wieder mit der Zeiten in Profacto gebucht werden können. Der Mitarbeiter identifiziert sich anhand eines persönlichen und Aufgaben bezogenen Tokens.
Weitere Details zur Webzeiterfassung (WebZE).
api_time_getpositions - Projektpositionen abrufen
Erforderliche Parameter:
Token, projectid
Konkretes Beispiel:
http://meinServer:8080/4DAction/api_time_getpositions?token=5E05A427CD134432A28F2DAF11EC500E&projectid=bb0664617357c9cd7d7ddb9d56d014fe
In der Rückmeldung enthaltenem JSON-Object wird der Tabellenname angeführt ("positions") in dem ein Array alle zu dem Projekt verfügbaren Positionen enthält im Format { "positonsnr": integer, "Bezeichnung": string}:
{"positions":[{"positionsnr":"1","bezeichnung":"Infomaterial Display X\r\rHochglanz weiß gemäß Entwurfskizze von Mies van der Rohe\r6 Flyerfäche\r4 Zeitschriften"},{"positionsnr":"2","bezeichnung":"Theke \r\rSockel mit indirekter LED-Beleuchtung\r3 PC-Arbeitsplätze\r2 Kassenzonen\rAudioguide-Wechselstation"}]}
api_time_getday - Gebuchte Zeit-Einträge für einen Tag abrufen
Erforderliche Parameter:
Token
Optionale Parameter:
Date - Ist der Parameter Date nicht gesetzt, werden die Datensätze für den gegenwärtigen Tag ausgeliefert.
Konkretes Beispiel:
http://meinServer:8080/4DAction/api_time_getday?token=5E05A427CD134432A28F2DAF11EC500E&date=01.10.20
In der Rückmeldung enthaltenem JSON-Object wird der Tabellenname angeführt ("Zeiten") in dem ein Array alle zu dem Tag gebuchten Zeiterfassungs-Einträge enthält im Format:
{"AuftragsNr": Alphanum, "VonZeit": Integer[Sekunden], "BisZeit":Integer[Sekunden], "PositionsNr": Integer, "KSTNR": Integer, "GesamtZeit": Integer[Stunden], "Bemerkung": String,"Nachweis": Boolean, "FeedbackRequired": Boolean, "BisZeitIstPausenAnfang": Boolean, "VonZeitIstPausenEnde": Boolean, "Zeitart": String, "Pause": Float[Stunden]}
Response:
{"success":true,"error":"","zeiten":[{"AuftragsNr":"100019","VonZeit":21600,"BisZeit":43200,"PositionsNr":3,"KSTNR":200,"GesamtZeit":6,"Bemerkung":"","Nachweis":false,"FeedbackRequired":true,"BisZeitIstPausenAnfang":false,"VonZeitIstPausenEnde":false,"Zeitart":"B","Pause":0.5},{"AuftragsNr":"100019","VonZeit":43200,"BisZeit":64800,"PositionsNr":3,"KSTNR":400,"GesamtZeit":6,"Bemerkung":"","Nachweis":false,"FeedbackRequired":true,"BisZeitIstPausenAnfang":false,"VonZeitIstPausenEnde":false,"Zeitart":"B","Pause":0.5}],"processingTime":6,"errorMsg":"","procTime2":0}
api_getZeitModell - Zeitmodell für einen Mitarbeiter für einen Tag abrufen
Erforderliche Parameter:
Token
Optionale Parameter:
Datum - Ist der Parameter Datum nicht gesetzt, wird das Zeitmodell für den gegenwärtigen Tag ausgeliefert.
Konkretes Beispiel:
http://meinServer:8080/4DAction/api_getZeitModell?token=41356A67726F4D219330ED924AE68E63&Datum=14.10.20
In der Rückmeldung enthaltenem JSON-Object wird der Wert "zeitmodell" aufgeführt und enthält in einem separaten Objekt die Kerndaten zu gegebenem Zeitmodell.
Response:
{"error":"","success":true,"zeitmodell":{"PersonalNr":"10","Name":"Krtek Maulwurf","Datum":"2020-10-13T22:00:00.000Z","PersUrlaubVerplantHHMM":0,"pers_ILEintritt":"12.08.04","pers_ILAustritt":"-","pers_ILUrlaubAnspruch":"160 h = 2.0 Tage","pers_ILUrlaubRest":"100 h = 1.2 Tage","pers_ILZeitmodell":"","pers_ILZeitmodellVon":"Von: jeher","pers_ILZeitmodellBis":"Bis: auf Weiteres","pers_ILMontag":"6:00 - 18:00","pers_ILMontagP1":"9:00 - 9:30","pers_ILMontagP2":"12:30 - 13:00","pers_ILDienstag":"6:00 - 18:00","pers_ILDienstagP1":"9:00 - 9:30","pers_ILDienstagP2":"12:30 - 13:00","pers_ILMittwoch":"6:00 - 18:00","pers_ILMittwochP1":"9:00 - 9:30","pers_ILMittwochP2":"12:30 - 13:00","pers_ILDonnerstag":"6:00 - 18:00","pers_ILDonnerstagP1":"9:00 - 9:30","pers_ILDonnerstagP2":"12:30 - 13:00","pers_ILFreitag":"6:00 - 16:00","pers_ILFreitagP1":"9:00 - 9:30","pers_ILFreitagP2":"12:30 - 13:00","pers_ILZeitmodellStdWoche":"40 Std./Wo","pers_ILZeitmodellStdWocheHHMM":144000,"zArbVon":21600,"zArbBis":64800,"zArbStd":8.5,"zPause1Von":32400,"zPause1Bis":34200,"zPause2Von":45000,"zPause2Bis":46800}}
api_put_time - erfasste Arbeitszeit in das System Einbuchen
Erforderliche Parameter:
project, position, costsource, fromtime, totime
oder
project, position, costsource, fromtime, totaltime
Optionale Parameter:
date, pause, comment, feedback, response
Ausgeschlossene Parameter:
UUID, PersonalNr, BDEID
Konkretes Beispiel:
http://meinserver:8080/4DAction/api_put_time?response=JSON&token=41356A67726F4D219330ED924AE68E63&project=.GK&position=1&costsource=100&fromtime=06:00:00&totime=12:00:00&date=27.08.20&pause=00:00:00&comment=&feedback=false
Zu den Parametern:
- project → entspricht der ProjektNr (String)
- position → entspricht der Projekt-Position (Integer)
- costsource → entspricht der Kostenstelle (Integer)
- fromtime → entspricht der Startzeit des zu buchenden Eintrags im Format 'hh:mm:ss'
- totime → entspricht der Endzeit des zu buchenden Eintrags im Format 'hh:mm:ss'
(Nur verwenden wenn man den Parameter totaltime nicht nutzt) - totaltime → entspricht der Gesamtzeit des zu buchenden Eintrags im Format 'hh:mm:ss'
(Nur verwenden wenn man den Parameter totime nicht nutzt) - date → entspricht dem Datum des zu buchenden Eintrags im Format 'dd.mm.yy'
(Wir dieser Parameter weggelassen, verwendet Profacto das gegenwärtige Datum) - comment → entspricht der Bemerkung als Zeichenkette (String)
- feedback → entspricht Anforderung von Rückfragen als boolischer Wert (Boolean als String)
- response → mögliche Werte sind 'HTML' und 'JSON'. Wird kein Wert angegeben erfolgt die Response in HTML
Pausen
Pausen werden als Lücken im Tagesverlauf dargestellt, oder besser noch durch lückenlose Erfassung von Projektzeiten, dafür aber mit definierten Pausenzeiten in den Zeitmodellen.
In der JSON-Rückmeldung wird auch die neue vergebene UUID zurückgeliefert:
{"success":true,"error":"","processingTime":1326,"errorMsg":"","recNum":885,"UUID":"3665FF277C1C4589AD07C075EA159314"}