BLUEJET logo
MENU
LAYERS
Layers je platforma, která nabízí uživatelské rozhraní pro API BLUEJET.
layers.cz
POSTMAN
Funkční ukázka API v prostředí postman.com
postman.com postman-import-API.zip

BLUEJET API V1.1 V1.2 V1.3

14.2.2024

 

Přehled

 

BLUEJET API slouží k integraci s aplikacemi třetích stran. Přístup je téměř ke všem evidencím v aplikaci BLUEJET a je možné nad nimi dělat základní operace jako výběr, vložení, úpravy a mazání. Je možné k API přistupovat jak pomocí SOAP webových služeb, tak pomocí REST služeb. REST služby rozumí formátům JSON i XML.

API BLUEJET je nezávislé na programovacím jazyku. Stačí poslat požadavek ve správném formátu.

 

Informace k dokumentaci

Všechna volání API BLUEJET mají uvedeny příklady pro lepší srozumitelnost. Tyto jsou psány s ohledem na jednoduchost a přehlednost (nejsou ošetřeny žádné výjimky apod.), nedoporučujeme je tak používat v běžném provozu.

SOAP webové služby jsou samo-popisné, jejich volání je tudíž velmi jednoduché. Příklady budou psány v jazyce C#. Datové typy jsou shodné se službami REST a jejich popis bude uváděn pouze v kapitole REST.

Příklady REST služeb  budou psány v jazyce C# a javascript (konkrétně jQuery). V jazyce C# bude jako formát přenosu dat využíván XML. V javascriptu pak JSON.

 

Zabezpečení

Všechny dotazy k API musí probíhat na protokolu https, jinak API odpoví status kódem  400 (BadRequest) a upozorněním „K API ke možné přistupovat jedině na protokolu HTTPS.“.

 


 

Autentizace

 

Zjištění údajů k API v aplikaci BLUEJET

Uživatel musí mít od administrátora systému BLUEJET povoleno používat API (detail uživatele).

 a také mít vygenerován API tokenID a tokenHash. Je to v podstatě jméno a heslo k API BLUEJET.

Uživatel se pak může podívat na své nastavení API v BLUEJET v sekci Nastavení –> Uživatelské nastavení –> Aplikace

S těmito údaji je pak možné používat API BLUEJET.

Autentizace

Abychom mohli udělat požadavek na API BLUEJET, je potřeba být ověřený.

Na adresu (viz. níže) pošlete údaje tokenID a tokenHash a pokud údaje budou správné, dostanete token, pomocí něhož budete moci využívat API BLUEJET po dobu 24 h. Poté bude muset dojít opět k ověření údajů a získání nového tokenu.


 

SOAP webové služby

Adresa webové reference

https://VaseBluejetAplikace.cz/API/V1/Users.asmx

Příklad v C#

Webová reference je pojmenována jako BlueJetAuth.

 

BlueJetAuth.Users users = new BlueJetAuth.Users();

var status = users.Authenticate("OVBA7INLXG2TIYRIT0RK", "*I11C1LMZV(D%MUBIP63U8X-@ZVHU^O8RX(IA%2(DJ68S29#");

// status.token

REST webové služby

Na získání tokenu se musí udělat požadavek typu POST. V těle požadavku se posílá složitý datový typ user, jako příchozí je použit typ status.

Adresa REST služby

https://VaseBluejetAplikace.cz/api/v1/users/authenticate

Příklad v C#

// Požadavky na API děláme pomocí HttpClient.

  using (var client = new HttpClient())

  {

      // Adresa API BLUEJET

      client.BaseAddress = new Uri("https://VaseBluejetAplikace.cz/");

      // acceptujeme odpověď typu XML. (je možné ponechat na JSON)

      client.DefaultRequestHeaders.Accept.Clear();

      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

      // Třída zaslána v těle dokumentu

      User user = new User() { tokenID = "OVBA7INLXG2TIYRIT0RK", tokenHash = "*I11C1LMZV(D%MUBIP63U8X-@ZV (DJ68S29#" };

 

      // Autentizace probíhá na HTTP POST. Posíláme jako XML.

      var result = client.PostAsXmlAsync("api/v1/users/authenticate", user).Result;

      // Odpověď se vrací v typu Status

      var status = result.Content.ReadAsAsync<Status>().Result;

      if (status.succeeded) // požadavek proběhl úspěšně

      {

          //autentizace proběhla úspěšně. Token je v status.token

      }

}

Příklad v jQuery

function authenticate()

{

    jQuery.support.cors = true;           

    // Data, která budeme posílat

    var postingData = { "tokenID": "OVBA7INLXG2TIYRIT0RK", "tokenHash": "*I11C1LMZV(D%MUBIP63U8X-@ZV (DJ68S29#" };

    jQuery.ajax({

        type: "POST", // typ požadavku POST

        async: true,  // asynchronně

        url: 'https://VaseBluejetAplikace.cz/api/v1/users/authenticate', // na tuto adresu

        data: JSON.stringify(postingData), // v těle požadavku pošli tokenID a tokenHash

        dataType: "json", // typ JSON

        contentType: "application/json; charset=utf-8", // formát v jakém data posíláme

        success: function (status) { /*pouzijToken(status.token);*/ }, // zde dostaneme token

        error: function (err) { alert(err.responseText); } // chyba

    });

}


 

Datové typy použité v příkladech

/// <summary>

/// Objekt s tokenID a tokenHash. Slouží k přihlášení do API BLUEJET.

/// </summary>

[DataContract(Name = "user", Namespace = "http://www.bluejet.cz/API")]

public class User

{

    public User() { }

   

    [DataMember]

    public string tokenID { get; set; }

    [DataMember]

    public string tokenHash { get; set; }

}

 

/// <summary>

/// Vrací status autentizace.

/// </summary>

[DataContract(Name = "status", Namespace = "http://www.bluejet.cz/API")]

public class Status

{

    public Status() { }

    /// <summary>

    /// Autentizace proběhla v pořádku

    /// </summary>

    [DataMember]

    public bool succeeded { get; set; }

    /// <summary>

    /// Pokud autentizace proběhla v pořádku, zde dostaneme token

    /// </summary>

    [DataMember]

    public string token { get; set; }

    /// <summary>

    /// Pokud autentizace neproběhla v pořádku, zde bude popis chyby.

    /// </summary>

    [DataMember]

    public string message { get; set; }

}

 

Hledání záznamů

Popis

Vrací záznamy, na které mám právo. Pouze pokud mi administrátor přidělil v sekci API „plná práva“, pak mohu vidět vše. API je nutné zavolat minimálně se třemi parametry a to:

no – číslo objektu, (kontakty, firmy atd.), viz. sekce Evidence.

offset – začínající řádek dotazu.

limit – počet vět, které chci vrátit od offsetu

Př. pokud mám 1000 vět v evidenci a chci je stáhnout všechny, musím dělat dotazy postupně po max. 200 záznamech. Dotazy budou vypadat takto:

1.       offset 0, limit 200

2.       offset 200. limit 200

3.       offset 400, limit 200 atd.

sort – řazení záznamů. Volitelný parametr. Např: „+vlastnik“ (vzestupně) nebo „-vlastnik“ (sestupně), Mohu řadit podle více sloupců, pole jsou oddělena čárkou: „+vlastnik, -lastname“ (vzestupně podle vlastníka, sestupně podle příjmení).

fields – výčet polí, které chci vrátit. Volitelný parametr. Pokud pole do požadavku nezadáme, nebo ho necháme prázdné resp. napíšeme „all“, pak vrátí všechny sloupce. Jinak sloupce oddělujeme čárkou např: lastname, firstname, createdon, multitutisupl

condition – podmínka. Volitelný parametr. Např.

„lastname|contains|t“ (příjmení obsahuje t)

podmínky je možné spojovat

