Třída Application je stavebním kamenem otevřeného rozhraní. Třída poskytuje služby na úrovni aplikace, umožňuje především přihlášení / odhlášení, výběr spojení, výběr firmy, správu transakcí, přístup k business objektům v systému (např. firma, faktura, objednávka atd.) a přístup k DynSQL (což je nástroj pro dotazování do databáze s různými omezeními a řazením).
Metody a vlastnosti:
 Connect
Connect
                                                        function Connect(const Connection: WideString): WordBool;- Popis:
- 
                                                                    Funkce umožní vybrat spojení na databázi, kterou chcete používat. Názvy definovaných spojení nejsou otevřeným rozhraním zprostředkovány. Parametr Connection je pakovaný GUID nebo je možné s použitím "@" uvést "rozumný" název spojení. Connect lze použít pouze jednou pro připojení na vybranou databázi. Pokud je předaný parametr NULL GUID, funkce vrátí False, jinak True. Funkce vrátí False i tehdy, jestliže není dohledáno spojení podle názvu (viz @). Pokus o opětovný Connect (), skončí chybovým hlášením, že spojení s databází již proběhlo. V předchozích verzích bylo možno přepnout na jiné spojení během práce s otevřeným rozhraním pomocí Connect a související metody 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. 
 Login
Login
                                                        function Login(const UserName: WideString; const Password: WideString): WordBool;- Popis:
- Metoda přihlásí uživatele s uživatelským jménem UserName a heslem Password. Pozor, oba dva parametry rozlišují malá / velká písmena. Pokud uživatel není systému znám, vrátí funkce False.
- Související metody:
- Logout
 Logout
Logout
                                                        procedure Logout;- Popis:
- Odhlášení přihlášeného uživatele. Je možné se odhlásit i když není přihlášený uživatel, není to ale korektní postup.
- Související metody:
- Login
 Finalize
Finalize
                                                        procedure Finalize;- Popis:
- Provede operace potřebné pro korektní ukončení aplikace. Měla by se zavolat na posledním objektu Application před ukončením aplikace. 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).
 StartTransaction
StartTransaction
                                                        procedure StartTransaction;- Popis:
- Zahájení transakce. Za normálních okolností se transakce zakládají samy a není nutné se o ně starat. Vlastní transakci je nutné založit pouze tehdy, pokud zakládáme / opravujeme / mažeme více objektů najednou a chceme, aby se byly uloženy všechny změny / nebo naopak žádná změna. Při používání transakcí je nutné se postarat, aby v případě výjimky byla transakce korektně ukončena voláním Commit() nebo Rollback() za každých okolností.
- Související metody:
- InTransaction, Commit, Rollback
 InTransaction
InTransaction
                                                        property InTransaction: WordBool readonly;- Popis:
- Hodnota říká, zda máte rozjetu svoji transakci zahájenou metodou StartTransaction(). Pokud je transakce aktivní, je možné ji ukončit a uložit změny voláním Commit() nebo naopak všechny změny odvolat voláním Rollback(). Pokud je transakce rozjetá, další rozjetí volání StartTransaction() způsobí výjimku.
- Související metody:
- StartTransaction, Commit, Rollback
 Commit
Commit
                                                        procedure Commit;- Popis:
- Potvrzení změn a jejich zapsání do systému (všechno nebo nic).
- Související metody:
- StartTransaction, InTransaction, Rollback
 Rollback
 Rollback
                                                        procedure Rollback;- Popis:
- Odvolání změn. V rámci odvolané transakce nejsou žádná data do systému zapsána, všechny změny budou zapomenuty.
- Související metody:
- StartTransaction, InTransaction, Commit
 CreateValues
CreateValues
                                                        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. Pokud třída není v systému nalezena, je vyvolána výjimka.
 GetValueDescriptors
GetValueDescriptors
                                                        function GetValueDescriptors(const CLSID: WideString): DataCollection; - Popis:
