AbraScript
AbraScript je konzolová aplikace, která umožňuje spouštět skripty napsané pro ABRA Gen přímo z prostředí Windows.
Využívá při tom přímo skriptovacího enginu ABRA Gen (to znamená, že jsou k dispozici Nx funkce, business objekty atd). Lze s její pomocí převést balíčky skriptů napsané v ABRA Gen do editovatelných .pas souborů a naopak (včetně zakódování/odkódování), kompilovat skripty do XML jednotky, která je volitelně chráněná heslem a spustitelná v AbraScriptu jiné instalace.
AbraScript.exe help
Syntaxe skriptů je stejná jako u skriptů v modulu Skriptování, tedy PascalScript. Při spuštění AbraScriptu je důležité pořadí parametrů, cesta ke skriptu/knihovně odděluje nepovinné parametry AbraScriptu (instrukce ke spuštění/kompilaci/extrakci, výchozí je spuštění) nalevo od nepovinných parametrů spouštěného skriptu napravo:
AbraScript.exe [parametry AbraScriptu]skript[parametry předané spouštěnému skriptu]
Vypíše string předaný parametrem AMessage do konzole.
Skript = soubor.pas obsahující proceduru
Main(AObjSpace: TNxCustomObjectSpace; AParams: array of string);
která je vyvolána při spuštění skriptu. Prvním parametrem je jí předán ObjectSpace, druhým parametrem pak pole argumentů, které lze předat při spouštění.
Spouštění skriptů vypadá následovně:
AbraScript.exe test.pas argument1 argument2
Vzhledem k tomu, že je zapotřebí pracovat s ObjectSpace, může být zapotřebí se přihlásit (jako výchozí je použit Supervisor a prázdné heslo):
AbraScript.exe –u Supervisor –p p@ssW0rd test.pas argument1 argument2
Spouštění prekompilovaných (a zabalených) skriptů pomocí –o do XML probíhá stejně:
AbraScript.exe test.xml argument1 argument2
Výběr se provádí specifikací parametru -c, za kterým následuje název připojení (v tomto případě Data):
AbraScript.exe –c Data test.pas argument1 argument2
Při umístění balíčků mimo složku obsahující projekt (struktura viz část Rozbalení balíčku) je možnost využít specifikace alternativního umístění balíčků (skript x.pas mám na Ploše, potřebné balíčky v C:\projekty):
AbraScript.exe -a C:\projekty x.pas parametr1 parametr2
Tato volba funguje jak při spouštění, tak při kompilaci.
Ke spouštění skriptů uložených v db slouží parametr -l (malé L), místo cesty k souboru se skriptem pak uvádíme název knihovny, která obsahuje proceduru Main, ve tvaru balíček.knihovna, tedy pokud bychom měli balíček test obsahující knihovnu Lib1:
AbraScript.exe -l "test.Lib1" parametr1 parametr2
AbraScript umožňuje spouštět libovolné funkce/výrazy nad zvoleným skriptem. V tomto režimu je skript načten bez volání Main, je spuštěn pouze výraz předaný parametrem -e. Je možné využít zástupných řetězců {AOBJECTSPACE} a {APARAMS} pro pole parametrů skriptu, resp. ObjectSpace - zástupné řetězce jsou nahrazeny názvy globálních proměnných s patřičnými hodnotami.
Následuje příklad volání procedury moje_fce s parametrem ObjectSpace a aktuálním časem, která je součástí knihovny Lib1 balíčku test uloženém v databázi (parametr -l).
AbraScript.exe -l -e "moje_fce({OBJECTSPACE}, Now);" "test.Lib1"
Vzhledem ke kompatibilitě XML exportu s ABRA exportem byla zvolena následující struktura, kde složka test označuje název balíčku a názvy souborů názvy knihoven.
Příklad tedy představuje balíček test obsahující knihovny test a Lib1:
\test\test.pas
\test\Lib1.pas
Předchozí příklad odpovídá balíčku v systému ABRA Gen s názvem test, obsahujícímu knihovny test a Lib1. Ten by také v systému ABRA Gen vznikl po importu souboru muj_skript.xml vytvořeného pomocí:
AbraScript.exe –o muj_skript.xml test.pas
za předpokladu, že test.pas využívá knihovnu Lib1:
uses ‘Lib1‘;
Při vytváření balíčku je balíček ve výsledném XML nazván podle názvu výchozího souboru, tedy pokud je vstupním souborem test.pas, balíček se po importu do systému ABRA Gen bude jmenovat test. Název balíčku je možné změnit pomocí parametru -n:
AbraScript.exe –o muj_skript.xml -n TestPkg test.pas
Takto by byl po importu do systému ABRA Gen změněn název balíčku na TestPkg. XML je možné zakódovat (zaheslovat) tak, jako to dělá systém ABRA Gen, pomocí parametru –s:
AbraScript.exe –o muj_skript.xml –s p@ssW0rd test.pas
test.xml exportovaného ze systému ABRA Gen do složky C:\projekty, pomocí parametru –d:
AbraScript.exe –d C:\projekty test.xml
Klauzule uses funguje stejně jako v systému ABRA Gen, jen je zapotřebí dodržet strukturu projektů. Tzn. balíček = složka, knihovna = soubor.pas, aby AbraScript správně dohledal zahrnovaný balíček, je nutné mít zahrnovaný balíček ve stejné složce jako balíček zahrnující (nebo nastavit parametr -a, viz Alternativní umístění knihoven):
C:\balicky\test\test.pas
C:\balicky\test\Lib1.pas
C:\balicky\TestPackage\XYZ.pas
Pokud je zadáno bezpečnostní heslo pro přístup k administračním nástrojům, je třeba jej při spuštění zadat, a to pomocí parametru -r, jinak není možné provádět jakékoli akce:
AbraScript.exe -r p@ssW0rd test.pas