Skip Navigation LinksALVAO 11.2Průvodce administrátoraVlastní úpravy a rozšířeníAsset Management customizationVlastní skript Skip Navigation Links.


Skip Navigation LinksALVAO 11.2 / Průvodce administrátora / Vlastní úpravy a rozšíření / Asset Management customization / Vlastní skript

Vlastní skript

Složka Config může obsahovat soubor EpCustomScript.js s vlastním skriptem v jazyce JavaScript. Složku Config najdete ve složce, kde je nainstalován Asset Management Console (standardně C:\Program Files\ALVAO\Asset Management Console\Config), pokud tam není, vytvořte ji a vložte do ní skript. Po restartování AM Console, se skript aktivuje sám.

Ve skriptu lze definovat obslužné programy, které jsou automaticky volány z AM Console při provádění různých operací.

Příklad 1. Příklad souboru EpCustomScript.js

function OnNodeMoving(nNodeId,nDestNodeId,nUserId) {
  return true;
}

function OnNodeRemoving(nNodeId,nUserId) {
  MessageBox("Object cannot be removed",0x30);
  return false;
}

Skript v příkladu obsahuje funkci OnNodeMoving a OnNodeRemoving. Funkce OnNodeMoving slouží k povolení přesunu objektu ve stromu. Funkce je volána před provedením přesunu a návratová hodnota true znamená, že přesun je povolen. Funkce OnNodeRemoving se volá před odstraněním objektu ze stromu a její návratová hodnota umožňuje odstranění. Ve výše uvedeném příkladu je tedy přesun objektu vždy povolen a jeho odstranění je vždy zakázáno. Kromě toho se při pokusu o odstranění objektu zobrazí okno se zprávou "Objekt nelze odstranit"

Funkce služby

Funkce Událost
OnNodeCopying Vytvoří se kopie objektu. Tato funkce je rovněž volána při vytvoření nového objektu pomocí šablony.
OnNodeCopied Objekt byl zkopírován nebo byl vytvořen nový objekt podle šablony.
OnNodeMoving Objekt bude ve stromu přesunut.
OnNodeMoved Objekt byl přesunut.
OnNodeRemoving Objekt bude přesunut do koše.
OnNodeRemoved Objekt byl přesunut do koše.
OnPropertyModificationEnabled Zapnutí/vypnutí příkazu - Modify (vlastnost).
OnPropertyModifying Bude změněna hodnota vlastnosti.
OnPropertyModified Hodnota vlastnosti byla změněna.

OnNodeCopying

Tato funkce se volá před kopírováním objektu ve stromu, tedy i v případě vytvoření nového objektu podle šablony.

  • Syntaxe - bool OnNodeCopying(nNodeId, nDestNodeId, nUserId)
  • Parametry
    • nNodeId - hodnota atributu (v databázi) tblNode.intNodeId kopírovaného objektu, tj. vzorového objektu
    • nDestNodeId - hodnota atributu tblNode.intNodeId objektu, do kterého bude kopie vložena jako podřazený objekt. Hodnota 0 znamená, že kopie bude vytvořena v kořeni stromu.
    • nUserId - hodnota atributu tblUser.intUserId, který určuje aktuálně přihlášeného uživatele.
  • return value - pokud funkce vrátí true, objekt bude zkopírován. Pokud funkce vrátí hodnotu false, kopírování se neprovede. V tomto případě je vhodné zobrazit chybové hlášení pomocí metody MessageBox.
  • Příklady

    Příklad 2. Příklad - Zakázat kopírování objektů pro vybraného uživatele

    Následující příklad funkce OnNodeCopying zakáže uživateli s ID 15 kopírování objektů. ID uživatele závisí na konkrétní databázi a musí být nejprve zjištěno v tabulce tblUser - atribut intUserId.

    function OnNodeCopying(nNodeId,nDestNodeId,nUserId) {
        if ( nUserId == 15 ) {
            MessageBox("The object is forbidden to copy.",0x30);
            return false; 
        }
        return true;
    }

    Příklad 3. Příklad - volání uložené procedury na SQL serveru

    V následujícím příkladu je k vyhodnocení události použita uložená procedura spOnNodeCopying na SQL serveru. Kopírování objektů je povoleno, pokud uložená procedura vrátí nenulovou hodnotu.

    function OnNodeCopying(nNodeId,nDestNodeId,nUserId) {
        var Con=new ActiveXObject("ADODB.Connection");
        Con.Open(ConnectionString);
        var Cmd=new ActiveXObject("ADODB.Command");
        Cmd.ActiveConnection=Con; 
        Cmd.CommandText="spOnNodeCopying";
        Cmd.CommandType=4; 
        Cmd.Parameters.Refresh();
        Cmd.Parameters.Item("@nNodeId").Value=nNodeId; 
        Cmd.Parameters.Item("@nDestNodeId").Value=nDestNodeId; 
        Cmd.Parameters.Item("@nUserId").Value=nUserId; 
        var Rs=Cmd.Execute();
        if ( Rs.Fields.Item(0)==1 )
            return true; 
        MessageBox("Object cannot be copied.",0x30);
        return false;
    }

    Uložená procedura je definována takto:

    CREATE PROCEDURE [dbo].[OnNodeCopying]
        @nNodeId int, @nDestNodeId int, @nUserId int
    AS
    BEGIN 
        SET NOCOUNT ON; 
        SELECT 1
    END

