abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

DATEV Connect - Lohn und Gehalt Schnittstellendokumentation

2
letzte Antwort am 24.10.2019 09:08:27 von timoschneider
Dieser Beitrag ist geschlossen
0 Personen hatten auch diese Frage
timoschneider
Einsteiger
Offline Online
Nachricht 1 von 3
528 Mal angesehen

Hallo,

ich bin gerade dabei eine Web-Application über DATEVConnect an unsere DATEV Welt anzuschließen.

Wenn ich nun in das Programm Lohn und Gehalt z.B. Urlaubstage einspielen möchte komme ich in folgendes Problem:

Mein JSON für den Post:

{

"personnel_number":600,

"date_of_emergence":"2019-10-01",

"reason_for_absence_id":"U",

"salary_type_id":null,

"hours":"8,0",

"days":"1,0",

"differing_factor":null,

"differing_pay_change":null,

"cost_center_id":null,

"cost_unit_id":null

Die Antwort der Schnittstelle:

{"error":"LN22616","error_description":"The field 'hours' could not be set.","request_id":"17c785a5-fe70-4f4d-a3df-841bc3b8e28d","additional_messages":[{"id":"LN01473","description":"Fehler #LN01473: Sie haben einen ungültigen Wert für 'Tagesstunden' eingegeben.  Geben Sie einen Wert zwischen 0 und 24 ein.","severity":"Error"},{"id":"LN22616","description":"The field 'hours' could not be set.","severity":"Error"}]}

Laut Doku erwartet er folgendes:

{

"id":"4942508253511680",

"personnel_number":"4938600418377728",

"date_of_emergence":"Sun Aug 05",

"accounting_month":"4903430971892392",

"reason_for_absence_id":"4411877895438336",

"salary_type_id":"3.54815744",

"hours":"33.7279828",

"days":"48.63628305",

"differing_factor":"6.67678359",

"differing_pay_change":"40.62746931",

"cost_center_id":"34.55",

"cost_unit_id":"6.09",

}

------ Original ------

CURLOPT_POSTFIELDS => "{\"id\":\"2378841504874496\",\"personnel_number\":\"2048567797612544\",\"date_of_emergence\":\"Sat Apr 28\",\"accounting_month\":\"4305767431281359\",\"reason_for_absence_id\":\"8873551643803648\",\"salary_type_id\":37.256394,\"hours\":80.88343309,\"days\":1.12220381,\"differing_factor\":23.97908156,\"differing_pay_change\":3.31464982,\"cost_center_id\":\"32.29\",\"cost_unit_id\":\"91.8\"}",

Das Feld ID wird nicht mit gesendet wie in der Doku beschrieben da er sonst anfängt nach der ID zu suchen und keine Übereinstimmung findet.

Laut der Fehlermeldung soll ich eine Ganzzahl angeben für die täglichen Arbeitsstunden, in der Doku handelt es sich um eine Zahl (double - Gleitkommazahl), da ja auch 4,5h möglich sind. Die Schnittstelle möchte auch alle Zahlen mit einem "," getrennt statt üblich mit einem ".".

Habe ich bei mir was übersehen oder ist das ein generelles Problem ?

Grüße

Timo Schneider

einmalnoch
Experte
Offline Online
Nachricht 2 von 3
342 Mal angesehen

Ohne mich jetzt mit der Schnittstelle befasst zu haben fällt mir auf, dass Sie sagen, die Stunden werden als double übergeben. Sie übergeben aber die Stunden in Hochkommata, also string. Deutlich zu sehen an "personal_number":600.

(Der Punkt ist Satzzeichen)

„Einen guten Ruf erwirbt man sich nicht mit Dingen, die man erst machen will.“ - Henry Ford
0 Kudos
timoschneider
Einsteiger
Offline Online
Nachricht 3 von 3
342 Mal angesehen

Hallo,

ich habe es schon als Integer,Double und beide Formate als String versucht zu übergeben. Ich habe es hier bewusst in die Hochkommas gestellt, da dies das Format ist welches im Developer Portal vorgegeben wird.

Grüße

Edit: Ich habe meinen ersten Post auf das Format in der Doku angepasst.

0 Kudos
2
letzte Antwort am 24.10.2019 09:08:27 von timoschneider
Dieser Beitrag ist geschlossen
0 Personen hatten auch diese Frage