Trieda Application
Trieda Application je stavebným kameňom otvoreného rozhrania. Trieda poskytuje služby na úrovni aplikácie, umožňuje predovšetkým prihlásenie / odhlásenie, výber spojenia, výber firmy, správu transakcií, prístup k business objektom v systéme (napr. firma, faktúra, objednávka atď.) a prístup k DynSQL (čo je nástroj na vyhľadávanie v databáze s rôznymi obmedzeniami a radením).
Metódy a vlastnosti:

function Connect(const Connection: WideString): WordBool;
- Popis:
-
Funkcia umožní vybrať spojenie na databázu, ktorú chcete používať. Názvy definovaných spojení nie sú otvoreným rozhraním sprostredkované. Parametr Connection je pakovaný GUID nebo je možné s použitím "@" uvést "rozumný" název spojení. Connect je možné použiť len raz pre pripojenie na vybranú databázu.
Pokud je předaný parametr NULL GUID, funkce vrátí False, jinak True. Funkcia vráti False aj vtedy, keď nie je nájdené spojenie podľa názvu (pozri @).
Pokus o opätovný Connect (), skončí chybovým hlásením, že spojenie s databázou už prebehlo.
V predchádzajúcich verziách bolo možné prepnúť na iné spojenie počas práce s otvoreným rozhraním pomocou Connect a súvisiacej metódy Disconnect. Metoda Disconnect je sice nadále k dispozici kvůli zpětné kompatibilitě, nicméně nemá již žádný další význam, tj. neprovádí nic.

function Login(const UserName: WideString; const Password: WideString): WordBool;
- Popis:
- Metóda prihlási užívateľa s užívateľským menom UserName a heslom Password. Pozor, oba parametre rozlišujú malé / veľké písmená. Pokiaľ užívateľ nie je pre systém známy, vráti funkciu False.
- Súvisiace metódy:
- Logout

procedure Logout;
- Popis:
- Odhlásenie prihláseného užívateľa. Je možné sa odhlásiť aj keď nie je prihlásený užívateľ, nie je to ale korektný postup.
- Súvisiace metódy:
- Login

procedure Finalize;
- Popis:
- Vykoná operácie potrebné pre korektné ukončenie aplikácie. Mala by sa vyvolať na poslednom objekte Application pred ukončením aplikácie. Je nutné ji zavolat pouze v případě použití AbraOLELib, v případěAbraOLE se potřebné operace provedou automaticky. Volání metody Finalize lze nahradit zavoláním funkce CoFreeUnusedLibraries před ukončením aplikace (tato funkce není dostupná v jazyku VBScript).

procedure StartTransaction;
- Popis:
- Zahájenie transakcie. Za normálnych okolností sa transakcie zakladajú samy a nie je nutné sa o ne starať. Vlastnú transakciu je nutné založiť iba vtedy, pokiaľ zakladáme / opravujeme / mažeme viac objektov naraz a chceme, aby boli uložené všetky zmeny / alebo naopak žiadna zmena. Pri používaní transakcií je nutné postarať sa o to, aby v prípade výnimky bola transakcia korektne ukončená vyvolaním Commit() alebo Rollback() za každých okolností.
- Súvisiace metódy:
- InTransaction, Commit, Rollback

property InTransaction: WordBool readonly;
- Popis:
- Hodnota hovorí, či máte rozbehnutú svoju transakciu zahájenú metódou StartTransaction(). Pokiaľ je transakcia aktívna, je ju možné ukončiť a uložiť zmeny vyvolaním Commit() alebo naopak všetky zmeny odvolať volaním Rollback(). Pokiaľ je transakcia rozbehnutá, ďalšie rozbehnutie vyvolania StartTransaction() spôsobí výnimku.
- Súvisiace metódy:
- StartTransaction, Commit, Rollback

procedure Commit;
- Popis:
- Potvrdenie zmien a ich zapísanie do systému (všetko alebo nič).
- Súvisiace metódy:
- StartTransaction, InTransaction, Rollback

procedure Rollback;
- Popis:
- Odvolanie zmien. V rámci odvolanej transakcie nie sú žiadne dáta do systému zapísané, všetky zmeny budú zabudnuté.
- Súvisiace metódy:
- StartTransaction, InTransaction, Commit

function CreateValues(const CLSID: WideString): ObjectData;
- Popis:
- Funkce vrátí novou instanci objektu ObjectData. Parametr CLSID je pakovaný GUID nebo je možné s použitím "@" uvést "rozumný" název třídy. Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka.