- Funkce vrátí kolekci objetků typu FieldDescription. Z jaké třídy budou určujeme parametrem CLSID.
 CreateObject
CreateObject
                                                        function CreateObject(const CLSID: WideString): IDispatch;- Popis:
- Funkce vrátí novou instanci 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"). Pokud třída není v systému nalezena, je vyvolána výjimka. Vrácen je interface IDispatch, na kterém si můžeme zavolat jakékoliv metody (objekt je samozřejmě musí implementovat). Vrácený objekt také podporuje generický interface DataObject.
 CreateCommand
CreateCommand
                                                        function CreateCommand(const CMDName: WideString): DynamicQuery;- Popis:
- Funkce vrátí novou instanci objektu DynamicQuery pro požadovaný DynSQL s názvem CMDName. Takový DynSQL musí existovat. Tato funkce přijímá na rozdíl od CreateCustomCommand() "uživatelsky příjemnější" název definovaný v DynSQL. Pokud je zadán název, který není v DynSQL nalezen, je vyvolána výjimka.
- Související metody:
- CreateCustomCommand
 CreateCustomCommand
CreateCustomCommand
                                                        function CreateCustomCommand(const CMDID: WideString): DynamicQuery;- Popis:
- Funkce vrátí novou instanci objektu DynamicQuery pro požadovaný DynSQL s názvem CMDID. Takový DynSQL musí existovat. Pokud je zadán název, který není v DynSQL nalezen, je vyvolána výjimka.
- Související metody:
- CreateCommand
 CreateTranslator
CreateTranslator
                                                        function CreateTranslator(const CLSID: WideString; const ReverseMode: WordBool): Translator;- Popis:
- Funkce vrátí novou instanci objektu Translator. Parametr CLSID je pakovaný GUID nebo je možné s použitím "@" uvést "rozumný" název třídy (např. CreateTranslator("@Firm")). Pokud třída není v systému nalezena, je vyvolána výjimka. Parametr ReverseMode určuje zda bude tránslátor zpětný nebo ne, zpětný translátor má prohozené významy Term a Meaning (viz příslušné metody třídy Translator).
 GetRoll
GetRoll
                                                        function GetRoll(const ClassId: WideString; Mask: Integer): Roll;- Popis:
- 
                                                                    Funkce vrátí instanci objektu Roll. Parametr ClassId je pakovaný nebo nepakovaný GUID ve znakové podobě. Pokud pro dané ClassId neexistuje číselník, nebo se nejedná o tzv. Business číselník, je vyvolána výjimka. Parametr Mask určuje s jakou maskou práv se daný číselník získá. Maska je tzv. bitová maska, kde jednotlivé bity mají význam podle definovaných práv u chráněných objektů. - 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
 
- Související metody:
- DropRoll
 DropRoll
DropRoll
                                                        procedure DropRoll(const ClassId: WideString; Mask: Integer);- Popis:
- 
                                                                    Procedura uvolní instanci číselníku z cache číselníků. Parametr ClassId je pakovaný nebo nepakovaný GUID ve znakové podobě. Parametr Mask určuje o jaký číselník s jakou maskou práv se jedná. Maska je tzv. bitová maska, kde jednotlivé bity mají význam podle definovaných práv u chráněných objektů. - 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
 
- Související metody:
- GetRoll
 GetAgenda
GetAgenda
                                                        function GetAgenda(const ClassId: WideString): Agenda;- Popis:
- Funkce vrátí instanci objektu Agenda. Parametr ClassId je pakovaný nebo nepakovaný GUID ve znakové podobě. Pokud pro dané ClassId neexistuje agenda, je vyvolána výjimka.
 Run
Run
                                                        procedure Run(const CommandLine: WideString);- Popis:
- Funkce spustí interní příkaz systému ABRA Gen nebo aplikační modul. Pokud je příkaz neznámý nebo nebyl aplikační modul nalezen, je vyvolána výjimka.
- 
                                                                    Příklady aplikačních modulů: - POS - modul pokladny