OnNodeCopied

Tato funkce je volána po zkopírování objektu nebo po vytvoření nového objektu podle šablony.

  • Syntaxe - void OnNodeCopied(nNodeId, nNewNodeId, nUserId)
  • Parametry
    • nNodeId - hodnota atributu (v databázi) tblNode.intNodeId kopírovaného objektu, tj. vzorového objektu.
    • nNewNodeId - hodnota atributu tblNode.intNodeId nového objektu, který byl vytvořen kopírováním.
    • nUserId - hodnota atributu tblUser.intUserId určující aktuálně přihlášeného uživatele.
  • návratová hodnota - žádná
  • Příklady - viz OnNodeCopying

OnNodeMoving

Tato funkce je volána před přesunem objektu ve stromu na jiné místo.

  • Syntaxe - bool OnNodeMoving(nNodeId, nDestNodeId, nUserId)
  • Parametry
    • nNodeId - hodnota atributu (v databázi) tblNode.intNodeId objektu, který má být přesunut.
    • nDestNodeId - hodnota atributu tblNode.intNodeId objektu, do kterého má být objekt přesunut. Hodnota 0 znamená, že objekt bude přesunut do kořene stromu.
    • nUserId - hodnota atributu tblUser.intUserId, který určuje aktuálně přihlášeného uživatele.
  • návratová hodnota - pokud funkce vrátí true, bude objekt přesunut. Pokud funkce vrátí false, přesun se neprovede. V tomto případě je vhodné zobrazit chybové hlášení pomocí metody MessageBox.
  • Příklady - viz OnNodeCopying

OnNodeMoved

Tato funkce je volána po přesunu objektu ve stromu.

  • Syntaxe - void OnNodeMoved(nNodeId, nSrcParentNodeId, nUserId)
  • Parametry
    • nNodeId - hodnota atributu (v databázi) tblNode.intNodeId objektu, který byl přesunut.
    • nSrcParentNodeId - hodnota atributu tblNode.intNodeId objektu, který byl otcem (rodičovským objektem) objektu nNodeId před jeho přesunutím.
    • nUserId - hodnota atributu tblUser.intUserId, který identifikuje aktuálně přihlášeného uživatele.
  • návratová hodnota - žádná
  • Příklady - viz OnNodeCopying

OnNodeRemoving

Tato funkce se volá před odstraněním objektu, tj. před jeho přesunutím do koše.

  • Syntaxe - bool OnNodeRemoving(nNodeId, bMoveToBin, nUserId)
  • Parametry
    • nNodeId - hodnota atributu (v databázi) tblNode.intNodeId objektu, který má být odstraněn nebo přesunut do koše.
    • bMoveToBin - pokud má být objekt přesunut do koše, má tento parametr hodnotu true.
    • nUserId - hodnota atributu tblUser.intUserId určující aktuálně přihlášeného uživatele.
  • návratová hodnota - pokud funkce vrátí true, objekt bude odstraněn nebo přesunut do koše. Pokud funkce vrátí hodnotu false, operace se neprovede. V tomto případě je vhodné zobrazit chybové hlášení pomocí metody MessageBox.
  • Příklady - viz OnNodeCopying

OnNodeRemoved

Tato funkce je volána po odstranění objektu, tj. po jeho přesunu do koše.

  • Syntaxe - void OnNodeRemoved(nNodeId, bMoveToBin, nUserId)
  • Parametry
    • nNodeId - hodnota atributu (v databázi) tblNode.intNodeId objektu, který byl odstraněn nebo přesunut do koše.
    • bMoveToBin - pokud je objekt přesunut do koše, má tento parametr hodnotu true.
    • nUserId - hodnota atributu tblUser.intUserId určující aktuálně přihlášeného uživatele.
  • návratová hodnota - žádná
  • Příklady - viz OnNodeCopying