„lastname|contains|t|,|emailaddress1|=|informacni.servis@seznam.cz„ (příjmení obsahuje t a zároveň email se rovná informacni.servis@seznam.cz)

Výčet operátorů

1.       "=": rovná se. Může být použito u všech datových typů.

2.       "<>" nebo "!=": nerovná se. Může být použito u všech datových typů.

3.       "contains": obsahuje. Pouze u textových hodnot.

4.       "!contains": neobsahuje. Pouze u textových hodnot.

5.       "starts": začíná. Pouze u textových hodnot.

6.       "!starts": nezačíná. Pouze u textových hodnot.

7.       "<": menší než. Pouze u číselných a datumových polí

8.       ">": větší než. Pouze u číselných a datumových polí

9.       "<=": menší nebo rovno. Pouze u číselných a datumových polí

10.    ">=": větší nebo rovno. Pouze u číselných a datumových polí

 

SOAP webové služby

Adresa webové reference

https://VaseBluejetAplikace.cz/API/V1/Data.asmx

Příklad v C#

Webová reference je pojmenována jako BlueJetData.

// vytvoříme novou instanci proxy třídy BlueJetData

var data = new BlueJetData.Data();

// předáme token v hlavičce požadavku

data.TokenHeaderValue = new BlueJetData.TokenHeader() { Token = status.token };

// Metoda GetDataSet vrací záznamy, které odpovídají naší podmínce.

var dataSet = data.GetDataSet(222, 0, 10, "+lastname", "lastname, firstname, createdon, multitutisupl", "lastname|contains|t");

 

REST webové služby

Požadavek typu GET. V těle požadavku se neposílá nic. Dotaz se tvoří parametry v adrese URL.

Adresa REST služby

https://VaseBluejetAplikace.cz/api/v1/data

Příklad v C#

// Požadavky na API děláme pomocí HttpClient.

  using (var client = new HttpClient())

  {

      // Adresa API BLUEJET

      client.BaseAddress = new Uri("https://VaseBluejetAplikace.cz/");

      // acceptujeme odpověď typu XML. (je možné ponechat na JSON)

      client.DefaultRequestHeaders.Accept.Clear();

      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

      // Do hlavičky požadavku musíme přidat X-Token s tokenem, který jsme získali při autentizaci.

      client.DefaultRequestHeaders.Add("X-Token", token);

      // Nejjednodušší požadavek vrátí prvních 15 záznamů v evidenci Kontakty. Vybere všechny sloupce bez filtru a vlastního řazení

      result = client.GetAsync("api/v1/Data?no=222&offset=0&limit=15").Result;

      // Se všemi parametry vypadá takto. Vrátí prvních 15 záznamů v evidenci Kontakty.

      // Seřadí vzestupně podle pole vlastnik a sestupně podle pole lastname

     // vrátí sloupce lastname, firstname, createdon, multitutisupl

     // podle podmínky, kde: lastname obsahuje "t" a emailova adresa se rovna informacni.servis@seznam.cz

     result = client.GetAsync("api/v1/Data?no=222&offset=0&limit=15&sort=+vlastnik, -lastname&fields=lastname, firstname, createdon,      multitutisupl&condition=lastname|contains|t|,|emailaddress1|=|informacni.servis@seznam.cz").Result;

     var dataSet = result.Content.ReadAsAsync<DataSet>().Result;

}

Příklad v jQuery

function search(token)

{        

    jQuery.support.cors = true;

    jQuery.ajax({

        type: "GET",

        beforeSend: function (request) { // do hlavičky požadavku přidáme náš token

            request.setRequestHeader("X-Token", token);

        },

        async: true,

        url: 'https:// VaseBluejetAplikace.cz /api/v1/Data?no=222&offset=10&limit=5&sort=+vlastnik, -lastname&fields=lastname, firstname, createdon, multitutisupl&condition=lastname|contains|t|,|emailaddress1|=|informacni.servis@seznam.cz ',

        dataType: "json",               

        success: function (dataSet) {                   

                alert("dataSet total count: " + dataSet.recordsCount + ", records count: " + dataSet.rows.length);

            },

        error: function (err) {

                alert(err.responseText);

            }

        });

      }

 

Datové typy použité v příkladech

// Tabulka záznamů vrácených z API

 [DataContract(Name = "dataset", Namespace = "http://www.bluejet.cz/API")]

public class DataSet

{

    // číslo objektu, které vracím

    [DataMember]

    public int no { get; set; }

 

    // celkový počet záznamů v databázi, které odpovídají mé podmínce. Užitečný pro stránkování.

    [DataMember]

    public int recordsCount { get; set; }

 

    // kolekce řádků

    [DataMember]

    public Row[] rows { get; set; }

 

    [DataContract(Name = "row", Namespace = "")]

    public class Row

    {

        // číslo řádku odpovídající mé podmínce

        [DataMember]

        public int offset { get; set; }

 

        // kolekce sloupců

        [DataMember]

        public Column[] columns { get; set; }

    }

    [DataContract(Name = "column", Namespace = "")]

    public class Column

    {

        // název sloupce

        [DataMember]

        public string name { get; set; }

 

        // hodnota sloupce

        [DataMember]

        public object value { get; set; }

    }

}

Výsledek

{

    "no": 222,

    "recordsCount": 145,

    "rows": [

        {

            "offset": 0,

            "columns": [

                { "name": "createdon", "value": "2014-07-15T09:40:53.067" },

                { "name": "firstname", "value": null },

                { "name": "lastname", "value": "Team servis" },

                { "name": "multitutisupl", "value": "treti" }]

        }, {

            "offset": 1,

            "columns": [

                { "name": "createdon", "value": "2014-05-19T11:25:27.513" },

                { "name": "firstname", "value": null },

                { "name": "lastname", "value": "Kvak kontakt" },

                { "name": "multitutisupl", "value": "" }

            ]

        }, {

            "offset": 2,

            "columns": [

                { "name": "createdon", "value": "2014-03-03T08:17:13.797" },

                { "name": "firstname", "value": null },

                { "name": "lastname", "value": "AAA01test" },

                { "name": "multitutisupl", "value": "" }]

        }

    ]

}

Spolu s tabulkou se vrací v hlavičce také parametr „X-Total-Count“, což je celkový počet záznamů v databázi odpovídající mé podmínce, stejně jako vlastnost recordsCount.


 

Vložení nových záznamů

Popis

Umožňuje vložit jeden anebo více záznamů do aplikace BLUEJET. Pokud vkládáme pouze jeden objekt, stačí naplnit datový objekt číslem objektu a jednotlivými poli.

Pokud budeme chtít vkládat více objektů a provazovat je mezi sebou, budeme ještě plnit referenci a vnitřní objekty. Nejlépe je to vidět na příkladech. První dva jsou jednoduché s vložením jediného kontaktu, poslední příklad v jQuery vkládá kontakt, firmu a vazbu mezi nimi. Max. počet zároveň vkládaných objektů je 10.

Při vkládání záznamů není možné vkládat primární klíč, který si volí systém BLUEJET sám a pokud nemám plná oprávnění na API, nemohu vkládat ani automatická pole jako datum vytvoření, vlastník apod.

SOAP webové služby

Adresa webové reference

https://VaseBluejetAplikace.cz/API/V1/Data.asmx

Příklad v C#

Webová reference je pojmenována jako BlueJetData.

// vytvoříme novou instanci proxy třídy BlueJetData

var data = new BlueJetData.Data();

// předáme token v hlavičce požadavku

data.TokenHeaderValue = new BlueJetData.TokenHeader() { Token = status.token };

// vytvori datovy objekt s cislem 222 (kontakt) se dvěma poli. Jméno a příjmení.

BlueJetData.DataObject dataObj = new BlueJetData.DataObject()

