WARP API
- Former user (Deleted)
- Dennis Balzuweit
Übersicht
Der CLARC WARP Service verfügt über einen integrierten HTTP Web Service zum Upload von Blob- und Metainformationen in die CLARC ENTERPRISE Verarbeitungsqueue.
Blob- und Metainformationen können getrennt voneinander oder in kombinierter Form via HTTP PUT übertragen werden. Zur Übertragung der Daten wird das standardisierte CLARC Document XML Format verwendet (siehe CLARC Document XML Format).
Die Übertragung der Daten erfolgt synchron mit entsprechender Rückmeldung.
Blob Upload
Über den HTTP PUT Blob-Upload werden die Blob-Daten 1:1 an den Server übertragen. Am Server werden die Blobs mit einer eindeutigen Id versehen und lokal zwischengespeichert.
Der HTTP Stream beinhaltet die Quelldatei im binären, unkomprimierten und nicht verschlüsselten Format. Die Übergabe der Extension ist optional. Ansonsten wird aus dem Content-Type des Streams die Extension ermittelt.
Bei erfolgreicher Übermittlung gibt der Server den HTTP Code 201 (Created) zurück.
Zusätzlich werden im HTTP Header folgende Parameter-Informationen zurückgeliefert:
BlobId: Id des Blobs BlobHash: MD5 Hash zur Übertragungsprüfung
Die zurückgelieferte Blob Id des Servers kann später im Document Upload als Referenz verwendet werden.
Beispiel-Url:
http(s)://<Server:Port>/ccblobupload?extension=.pdf
Die Übergabe der Extension ist optional. Wird der Parameter nicht angegeben, wird die Extension aus dem Content-Type des HTTP Streams ermittelt.
Document Upload
Über den Document Upload werden ganze Dokumente an den Server übertragen. Dokumente enthalten Blob- und/oder Metainformationen, inkl. Positionsdaten und optional Prozesssteuerdaten. Bei der Übertragung kann dem Dokument optional in der Url ein Queue-Status mit übergeben werden. Dieser kann folgende Werte annehmen: IDLE oder ONHOLD.
Details zum CLARC Document Format finden Sie im Bereich CLARC Document XML Format.
Die Daten werden via HTTP PUT wahlweise als XML oder ZIP Stream an den Server übertragen. Der Server quittiert die erfolgreiche Überleitung in die Verarbeitungsqueue mit einem HTTP Code 201 (Created).
Zusätzlich werden im HTTP Header folgende Parameter-Informationen zurückgeliefert:
DocumentId: Id des Dokuments
Die Id des Dokuments wird entweder im XML vorgegeben oder am Server, falls erforderlich, erzeugt. Über die DocumentId kann der Lebenszyklus des Dokuments im System nachvollzogen werden. Sieh dazu auch Logging-Tabelle.
Beispiel-Url:
http(s)://<Server:Port>/ccdocupload?queuestate=n
Die Angabe von QueueState ist optional und kann einer der folgenden Werte sein:
- IDLE
- ONHOLD
Wird QueueState nicht übergeben, wird der Wert (State) aus dem Document XML herangezogen.
Document Processing
Mit der Document Processing Funktion können Dokumente zustandslos und ohne Queue-Eintrag verarbeitet werden.
http(s)://<Server:Port>/ccprocessdocument?scriptscheme=<Scheme-Name>
Die Daten werden via HTTP PUT als XML Stream im CLARC Document XML Format übergeben.
Beispiel Script
Beispielscript für den Upload eines Dokuments an den WARP Webservice:
HTTP := TccHTTP.Create; Document := TccDocument.Create; try Document.AddBlob('c:\temp\example.pdf'); Document.SetFieldValue('IntExample','ExtExample','Hello World!'); HTTP.Request.ContentText := Document.XML; HTTP.Request.Command := ccHC_Put; HTTP.Put('https://localhost:4420/ccdocupload'); if HTTP.Response.Code = 201 then begin ShowMessage('Upload done'); end; finally Document.Free; HTTP.Free; end;
Alternativ kann ein Dokument direkt über die entsprechende Methode TccDocument.Upload an eine WARP Instanz hochgeladen werden.