Bearbeitet von
0 0 Punkte

Hallo,

wir möchten durch eine REST API Aufruf Lieferscheine erstellen. Wie in der Dokumentation beschrieben wird, habe ich versucht das mit "curl" zunächst zu erledigen. Ich habe die raue Anfragedaten aus Browser-Anfrage kopiert, um zu schauen, was ich übergeben soll. Es gibt aber sehr viele Felder und dazu noch scheint das ganze so zu funktionieren, dass man zunächst "erneuern" ausführen soll und erst danach kann man einen neuen Lieferschein "speichern" (also action=update und action=save in der Anfragedaten). Und vllt. gibt es noch weitere Schwierigkeiten, die ich noch nicht entdeckt habe.

Ich interessiere mich aktuell an eine "Mindestanfrage", was für Daten müssen übergeben werden, um einen maximal einfachen Lieferschein zu erstellen. Ich habe versucht das rauszufinden, indem ich die in Browser per Anfrage übergebene Daten analysiere sowie die 2 Datenbanktabellen: delivery_orders, delivery_order_items. Das folgende konnte ich dann basteln:

curl --user 'benutzername:passwort' 'http://localhost:8090/kivitendo/do.pl' --data-raw 'runningnumber_1=1&partnumber_1=2&type=sales_delivery_order&formname=sales_delivery_order&action=save'

Das erzeugt leider keine delivery_order_items und keine delivery_orders. Die Anfrage liefert auch anscheinend keine Daten zurück, sodass ich nicht weiß, ob es einen Fehler gab.

In einem so erstellten Lieferschein brauchen wir das folgende zu speichern:
- Auf welches Projekt sich der Lieferschein bezieht
- Positionen des Lieferscheines
- alles andere, was "muss" ist.

Wie kann ich rausfinden, wie ich die "Mindestanfrage" erfolgreich erstelle, sodass ein Lieferschein mit Positionen in der Datenbank gespeichert wird?

Gibt es irgendwelche Logs, die auch die REST API Vorgänge protokollieren? Oder wie kann ich anders irgendeinen Feedback vom System im Bezug auf die Anfragen bekommen?

Vielen Dank im Vorab.

Mit freundlichen Grüßen
Roman

1 Antwort

Beste Antwort
0 0 Punkte

Eigentlich gibt es nur eine API, um Telefonanlagen (3cx) mit kivitendo zu verbinden.

Das ist eigentlich genau das Beispiel in der Doku:
https://www.kivitendo.de/kivi/doc/html/ch04s03.html

Um einen LIeferschein per API zu erzeugen würde ich eher einen Controller wie bei den Telefonnummern einsetzen (SL/Controller/PhoneNumber.pm) oder etwas technischer:

perldoc SL/Controller/PhoneNumber.pm 

So einen Controller für Lieferscheine bräuchtest Du eigentlich. Der würde dann auf ein POST reagieren und probieren einen Lieferschein anzulegen.

So wie du es jetzt probierst, also mit Hilfe von bin/mozilla/do.pl müsstest du in der Tat den Browser des Anwenders simulieren.

Alternativ gibt es den CSV-Import von Lieferscheinen.

Für Kundenprojekte nutzen wir den CSV-Import und erstellen einen kivi-Hintergrundjob der dann die andere Anwendung nach neuen Daten fragt und diese dann direkt an den CSV-Import übergibt.

Letzteres ist vielleicht die etwas weniger aufwändige Alternative.

ausgewählt von

Ähnliche Fragen

0 0 Punkte
1 answers 1 Antwort
rreimche Gefragt 21, Aug 2021
Wenn man in Browser einloggt, wählt man einen Mandanten, sodass das System dann weiß, welche Datenbank es verwenden soll. Die [Dokumentation] sagt nichts vom Mandanten...
0 0 Punkte
1 1 Antwort
fortschritt Gefragt 5, Mai 2021
Hallo zusammen, ich habe mich mal dran versucht den Webshop einzurichten. Leider bisher ohne Erfolg. Ich nutze Drupal 7 i.v.m. Ubercart3 als Webshop. Eine REST API steht ...
0 0 Punkte
1 1 Antwort
Anonym Gefragt 21, Jan 2014
Hi, ich wollte eben einen Lieferschein erstellen, bisher hatte ich damit keinerlei Probleme. Heute habe ich diesen Fehler erhalten: Can't use string ("21.01.2014") as an ...
0 0 Punkte
1 1 Antwort
Simon_L. Gefragt 10, Feb 2023
Hallo liebe Community, ich bin schon seit vielen Jahren begeisteter Kivi-Nutzer. Gerade bin ich dabei, im Zuge der Automatisierung von Online-Bestellungen einige Prozesse...
0 0 Punkte
1 1 Antwort
rreimche Gefragt 8, Mai 2024
Hallo, wir haben das System, aktuell in einer parallelen TestInstallation, bis auf 3.9 aktualisiert und bereits wie [hier] besprochen einiges korrigiert. Jetzt haben wir...