{

    no = 222,               

    fields = new BlueJetData.Field[] {                   

                    new BlueJetData.Field() { name= "lastname", value= "API " + DateTime.Now.ToString()},                               // string

                    new BlueJetData.Field(){ name= "firstname", value = "API " + DateTime.Now.ToString()},                                                // string

                    new BlueJetData.Field(){ name= "birthdate", value = new DateTime(1982, 5, 12)},                                                         // DateTime

                    new BlueJetData.Field(){ name= "multitutisupl", value = 4},                                                                                                                           // int

                    new BlueJetData.Field(){ name= "newsletter", value = true},                                                                                                                         // Boolean

                    new BlueJetData.Field(){ name= "firmaid", value = new Guid("0a432cb4-574f-4245-8277-8e23a4643b28")},   // Guid

    }               

};

// vlozi firmu a kontakt do BLUEJET a vytvoří mezi nimi vazbu

var result = data.InsertObject(dataObj);

 

REST webové služby

Požadavek typu POST. V těle požadavku se posílá typ dataObject.

Adresa REST služby

https://VaseBluejetAplikace.cz/api/v1/data


 

Příklad v C#

private void InsertObject(string token)

{

    // vytvori datovy objekt s cislem 222 (kontakt)

    var dataObject = new DataObject()

    {

        no = 222,

        fields = new Field[]{

            new Field() { name = "lastname", value = "API " + DateTime.Now.ToString()},                 // string

            new Field() { name = "firstname", value = "API " + DateTime.Now.ToString()},                // string

            new Field() { name = "birthdate", value = new DateTime(1982, 5, 12)},                       // DateTime

            new Field() { name = "multitutisupl", value = 4 },                                          // int

            new Field() { name = "newsletter", value = true },                                          // Boolean

            new Field() { name = "firmaid", value = new Guid("0a432cb4-574f-4245-8277-8e23a4643b28") }  // Guid

        }       

    };

    using (var client = new HttpClient())

    {

        // Adresa API BLUEJET               

        client.BaseAddress = new Uri("https:// VaseBluejetAplikace.cz /");

        // acceptujeme odpověď typu XML. (je možné ponechat na JSON)

        client.DefaultRequestHeaders.Accept.Clear();

        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

        // předáme token v hlavičce požadavku

        client.DefaultRequestHeaders.Add("X-Token", token);

        // pošleme datový objekt na API BLUEJET

        var result = client.PostAsJsonAsync("api/v1/data", dataObject).Result;

        // odpověď typu dataObjectResult

        var res = result.Content.ReadAsStringAsync().Result;

    }

}

výsledek

<dataObjectResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.bluejet.cz/API">

  <dataObjectRows>

    <dataObjectRow xmlns="">

     <action>insert</action>

     <id>57404da8-4b39-4940-b2cd-d75eb2b8cd58</id>

     <no>222</no>

     <reference i:nil="true" />

    </dataObjectRow>

  </dataObjectRows>

</dataObjectResult>

 

Výsledek je kolekce dataObjectRows, kde každý řádek obsahuje

1.       action – zda proběhl insert nebo update (v tomto případě vždy insert, více v kapitole Vložení či úprava záznamů)

2.       no – číslo objektu, kterého se update týká. V tomto případě 222 – kontaktů. Více v kapitole Evidence.

3.    reference – více viz. další příklad.

Příklad v jQuerY

Na rozdíl od předchozích příkladů zde plníme pole reference a innerObjects. Pole reference proto, že ve výsledku pak dostaneme k této referenci primární klíč, takže např. víme, že kontakt co jsme vložili jako první dostane primární klíč: „eb592217-0e00-49b7-822d-d09fd89ff251“ (viz. výsledek níže) atd.

Také lze vidět, že se na tuto referenci odkazujeme ve vnitřním objektu vazeb, kde jako parentid předáváme $1$ a childid $2$. Tím říkáme, že v poli parentid se má použít primární klíč vloženého kontaktu a v poli childid primární klíč firmy.

 


 

function insert(token) {

     var insertObject = {

         "no": 222, "reference": "1", // kontakt s referenci 1

         "fields": [

             { "name": "lastname", "value": "API 3.9.2014 10:06:46" },

             { "name": "firstname", "value": "API 3.9.2014 10:06:46" }],

         "innerObjects": [{

             "no": 225, "reference": "2", "fields": [ // po kontaktu ulozime firmu s referenci 2

                 { "name": "name", "value": "API Firma 3.9.2014 10:06:46" }]

         },

         { "no": 315, "reference": "3", // nakonec ulozime vazbu mezi nimi

             "fields": [

                 { "name": "parentid", "value": "$1$" }, { "name": "parenttype", "value": "222" },

                 { "name": "childid", "value": "$2$" }, { "name": "childtype", "value": "225" },

                 { "name": "typvazby", "value": "0" }]

         }]

     };

 

     jQuery.support.cors = true;

     // pošli požadavek

     var start = performance.now();

     jQuery.ajax({

         type: "POST",

         beforeSend: function (request) {

             request.setRequestHeader("X-Token", token);

         },

         async: true,

         url: 'https:// VaseBluejetAplikace.cz/api/v1/Data',

         data: JSON.stringify(insertObject),

         dataType: "json",

         contentType: "application/json; charset=utf-8",

         success: function (result) {

             /* zpracuj vysledek */ alert(result.dataObjectRows.length);

         },

         error: function (err) {

             alert(err.responseText);

         }

     });

 }

 

výsledek

 

<dataObjectResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.bluejet.cz/API">

  <dataObjectRows>

    <dataObjectRow xmlns="">

      <action>insert</action>

      <id>eb592217-0e00-49b7-822d-d09fd89ff251</id>

      <no>222</no>

      <reference>1</reference>

    </dataObjectRow>

    <dataObjectRow xmlns="">

      <action>insert</action>

      <id>fa74e5a0-072e-4192-adfc-72545f95fc83</id>

      <no>225</no>

      <reference>2</reference>

    </dataObjectRow>

    <dataObjectRow xmlns="">

      <action>insert</action>

      <id>4216ffad-2d0e-430b-af66-a116678754d1</id>

      <no>315</no>

      <reference>3</reference>

    </dataObjectRow>

  </dataObjectRows>

</dataObjectResult>

 

V odpovědi vidíme k jednotlivým referencím přivázány primární klíče, pro případ, že bychom s nimi potřebovali dále pracovat.

Datové typy použité v příkladech

/// <summary>

/// Objekt, ktery slouzi pro vkladani ci update zaznamu

/// </summary>

[DataContract(Name = "dataObject", Namespace = "http://www.bluejet.cz/API")]       

public class DataObject

{           

    // cislo objektu

    [DataMember]

    public int no { get; set; }

    // Pouziti primarního klíče jako reference.           

    [DataMember]

    public string reference { get; set; }

   

    // Podmínka, která se používá u metody InsertOrUpdate. Pokud nevíme jestli existuje věta v BLUEJETu anebo ne a chci ji tam nahrát jedním krokem,

    // zvolím např. podminku "foreignkey|=|1". Pokud najdu alespoň jeden záznam, tak ho updatujeme jinak vložíme nový záznam.

    [DataMember]

    public string condition { get; set; }

 

    /// <summary>

    /// pole, která vkládám

    /// </summary>

    [DataMember]

    public Field[] fields { get; set; }

     /// <summary>

     /// další datové objekty

     /// </summary>

     [DataMember]

     public DataObject[] innerObjects { get; set; }

 }

 

 /// <summary>

 /// Pole v dataObjektu

 /// </summary>

 [DataContract(Name = "field", Namespace = "http://www.bluejet.cz/API")]

 public class Field

 {

     // název pole

     [DataMember]

     public string name { get; set; }

     // hodnota pole

     [DataMember]

     public object value { get; set; }

     // jedná se o "insert" nebo "update"

     [DataMember]

     public string action { get; set; }

 }

 

