Aktionen über REST API ausführen

Dolibarr v16.0.1

Grüezi!

Kann man über das REST API auch Aktionen wie den Versand einer E-Mail oder die Erzeugung einer PDF anstossen? Falls ja, ein Beispiel (egal in welcher Sprache) wäre hilfreich. Wenn nicht, wäre der direkte Weg über HTTP GET bzw. POST erfolgversprechend?

Frank

Hallo Frank,

an sich sollte dies auch mit REST gehen, was für ein Szenario schwebt dir denn vor?
Ich hätte jetzt pauschal eine PHP Datei zur Verfügung gestellt welche deine Logik bei Aufruf ausführt, wäre dies eine Option?

Hallo Malte,

Ich nutze das REST API mit Java. In Swagger vermisse ich „actions“ oder „emails“ über die ich das gleiche Auslösen kann, als würde im GUI „SEND EMAIL“ gedrückt. In der Order Card steht z.B. der Button für den Link „…/dolibarr/commande/card.php?action=presend…“. - nur soll statt „presend“ ein „send“ ausgeführt werden. Ginge sowas mit deinem Modul?

Gruss
Frank

Hallo Frank,

ich versuche mal hierzu eine Antwort zu geben. Dazu je Use Case getrennte antworten:

  1. Erzeugung einer PDF:
    Dies ist über die Rest API möglich. Dafür ist ist der Endpunkt /documents/builddoc zuständig. Anbei ein Bild des richtigen Enpunktes im API Explorer. Im Prinzip muss ein JSON Objekt übergeben werden, damit der Endpunkt weiß was generiert werden soll. Anbei ein Beispiel für eine Rechung als Curl Request (kann der API Explorer generieren):
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'DOLAPIKEY: <APIKEY hier reinpacken>' -d '{ \ 
   "modulepart": "invoice", \ 
   "original_file": "FA2305-0001/FA2305-0001.pdf" \ 
 }' 'https://dolibarr.dummydomain.de/api/index.php/documents/builddoc'

Der Endpunkt sorgt dafür, dass die Datei neu generiert wird und der Endpunkt gibt auch das PDF als base64 String zurück, sodass man damit ggf. im externen Tool weiter arbeiten kann.

  1. Versand einer E-Mail:
    Hier kenne ich bisher keinen Rest Endpunkt, welcher so etwas ermöglicht. Es wäre im Prinzip möglich dies mit einem Modul zu erreichen wo die gewünschte Logik hinterlegt werden kann. Allerdings gibt es in Dolibarr keine Möglichkeit die API einfach zu erweitern, d.h. man muss das neue API File an die richtige Stelle im Core kopieren. (Falls jemand eine Möglichkeit gefunden hat, gerne hier teilen). Ich hatte sowas mal für einen Kunden gemacht, welcher per API drucken wollte.

Gruß Sven