function GetValueDescriptors(const CLSID: WideString): DataCollection;
- Popis:
- Funkcia vráti kolekciu objektov typu FieldDescription. Z akej triedy budú, určujeme parametrom CLSID.

function CreateObject(const CLSID: WideString): IDispatch;
- Popis:
- Funkcia vráti novú inštanciu objektu DataObject. Parametr CLSID je pakovaný GUID nebo je možné s použitím "@" uvést "rozumný" název třídy (např. CreateValues("@Firm"). Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka. Vrátený je interface IDispatch, na ktorom si môžeme vyvolať akékoľvek metódy (objekt ich samozrejme musí implementovať). Vrátený objekt tiež podporuje generický interface DataObject.

function CreateCommand(const CMDName: WideString): DynamicQuery;
- Popis:
- Funkcia vráti novú inštanciu objektu DynamicQuery pre požadovanú DynSQL s názvom CMDName. Takýto DynSQL musí existovať. Táto funkcia prijíma na rozdiel od CreateCustomCommand() "užívateľsky príjemnejší" názov definovaný v DynSQL. Pokiaľ je zadaný názov, ktorý nie je v DynSQL nájdený, je vyvolaná výnimka.
- Súvisiace metódy:
- CreateCustomCommand

function CreateCustomCommand(const CMDID: WideString): DynamicQuery;
- Popis:
- Funkcia vráti novú inštanciu objektu DynamicQuery pre požadovaný DynSQL s názvom CMDID. Takýto DynSQL musí existovať. Pokiaľ je zadaný názov, ktorý nie je v DynSQL nájdený, je vyvolaná výnimka.
- Súvisiace metódy:
- CreateCommand

function CreateTranslator(const CLSID: WideString; const ReverseMode: WordBool): Translator;
- Popis:
- Funkcia vráti novú inštanciu objektu Translator. Parameter CLSID je pakovaný GUID alebo je možné s použitím "@" uviesť "rozumný" názov triedy (napr. CreateTranslator("@Firm")). Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka. Parameter ReverseMode určuje, či bude translátor spätný alebo nie, spätný translátor má prehodené významy Term a Meaning (viď príslušné metódy triedy Translator).

function GetRoll(const ClassId: WideString; Mask: Integer): Roll;
- Popis:
-
Funkcia vráti inštanciu objektu Roll. Parameter ClassId je pakovaný alebo nepakovaný GUID v znakovej podobe. Pokiaľ pre dané ClassId neexistuje číselník, alebo sa nejedná o tzv. Business číselník, je vyvolaná výnimka. Parameter Mask určuje s akou maskou práv sa daný číselník získa. Maska je tzv. bitová maska, kde jednotlivé bity majú význam podľa definovaných práv v rámci chránených objektov.
- 0 – bez omezení práv
- 1 – pouze s právem zobrazit
- 2 – pouze s právem použít
- 3 – s právem zobrazit i použít
- Súvisiace metódy:
- DropRoll

procedure DropRoll(const ClassId: WideString; Mask: Integer);
- Popis:
-
Procedúra uvolní inštanciu číselníka z cache číselníkov. Parameter ClassId je pakovaný alebo nepakovaný GUID v znakovej podobe. Parameter Mask určuje o aký číselník s akou maskou práv ide. Maska je tzv. bitová maska, kde jednotlivé bity majú význam podľa definovaných práv v rámci chránených objektov.
- 0 – bez omezení práv
- 1 – pouze s právem zobrazit
- 2 – pouze s právem použít
- 3 – s právem zobrazit i použít
- Súvisiace metódy:
- GetRoll

function GetAgenda(const ClassId: WideString): Agenda;
- Popis:
- Funkcia vráti inštanciu objektu Agenda. Parameter ClassId je pakovaný alebo nepakovaný GUID v znakovej podobe. Pokiaľ pre dané ClassId neexistuje agenda, je vyvolaná výnimka.

procedure Run(const CommandLine: WideString);
- Popis:
- Funkce spustí interní příkaz systému ABRA Gen nebo aplikační modul. Pokiaľ je príkaz neznámy alebo nebol aplikačný modul nájdený, je vyvolaná výnimka.
-
Príklady aplikačných modulov:
- POS - modul pokladne
- TouchPOS - modul pokladne s dotykovým displejom
- PriceDialog - modul pre dohľadanie predajnej ceny

procedure SQLExecute(const ASQL: WideString);
- Popis:
- Funkcia vykoná akýkoľvek SQL príkaz (teda aj INSERT, UPDATE, DELETE a DDL) v kontexte bežiacej transakcie. Uživatel musí mít právo Použít funkci SQLUpdate a nesmí mít zakázáno použití konkrétních tabulek ve skriptovacích funkcíh.

procedure SQLSelect(const ASQL: WideString; AResult: _Strings);
- Popis:
- Funkcia vykoná akýkoľvek SQL príkaz typu SELECT v kontexte bežiacej transakcie. Výsledok je vrátený v AResult vo formáte CSV (každá položka AResult zodpovedá jednému záznamu, jednotlivé stĺpčeky sú oddelené bodkočiarkou). Uživatel musí mít právo Použít funkci SQLSelect a nesmí mít zakázáno použití konkrétních tabulek ve skriptovacích funkcích.

function SQLSelectAsRowset(const ASQL: WideString): Rowset;
- Popis:
- Funkcia vykoná akýkoľvek SQL príkaz typu SELECT v kontexte bežiacej transakcie. Výsledok je vrátený ako nový objekt Rowset. Uživatel musí mít právo Použít funkci SQLSelect a nesmí mít zakázáno použití konkrétních tabulek ve skriptovacích funkcích.

function CreateStrings: _Strings;
- Popis:
- Funkcia vytvorí a vráti novú prázdnu inštanciu triedy _Strings.

function CreateCollection: DataCollection;
- Popis:
- Funkcia vytvorí a vráti novú prázdnu inštanciu triedy DataCollection.

function CreateDocumentImportManager(const InputCLSID: WideString; const OutputCLSID: WideString): DocumentImportManager;
- Popis:
- Metóda vytvorí a vráti novú inštanciu rozhrania DocumentImportManager. Parameter InputCLSID a OutputCLSID je pakovaný GUID alebo je možné s použitím "@" uviesť "rozumný" názov triedy (napr. CreateDocumentImportManager("@BillOfDelivery", "@IssuedInvoice")). Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka.

function Evaluate(const Expression: WideString ): WideString;
- Popis:
- Funkcia vyhodnotí výraz Expression pomocou evaluátora a vráti jeho výsledok.

function GetConnections(const Str: _Strings ): WordBool;
- Popis:
- Funkce vrátí v parametru Str seznam existujících spojení na databáze ve formátu GUID spojení=Název. Návratová hodnota funkcie je vždy nastavená na True, pri chybe je vyvolaná výnimka.

function ActiveConnection: WideString;
- Popis:
- Funkce vrátí GUID aktuálního spojení na databázi. Funkci je možno použít ve spojení s funkcí GetConnections pro získání názvu aktuálního spojení.

function GetUsers(const Str: _Strings ): WordBool;
- Popis:
- Funkcia vráti v parametri Str zoznam užívateľov vo formáte ID užívateľa=Meno užívateľa (Pozor, nie prihlasovacie meno). Ak nie je možné užívateľa načítať, je návratová hodnota funkcie False, pri chybe je vyvolaná výnimka.

function ActiveUser: WideString;
- Popis:
- Funkcia vráti ID aktuálne prihláseného užívateľa. Funkci je možno použít ve spojení s funkcí GetUsers pro získání jména aktuálně přihlášeného uživatele.

function GetSCMDataProvider: SCMDataProvider;
- Popis:
- Metoda vrátí globální instanci třídy SCMDataProvider - poskytovatele dat pro modul SCM.

function CreateDocumentDriver: DocumentDriver;
- Popis:
- Vytvorí ovládač dokumentu DocumentDriver, pomocou ktorého je možné vytvoriť nový dokument, pridať nový obsah, uložiť obsah do súboru atď.

function CreateSQLStatement: SQLStatement;
- Popis:
- Vytvorí objekt SQLStatement, pomocou ktorého je možné vykonávať SQL príkazy.

function CreateSQLStatement: SQLStatement;
- Popis:
- Pomocí této vlastnosti lze nastavit handle okna, které se následně bere jako "Parent" pro okna zobrazující se v OLE rozhraní ABRY. Okna se pak zobrazí ve správném pořadí. Nastavením na 0 se nastavení handlu zruší a okna se zobrazí, jako by handle nebyl nastaven.
procedure sactIOle(Sender: TObject);
var
mOle, mRoll: variant;
mAction: TAction;
mPF: TForm;
begin
mAction := TAction(Sender);
mOle := mAction.Site.GetAbraOLEApplication;
mPF := mAction.site.GetParentForm;
mOle.WndParent := mPF.Handle;
mRoll := mOle.GetRoll('0BOXHKRF4VD13ACL03KIU0CLP4', 2);
mRoll.SelectDialog2(True, '');
end;