Document toolboxDocument toolbox

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

AuftragspositioPKUUID_16
KostenstellenPKUUID_14
ZeitdateiPKUUID_19
PersonalPKUUID_13
ZeitmodellZuweisungPKUUID_259
BetriebskalendePKUUID_93
BDEActivityPKUUID_66
Personal_KostenstellenPKUUID_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"}