Pole condition a pole action  projednáme v kapitole Vložení nebo úprava záznamů.

 


 

Úprava záznamů

Popis

Umožňuje upravit jeden anebo více záznamů v aplikaci BLUEJET. Vše je stejné jako v předešlé kapitole Vložení nových záznamů, s tím rozdílem, že zde je potřeba u každého vkládaného objektu uvést primární klíč záznamu, který se má upravit. Vzhledem k tomu, že vše je stejné jako v kapitole Vložení nových záznamů, budou zde vypsány jen rozdíly.

SOAP webové služby

Adresa webové reference

https://VaseBluejetAplikace.cz/API/V1/Data.asmx

Příklad v C#

Webová reference je pojmenována jako BlueJetData.

// vytvoříme novou instanci proxy třídy BlueJetData

var data = new BlueJetData.Data();

...

...

// updatuje firmu a kontakt.

data.UpdateObject(dataObj);

REST webové služby

Požadavek typu PUT. V těle požadavku se posílá typ dataObject.

Adresa REST služby

https://VaseBluejetAplikace.cz/api/v1/data

Příklad v C#

string date = DateTime.Now.ToString();

DataObject dataObj = new DataObject() { no = 222, reference = "1" };

dataObj.fields = new Field[] { // v kontaktu uprav pouze pole příjmení a jméno

    new Field(){ name= "contactid", value=new Guid("841032e2-6f07-41d3-a19b-58a54940ab77").ToString()},

    new Field() { name= "lastname", value= "API " + date},

    new Field(){ name= "firstname", value = "API " + date}

};

 

DataObject inner1 = new DataObject() { no = 225, reference = "2" };

inner1.fields = new Field[] { // ve firmě uprav pole název a dodatkové pole kategorie

    new Field(){ name= "id", value=new Guid("759fd694-a6b3-4be2-a22b-a74fbcbb647b").ToString()},

    new Field() { name= "name", value= "API Firma" + date},           

    new Field() { name= "kategoriesupl", value= "B"}               

};

 

dataObj.innerObjects = new DataObject[] { inner1 };

using (var client = new HttpClient())

{   

        // Adresa API BLUEJET               

       client.BaseAddress = new Uri("https:// VaseBluejetAplikace.cz /");

       // acceptujeme odpověď typu XML. (je možné ponechat na JSON)

       client.DefaultRequestHeaders.Accept.Clear();

       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

       // předáme token v hlavičce požadavku

       client.DefaultRequestHeaders.Add("X-Token", token);

       // pošleme datový objekt na API BLUEJET

       var result = client.PutAsJsonAsync("api/v1/data", dataObject).Result;    }

}

 

Zde stojí za povšimnutí, že zatímco v kontaktu používáme jako primární klíč contactid, ve firmě používáme pouze id, ovšem primární klíč firem je customerid. Zde má id zástupný význam pro primární klíč objektu a mohu jej používat místo vlastních názvů primárních klíčů. Čili i u kontaktů bych mohl použít id místo contactid.

Příklad v jQuerY

 

function update(token) {

     var updateObject = { // updatuje kontakt a firmu

         "no": 222, "reference": "1",

         "fields": [

             { "name": "contactid", "value": "841032e2-6f07-41d3-a19b-58a54940ab77" },

             { "name": "lastname", "value": "API " + new Date() },

             { "name": "firstname", "value": "API " + new Date() }]

         ,"innerObjects": [{

             "no": 225, "reference": "2",

             "fields": [

                 { "name": "id", "value": "759fd694-a6b3-4be2-a22b-a74fbcbb647b" },

                 { "name": "name", "value": "API Firma 3.9.2014 9:19:33" },

                 { "name": "kategoriesupl", "value": "B" }]

         }]

     };

 

     jQuery.support.cors = true;

     // Send the request

     var start = performance.now();

     jQuery.ajax({

         type: "PUT",

         beforeSend: function (request) {

             request.setRequestHeader("X-Token", token);

         },

         async: true,

         url: 'https:// VaseBluejetAplikace.cz /api/v1/Data',

         data: JSON.stringify(updateObject),

         dataType: "json",

         contentType: "application/json; charset=utf-8",

         success: function () {

             // úspěšně upraveno

         },

         error: function (err) {

             alert(err.responseText);

         }

     });

 }

 

Datové typy použité v příkladech

Stejné jako v předchozí kapitole

 


 

Vložení nebo Úprava záznamů

Popis

Umožňuje vložit resp. upravit jeden anebo více záznamů v aplikaci BLUEJET. Pokud potřebujeme vložit do BLUEJET nějaký záznam, ale nevíme, zda v systému BLUEJET již existuje, můžeme postupovat následovně.

1.       Vyhledat napřed záznam přes BLUEJET API a poté vložit resp. upravit záznam na základě existence výsledku hledání.

2.       Využít tuto metodu insertorupdate, která má podmínku vloženou přímo v datovém objektu a podle ní buď záznam aktualizuje (pokud ho najde) anebo vloží (pokud ne). Zpravidla se bude kontrolovat jedinečný primární klíč BLUEJET anebo externího systému, ale v podstatě se může kontrolovat cokoliv. Syntaxe je shodná se syntaxí podmínky v kapitole Hledání záznamů. Pokud se posílá více objektů zároveň, výsledek může být kombinovaný, tzn., že některé záznamy se mohou upravit a některé vložit.

V podkapitole REST – Příklad v C# bude vysvětleno pole action.

 

SOAP webové služby

Adresa webové reference

https://VaseBluejetAplikace.cz/API/V1/Data.asmx

Příklad v C#

Webová reference je pojmenována jako BlueJetData.

// vytvoříme novou instanci proxy třídy BlueJetData

var data = new BlueJetData.Data();

// předáme token v hlavičce požadavku

data.TokenHeaderValue = new BlueJetData.TokenHeader() { Token = status.token };

 

string date = DateTime.Now.ToString();

BlueJetData.DataObject dataObject = new BlueJetData.DataObject()

{

    no = 222,

    reference = "1",

    condition = "contactid|=|841032e2-6f07-41d3-a19b-58a54940ab77",

    fields = new BlueJetData.Field[] {

        new BlueJetData.Field(){ name= "contactid", value=new Guid("841032e2-6f07-41d3-a19b-58a54940ab77").ToString()},

        new BlueJetData.Field() { name= "lastname", value= "API " + date},

        new BlueJetData.Field(){ name= "firstname", value = "API " + date}

    },

    innerObjects = new BlueJetData.DataObject[] {

        new BlueJetData.DataObject() {

            no = 225,

            reference = "2",

            condition = "customerid|=|759fd694-a6b3-4be2-a22b-a74fbcbb647b",

            fields = new BlueJetData.Field[]{

                new BlueJetData.Field(){ name= "id", value=new Guid("759fd694-a6b3-4be2-a22b-a74fbcbb647b").ToString()},

                new BlueJetData.Field() { name= "name", value= "API Firma" + date},           

                new BlueJetData.Field() { name= "kategoriesupl", value= "B"}      

            }

        }

    }

};

// vložíme nebo upravíme záznam           

var result = data.InsertOrUpdate(dataObject);

 

Výsledek je dataObjectResult. Dostaneme dva výsledky, které nám řeknou, jestli objekty byly aktualizovány anebo vloženy a zároveň s nimi dostaneme primární klíče. Viz. kapitola Vložení nových záznamů.

REST webové služby

Požadavek typu POST. V těle požadavku se posílá typ dataObject.

Adresa REST služby

https://VaseBluejetAplikace.cz/api/v1/data/insertorupdate

Příklad v C#

string date = DateTime.Now.ToString();

DataObject dataObject = new DataObject()

