WARP API

Ü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.