Webservice Personalstammdaten Export: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „__NOTOC__ {{DISPLAYTITLE:Webservice Tagesinformationen}} Es gibt auch eine Variante als Export-Schnittstelle. Konfiguration fü…“)
 
Keine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
 
(20 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
__NOTOC__ {{DISPLAYTITLE:Webservice Tagesinformationen}}
Das [[Webservice]] - '''Personalstammdaten Export''' ist eine [[Programmfunktion]] zur Abfrage von Personalstammdaten für einen Zeitbereich.


Es gibt auch eine Variante als [[Export_Tagesinformationen|Export-Schnittstelle.]]
Es kann dazu verwendet werden die Personalstammdaten Fremdsystemen zur maschinellen Weiterverarbeitung zur Verfügung zu stellen.


Konfiguration für Config-File:
Personal welches mit '''Löschen umschalten''' versteckt wurde ist nicht im Ergebnis enthalten.
, "httpServicePlugins" :
  { "0" : "Bfx.Alex.AccountsReport.DayInterval.Model.dll"
  }
, "serverDaemonPlugins" :
  { "0" : "Bfx.HTTP.Server.dll"
  }


= Aufruf =
Unter <code>Systemeinstellungen: WebApiServer Einstellungen: zu exportierende Personalstamm-Eigenschaften</code> können zusätzliche Personal-Eigenschaften in einer Ansicht gesammelt werden, welche auch exportiert werden. <ref name="issue7697"> {{githubissue|7697}}</ref>


http://IP:PORT/EmployeeDayIntervals?PARAMETER
== Ausgangssituation ==


* IP: Wie im [[ALEX-Config-File]] eingestellt
=== Voraussetzungen ===
* 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": Begin-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


== Beispiel ==
{{webservice_prerequisites|Intern:Webservice_Personalstammdaten_Export_Aktivierung}}
* <code>/GetEmployees</code>


Alle Tagesinformationen von gesamten Personal von 05.12.2017 bis einschließlich 07.12.2017:
=== Formatierung der Anfrage ===
<nowiki>http://localhost:4480/EmployeeDayIntervals?allEmployees=true&begin=05.12.2017&end=07.12.2017</nowiki>


Alle Tagesinformationen von Personal mit Personalnummer "20" von 05.12.2017 bis einschließlich 07.12.2017:
Die Daten werden dem Webservice '''in der URL kodiert''' als '''GET'''-Argumentübertragung übergeben.
<nowiki>http://localhost:4480/EmployeeDayIntervals?id=20&begin=05.12.2017&end=07.12.2017</nowiki>


Alle Tagesinformationen von Personal auf Plan "X" von 01.12.2017 bis einschließlich 31.12.2017:
Ein Datum wird immer als <code>DD.MM.YYYY</code> übertragen.
<nowiki>http://localhost:4480/EmployeeDayIntervals?planCode=X&begin=01.12.2017&end=31.12.2017</nowiki>


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:
==== Schema für URL-Kodierung ====
<nowiki>http://localhost:4480/EmployeeDayIntervals?begin=01.12.2017&end=31.12.2017&resourcesBson={"employeeIDs":["E1","E2","E3"],"planCodes":["P1","P2","P3"]}</nowiki>


Alle Tagesinformationen von Personal mit Personalnummer "20" von 05.12.2017 bis einschließlich 07.12.2017, alle Status:
Der [https://de.wikipedia.org/wiki/URL-Encoding Prozent-Encodierte] [https://de.wikipedia.org/wiki/Query-String Query-String] der URL muss folgendes Format haben. Parameter in eckigen Klammern sind optional:
<nowiki>http://localhost:4480/EmployeeDayIntervals?id=20&begin=05.12.2017&end=07.12.2017&allstates=true</nowiki>


= Ergebnis =
'''/GetEmployees'''
[?from=]
[&end=]


Tagesinformation im [https://www.json.org/ JSON-Format] UTF8 codiert in der Form:
{| class="wikitable"
! Parameter !! Wertebereich !! Beschreibung
|-
| <code>from</code> || Datum || Beginn des abzufragenden Zeitbereichs, falls nicht angegeben '''minus unendlich'''
|-
| <code>end</code> || Datum || Ende des abzufragenden Zeitbereichs, falls nicht angegeben '''plus unendlich'''
|}


{ "Employees" : [
=== Formatierung der Ausgabe ===
{ "EmployeeID" : "string"
, "Surname" : "string"
, "Forename" : "string"
, "MasterAllocation" : "string"
, "EmployeeJobGroup" : "string"
, "Days" : [
{ "ForDate" : "string"
, "ForState" : "string"
, "TextCategory" : "string"
, "InfoText" : "string"
, "DayPlanSymbol" : "string"
, "DayShift1" : "string"
, "DayShift2" : "string"
, "DayRequestKind" : "string"
, "DayTotalMinutesComputed" : "float"
, "DayIntervals" : [
{ "From" : "string"
, "To" : "string"
, "DayIntervalPlanSymbol" : "string"
        , "DayIntervalInfoTextCategory" : "string"
, "DayIntervalInfoText" : "string"
}
]}
]}
]}


Glossar:
Personalstammdaten im [https://www.json.org/ JSON-Format] UTF8 codiert. Das JSON-Objekt hat folgendes [https://json-schema.org/ JSON-Schema]:
* 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
* InfoText: Text auf Tag
* DayPlanSymbol: Abwesenheit auf Tag (nur Planungscodes mit Typ "Abwesenheit")
* DayShift1: Dienst 1 auf Tag
* DayShift2: Dienst 2 auf Tag
* DayRequestKind: Aufgabe auf Tag
* DayTotalMinutesComputed: Total in Minuten aus Status
* DayIntervals: Array aller Kommt/Geht-Zeiten
* From: Komme
* To: Gehe
* DayIntervalPlanSymbol: Abwesenheit auf Kommt/Geht (nur Planungscodes mit Typ "Abwesenheit")
* DayIntervalInfoText: Text auf Kommt/Geht


= Beispiel =
<div class=" mw-collapsible mw-collapsed" overflow:auto;">
[[Datei:EmployeeDayIntervalsExample.txt]]
<div>'''JSON-Schema Datei'''</div>
<div class="mw-collapsible-content">
{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "GetEmployees",
    "description": "format for the GetEmployees-Webservice",
    "type": "object",
    "properties": {
        "Employees": {
            "type": "array",
            "description": "Array der Personen",
            "items": {
                "type": "object",
                "properties": {
                    "EmployeeID": {
                        "type": "string",
                        "description": "Personalnummer"
                    },
                    "Surname": {
                        "type": "string",
                        "description": "Zuname"
                    },
                    "Forename": {
                        "type": "string",
                        "description": "Vorname"
                    },
                    "DayOfBirth": {
                        "type": "string",
                        "description": "Geburtstag"
                    },
                    "EmployeeSignature": {
                        "type": "string",
                        "description": "Handzeichen für Pflegedoku"
                    },
                    "Sex": {
                        "type": "string",
                        "description": "Geschlecht"
                    },
                    "EmployeeJobGroup": {
                        "type": "string",
                        "description": "Berufsgruppe (externe Referenz)"
                    },
                    "MasterAllocation": {
                        "type": "string",
                        "description": "Stammplanungseinheit (externe Referenz)"
                    },
                    "EmployeeQualifications": {
                        "type": "array",
                        "description": "Array der Qualifikationen",
                        "items": {
                            "type": "string",
                            "description": "Qualifikation (externe Referenz)"
                        }
                    },
                    "EmployeeEmailAddress": {
                        "type": "string",
                        "description": "Email"
                    },
                    "EmployeePhoneNumber": {
                        "type": "string",
                        "description": "Telefonnummer"
                    },
                    "EmployeeSocialInsurance": {
                        "type": "string",
                        "description": "Sozialversicherungsnummer"
                    },
                    "EmployeeStreet": {
                        "type": "string",
                        "description": "Straße"
                    },
                    "EmployeeCity": {
                        "type": "string",
                        "description": "Stadt"
                    },
                    "PostalCode": {
                        "type": "string",
                        "description": "Postleitzahl"
                    },
                    "ForNation": {
                        "type": "string",
                        "description": "Land"
                    },
                    "EmployeeLastEmployedFrom": {
                        "type": "string",
                        "description": "Eintritt"
                    },
                    "EmployeeLastEmployedTo": {
                        "type": "string",
                        "description": "Austritt"
                    }
                }
            }
        }
    }
}
</div></div>


== Beispielanfragen ==


[[Kategorie:Neu ab Version 2018.04]]
{| class="wikitable"
! Beschreibung !! URL
|-
| '''gesamte''' Personalstammdaten || <code>/GetEmployees</code>
|-
| Personalstammdaten von  '''05.12.2017''' bis einschließlich '''07.12.2017'''
|| <code>/GetEmployees?id=20&from=05.12.2017&end=07.12.2017</code>
|-
|}
 
==Beispielausgabe==
 
<div class=" mw-collapsible mw-collapsed" overflow:auto;">
<div>'''JSON-Datei einer Ausgabe'''</div>
<div class="mw-collapsible-content">
{
  "Employees": [
    {
      "EmployeeID": "123",
      "Surname": "Mayr",
      "Forename": "Max",
      "DayOfBirth": "01.01.1981",
      "EmployeeSignature": "MYM",
      "Sex": "männlich",
      "MasterAllocation": "S1",
      "EmployeeJobGroup": "Berufsgruppe1",
      "EmployeeQualifications": [
        "SP",
        "V"
      ],
      "EmployeeEmailAddress": "mayr@mail.com",
      "EmployeePhoneNumber": "07252 / 82 68 5",
      "EmployeeSocialInsurance": "1234",
      "EmployeeStreet": "Gleinkergasse 50",
      "EmployeeCity": "Steyr",
      "PostalCode": "4400",
      "ForNation": "Österreich",
      "EmployeeLastEmployedFrom": "01.08.2020",
      "EmployeeLastEmployedTo": "31.12.2099"
    },
    {
      "EmployeeID": "345",
      "Surname": "Huber",
      "Forename": "Franz",
      "DayOfBirth": "01.02.1983",
      "EmployeeSignature": "HUF",
      "Sex": "männlich",
      "MasterAllocation": "S1",
      "EmployeeJobGroup": "Berufsgruppe1",
      "EmployeeQualifications": [
        "SP"
      ],
      "EmployeeEmailAddress": "huber@mail.com",
      "EmployeePhoneNumber": "07252 / 4400 12345",
      "EmployeeSocialInsurance": "4321",
      "EmployeeStreet": "Fischergasse 22",
      "EmployeeCity": "Steyr",
      "PostalCode": "4400",
      "ForNation": "Österreich",
      "EmployeeLastEmployedFrom": "01.08.2020",
      "EmployeeLastEmployedTo": "31.12.2099"
    },
    {
      "EmployeeID": "567",
      "Surname": "Müller",
      "Forename": "Hilde",
      "DayOfBirth": "09.03.1985",
      "EmployeeSignature": "MUH",
      "Sex": "weiblich",
      "MasterAllocation": "S2",
      "EmployeeJobGroup": "Berufsgruppe1",
      "EmployeeQualifications": [
        "V"
      ],
      "EmployeeEmailAddress": "mueller@mail.com",
      "EmployeePhoneNumber": "0732 / 4010 98765",
      "EmployeeSocialInsurance": "9999",
      "EmployeeStreet": "Kirchengasse 57",
      "EmployeeCity": "Linz",
      "PostalCode": "4010",
      "ForNation": "Österreich",
      "EmployeeLastEmployedFrom": "01.08.2020",
      "EmployeeLastEmployedTo": "31.12.2099"
    }
  ]
}
</div></div>
 
== Fußnoten ==
 
[[Kategorie:Schnittstellen]]
[[Kategorie:Webservice]]

Aktuelle Version vom 12. Januar 2023, 09:40 Uhr

Das Webservice - Personalstammdaten Export ist eine Programmfunktion zur Abfrage von Personalstammdaten für einen Zeitbereich.

Es kann dazu verwendet werden die Personalstammdaten Fremdsystemen zur maschinellen Weiterverarbeitung zur Verfügung zu stellen.

Personal welches mit Löschen umschalten versteckt wurde ist nicht im Ergebnis enthalten.

Unter Systemeinstellungen: WebApiServer Einstellungen: zu exportierende Personalstamm-Eigenschaften können zusätzliche Personal-Eigenschaften in einer Ansicht gesammelt werden, welche auch exportiert werden. [1]

Ausgangssituation

Voraussetzungen

Neben den Voraussetzungen für den Betrieb eines Webservice muss das richtige Plugin konfiguriert sein.

Das Webservice stellt dann folgende Zugriffspfade zur Verfügung:

  • /GetEmployees

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:

/GetEmployees
[?from=]
[&end=]
Parameter Wertebereich Beschreibung
from Datum Beginn des abzufragenden Zeitbereichs, falls nicht angegeben minus unendlich
end Datum Ende des abzufragenden Zeitbereichs, falls nicht angegeben plus unendlich

Formatierung der Ausgabe

Personalstammdaten im JSON-Format UTF8 codiert. Das JSON-Objekt hat folgendes JSON-Schema:

JSON-Schema Datei
{
   "$schema": "https://json-schema.org/draft/2020-12/schema",
   "title": "GetEmployees",
   "description": "format for the GetEmployees-Webservice",
   "type": "object",
   "properties": {
       "Employees": {
           "type": "array",
           "description": "Array der Personen",
           "items": {
               "type": "object",
               "properties": {
                   "EmployeeID": {
                       "type": "string",
                       "description": "Personalnummer"
                   },
                   "Surname": {
                       "type": "string",
                       "description": "Zuname"
                   },
                   "Forename": {
                       "type": "string",
                       "description": "Vorname"
                   },
                   "DayOfBirth": {
                       "type": "string",
                       "description": "Geburtstag"
                   },
                   "EmployeeSignature": {
                       "type": "string",
                       "description": "Handzeichen für Pflegedoku"
                   },
                   "Sex": {
                       "type": "string",
                       "description": "Geschlecht"
                   },
                   "EmployeeJobGroup": {
                       "type": "string",
                       "description": "Berufsgruppe (externe Referenz)"
                   },
                   "MasterAllocation": {
                       "type": "string",
                       "description": "Stammplanungseinheit (externe Referenz)"
                   },
                   "EmployeeQualifications": {
                       "type": "array",
                       "description": "Array der Qualifikationen",
                       "items": {
                           "type": "string",
                           "description": "Qualifikation (externe Referenz)"
                       }
                   },
                   "EmployeeEmailAddress": {
                       "type": "string",
                       "description": "Email"
                   },
                   "EmployeePhoneNumber": {
                       "type": "string",
                       "description": "Telefonnummer"
                   },
                   "EmployeeSocialInsurance": {
                       "type": "string",
                       "description": "Sozialversicherungsnummer"
                   },
                   "EmployeeStreet": {
                       "type": "string",
                       "description": "Straße"
                   },
                   "EmployeeCity": {
                       "type": "string",
                       "description": "Stadt"
                   },
                   "PostalCode": {
                       "type": "string",
                       "description": "Postleitzahl"
                   },
                   "ForNation": {
                       "type": "string",
                       "description": "Land"
                   },
                   "EmployeeLastEmployedFrom": {
                       "type": "string",
                       "description": "Eintritt"
                   },
                   "EmployeeLastEmployedTo": {
                       "type": "string",
                       "description": "Austritt"
                   }
               }
           }
       }
   }
}

Beispielanfragen

Beschreibung URL
gesamte Personalstammdaten /GetEmployees
Personalstammdaten von 05.12.2017 bis einschließlich 07.12.2017 /GetEmployees?id=20&from=05.12.2017&end=07.12.2017

Beispielausgabe

JSON-Datei einer Ausgabe
{
 "Employees": [
   {
     "EmployeeID": "123",
     "Surname": "Mayr",
     "Forename": "Max",
     "DayOfBirth": "01.01.1981",
     "EmployeeSignature": "MYM",
     "Sex": "männlich",
     "MasterAllocation": "S1",
     "EmployeeJobGroup": "Berufsgruppe1",
     "EmployeeQualifications": [
       "SP",
       "V"
     ],
     "EmployeeEmailAddress": "mayr@mail.com",
     "EmployeePhoneNumber": "07252 / 82 68 5",
     "EmployeeSocialInsurance": "1234",
     "EmployeeStreet": "Gleinkergasse 50",
     "EmployeeCity": "Steyr",
     "PostalCode": "4400",
     "ForNation": "Österreich",
     "EmployeeLastEmployedFrom": "01.08.2020",
     "EmployeeLastEmployedTo": "31.12.2099"
   },
   {
     "EmployeeID": "345",
     "Surname": "Huber",
     "Forename": "Franz",
     "DayOfBirth": "01.02.1983",
     "EmployeeSignature": "HUF",
     "Sex": "männlich",
     "MasterAllocation": "S1",
     "EmployeeJobGroup": "Berufsgruppe1",
     "EmployeeQualifications": [
       "SP"
     ],
     "EmployeeEmailAddress": "huber@mail.com",
     "EmployeePhoneNumber": "07252 / 4400 12345",
     "EmployeeSocialInsurance": "4321",
     "EmployeeStreet": "Fischergasse 22",
     "EmployeeCity": "Steyr",
     "PostalCode": "4400",
     "ForNation": "Österreich",
     "EmployeeLastEmployedFrom": "01.08.2020",
     "EmployeeLastEmployedTo": "31.12.2099"
   },
   {
     "EmployeeID": "567",
     "Surname": "Müller",
     "Forename": "Hilde",
     "DayOfBirth": "09.03.1985",
     "EmployeeSignature": "MUH",
     "Sex": "weiblich",
     "MasterAllocation": "S2",
     "EmployeeJobGroup": "Berufsgruppe1",
     "EmployeeQualifications": [
       "V"
     ],
     "EmployeeEmailAddress": "mueller@mail.com",
     "EmployeePhoneNumber": "0732 / 4010 98765",
     "EmployeeSocialInsurance": "9999",
     "EmployeeStreet": "Kirchengasse 57",
     "EmployeeCity": "Linz",
     "PostalCode": "4010",
     "ForNation": "Österreich",
     "EmployeeLastEmployedFrom": "01.08.2020",
     "EmployeeLastEmployedTo": "31.12.2099"
   }
 ]
}

Fußnoten