{

    no = 222,

    reference = "1",

    condition = "contactid|=|841032e2-6f07-41d3-a19b-58a54940ab77",

    fields = new Field[] {

        new Field(){ name= "contactid", value=new Guid("841032e2-6f07-41d3-a19b-58a54940ab77").ToString()},

        new Field() { name= "lastname", value= "API " + date},

        new Field(){ name= "firstname", value = "API " + date}

    },

    innerObjects = new DataObject[] {

        new DataObject() {

            no = 225,

            reference = "2",

            condition = "customerid|=|759fd694-a6b3-4be2-a22b-a74fbcbb647b",

            fields = new Field[]{

                new Field(){ name= "id", value=new Guid("759fd694-a6b3-4be2-a22b-a74fbcbb647b").ToString()},

                new Field() { name= "name", value= "API Firma" + date, action="insert"},           

                new Field() { name= "kategoriesupl", value= "B", action="update"}     

            }

        }

    }

};

using (var client = new HttpClient())

{

    // Adresa API BLUEJET               

    client.BaseAddress = new Uri("https:// VaseBluejetAplikace.cz /");

    // acceptujeme odpověď typu XML. (je možné ponechat na JSON)

    client.DefaultRequestHeaders.Accept.Clear();

    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

    // předáme token v hlavičce požadavku

    client.DefaultRequestHeaders.Add("X-Token", token);

    // pošleme datový objekt na API BLUEJET

    var result = client.PostAsJsonAsync("api/v1/data/insertorupdate", dataObject).Result;

    // odpověď typu dataObjectResult

    var res = result.Content.ReadAsStringAsync().Result;

}

 

Příklad je stejný jako u SOAP, jen v druhém datovém objektu (firem) používáme pole action, které může nabývat hodnot insert anebo update. Tzn., pokud bude action=insert, tak se hodnota tohoto pole bude aplikovat pouze, pokud se daný záznam bude vkládat. Pokud bude action=update, tak se hodnota tohoto pole bude aplikovat pouze, pokud se daný záznam bude aktualizovat. Pokud action bude prázdné, bude se pole aplikovat vždy. Toto je legální zápis:

new Field() { name= "name", value= "vložená firma", action="insert"},           

new Field() { name= "name", value= "aktualizovaná firma", action="update"},           

Pokud se bude záznam vkládat, vloží se do názvu hodnota: vložená firma, pokud aktualizovat, tak: aktualizovaná firma.

Příklad v jQuerY

 

function insertOrUpdate(token)

{

    var dataObject = {

        "no": 222, "reference": "1", "condition": "contactid|=|841032e2-6f07-41d3-a19b-58a54940ab77",

        "fields": [

            { "name": "contactid", "value": "841032e2-6f07-41d3-a19b-58a54940ab77" },

            { "name": "lastname", "value": "API 14.9.2014 2:08:38" },

            { "name": "firstname", "value": "API 14.9.2014 2:08:38" }],

        "innerObjects": [

            {

                "no": 225, "reference": "2", "condition": "customerid|=|759fd694-a6b3-4be2-a22b-a74fbcbb647b",

                "fields": [{ "name": "id", "value": "759fd694-a6b3-4be2-a22b-a74fbcbb647b" },

                    { "name": "name", "value": "API Firma14.9.2014 2:08:38", "action": "insert" },

                    { "name": "kategoriesupl", "value": "B", "action": "update" }]

            }

        ]

    };

 

    jQuery.support.cors = true;

    // Send the request

    jQuery.ajax({

        type: "POST",

        beforeSend: function (request) {

            request.setRequestHeader("X-Token", token);

        },

        async: true,

        url: 'https:// VaseBluejetAplikace.cz /api/v1/data/insertorupdate',

        data: JSON.stringify(dataObject),

        dataType: "json",

        contentType: "application/json; charset=utf-8",

        success: function (result) {

            /* zpracuj vysledek */ alert(result.dataObjectRows.length);

        },

        error: function (err) {

            alert(err.responseText);

        }

    });

}

 

Datové typy použité v příkladech

Stejné jako v kapitole Vložení nových záznamů.

 


 

Mazání záznamů

Popis

Umožňuje smazat jeden záznam v aplikaci BLUEJET.

SOAP webové služby

Adresa webové reference

https://VaseBluejetAplikace.cz/API/V1/Data.asmx

Příklad v C#

Webová reference je pojmenována jako BlueJetData.

// vytvoříme novou instanci proxy třídy BlueJetData

var data = new BlueJetData.Data();

// předáme token v hlavičce požadavku

data.TokenHeaderValue = new BlueJetData.TokenHeader() { Token = status.token };

// pošleme požadavek na smazání objektu 222 (kontakty)s id 841...

data.DeleteObject(222, new Guid("841032e2-6f07-41d3-a19b-58a54940ab77"));

REST webové služby

Požadavek typu DELETE. V těle požadavku se nic neposílá. Předávají se pouze parametry no (číslo objektu) a id (primární klíč).

Adresa REST služby

https://VaseBluejetAplikace.cz/api/v1/data

Příklad v C#

using (var client = new HttpClient())

{

    // Adresa API BLUEJET               

    client.BaseAddress = new Uri("https://VaseBluejetAplikace.cz/");

    // acceptujeme odpověď typu XML. (je možné ponechat na JSON)

    client.DefaultRequestHeaders.Accept.Clear();

    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

    // předáme token v hlavičce požadavku

    client.DefaultRequestHeaders.Add("X-Token", token);

    // pošleme požadavek na smazání objektu 222 (kontakty)s id 841...

    var result = client.DeleteAsync("api/v1/Data?no=222&id=841032e2-6f07-41d3-a19b-58a54940ab77").Result;

    // odpověď typu dataObjectResult

    if (result.IsSuccessStatusCode) { } // záznam byl smazán.

}

Příklad v jQuerY

 

function deleteObject(token) {   

    jQuery.support.cors = true;

    // Send the request

    jQuery.ajax({

        type: "DELETE",

        beforeSend: function (request) {

            request.setRequestHeader("X-Token", token);

        },

        async: true,

        url: 'https://VaseBluejetAplikace.cz/api/v1/data?no=222&id=841032e2-6f07-41d3-a19b-58a54940ab77',

        contentType: "application/json; charset=utf-8",

        success: function () {

            // úspěšně smazáno

            alert('smazáno');

        },

        error: function (err) {

            alert(err.responseText);

        }

    });

}

 

Datové typy použité v příkladech

Žádné.

 

Pomocné metody Update a Remove

Popis

Pokud vaše aplikace využívá REST a nedokáže poslat požadavky PUT a DELETE, využijte těchto metod pro  aktualizaci a mazání dat pomocí typu POST.

Update

 

Pro aktualizaci platí kapitola Úprava záznamů s tím rozdílem, že adresa je api/v1/Data/update a metoda POST.

result = client.PostAsJsonAsync("api/v1/Data/update", GetUpdateDataObject()).Result;

 

Remove

 

 

Při mazání je dokonce možno poslat více záznamů, které se mají smazat. V těle se posílá datový objekt, stejně jako při vkládání nových záznamů. V každém objektu stačí poslat jediné pole: primární klíč.

Adresa REST služby

https://VaseBluejetAplikace.cz/api/v1/data/remove

Příklad v C#

DataObject dataObject = new DataObject()

{

    no = 222,

    reference = "1",

    fields = new Field[] {

        new Field(){ name= "contactid", value=new Guid("841032e2-6f07-41d3-a19b-58a54940ab77").ToString()}               

    },

    innerObjects = new DataObject[] {

        new DataObject() {

            no = 225,

            reference = "2",

            fields = new Field[]{

                new Field(){ name= "id", value=new Guid("759fd694-a6b3-4be2-a22b-a74fbcbb647b").ToString()}               

            }

       

        }

    }

};

using (var client = new HttpClient())

