Please enable JavaScript to view this site.

Das Handbuch für den JobRouter Entwickler

Möchten Sie ein Dokument in einem JobRouter-Archiv ablegen, verwenden Sie die POST-Route /application/jobarchive/archives/:archive/documents. Mit dem archive-Parameter geben Sie das Archiv an (Archiv-GUID oder Archivtabelle). Dateien und Indexdaten werden in dem HTTP-Request-Body übertragen:

Array files – Beinhaltet die Dokument-Dateien

Array indexFields – Beinhaltet Indexdaten

Array keywordFields Beinhaltet Schlüsselwörter

Die Indexdaten werden folgendermaßen aufgebaut:

indexFields[<Index>][name] Beinhaltet den Indexfeldname (wie in der Archivkonfiguration definiert)

indexFields[<Index>][value] – Beinhaltet den Indexfeldwert

Derselbe Index identifiziert ein Name-/Wert-Paar. Die Schlüsselworte folgen den gleichen Muster, allerdings können pro Schlüsselwort mehrere Werte angegeben werden (kommagetrennt unter dem Schlüssel keywords).

Beispiele für Indexdaten

indexFields[0][name] = 'document_type'

indexFields[0][value] = 'Rechnung'

keywordFields[0][name] = 'tag'

keywordFields[0][keywords] = 'Finanzen,Buchhaltung'

Bitte beachten Sie: Nur Benutzer mit einem Archivprofil können Dokumente ins Archiv ablegen.

Antwort

Die Antwort ist im JSON-Format und beinhaltet die ID des archivierten Dokuments, sowie die URLs zum Download der Hauptdatei, der Anhänge und aller Dokument-Dateien:

{

    "archivedocumentrevisions": [

        {

            "revisionId": 12345

        }

    ],

    "meta": {

        "locations": [

            "...\/0E4C6620-B576-D6A0-F919-61B3F2EEBA78\/documents\/12345\/file",

            "...\/0E4C6620-B576-D6A0-F919-61B3F2EEBA78\/documents\/12345\/files",

            "...\/0E4C6620-B576-D6A0-F919-61B3F2EEBA78\/documents\/12345\/clippedfiles"

        ]

    }

}

Beispiel: Dokument mit zwei Dateien und Indexdaten archivieren

guzzlehttp

// Benutzer wurde bereits authentifiziert

 

// Dateien und Indexdaten definieren

$documentContentAndMetaData = [

  [

    'name' => 'indexFields[0][name]',

    'contents' => 'title_field',

  ],

  [

    'name' => 'indexFields[0][value]',

    'contents' => 'Mein REST-Beispiel mit guzzlehttp',

  ],

  [

    'name' => 'indexFields[1][name]',

    'contents' => 'number_field',

  ],

  [

    'name' => 'indexFields[1][value]',

    'contents' => '123',

  ],

  [

    'name' => 'indexFields[2][name]',

    'contents' => 'date_field',

  ],

  [

    'name' => 'indexFields[2][value]',

    'contents' => '2018-09-21T11:20:40+01:00',

  ],

  [

    'name' => 'keywordFields[0][name]',

    'contents' => 'tags_field',

  ],

  [

    'name' => 'keywordFields[0][keywords]',

    'contents' => 'REST',

  ],

  [

    'name' => 'files[0]',

    'contents' => fopen('/path/to/my/rest/file.pdf', 'r'),

  ],

  [

    'name' => 'files[1]',

    'contents' => fopen('/path/to/my/rest/note.txt', 'r'),

  ],

];

 

try {

 

    $response = $client->request(

        'POST',

        'application/jobarchive/archives/invoices/documents',

        [

            'multipart' => $documentContentAndMetaData,

        ]

    );

 

    if ($response->getStatusCode() == 201) {

        $body = json_decode($response->getBody(), true);

        echo "Dokument-ID: ";

        echo $body['archivedocumentrevisions'][0]['revisionId'] . "\n";

    }

 

} catch (Exception $e) {

    echo "Fehler beim Ausführen: " . $e->getMessage() . "\n";

}

 

// Benutzer-Session beenden

cURL

// Benutzer wurde bereits authentifiziert

 

// Dateien und Indexfelder definieren

$mainFile = new CURLFile('/path/to/invoice/file.pdf');

$clippedFile = new CURLFile('/path/to/invoice/note.txt');

 

$documentContentAndMetaData = [

    'indexFields[0][name]' => 'title_field',

    'indexFields[0][value]' => 'Mein REST-Beispiel mit cURL',

    'indexFields[1][name]' => 'number_field',

    'indexFields[1][value]' => 321,

    'indexFields[2][name]' => 'date_field',

    'indexFields[2][value]' => '2018-09-21T11:20:40+01:00',

    'keywordFields[0][name]' => 'tags_field',

    'keywordFields[0][keywords]' => 'REST',

    'files[0]' => $mainFile,

    'files[1] => $clippedFile

];

 

curl_setopt($curlHandle, CURLOPT_URL,

    'http://example.org/jobrouter/api/rest/v2/application/' .

    'jobarchive/archives/invoices/documents');

curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curlHandle, CURLOPT_POST, 1);

curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $documentContentAndMetaData);

curl_setopt($curlHandle, CURLOPT_COOKIEFILE, 'path/to/cookie/file.cookie');

 

$response = curl_exec($curlHandle);

$statusCode = curl_getinfo($curlHandle, CURLINFO_HTTP_CODE);

 

curl_close();

 

if ($statusCode == 200) {

    $documentData = json_decode($response, true);

    echo "Dokument-ID: ";

    echo $documentData['archivedocumentrevisions'][0]['revisionId'] . "\n";

} else {

    echo "Fehler beim Ausführen: Code - " . $statusCode . ", ";

    echo "Response: " . var_export($response, true);

}

 

// Benutzer-Session beenden