Das Webservice - Tagesinformationen ist eine Programmfunktion zur Abfrage von Tagesinformationen pro Personal und Zeitbereich.
Es kann dazu verwendet werden die Tagesinformationen für einen Zeitbereich und Personal Fremdsystemen zur maschinellen Weiterverarbeitung zur Verfügung zu stellen.
Ausgangssituation
Voraussetzungen
Um die Programmfunktion nutzen zu können
- muss der Webservice-Daemon konfiguriert sein.
- muss ein gültiger WebApi-Port konfiguriert sein.
- muss Bfx.Alex.AccountsReport.DayInterval.Model als Plugin konfiguriert sein.
- kann ein Zertifikat zur Verschlüsselung verwendet werden.
- kann ein Sicherer Link-Aufruf konfiguriert werden.
Das Webservice stellt dann folgenden Zugriffspfad an der konfigurierten Webservice-Adresse zur Verfügung:
/EmployeeDayIntervals
Der Bediener des Webservice muss mit dem HTTP-Protokoll und seinen Möglichkeiten zur Argumentübertragung[1][2] vertraut sein.
Formatierung der Anfrage
Die Daten werden dem Webservice in der URL kodiert als GET-Argumentübertragung übergeben.
Ein Datum wird immer als DD.MM.YYYY
übertragen.
Schema für URL-Kodierung
Der Prozent-Encodierte Query-String der URL muss folgendes Format haben. Parameter in eckigen Klammern sind optional:
/EmployeeDayIntervals [?allEmployees=] [&id=] [&planCode=] [&resourcesBson=] [&begin=] [&end=] [&allstates=]
Parameter | Wertebereich | Beschreibung |
---|---|---|
allEmployees |
true oder false |
Wenn true , gesamtes Personal im Zeitbereich
|
id |
Zeichenkette | Eine Personalnummer |
planCode |
Zeichenkette | Kurzcode eines Plans |
resourcesBson |
Zeichenkette | JSON-String: eine Zusammenfassung von Plan Kurzzeichen und Personalnummern zum Beispiel: resourcesBson={"employeeIDs":["E1","E2","E3"],"planCodes":["P1","P2","P3"]}
|
begin |
Datum | Beginn des abzufragenden Zeitbereichs, falls nicht angegeben Heute |
end |
Datum | Ende des abzufragenden Zeitbereichs, falls nicht angegeben Morgen |
allstates |
true oder false |
Wenn true , Statusdaten für alle aktuellen Status: Planung -> Planung, Ist -> Planung und Ist
|
Formatierung der Ausgabe
Tagesinformation im JSON-Format UTF8 codiert. Das JSON-Objekt hat folgendes JSON-Schema:
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "EmployeeDayIntervals", "description": "format for the EmployeeDayIntervals-Webservice", "type": "object", "properties": { "Employees": { "type": "array", "description": "Array der Personen für die Daten gefunden wurden", "items": { "type": "object", "properties": { "EmployeeID": { "type": "string", "description": "Personalnummer" }, "Surname": { "type": "string", "description": "Zuname" }, "Forename": { "type": "string", "description": "Vorname" }, "EmployeeTitleBeforeName": { "type": "string", "description": "Titel vor Name" }, "EmployeeTitleAfterName": { "type": "string", "description": "Titel nach Name" }, "MasterAllocation": { "type": "string", "description": "Stammplanungseinheit" }, "EmployeeJobGroup": { "type": "string", "description": "Berufsgruppe" }, "Days": { "type": "array", "description": "Array aller Tage für die Daten gefunden wurden", "items": { "type": "object", "properties": { "ForDate": { "type": "string", "description": "Datum des Tages" }, "ForState": { "type": "string", "description": "Status des Tages" }, "TextCategory": { "type": "string", "description": "Textkategorie des Tages" }, "InfoText": { "type": "string", "description": "Tagtext" }, "DayPlanSymbol": { "type": "string", "description": "Abwesenheit auf Tag (nur Planungscodes mit Typ 'Abwesend')" }, "DayPlanSymbolObject": { "type": "object", "description": "Plansymbol auf Tag", "properties": { "PlanSymbolCode": { "type": "string", "description": "Kurzcode des Planungscodes" }, "PlanSymbolType": { "type": "string", "description": "Typ des Planungscodes 'Anwesend' oder 'Abwesend'" } } }, "DayShift1": { "type": "string", "description": "1. Dienst am Tag" }, "DayShift2": { "type": "string", "description": "2. Dienst am Tag" }, "DayRequestKind": { "type": "string", "description": "Aufgabe am Tag" }, "DayEvents": { "type": "array", "description": "zusätzliche Aufgaben am Tag", "items" : { "type": "object", "properties": { "Label": { "type": "string", "description": "Bezeichnung der Aufgabe" } } } }, "ForeignShift1": { "type": "string", "description": "1. Dienst auf anderer Planungseinheit: Bezeichnung von Planungseinheit" }, "ForeignShift2": { "type": "string", "description": "2. Dienst auf anderer Planungseinheit: Bezeichnung von Planungseinheit" }, "DayTotalMinutesComputed": { "type": "string", "description": "Total in Minuten aus Status" }, "DayPoolAllocations": { "type": "array", "description": "Array aller Poolzuteilungen an diesem Tag", "items": { "type": "string", "description": "Bezeichnung von Planungseinheit" } }, "AssignedExtra": { "type": "array", "description": "Array aller Sonderabrechnung am Tag", "items": { "type": "object", "properties": { "Key": { "type": "string", "description": "Name der Sonderabrechnung" }, "Label": { "type": "string", "description": "Bezeichnung der Sonderabrechnung" }, "Value": { "type": "string", "description": "Wert der Sonderabrechnung" } } } }, "DayIntervals": { "type": "array", "description": "Array aller Kommt/Geht-Paare am Tag", "items": { "type": "object", "properties": { "From": { "type": "string", "description": "Kommt-Zeitpunkt" }, "To": { "type": "string", "description": "Geht-Zeitpunkt" }, "DayIntervalPlanSymbol": { "type": "string", "description": "Abwesenheit auf Kommt/Geht-Paar (nur Planungscodes mit Typ 'Abwesend')" }, "DayPlanSymbolObject": { "type": "object", "description": "Plansymbol auf Kommt/Geht-Paar", "properties": { "PlanSymbolCode": { "type": "string", "description": "Kurzcode des Planungscodes" }, "PlanSymbolType": { "type": "string", "description": "Typ des Planungscodes 'Anwesend' oder 'Abwesend'" } } }, "DayIntervalInfoTextCategory": { "type": "string", "description": "Textkategorie auf Kommt/Geht-Paar" }, "DayIntervalInfoText": { "type": "string", "description": "Text auf Kommt/Geht-Paar" }, "DayIntervalShift": { "type": "string", "description": "Dienst, welcher diesem Kommt/Geht-Paar zugewiesen ist" }, "DayIntervalAssignedEvents": { "type": "array", "description": "Array von Aufgaben auf Kommt/Geht-Paar", "items": { "type": "string", "description": "Bezeichnung von Aufgabe" } } } } } } } } } } } } }
Beispiele
Alle Tagesinformationen von gesamten Personal von 05.12.2017 bis einschließlich 07.12.2017:
http://localhost:4480/EmployeeDayIntervals?allEmployees=true&begin=05.12.2017&end=07.12.2017
Alle Tagesinformationen von Personal mit Personalnummer "20" von 05.12.2017 bis einschließlich 07.12.2017:
http://localhost:4480/EmployeeDayIntervals?id=20&begin=05.12.2017&end=07.12.2017
Alle Tagesinformationen von Personal auf Plan "X" von 01.12.2017 bis einschließlich 31.12.2017:
http://localhost:4480/EmployeeDayIntervals?planCode=X&begin=01.12.2017&end=31.12.2017
Alle Tagesinformationen von Personal "E1", "E2", "E3" und Personal auf Plänen "P1", "P2", "P3" von 01.12.2017 bis einschließlich 31.12.2017:
http://localhost:4480/EmployeeDayIntervals?begin=01.12.2017&end=31.12.2017&resourcesBson={"employeeIDs":["E1","E2","E3"],"planCodes":["P1","P2","P3"]}
Alle Tagesinformationen von Personal mit Personalnummer "20" von 05.12.2017 bis einschließlich 07.12.2017, alle Status:
http://localhost:4480/EmployeeDayIntervals?id=20&begin=05.12.2017&end=07.12.2017&allstates=true
Ergebnis
Tagesinformation im JSON-Format UTF8 codiert in der Form:
{ "Employees" : [ { "EmployeeID" : "string" , "Surname" : "string" , "Forename" : "string" , "EmployeeTitleBeforeName" : "string" , "EmployeeTitleAfterName" : "string" , "MasterAllocation" : "string" , "EmployeeJobGroup" : "string" , "Days" : [ { "ForDate" : "string" , "ForState" : "string" , "TextCategory" : "string" , "InfoText" : "string" , "DayPlanSymbol" : "string" , "DayPlanSymbolObject" : { "PlanSymbolCode" : "string", "PlanSymbolType" : "string" } , "DayShift1" : "string" , "DayShift2" : "string" , "DayRequestKind" : "string" , "DayEvents" : [ { "Label" : "string" } ] , "ForeignShift1" : "string" , "ForeignShift2" : "string" , "DayTotalMinutesComputed" : "float" , "DayPoolAllocations" : [ "string" ] , "AssignedExtra" : [ { "Key" : "string", "Label" : "string", "Value" : float } ] , "DayIntervals" : [ { "From" : "string" , "To" : "string" , "DayIntervalPlanSymbol" : "string" , "DayIntervalPlanSymbolObject" : { "PlanSymbolCode" : "string", "PlanSymbolType" : "string" } , "DayIntervalInfoTextCategory" : "string" , "DayIntervalInfoText" : "string" , "DayIntervalShift" : "string" , "DayIntervalAssignedEvents" : [ "string" ] } ]} ]} ]}
Glossar:
- Employees: Array aller Personen
- EmployeeID: Personalnummer
- Surname: Zuname
- Forename: Vorname
- MasterAllocation: Stammplanungseinheit
- EmployeeJobGroup: Berufsgruppe
- Days: Array aller Tage
- ForDate: Datum von Tag
- ForState: Status von Tag
- TextCategory: Textkategorie auf Tag
- InfoText: Text auf Tag
- DayPlanSymbol: Abwesenheit auf Tag (nur Planungscodes mit Typ "Abwesend")
- DayPlanSymbolObject: Plansymbol auf Tag (Kurzbezeichnung und Typ: "Anwesend" oder "Abwesend")
- DayShift1: Dienst 1 auf Tag
- DayShift2: Dienst 2 auf Tag
- DayRequestKind: Aufgabe auf Tag
- DayEvents: zusätzliche Aufgaben auf Tag
- DayTotalMinutesComputed: Total in Minuten aus Status
- ForeignShift1: Dienst 1 auf anderer Station
- ForeignShift2: Dienst 2 auf anderer Station
- DayPoolAllocations: Array aller Poolzuteilungen an diesem Tag
- AssignedExtra: Array aller Sonderabrechnung/Wert-Paare an diesem Tag
- DayIntervals: Array aller Kommt/Geht-Paare
- From: Komme
- To: Gehe
- DayIntervalPlanSymbol: Abwesenheit auf Kommt/Geht-Paar (nur Planungscodes mit Typ "Abwesend")
- DayIntervalPlanSymbolObject: Plansymbol auf Kommt/Geht-Paar (Kurzbezeichnung und Typ: "Anwesend" oder "Abwesend")
- DayIntervalInfoTextCategory: Textkategorie auf Kommt/Geht-Paar
- DayIntervalInfoText: Text auf Kommt/Geht-Paar
- DayIntervalShift: Dienst, welcher diesem Kommt/Geht-Paar zugewiesen ist
- DayIntervalAssignedEvents: Array von Aufgaben auf Kommt/Geht-Paar
Beispiel
{ "Employees": [ { "EmployeeID": "20", "Surname": "Muster", "Forename": "Max", "EmployeeTitleBeforeName": "DI", "EmployeeTitleAfterName": "M.A", "MasterAllocation": "Plan S", "EmployeeJobGroup": "SW-Entwicklung", "Days": [ { "ForDate": "05.12.2017", "ForState": "Ist", "TextCategory": "Korrektur am Tag", "InfoText": "Pause verlängert, Auto kaputt", "DayPlanSymbol": "", "DayPlanSymbolObject": {}, "DayShift1": "8", "DayShift2": "", "DayRequestKind": "", "DayEvents": [], "DayTotalMinutesComputed": 480.0, "ForeignShift1": "Projektmanagment", "DayPoolAllocations": [], "AssignedExtra": [ { "Key": "9010", "Label": "Diensttausch", "Value": 0.0 } ], "DayIntervals": [ { "From": "05.12.2017 8:00", "To": "05.12.2017 12:00", "DayIntervalPlanSymbol": "", "DayIntervalPlanSymbolObject": {}, "DayIntervalInfoTextCategory": "", "DayIntervalInfoText": "", "DayIntervalShift": "8", "DayIntervalAssignedEvents": [] }, { "From": "05.12.2017 13:00", "To": "05.12.2017 17:00", "DayIntervalPlanSymbol": "", "DayIntervalPlanSymbolObject": {}, "DayIntervalInfoTextCategory": "", "DayIntervalInfoText": "", "DayIntervalShift": "8", "DayIntervalAssignedEvents": [] } ] }, { "ForDate": "06.12.2017", "ForState": "Ist", "TextCategory": "", "InfoText": "", "DayPlanSymbol": "", "DayPlanSymbolObject": { "PlanSymbolCode": "S", "PlanSymbolType": "Anwesend" }, "DayShift1": "8", "DayShift2": "", "DayRequestKind": "", "DayEvents": [], "DayTotalMinutesComputed": 360.0, "DayPoolAllocations": [ "Plan A", "Plan B" ], "AssignedExtra": [], "DayIntervals": [ { "From": "06.12.2017 8:00", "To": "06.12.2017 12:00", "DayIntervalPlanSymbol": "", "DayIntervalPlanSymbolObject": {}, "DayIntervalInfoTextCategory": "", "DayIntervalInfoText": "", "DayIntervalShift": "8", "DayIntervalAssignedEvents": [] }, { "From": "06.12.2017 13:00", "To": "06.12.2017 15:00", "DayIntervalPlanSymbol": "", "DayIntervalPlanSymbolObject": {}, "DayIntervalInfoTextCategory": "", "DayIntervalInfoText": "", "DayIntervalShift": "8", "DayIntervalAssignedEvents": [] }, { "From": "06.12.2017 15:00", "To": "06.12.2017 17:00", "DayIntervalPlanSymbol": "Z", "DayIntervalPlanSymbolObject": { "PlanSymbolCode": "Z", "PlanSymbolType": "Abwesend" }, "DayIntervalInfoTextCategory": "", "DayIntervalInfoText": "", "DayIntervalShift": "8", "DayIntervalAssignedEvents": [] } ] }, { "ForDate": "07.12.2017", "ForState": "Ist", "TextCategory": "", "InfoText": "", "DayPlanSymbol": "", "DayPlanSymbolObject": {}, "DayShift1": "VM", "DayShift2": "NM", "DayRequestKind": "", "DayEvents": [], "DayTotalMinutesComputed": 480.0, "DayPoolAllocations": [ "Plan B" ], "AssignedExtra": [], "DayIntervals": [ { "From": "07.12.2017 8:00", "To": "07.12.2017 12:00", "DayIntervalPlanSymbol": "", "DayIntervalPlanSymbolObject": { "PlanSymbolCode": "B", "PlanSymbolType": "Anwesend" }, "DayIntervalInfoTextCategory": "", "DayIntervalInfoText": "", "DayIntervalShift": "VM", "DayIntervalAssignedEvents": [] }, { "From": "07.12.2017 13:00", "To": "07.12.2017 17:00", "DayIntervalPlanSymbol": "", "DayIntervalPlanSymbolObject": {}, "DayIntervalInfoTextCategory": "", "DayIntervalInfoText": "", "DayIntervalShift": "NM", "DayIntervalAssignedEvents": [] } ] } ] } ] }