{

    // Adresa API BLUEJET               

    client.BaseAddress = new Uri("https://VaseBluejetAplikace.cz/");

    // acceptujeme odpověď typu XML. (je možné ponechat na JSON)

    client.DefaultRequestHeaders.Accept.Clear();

    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

    // předáme token v hlavičce požadavku

    client.DefaultRequestHeaders.Add("X-Token", token);

    // pošleme datový objekt na API BLUEJET

    var result = client.PostAsJsonAsync("api/v1/data/remove", dataObject).Result;

    // odpověď typu dataObjectResult

    var res = result.Content.ReadAsStringAsync().Result;

}

 

Výsledek

<dataObjectResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.bluejet.cz/API">

  <dataObjectRows>

    <dataObjectRow xmlns="">

      <action>delete</action>

      <id>841032e2-6f07-41d3-a19b-58a54940ab77</id>

      <no>222</no>

      <reference>1</reference>

    </dataObjectRow>

    <dataObjectRow xmlns="">

      <action>delete</action>

      <id>759fd694-a6b3-4be2-a22b-a74fbcbb647b</id>

      <no>225</no>

      <reference>2</reference>

    </dataObjectRow>

  </dataObjectRows>

</dataObjectResult>

 

Výsledek je stejný jako v kapitole Vložení záznamů. Pokud se záznam podaří smazat, je v poli action hodnota delete. Jinak je tam error – popis chyby.

 

Příklad v jQuerY

 

Stejný jako v kapitole Vložení nových záznamů, pouze adresa je api/v1/Data/update.

 

Datové typy použité v příkladech

Stejné jako v kapitole Vložení nových záznamů.


 

Evidence

 

Toto jsou evidence, ve kterých povoleno používat API.

 

Název evidence Číslo evidence
Adresy 243
Aktivity 227
Aktivity - vazby 287
Ceníky 250
Ceníky - položky 253
Dodací listy položky 238
FAQ 414
Firmy 225
Firmy Karty 220
Informace 346
Informace 10 46
Informace 11 48
Informace 11 - položky 50
Informace 12 52
Informace 12 - položky 54
Informace 13 24
Informace 13 - položky 105
Informace 14 26
Informace 14 - položky 107
Informace 15 28
Informace 15 - položky 109
Informace 2 405
Informace 3 406
Informace 3 - položky 407
Informace 4 30
Informace 4 - položky 32
Informace 5 34
Informace 5 - položky 36
Informace 6 38
Informace 7 40
Informace 8 42
Informace 9 44
Kontakty 222
Plán 383
Plánované úlohy 58
Plány - definice 380
Položky plánu 381
Položky Výkazu práce 331
Poznámky 200
Požadavky 403
Produkty 217
Projekty 332
Přijaté faktury 328
Přijaté faktury - položky 329
Přijaté faktury - položky 390
Přijaté nabídky 232
Přijaté nabídky položky 234
Přijaté objednávky 321
Přijaté objednávky položky 354
Přijaté poptávky 228
Přijaté poptávky položky 268
Příležitosti 209
Přílohy 341
Servis - poznámky 412
Smlouvy 276
Smlouvy - dodatky 311
Smlouvy - položky 277
Uživatelé 180
Vazby 315
Vydané faktury 323
Vydané faktury - položky 324
Vydané nabídky 293
Vydané nabídky položky 291
Vydané objednávky 356
Vydané objednávky položky 358
Vydané poptávky 230
Vydané poptávky položky 270
Výkazy práce 317
Zájemci 205
Státy N/A

POLE

Seznam polí, která je možné používat přes API. Standardní pole je možné vyhledávat i ukládat. Virtuální pole je možné pouze vyhledávat.
Příklad volání Adresy v JSONu
{
     "no" : 243 ,
       reference "1" ,
       "fields" : [
            {
           "name" "town" ,
           "value" :&nbs"Přerov" "name: "zipcode" ,
          "value":"75002"
            }
      ],
      "innerObjects": [
        { 
        "no":"222",
        "fields": [
            {
          "name""lastname",
          "value""Novák"
            },
            {
          "name""firstname",
         "value""Jan"
            },
            {
          "name""title",
          "value""Mgr."
            },
            {
          "name""telephone1",
          "value""111333666"
            },
            {
          "name""idaddress1",
          "value""$1$"
            }
          ]
        }
      ]
}
 

Adresy

Název Název vdatabázi Typ Standardní/Virtuální
Adresát recipient NVarChar(300) Standardní položka
Aktivní aktivni Bit Standardní položka
county2 county2 Int Standardní položka
geolocationlat geolocationlat Decimal Standardní položka
geolocationlng geolocationlng Decimal Standardní položka
Město town NVarChar(100) Standardní položka
objectid objectid UniqueIdentifier Standardní položka
objectno objectno Int Standardní položka
PSČ zipcode NVarChar(15) Standardní položka
Stát countryid UniqueIdentifier Standardní položka
Typ adresy addresstypecode PickUp Standardní položka
Ulice street1 NVarChar(100) Standardní položka
Vlastník ownerid UniqueIdentifier Standardní položka
Vytvořeno createdon DateTime Standardní položka
Vytvořil createdby UniqueIdentifier Standardní položka
Změněno modifiedon DateTime Standardní položka
Změnil modifiedby UniqueIdentifier Standardní položka
btnadresa btnadresa Int Virtuální
Kraj kraj NVarChar(50) Virtuální
mainobjectid mainobjectid NVarChar(100) Virtuální
Stát country NVarChar(100) Virtuální
vlajka vlajka NVarChar(200) Virtuální
Změnil modifiedbyname VarChar(200) Virtuální
 

Aktivity

