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
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.