- TouchPOS - modul pokladny s dotykovým displejem
- PriceDialog - modul pro dohledání prodejní ceny
 
 SQLExecute
SQLExecute
                                                        procedure SQLExecute(const ASQL: WideString);- Popis:
- Funkce vykoná jakýkoliv SQL příkaz (tedy i INSERT, UPDATE, DELETE a DDL) v kontextu běžící transakce. 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.
 SQLSelect
SQLSelect
                                                        procedure SQLSelect(const ASQL: WideString; AResult: _Strings);- Popis:
- Funkce vykoná jakýkoliv SQL příkaz typu SELECT v kontextu běžící transakce. Výsledek je vrácen v AResult ve formátu CSV (každá položka AResult odpovídá jednomu záznamu, jednotlivé sloupečky jsou odděleny středníkem). 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.
 SQLSelectAsRowset
SQLSelectAsRowset
                                                        function SQLSelectAsRowset(const ASQL: WideString): Rowset;- Popis:
- Funkce vykoná jakýkoliv SQL příkaz typu SELECT v kontextu běžící transakce. Výsledek je vrácen jako 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.
 CreateStrings
CreateStrings
                                                        function CreateStrings: _Strings;- Popis:
- Funkce vytvoří a vrátí novou prázdnou instanci třídy _Strings.
 CreateCollection
CreateCollection
                                                        function CreateCollection: DataCollection;- Popis:
- Funkce vytvoří a vrátí novou prázdnou instanci třídy DataCollection.
 CreateDocumentImportManager
CreateDocumentImportManager
                                                        function CreateDocumentImportManager(const InputCLSID: WideString; const OutputCLSID: WideString): DocumentImportManager;- Popis:
- Metoda vytvoří a vrátí novou instanci rozhraní DocumentImportManager. Parametr InputCLSID a OutputCLSID je pakovaný GUID nebo je možné s použitím "@" uvést "rozumný" název třídy (např. CreateDocumentImportManager("@BillOfDelivery", "@IssuedInvoice")). Pokud třída není v systému nalezena, je vyvolána výjimka.
 Evaluate
Evaluate
                                                        function Evaluate(const Expression: WideString ): WideString;- Popis:
- Funkce vyhodnotí výraz Expression pomocí evaluátoru a vrátí jeho výsledek.
 GetConnections
GetConnections
                                                        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 funkce je vždy nastavena na True, při chybě je vyvolána výjimka.
 ActiveConnection
ActiveConnection
                                                        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í.
 GetUsers
GetUsers
                                                        function GetUsers(const Str: _Strings ): WordBool;- Popis:
- Funkce vrátí v parametru Str seznam uživatelů ve formátu ID uživatele=Jméno uživatele (Pozor, nikoliv přihlašovací jméno). Pokud nelze uživatele načíst, je návratová hodnota funkce False, při chybě je vyvolána výjimka.
 ActiveUser
ActiveUser
                                                        function ActiveUser: WideString;- Popis:
- Funkce vrátí ID aktuálně přihlášeného uživatele. 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.
 GetSCMDataProvider
GetSCMDataProvider
                                                        function GetSCMDataProvider: SCMDataProvider;- Popis:
- Metoda vrátí globální instanci třídy SCMDataProvider - poskytovatele dat pro modul SCM.
 CreateDocumentDriver
CreateDocumentDriver
                                                        function CreateDocumentDriver: DocumentDriver;- Popis:
- Vytvoří ovladač dokumentu DocumentDriver, pomocí kterého je možné vytvořit nový dokument, přidat nový obsah, uložit obsah do souboru atd.
 CreateSQLStatement
CreateSQLStatement
                                                        function CreateSQLStatement: SQLStatement;- Popis:
- Vytvoří objekt SQLStatement, pomocí kterého je možné provádět SQL příkazy.
 WndParent
WndParent
                                                        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;