Název Název vdatabázi Typ Standardní/Virtuální
bc bc NVarChar(250) Standardní položka
bcc bcc NVarChar(250) Standardní položka
Celodenní událost alldayevent Bit Standardní položka
Časový fond casovyfond Money (Decimal) Standardní položka
datereceived datereceived DateTime Standardní položka
directioncode directioncode PickUp Standardní položka
emaillastsended emaillastsended DateTime Standardní položka
emailremind emailremind Bit Standardní položka
externaltask externaltask Bit Standardní položka
filepath filepath NVarChar(1000) Standardní položka
generate generate Bit Standardní položka
Hotovo [%] percentcomplete Int Standardní položka
chatremind chatremind Bit Standardní položka
chatremindstatus chatremindstatus Int Standardní položka
idaddress idaddress UniqueIdentifier Standardní položka
Konec aktivity actualend DateTime Standardní položka
mailstatus mailstatus PickUpBit Standardní položka
mainresitel mainresitel NVarChar(100) Standardní položka
meetinglink meetinglink NVarChar(500) Standardní položka
Milník ismilestone Bit Standardní položka
Místnost roomid UniqueIdentifier Standardní položka
Místo konání location NVarChar(200) Standardní položka
Nadřazená aktivita parentactivityid UniqueIdentifier Standardní položka
Název aktivity subject NVarChar(200) Standardní položka
odesilatel odesilatel NVarChar(250) Standardní položka
parentmeetingid parentmeetingid UniqueIdentifier Standardní položka
plannedend plannedend DateTime Standardní položka
plannedstart plannedstart DateTime Standardní položka
Popis aktivity description NText(MAX) Standardní položka
pozadavekparentid pozadavekparentid UniqueIdentifier Standardní položka
prijemci prijemci NVarChar(250) Standardní položka
prilohaje prilohaje PickUp Standardní položka
prilohy prilohy Soubor (odkaz) Standardní položka
Priorita aktivity prioritycode PickUp Standardní položka
Projekt projectid UniqueIdentifier Standardní položka
Připomenutí scheduledstart DateTime Standardní položka
readed readed Bit Standardní položka
recurencedefid recurencedefid UniqueIdentifier Standardní položka
resitelid resitelid UniqueIdentifier Standardní položka
resitelno resitelno Int Standardní položka
Řetězová událost retez Bit Standardní položka
sendatfirst sendatfirst DateTime Standardní položka
schvaleno schvaleno Bit Standardní položka
sizeonserver sizeonserver Int Standardní položka
smslastsended smslastsended DateTime Standardní položka
smsremind smsremind Bit Standardní položka
Soukromá aktivita isprivate Bit Standardní položka
stav stav PickUp Standardní položka
Text pozvánky descriptioninvite NText(MAX) Standardní položka
Typ aktivity activitytypecode PickUp Standardní položka
Typ milníku statecode PickUp Standardní položka
Viditelné zákazníkovi viditelnezakaznikovi Bit Standardní položka
Vlastník ownerid UniqueIdentifier Standardní položka
volanecislo volanecislo NVarChar(50) Standardní položka
volany volany NVarChar(250) Standardní položka
Vyplněný dotazník dotinstid UniqueIdentifier Standardní položka
Vytvořeno createdon DateTime Standardní položka
Vytvořil createdby UniqueIdentifier Standardní položka
Začátek aktivity actualstart DateTime Standardní položka
zapis zapis NVarChar(20000) Standardní položka
Změněno modifiedon DateTime Standardní položka
Změnil modifiedby UniqueIdentifier Standardní položka
Zobrazit v kalendáři billed Bit Standardní položka
100 100 UniqueIdentifier Virtuální
60 60 UniqueIdentifier Virtuální
61 61 UniqueIdentifier Virtuální
DatumOdeslani datumodeslani DateTime Virtuální
DatumPrijeti datumprijeti DateTime Virtuální
email email NVarChar(100) Virtuální
Firma firma NVarChar(10) Virtuální
Chat chat PickUp Virtuální
imageactivitystatus imageactivitystatus VarChar(50) Virtuální
imagestatus imagestatus VarChar(50) Virtuální
Je koncová aktivita isleaf Bit Virtuální
Kontakt kontakt NVarChar(10) Virtuální
kopie kopie NVarChar(100) Virtuální
Místnost mainroom NChar(100) Virtuální
Následovníci linksb NVarChar(16) Virtuální
odesilateldopis odesilateldopis NVarChar(100) Virtuální
odesilatelemail odesilatelemail NVarChar(100) Virtuální
odesilatelfax odesilatelfax NVarChar(100) Virtuální
organizator organizator NVarChar(100) Virtuální
parentid parentid NVarChar(100) Virtuální
Počet dnů do konce allendplanday Int Virtuální
prijemcedopis prijemcedopis NVarChar(100) Virtuální
prijemceemail prijemceemail NVarChar(100) Virtuální
prijemcesms prijemcesms NVarChar(100) Virtuální
Projekt mainproject NChar(100) Virtuální
Předchůdci links NVarChar(16) Virtuální
sizeonservers sizeonservers Decimal Virtuální
skrytakopie skrytakopie NVarChar(100) Virtuální
skutcas skutcas Money (Decimal) Virtuální
stitky stitky NVarChar(10) Virtuální
template template NVarChar(250) Virtuální
ucastniciukol ucastniciukol UniqueIdentifier Virtuální
vazby vazby NVarChar(250) Virtuální
vlastnik vlastnik VarChar(200) Virtuální
vlozitpodpis vlozitpodpis NVarChar(250) Virtuální
volajici volajici NVarChar(250) Virtuální
Volající volajicimain NVarChar(200) Virtuální
Volaný volanymain NVarChar(200) Virtuální
volanyd volanyd NVarChar(250) Virtuální
Vytvořil maincreatedby VarChar(100) Virtuální
Zadavatel zadavatel NVarChar(10) Virtuální
Zadavatel zadavatelF UniqueIdentifier Virtuální
Změnil modifiedbyname VarChar(200) Virtuální
 

Aktivity - vazby

Název Název vdatabázi Typ Standardní/Virtuální
activityid activityid UniqueIdentifier Standardní položka
linkid linkid UniqueIdentifier Standardní položka
objecttypecode objecttypecode Int Standardní položka
 

Ceníky

Název Název vdatabázi Typ Standardní/Virtuální
Akční ceník actionpricelist Bit Standardní položka
code code NVarChar(20) Standardní položka
currencyid currencyid UniqueIdentifier Standardní položka
description description NVarChar(MAX) Standardní položka
name name NVarChar(200) Standardní položka
pricelistid pricelistid UniqueIdentifier Standardní položka
pricetype pricetype PickUp Standardní položka
statecode statecode Int Standardní položka
statuscode statuscode Int Standardní položka
validityfrom validityfrom DateTime Standardní položka
validityto validityto DateTime Standardní položka
Vlastník ownerid UniqueIdentifier Standardní položka
Vytvořeno createdon DateTime Standardní položka
Vytvořil createdby UniqueIdentifier Standardní položka
Vzorový ceník prefiguration Bit Standardní položka
Zamčeno zamceno Bit Standardní položka
Změněno modifiedon DateTime Standardní položka
Změnil modifiedby UniqueIdentifier Standardní položka
mainmena mainmena NVarChar(50) Virtuální
Vazby vazby NVarChar(50) Virtuální
Vlastník vlastnik NVarChar(200) Virtuální
 

Ceníky - položky

Název Název vdatabázi Typ Standardní/Virtuální
Cena je za x MJ quantityprice Money (Decimal) Standardní položka
Číslo produktu producttypecode PickUp Standardní položka
Dodavatelský kód produktu vendorpartnumber NVarChar(100) Standardní položka
menanakup menanakup UniqueIdentifier Standardní položka
menaprodej menaprodej UniqueIdentifier Standardní položka
MJ defaultunitid UniqueIdentifier Standardní položka
MJ fakturační unitinvoice UniqueIdentifier Standardní položka
MJ nákupní unitpurchase UniqueIdentifier Standardní položka
MJ přepravní unitshipping UniqueIdentifier Standardní položka
MJ skladová unitstock UniqueIdentifier Standardní položka
MJ technologická unittechnology UniqueIdentifier Standardní položka
Nákupní cena purchasetariffprice Money (Decimal) Standardní položka
Nákupní cena s DPH purchasepricedph Money (Decimal) Standardní položka
Název produktu name NVarChar(100) Standardní položka
price price Money (Decimal) Standardní položka
pricedph pricedph Money (Decimal) Standardní položka
pricelistfieldid pricelistfieldid UniqueIdentifier Standardní položka
pricelistid pricelistid UniqueIdentifier Standardní položka
Prodejní cena sellingtariffprice Money (Decimal) Standardní položka
Prodejní cena s DPH sellingpricedph Money (Decimal) Standardní položka
Prodejní kód productnumber NVarChar(100) Standardní položka
productid productid UniqueIdentifier Standardní položka
sdan sdan Int Standardní položka
Výrobce vendorname NVarChar(100) Standardní položka
Vytvořeno createdon DateTime Standardní položka
Vytvořil createdby UniqueIdentifier Standardní položka
Změněno modifiedon DateTime Standardní položka
Změnil modifiedby UniqueIdentifier Standardní položka
Měna nákup mainmenanakup NVarChar(100) Virtuální
Měna prodej mainmenaprodej NVarChar(100) Virtuální
produktmain produktmain NVarChar(200) Virtuální
Vlastník ownerid UniqueIdentifier Virtuální
Vytvořil maincreatedby VarChar(100) Virtuální
Základní MJ produktu mainunit VarChar(200) Virtuální
 

Dodací listy položky

