Odesílání dokumentů přes API

Tato dokumentace poskytuje podrobný návod, jak odesílat dokumenty z Team Assistant (TAS) přes rozhraní API. Proces zahrnuje načtení ID dokumentů z úložného systému Team Assistant, export dokumentů, jejich zakódování v případě potřeby a jejich odeslání do externího systému pomocí požadavku API.

V závislosti na integraci API lze dokument načíst jako fyzický soubor nebo obsah kódovaný base64 .

Klíčové funkce v procesu

1. Načítání dokumentů

Chcete-li odeslat dokument, prvním krokem je extrahovat dokument z úložného systému Team Assistant. To zahrnuje načtení ID dokumentu a načtení jeho obsahu ve formátu vhodném pro přenos.

  • ID dokumentu lze získat pomocí dotazu na DMS Team Assistant.
  • V závislosti na integraci API lze dokument načíst jako fyzický soubor nebo obsah kódovaný base64 .
  • V případě potřeby je soubor před zpracováním dočasně uložen na určené místo.

2. Příprava dokumentu k převodu

Po načtení může dokument vyžadovat další zpracování:

  • Kódování Base64: Pokud rozhraní API očekává řetězec base64, obsah dokumentu se odpovídajícím způsobem zakóduje.
  • Přiřazení názvu souboru: Zajištění správného názvu každého dokumentu před odesláním.
  • Manipulace s více soubory: Pokud je třeba odeslat více dokumentů, jsou před odesláním uloženy do pole.

3. Odesílání dokumentů přes API

Po zpracování je dokument odeslán do externího systému prostřednictvím API požadavku. To zahrnuje:

  • Vytvoření adresy URL koncového bodu API.
  • Konfigurace záhlaví požadavků HTTP, jako jsou ověřovací tokeny a typ obsahu.
  • Připojení dokumentu (buď jako soubor nebo jako řetězec base64) k tělu požadavku.
  • Odeslání požadavku pomocí metody, jako je HTTP POST .
  • Zpracování odpovědi API k potvrzení úspěšného přenosu.

4. Zpracování chyb a protokolování

Pro zajištění hladkého provozu by měly být zavedeny mechanismy pro zpracování chyb:

  • Ověření existence ID dokumentu před pokusem o načtení obsahu.
  • Kontrola, zda odpověď API vrací úspěšný stavový kód .
  • Chyby protokolování a varování, pokud se nahrávání dokumentu nezdaří.
  • Implementace opakování v případě dočasných selhání.

Příklady kódu

Fyzický soubor

/**
* Sends an attached document related to a specific case.
*
* @param {string} documentToSend - The actual name of the document attached to the case.
* @param {string} docNameTarget - Name of the document that you want receiving software to see.
*/
function sendDocument(documentToSend, docNameTarget) {
const dmsEntity = storage.getDmsEntity(documentToSend);
const {
NAME: fileName,
DMSF_ID: doc_id
} = dmsEntity;
if (fileName.toLowerCase().indexOf('.pdf') == -1) debug.error('pdf file only');
const finalFileName = `${docNameTarget}.pdf`;
const tmp = storage.getTmpLibrary();
const {
name
} = tmp.fileSync();

const filePath = `${name}_${finalFileName}`;
proc.warn(`tmp file path: ${filePath}`);
lib.exportAttachment(documentToSend, filePath);

curl.start();
curl.setOpt('URL', 'https://your.url/api/document/add');
curl.setOpt('CUSTOMREQUEST', 'POST');
curl.setOpt('FOLLOWLOCATION', true);
curl.setOpt('FAILONERROR', false);
curl.setOpt('SSL_VERIFYPEER', false);
curl.setOpt('SSL_VERIFYHOST', false);
curl.setOpt('TIMEOUT', 300);
curl.setOpt('HTTPHEADER', [
`Authorization: Bearer xxx`,
`accept: application/json`,
`Content-Type: multipart/form-data`
]);
curl.setOpt('HTTPPOST', [{
name: 'Files',
file: filePath,
type: 'application/pdf'
}]);

const response = curl.perform();
return response;
}

Obsah kódovaný Base64

var fileId = lib.getDMSFileIds('*', ',')
var files = [];

// Create a new Array, with name and content of each file
fileId = fileId.split(',');
for (var i = 0; i < fileId.length; i++) {
var fileContent = storage.getDmsContent(fileId[i], 'base64');
var fileName = variableFileNames[i];
if (fileName) {
files.push({ fileName, fileContent }); } }
var base64String = '';
var namesString = '';
for (let i = 0; i < files.length; i++) {
if (i > 100) {
break;
}
if (i === 0) {
if (typeof files[i]['fileContent'] == 'object') {
base64String = files[i]['fileContent'].toString('base64');
} else {
base64String = files[i]['fileContent']; }

Anna Gernát Updated by Anna Gernát

AI pro smlouvy v Team assistant

Contact

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)