OnPropertyModificationEnabled

Povolí nebo zakáže příkaz -Modify pro úpravu vlastnosti.

  • Syntaxe - bool OnPropertyModificationEnabled(nPropertyId)
  • Parametry
    • nPropertyId - Hodnota atributu (v databázi) vlastnosti tblProperty.intPropertyId, která má být upravena.
  • Vrácená hodnota - Pokud funkce vrátí true, bude aktivní příkaz nabídky -Edit. V opačném případě bude neaktivní (zašedlý).
  • Příklady - viz OnNodeCopying

OnPropertyModifying

Tato funkce je volána v rámci příkazu -Modify před uložením změněné vlastnosti do databáze.

  • Syntaxe - bool OnPropertyModifying(nPropertyId, strNewValue)
  • Parametry
    • nPropertyId - hodnota atributu (v databázi) upravované vlastnosti tblProperty.intPropertyId.
    • strNewValue - nová hodnota vlastnosti.
  • NewValue - pokud funkce vrátí true, zapíše se nová hodnota do databáze. Pokud funkce vrátí false, operace se neprovede. V tomto případě je vhodné zobrazit chybové hlášení pomocí metody MessageBox.
  • Příklady - viz OnNodeCopying

OnPropertyModified

Tato funkce je volána po zápisu nové hodnoty vlastnosti do databáze v rámci příkazu -Modify.

  • Syntaxe - void OnPropertyModified(nPropertyId)
  • Parametry
    • nPropertyId - hodnota atributu (v databázi) vlastnosti tblProperty.intPropertyId, která byla změněna.
  • Vrácená hodnota - žádná
  • Příklady - viz OnNodeCopying

MessageBox

Funkce zobrazí textové pole zprávy.

  • Syntaxe - int MessageBox(Text,Type)
  • Parametry
    • Text - text zprávy.
    • Type - parametr může obsahovat kombinaci následujících bitových hodnot.
      • Tlačítka
        Hodnota Symbol Popis
        0 MB_OK OK
        1 MB_OKCANCEL OK, Storno
        2 MB_ABORTRETRYIGNORE Zrušit, Resetovat, Ignorovat
        3 MB_YESNOCANCEL Ano, Ne, Zrušit
        4 MB_YESNO Ano, Ne
        5 MB_RETRYCANCEL Vrátit, Zrušit
      • Ikony
        Hodnota Symbol Popis
        0x10 MB_ICONERROR chyba (červená)
        0x20 MB_ICONQUESTION dotazník
        0x30 MB_ICONEXCLAMATION vykřičník (žlutý)
        0x40 MB_ICONINFORMATION informace
      • Výchozí tlačítko - hodnota z následující tabulky určuje, které tlačítko v pořadí zleva bude nastaveno jako výchozí
        Hodnota Symbol
        0 MB_DEFBUTTON1
        0x100 MB_DEFBUTTON2
        0x200 MB_DEFBUTTON3
        0x300 MB_DEFBUTTON4
  • Návratová hodnota
    Hodnota Symbol Popis
    1 IDOK OK
    2 IDCANCEL Zrušit
    3 IDABORT Přerušit
    4 IDRETRY Opakování
    5 IDIGNORE Ignorovat
    6 IDYES Ano
    7 IDNO Ne
  • Příklady

    Příklad 4. Použití MessageBoxu

    Následující příklad zobrazí okno s otázkou "Chcete pokračovat?" a tlačítky Ano a Ne, přičemž tlačítko Ne je aktivní.

    if ( MessageBox("Do you want to continue?",4+0x20+0x100) == 6 )
      // continue ...  

ConnectionString

Proměnná ConnectionString obsahuje připojovací řetězec pro aktuálně otevřenou databázi. Proměnná je určena pouze pro čtení.

Poznámka:
Připojovací řetězec odpovídá pravidlům technologie ADO

Příklad 5. Použití proměnné ConnectionString

V následujícím příkladu je pomocí proměnné Con vytvořeno připojení k databázi, která je aktuálně otevřena na adrese AM Console.

var Con=new ActiveXObject("ADODB.Connection");
Con.Open(ConnectionString); 

UserId

Proměnná UserId obsahuje identifikátor uživatele, který je aktuálně přihlášen na AM Console. Proměnná je určena pouze pro čtení.

Identifikátor odpovídá hodnotě atributu intUserId v tabulce tblUser v databázi.

 

Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.