Název Název vdatabázi Typ Standardní/Virtuální
cenanakup cenanakup Money (Decimal) Standardní položka
cenaprodej cenaprodej Money (Decimal) Standardní položka
cenaprodejdph cenaprodejdph Money (Decimal) Standardní položka
cenikcenanakup cenikcenanakup Money (Decimal) Standardní položka
cenikcenaprodej cenikcenaprodej Money (Decimal) Standardní položka
ceniknakupid ceniknakupid UniqueIdentifier Standardní položka
cenikpolozkanakupid cenikpolozkanakupid UniqueIdentifier Standardní položka
cenikpolozkaprodejid cenikpolozkaprodejid UniqueIdentifier Standardní položka
cenikprodejid cenikprodejid UniqueIdentifier Standardní položka
cenovepravidlonakupid cenovepravidlonakupid UniqueIdentifier Standardní položka
cenovepravidloprodejid cenovepravidloprodejid UniqueIdentifier Standardní položka
createdby createdby UniqueIdentifier Standardní položka
createdon createdon DateTime Standardní položka
dodlistid dodlistid UniqueIdentifier Standardní položka
dodlpolozkaid dodlpolozkaid UniqueIdentifier Standardní položka
finalnicenanakup finalnicenanakup Money (Decimal) Standardní položka
finalnicenanakupkc finalnicenanakupkc Money (Decimal) Standardní položka
finalnicenaprodej finalnicenaprodej Money (Decimal) Standardní položka
finalnicenaprodejdph finalnicenaprodejdph Money (Decimal) Standardní položka
finalnicenaprodejkc finalnicenaprodejkc Money (Decimal) Standardní položka
jcenanakup jcenanakup Money (Decimal) Standardní položka
jcenaprodej jcenaprodej Money (Decimal) Standardní položka
jcenaprodejdph jcenaprodejdph Money (Decimal) Standardní položka
jocenanakup jocenanakup Money (Decimal) Standardní položka
jocenaprodej jocenaprodej Money (Decimal) Standardní položka
kodkampane kodkampane NVarChar(20) Standardní položka
kursnakup kursnakup Decimal Standardní položka
kursprodej kursprodej Decimal Standardní položka
mnozstvi mnozstvi Money (Decimal) Standardní položka
modifiedby modifiedby UniqueIdentifier Standardní položka
modifiedon modifiedon DateTime Standardní položka
nazev nazev NVarChar(200) Standardní položka
objectid objectid UniqueIdentifier Standardní položka
objecttypecode objecttypecode Int Standardní položka
omenanakup omenanakup UniqueIdentifier Standardní položka
omenaprodej omenaprodej UniqueIdentifier Standardní položka
popis popis NText(MAX) Standardní položka
poradi poradi Int Standardní položka
prepocitat prepocitat Bit Standardní položka
productid productid UniqueIdentifier Standardní položka
quantitypurchaseprice quantitypurchaseprice Money (Decimal) Standardní položka
quantityselligprice quantityselligprice Money (Decimal) Standardní položka
sdan sdan Int Standardní položka
slevanakup slevanakup NVarChar(15) Standardní položka
slevaprodej slevaprodej NVarChar(15) Standardní položka
typpolozky typpolozky PickUp Standardní položka
maincenovepravidlonakup maincenovepravidlonakup NVarChar(200) Virtuální
maincenovepravidloprodej maincenovepravidloprodej NVarChar(200) Virtuální
měna nákup mainomenanakup NVarChar(10) Virtuální
Měna prodej mainomenaprodej NVarChar(10) Virtuální
vazba vazba NVarChar(10) Virtuální
 

FAQ

Název Název vdatabázi Typ Standardní/Virtuální
budgetid budgetid UniqueIdentifier Standardní položka
deletionstatecode deletionstatecode Int Standardní položka
faqid faqid UniqueIdentifier Standardní položka
faqidparent faqidparent UniqueIdentifier Standardní položka
faqnumber faqnumber NVarChar(50) Standardní položka
faqtyp faqtyp PickUp Standardní položka
name name NVarChar(200) Standardní položka
popis popis NVarChar(MAX) Standardní položka
popisplain popisplain NVarChar(MAX) Standardní položka
pozadavekid pozadavekid UniqueIdentifier Standardní položka
poznamkaid poznamkaid UniqueIdentifier Standardní položka
smlouvaid smlouvaid UniqueIdentifier Standardní položka
statecode statecode PickUp Standardní položka
statuscode statuscode PickUp Standardní položka
viditelnezakaznikovi viditelnezakaznikovi Bit Standardní položka
Vlastník ownerid UniqueIdentifier Standardní položka
Vytvořeno createdon DateTime Standardní položka
Vytvořil createdby UniqueIdentifier Standardní položka
Zamčeno zamceno Bit Standardní položka
Změněno modifiedon DateTime Standardní položka
Změnil modifiedby UniqueIdentifier Standardní položka
Vazby vazby NVarChar(50) Virtuální
Vlastník vlastnik NVarChar(200) Virtuální
 

Firmy

Název Název vdatabázi Typ Standardní/Virtuální
AddressBase idaddress1 UniqueIdentifier Standardní položka
Aktivní aktivni Bit Standardní položka
CreditCheck creditcheckcode PickUp Standardní položka
CribisCode cribiscode PickUp Standardní položka
Činnost employment PickUp Standardní položka
datovaschrankaid datovaschrankaid NVarChar(7) Standardní položka
Datum narození birthdate DateTime Standardní položka
DIČ obch. vztahu dic NVarChar(20) Standardní položka
Doporučil doporucilid UniqueIdentifier Standardní položka
Fax 2 fax2 NVarChar(50) Standardní položka
Fax 3 fax3 NVarChar(50) Standardní položka
Fax obch. vztahu fax NVarChar(50) Standardní položka
firmaid firmaid PickUpGuid Standardní položka
gdprstatus gdprstatus PickUp Standardní položka
gdprucel gdprucel PickUpBit Standardní položka
Hlavní email obch. vztahu emailaddress1 NVarChar(100) Standardní položka
Hlavní kontaktní osoba u OV primarycontactid UniqueIdentifier Standardní položka
Hlavní telefon obch. vztahu telephone1 NVarChar(50) Standardní položka
IČO obch. vztahu ico NVarChar(20) Standardní položka
insolvence insolvence Bit Standardní položka
Jiný email 2 obch. vztahu emailaddress3 NVarChar(100) Standardní položka
Jiný email obch. vztahu emailaddress2 NVarChar(100) Standardní položka
Jiný telefon 2 obch. vztahu telephone3 NVarChar(50) Standardní položka
Jiný telefon obch. vztahu telephone2 NVarChar(50) Standardní položka
Kontaktní osoba 1 contactperson1 NVarChar(100) Standardní položka
Kontaktní osoba 2 contactperson2 NVarChar(100) Standardní položka
Kontaktní osoba 3 contactperson3 NVarChar(100) Standardní položka
mobilephone mobilephone NVarChar(50) Standardní položka
mobilephone2 mobilephone2 NVarChar(50) Standardní položka
mobilephone3 mobilephone3 NVarChar(50) Standardní položka
Nadřazený obch.vztah parentcustomerid UniqueIdentifier Standardní položka
Název organizace name NVarChar(300) Standardní položka
Nespolehlivý plátce nespolehlivyplatce Bit Standardní položka
Obrat obch. vztahu turnover Money (Decimal) Standardní položka
pds pds Int Standardní položka
Plátce daně paytaxes Bit Standardní položka
Plus8Code plus8code PickUp Standardní položka
Počet zaměstnanců obch. vztahu numberofemployees Int Standardní položka
Popis obch. vztahu description NText(MAX) Standardní položka
Prvotní zájemce originatingleadid UniqueIdentifier Standardní položka
Rodné číslo rodnecislo NVarChar(20) Standardní položka
salutation salutation NVarChar(200) Standardní položka
SoliditetCode soliditetcode PickUp Standardní položka
spisovaznacka spisovaznacka NVarChar(20) Standardní položka
Středisko strediskoid UniqueIdentifier Standardní položka
Typ adresy u obch. vztahu addresstypecode PickUp Standardní položka
Typ vztahu customertypecode