Modul na volání TASu - TAS 2 TAS (zakládání procesů přes API)

Založení případu skrz API

Endpoint Start Process API umožňuje jedním voláním vytvořit nový případ z existující šablony, naplnit proměnné vstupními daty a okamžitě spustit workflow. Operace je atomická — případ buď vznikne kompletně, nebo vůbec.

Dostupné v pluginu apiExtensions od verze 5.7.75 a 5.17

Endpoint

Method: POST

URL: /api/plugins/api-extensions/start-process

Autentizace

Každé volání musí obsahovat Bearer token v HTTP hlavičce:

Authorization: Bearer <accessToken>
Content-Type: application/json

Vygenerování tokenu lze provést na straně aplikace v sekci API Tokeny.

Tělo požadavku

{
"processId": 27, //ID hlavičky (headerId) spouštěného procesu
"data": {
"processVariable1": "value1",
"processVariable2": "value2"
}
}

Pole

Typ

Popis

processId

number

ID hlavičky (šablony) procesu, ze které se případ zakládá

data

object

Klíč–hodnota párů odpovídající proměnným šablony

Podporované typy hodnot v data

Typ

Příklad

String

"value1"

Number

100

Datum (YYYY-MM-DD)

"2025-01-01"

Pole musí existovat na dané šabloně. U výčtových hodnot (LOV) je nutné použít jednu z existujících hodnot, kterou proměnná LOV na šabloně obsahuje — jinak dojde k chybě a případ se nevytvoří.

Příklad volání

try {
const accessToken = 'xxxxxx';
const configStartNewProces = {
method: "post",
url: `/api/plugins/api-extensions/start-process`,
headers: {
"Authorization": `Bearer ${accessToken}`,
"Content-Type": "application/json"
},
data: JSON.stringify({
processId: 27, //ID hlavičky (headerId) spouštěného procesu
data: {
"processVariable1": "value1",
"processVariable2": "value2"
}
})
};
const requestStartNewProces = axios.getAxios().requestRaw(configStartNewProces);
proc.warn(`requestStartNewProces Result`, { requestStartNewProces });
} catch (error) {
proc.warn(`requestStartNewProces error`, { error });
}

Kód nesmí obsahovat async/await — transpiler je doplní automaticky. Ruční použití způsobí chybu při spuštění.

Doporučení pro administrátora

  • Do objektu data doporučujeme přidat proměnnou _isCaseCreatedByAPI s hodnotou "true". Šablona tak okamžitě rozpozná, že případ vznikl přes API, a může na to reagovat v podmínkách nebo routingu.
  • Všechny hodnoty z data jsou dostupné již v úkolu Start — workflow s nimi může pracovat okamžitě (podmínky, routing, rozhodování) bez nutnosti čekat na další krok.

Příklad: "_isCaseCreatedByAPI": "true" — přidej tuto proměnnou do šablony jako textové pole a workflow ji může číst hned od startu.

Chování při chybě

Pokud dojde k jakékoliv chybě (nevalidní vstup, neexistující processId, problém při startu workflow):

  • případ se nevytvoří,
  • žádná data se neuloží,
  • v systému nezůstanou neúplné ani „rozbité" procesy.

Nahrání dokumentu přes API

Tato sekce popisuje, jak z externího systému nahrát dokument do již existujícího případu v TASu přes REST API. Předpokládá se, že případ už existuje a znáte jeho iprocId.

Předpoklady

  • Znáte base URL cílové instance TASu (např. https://vase-instance.teamassistant.app). Všechna API volání směřují na {baseUrl}/api.
  • Máte platný autentizační token (Bearer). Doporučený způsob je dlouhodobý API token (Administrace → API tokeny, od verze 5.17). Na starších verzích získáte token přes přihlášení na /api/authenticate.
  • Znáte iprocId případu, do kterého chcete dokument nahrát.
  • Uživatel, pod kterým token vystupuje, má oprávnění k danému případu.

Autentizace

Každé volání musí obsahovat token v HTTP hlavičce:

Authorization: Bearer <vas_token>
Doporučujeme použít dedikovaný integrační účet a API token navázaný na tento účet. Token vystupuje v kontextu daného uživatele a přebírá jeho role a oprávnění. Získáte tím čistý audit trail a možnost integraci kdykoliv vypnout zneplatněním tokenu.

Získání tokenu (starší verze / bez API tokenu)

Pokud nepoužíváte dlouhodobý API token, přihlaste se a token si vyzvedněte z odpovědi:

Endpoint: POST {baseUrl}/api/authenticate

Tělo (JSON):

{
"username": "INTEGRACE.EXTSYSTEM",
"password": "********",
"grant_type": "password"
}

Z odpovědi použijte vrácený token jako Bearer v dalších voláních.

Nahrání dokumentu

Dokument se nahrává jako multipart/form-data — soubor se posílá jako binární data v poli file, nikoliv jako Base64 v JSON.

Endpoint: POST {baseUrl}/api/dms/upload

Tělo (form-data):

Klíč

Typ

Hodnota

Povinné

file

File

Binární obsah nahrávaného souboru

Ano

filename

Text

Název dokumentu, pod kterým se uloží (např. faktura-2026-001.pdf)

Ano

iprocId

Text

ID případu, do kterého se dokument přiloží

Ano

itaskId

Text

ID úkolu — naváže přílohu na konkrétní úkol. Pro nahrání na case není potřeba.

Ne

Pro nahrání dokumentu do případu stačí iprocId. Parametr itaskId uvádějte jen tehdy, když má být příloha navázaná na konkrétní úkol (např. se zobrazuje na jeho formuláři).

Příklad — cURL
curl -X POST "https://vase-instance.teamassistant.app/api/dms/upload" \
-H "Authorization: Bearer <vas_token>" \
-F "file=@/cesta/k/souboru/faktura.pdf" \
-F "filename=faktura-2026-001.pdf" \
-F "iprocId=155286"

Příklad — Node.js (axios + form-data)
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

const baseUrl = 'https://vase-instance.teamassistant.app';
const token = '<vas_token>';
const iprocId = '155286';

const form = new FormData();
form.append('file', fs.createReadStream('./faktura.pdf'));
form.append('filename', 'faktura-2026-001.pdf');
form.append('iprocId', iprocId);

await axios.post(`${baseUrl}/api/dms/upload`, form, {
headers: {
...form.getHeaders(),
Authorization: `Bearer ${token}`,
},
});

Výsledek

Po úspěšném volání je dokument přiložen k případu iprocId a je dostupný v jeho dokumentech (DMS). Pokud jste uvedli itaskId, je navázán také na daný úkol.

Token se z bezpečnostních důvodů zobrazuje pouze jednou při vytvoření a nelze jej později znovu zobrazit. Uložte jej bezpečně na straně externího systému. Při ukončení integrace nebo podezření na kompromitaci token zneplatněte v Administrace → API tokeny.

Frantisek Brych Updated by Frantisek Brych

DocuSign

DB View

Contact

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)