Článek: AN0002009Aktualizováno:: 22.09.2018
Tato funkcionalita vám umožňuje vytvořit sadu skriptů, které je možné interně nebo externě volat. Každý skript patří do jednoho modelu a má globální kód (unikátní v celé instanci systému ObjectGears přes všechny modely), pomocí něhož je skript volán.
Skript je možné pomocí vlastnosti Povolit ihned zakázat. Skripty je možné volat interně (pomocí funkce OG.Script.RunScript) nebo externě (pomocí webové služby RunScript nebo http požadavku na stránka RunScript.aspx). Při externím volání je na skriptu třeba příslušné volání povolit. Dále musí mít uživatel při spouštění mít přiřazenu roli definovanou na skriptu.
Skript je možné spustit s parametry. Ty jsou ve skriptu dostupné pomocí vlastnosti OGParameters.
var hodnota = OGParameters['nazev_parametru'];
Volání pomocí HTTP požadavku
Pro spuštění skriptu pomocí HTTP požadavku slouží stránka RunScript.aspx. Do URL přidejte parametr Code, který obsahuje kód spouštěného skriptu.
Jakékoliv další parametry jsou do skriptu předány v hashtable ve vlastnosti OGParameters.
Výsledek volání závisí na vyplněných parametrech objektu ResponseContent. Pokud při zpracování skriptu došlo k chybě nebo u objektu ResponseContent není vyplněna vlastnost FileName, pak je odpověď následující:
Hodnota |
Význam |
OK |
Spuštění skriptu bylo úspěšné. |
ERROR: xxx |
Při spuštění skriptu došlo k chybě xxx. |
Jinak je vrácen obsah vlastnosti ContentBytes nebo ContentText. Při nastaveném kódování (vlastnost Encoding) je nastavena i znaková sada odpovědi.
Ukázka volání skriptu s kódem UserTest:
http://www.yourserver.com/RunScript.aspx?code=UserTest
Příklady skriptu
Příklad ukazuje načtení parametru z volání a nastavení obsahu vrácení souboru. V příkladu je vynecháno ověřování parametrů a načtení obsahu souboru z databáze.
var c = OGParameters['c'];
var v = OGParameters['v'];
if ( c == null || v == null)
{
OGResponseContent.ContentText = 'ERROR:Nejsou zadány parametry C a V.';
return;
}
...
OGResponseContent.FileName = 'mujsoubor.txt';
OGResponseContent.Encoding = OG.Encoding.GetUTF8();
OGResponseContent.ContentText = '...obsah souboru...';
Následující příklad ukazuje načtení souboru od záznamu a jeho vrácení jako odpověď. Ve skriptu je pro zjednodušení na pevno zadaná třída s id 35 a sloupec s id 578.
//vratit ZIP soubor
var fiList = OG.DataRowFile.GetFileInfo( 35, 578, dr.Id);
if ( fiList != null && fiList.Count > 0)
{
OGResponseContent.ContentBytes = OG.DataRowFile.GetFileContent(fiList[0].Id, 35);
OGResponseContent.FileName = 'package' + fiList[0].Id + '.zip';
}
else
{
OGResponseContent.ContentText = 'ERROR: K záznamu neexistuje soubor.';
OGResponseContent.FileName = 'error.txt';
}