Třída Application
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:
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.
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
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
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).
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
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
procedure Commit;
- Popis:
- Potvrzení změn a jejich zapsání do systému (všechno nebo nic).
- Související metody:
- StartTransaction, InTransaction, 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
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.
function GetValueDescriptors(const CLSID: WideString): DataCollection;
- Popis:
- Funkce vrátí kolekci objetků typu FieldDescription. Z jaké třídy budou určujeme parametrem CLSID.
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.
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
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
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).
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
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
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.
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
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.
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.
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.
function CreateStrings: _Strings;
- Popis:
- Funkce vytvoří a vrátí novou prázdnou instanci třídy _Strings.
function CreateCollection: DataCollection;
- Popis:
- Funkce vytvoří a vrátí novou prázdnou instanci třídy DataCollection.
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.
function Evaluate(const Expression: WideString ): WideString;
- Popis:
- Funkce vyhodnotí výraz Expression pomocí evaluátoru a vrátí jeho výsledek.
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.
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:
- 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.
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.
function GetSCMDataProvider: SCMDataProvider;
- Popis:
- Metoda vrátí globální instanci třídy SCMDataProvider - poskytovatele dat pro modul SCM.
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.
function CreateSQLStatement: SQLStatement;
- Popis:
- Vytvoří objekt SQLStatement, pomocí kterého je možné provádět SQL pří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;