Webservice Tagesinformationen


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

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

Aufruf

http://IP:PORT/EmployeeDayIntervals?PARAMETER
  • IP: Wie im ALEX-Config-File eingestellt
  • HTTP-Server-PORT: Wie im ALEX-Config-File eingestellt
  • PARAMETER:
    • Ressourcen können folgendermaßen angegeben werden
      • "allEmployees": gesamtes Personal
      • "id": Personalnummer
      • "planCode": Kurzzeichen von Plan
      • "resourcesBson": eine Zusammenfassung von Plan Kurzzeichen und Personalnummer zum Beispiel: "?resourcesBson={"employeeIDs":["E1","E2","E3"],"planCodes":["P1","P2","P3"]}"
    • "begin": Beginn-Datum des Datenauszuges Format "DD.MM.YYYY"
    • "end": Ende-Datum des Datenauszuges Format "DD.MM.YYYY"
    • "allstates": Statusdaten für alle aktuellen Status: Planung -> Planung, Ist -> Planung und Ist

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": []
           }
         ]
       }
     ]
   }
 ]
}


Bit Factory interne Zusatzinformationen