Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Metody - karta objektu PmaObject

Popis:
V této kartě se definují metody projektanta tohoto objektu.
Tlačítka:
NováOtevře okno Metoda, ve kterém lze přidat novou metodu.
SmazatSmaže označenou metodu
EditaceOtevře okno Metoda, ve kterém lze editovat označenou metodu.
Poznámka:
V této kartě lze objektu přidávat další metody. Správné užívání těchto metod velmi zjednodušuje a zčitelňuje aplikaci.

Příklad použití: Představme si složku PmaFolder, která představuje nějaké zařízení (např. Kotel). Někdy je nutno odstavit tento Kotel z jiné složky. Lze to dělat tak, že v jiné složce bude podrobný algoritmus jak odstavit Kotel ale daleko lepší je vytvořit metodu přímo v objektu "Kotel", ve které bude algoritmus pro odstávku. Z jiné složky se pak zavola pouze tato metoda.

 
V této kartě lze definovat libovolný počet metod. Na každém řádku seznamu (který je vlevo nahoře) je definice právě jedné metody. Tyto metody lze volat pomocí vlastnosti PmaObject.Methods nebo Pm.Methods.
Parametry metody:
pMe(Object) Reference na Pma objekt, ve kterém je metoda definována.
pResult[jen pro zápis] (Variant) Výstupní parametr, který slouží ke vrácení výsledné hodnoty metody.

Je dostupný pouze pro metody, které jsou psány v jazyce VBScript. Pro jazyk JavaScript se vrácená hodnota zadá v příkaze return.

pContext(Object) (pro objekty PmaRoot a PmaPanel) obsahuje referenci na objekt s dodatečnými informacemi o způsobu, kterým byla metoda vyvolána.
pContext.User - (Object) vlastnost s referencí na objekt PmUser, ve kterém jsou podrobnější informace o uživateli (lokálním nebo síťovém), který metodu zavolal. Lze použít například:
- ke chránění metody na konkrétního přihlášeného uživatele nebo skupinu uživatelů.
- k uchování a čtení stavových privátních dat uživatele pomocí metod SetPrivateData a GetPrivateData.

Upozornění! Aby v podobjektu User byla věrohodná hodnota, je nutno, aby v příslušném oprávnění WebRead nebyly pseudo skupiny $ANY a $ANY_NET (tzn. aby při otevření Web stránky musel být přihlášen uživatel).

pContext.Language - (String) vrací informaci o požadovaném národním jazyce, ve kterém jsou požadovány případné textové výstupy metody (vhodné zejména při vyvolávání metody z Web obrazů). Jazyk je určen textovým identifikátorem, např. "cs", "sk", "en" atd. - viz Jazyky s plnou podporou v systému PROMOTIC. Viz konfigurátor "Hlavní jazyk runtime".
pContext.TypeEnable - (Long) Typ povolení volání metody klientem. Projektant může (dle nastaveného uživatele, hesla či adresy počítače) operaci zakázat. Nastavení tohoto parametru je doporučeno pouze pro speciální případy. Běžné zabezpečení je lepší provádět standardně pomocí oprávnění: WebMethods.

Upozornění! Vlastnost je funkční pouze pro Web obrazy.

1 (přednastaveno) - povolení operace.
-1 - vyžádání přihlášení uživatele (pokud uživatel nebyl zadán) nebo zakázání uživatele (pokud uživatel byl zadán ale je špatný název a heslo).
-2 - zakázání operace pro daného klienta bezpodmínečně.
Parametry definované projektantem(Variant) Slouží jako předávané parametry při volání dané metody. Tyto parametry se definují v konfigurátoru "Parametry".
Metody definované v této kartě pro objekt PmaPanel (metody obrazu) a pro objekt PmaRoot (globální metody aplikace) lze volat i ve skriptech obrazů, které jsou určené pro Web sdílení.
 
Seznam používaných metod a počet jejich spuštění lze vidět v INFO systému v kartě při prohlížení daného objektu. V této kartě lze i spustit vybranou metodu (pouze pokud nemá metoda parametry) po vybrání z lokálního menu (pravým tlačítkem myši). Viz oprávnění "PmaRoot > Oprávnění > InfoEdit".
Příklad1:
V objektu PmaFolder je objekt PmaData (s názvem "DAT"), který obsahuje několik proměnných (se jmény například "data1", "data2", atd.) Vytvoříme jednoduchou metodu v objektu PmaFolder s názvem "dataadd" s jedním parametrem (s názvem "par1"), který představuje název proměnné. Metoda vrací hodnotu požadované proměnné zvětšené o 10.
JavaScriptVBScriptVyber a zkopíruj do schránky

var val = pMe.Pm("DAT").Item(par1).Value;
return val + 10;
Tuto metodu pak můžeme kdekoli volat:
JavaScriptVBScriptVyber a zkopíruj do schránky

var n = oFolder.Methods.dataadd("data1");
Příklad2:
Test, zda uživatel volající danou metodu je síťový uživatel a člen skupiny $ADMIN:
JavaScriptVBScriptVyber a zkopíruj do schránky

if (pContext.User.Type == 2 && Pm.TestUserInGroup(1, "$ADMIN", pContext.User.Id))
//...
Příklad3:
Volání globální metody GetStartTime (to znamená definovanou v objektu PmaRoot) s parametrem par1 (tímto způsobem lze vyvolat globální metodu na serveru i ve Web obraze):
JavaScriptVBScriptVyber a zkopíruj do schránky

var val = Pm.Methods.GetStartTime(par1);
Další příklady:
Viz příklady v popisu vlastnosti PmaObject.Methods.

Historie:
Pm8.03.00: Tuto kartu má nyní každý Pma objekt a Pmg objekt (předtím ji mělo jen několik typů Pma objektů).
Pm8.02.06: Přidán nový parametr pContext.TypeEnable
Pm8.00.08: a Události byly zrušeny tlačítka "Test" (pro syntaktickou kontrolu správnosti skriptu) a "Edit" (pro zvětšení editoru skriptu na celou obrazovku). Tyto funkčnosti byly přesunuty do lokálního menu v editoru skriptu (viz Základní ovládání editoru skriptů).
Pm8.00.00: Globální metody aplikace (tzn. metody definované v kartě "Metody" objektu PmaRoot) již standardně nelze ve skriptech volat přímo pouze názvem, ale volají se pomocí vlastnosti Pm.Methods. Důvodem jsou omezení, které má přímé volání - například není funkční pro Web obrazy. Starý způsob volání (tzn. volání přímo názvem metody) lze pořád používat, ale musí se ve skriptu použít direktiva skriptu #pragma option OldGlobalMethodCall s hodnotou 1 (je to příznak pro staré volání metody). Ve stávajících aplikacích při přechodu na verzi PROMOTIC 8 dojde ke konverzi: do všech globálních metod je tato direktiva skriptu vložena a aplikace je tedy funkční.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice