 Stručný popis

Stručný popis

Applet SX0005 slouží k importu dat do SQL databáze. Data je možné importovat ze dvou různých vstupů. Prvním je textový soubor, který obsahuje jednotlivé SQL příkazy. Druhým vstupem může být výsledek dynamického dokumentu, o který applet dokáže požádat libovolnou DBV aplikaci. Pro svůj běh applet vyžaduje Komunikační server.


 SX0005
  • Stručný popis

  • Instalace a konfigurace

  • Formát vstupních dat


 Instalace a konfigurace

Instalace a konfigurace

Instalace se provádí spuštěním instalačního vmi balíčku, který nainstaluje samotný applet, jeho konfigurační databáze a adresář s příklady konfigurace appletu a Komunikačního serveru. Do adresáře s příklady konfigurace je také umístěn jednoduchý dynamický dokument, který slouží k exportu několika základních informací o pracovnících z aplikace PAM do SQL serveru.

Po instalaci je nutné správně nastavit konfigurační databáze, kde příklad jejich nastavení je možno najít v podadresáři Examples, který je umístěn v adresáři kam byl nainstalován applet SX0005. A dále je nutno upravit konfigurační databázi Komunikačního serveru tak, aby jej server mohl spouštět.

  • Konfigurační soubor


 Konfigurační soubor

Konfigurační soubor

Konfigurace appletu je implicitně umístěna v konfiguračních databázích umístěných v adresáři, kam byl applet nainstalován.

  • Konfigurační parametry

  • Ukázka konfiguračního souboru


 Konfigurační parametry

Konfigurační parametry

Tento applet dokáže zpracovávat data ze dvou různých vstupů. Prvním je textový soubor, který obsahuje jednotlivé SQL příkazy. Druhým vstupem může být výsledek dynamického dokumentu, o který si applet dokáže sám požádat libovolnou DBV aplikaci.

Applet zvolí typ vstupu (soubor nebo dynamický dokument) na základě přítomnosti parametru InputFileName. Pokud bude tento parametr definován, applet nebude žádat o vygenerování dynamického dokumentu a zpracuje pouze zadaný vstupní soubor.

Jednotlivé konfigurační parametry a jejich způsob použití:

  • Oddíl SQLServer obsahuje parametry pro připojení k SQL serveru.
    • Hodnota parametru SQLServerType specifikuje typ použitého SQL serveru, parametr není povinný, výchozí hodnota je "MSSQL". Zatím je podporován pouze Microsoft SQL server.
    • Parametr SQLServerName obsahuje název SQL serveru, ke kterému se bude applet připojovat.
    • Parametr SQLDatabaseName určuje název databáze, do které se budou nahrávat vstupní data.
    • Parametr WindowsAuthentication určuje způsob autentizace k SQL serveru. Možné jsou 2 hodnoty:
      • hodnota 1 znamená, že se použije Windows autentizace,
      • hodnota 0 znamená, že se použije autentizace SQL serveru, v tomto případě je nutné vložit do privátního úložiště záznam obsahující název účtu a heslo pro přihlášení k SQL serveru.
    • Parametr PermissionID určuje ID záznamu v privátním úložišti, který obsahuje údaje pro přihlášení k SQL serveru. Tento parametr musí být zadán pouze pokud není použita Windows autentizace k SQL serveru.
  • Parametr InputFileName obsahuje umístění vstupního textového souboru, který se má zpracovat (obsahuje SQL příkazy). Tento parametr není povinný. Přítomnost tohoto parametru znamená, že applet bude zpracovávat tento vstupní soubor a nebude žádat o vygenerování dynamického dokumentu.
  • Parametr DeleteInputFile určuje, zda dojde po úspěšném zpracování ke smazání vstupního souboru.
  • Oddíl DBVApp obsahuje parametry nutné k připojení k V3 serveru a ke spuštění požadované DBV aplikace.
    • Parametr V3Server obsahuje adresu (port) V3 sevreru.
    • Parametr PermissionID určuje ID záznamu v privátním úložišti, který obsahuje údaje pro přihlášení k příslušné DBV aplikaci.
    • Parametr ProcessingTimeOut určuje maximální dobu, po kterou se bude applet snažit spustit nebo zastavit DBV aplikaci. Pokud se to nepodaří, dojde po jejím uplynutí k hlášení chyby (zápisem chyby do logu nebo odesláním mailem).
    • Parametr DBVApp obsahuje název DBV aplikace, která obsahuje požadovaný dynamický dokument.
    • Parametr DataName obsahuje název datového prostředí, ze kterého budopu exportována data do SQL databáze.
  • Parametr DynDocID určuje název požadovaného dynamického dokumentu.
  • Parametr DynDocGeneratingTimeOut určuje maximální dobu, po kterou bude applet čekat na vygenerovaný dynamický dokument. Po uplynutí tohoto časového limitu bude zpracování ukončeno chybou (zápisem chyby do logu nebo odesláním mailem).

Popis dalších parametrů (např. EmailsOnSuccess) naleznete v dokumentaci Komunikačního serveru.


 Ukázka konfiguračního souboru

Ukázka konfiguračního souboru

VemaConfigScript Version=2
{
Section (ConfigAlternative=="Default")
{
SQLServer {
SQLServerType="MSSQL"; // Typ SQL serveru
SQLServerName="SQLSERVER"; // Název SQL serveru
SQLDatabaseName="DATA"; // Název SQL databáze
WindowsAuthentication=1; // Způsob autentizace k SQL serveru
//PermissionID="SX0005"; // ID v privátním uložišti, které obsahuje
// název účtu a heslo pro přihlášení k SQL
// serveru (pouze pokud se nepoužívá Windows autentizace)
}
//InputFileName="c:\\VSTUP\\seznam.txt"; //Umístění vstupního souboru obsahujícího SQL příkazy
//DeleteInputFile=0;
DBVApp {
V3Server="IP:localhost:4147"; //Adresa V3Serveru
PermissionID="PAM_SQL_PID"; // Klíč do private store pod kterým je uloženo heslo a jméno které se použije pro přihlášení do DVB aplikace
ProcessingTimeOut="0 00:05:00"; // Čas zpracování který bude procesu přidělen, po jeho uplynutí bude násilně ukončen
DBVApp="PAM"; // Jméno DBV aplikace
DataName="PAM_SQL"; // Název datového prostředí
}
DynDocID="vmsqlsez"; // ID požadovaného dynamického dokumentu
DynDocGeneratingTimeOut="0 01:00:00"; // Časový limit pro získání dynamického dokumentu
EmailsOnSuccess { // Odeslání emailu oznamující korektní splnění úlohy
Subject = "Úloha skončila úspěšně";
MailGroup = "MailGroup"; // Emailová skupina korespondující s mailovými skupinami v KomS Serveru
}
EmailsOnFailure { // Odeslání emailu oznamující nesplnění úlohy
Subject = "Úloha skončila s chybou";
MailGroup = "MailGroup"; // Emailová skupina korespondující s mailovými skupinami v KomS Serveru
}
}
}


 Formát vstupních dat

Formát vstupních dat

  • Textový soubor

  • Dynamický dokument


 Textový soubor

Textový soubor

Vstupní soubor musí obsahovat jednotlivé SQL příkazy srozumitelné použitému SQL serveru. Každý SQL příkaz musí být ukončen středníkem a odřádkováním.

Ukázka obsahu vstupního souboru:

DROP TABLE pracovnici;

CREATE TABLE pracovnici (
prijmeni CHAR(18),
jmeno CHAR(10),
tituly CHAR(45),
narozen DATETIME,
PPVzacatek DATETIME,
PPVkonec DATETIME,
id INT NOT NULL IDENTITY PRIMARY KEY
);

INSERT INTO pracovnici VALUES ('Jadrný', 'Alexandr', NULL, '1963-1-1', '2006-12-1', NULL);

INSERT INTO pracovnici VALUES ('Nováček', 'Jan', 'Ing.', '1964-1-1', '2006-9-15', NULL);

INSERT INTO pracovnici VALUES ('Novák;', 'Jan', NULL, '1975-12-5', '2007-1-23', NULL);


 Dynamický dokument

Dynamický dokument

Pro výsledek dynamického dokumentu platí stejná pravidla jako pro formát dat v textovém souboru. Proto je níže uveden pouze příklad jednoho z možných dynamických dokumentů. Tento dokument slouží k exportu několika údajů o pracovnících z aplikace PAM do SQL serveru.

Ukázka definice dynamického dokumentu:

<vemages>
<!--
report pam
input hrud
filtr ospubl=1
sort prijmz<, jmeno<
Block =
%insert osobazacatek

if prijmz=NEDEF
%insert textnull
else
%insert prijmz
fi
%insert textcarka

if jmeno=NEDEF
%insert textnull
else
%insert jmeno
fi
%insert textcarka

if tituly=NEDEF
%insert textnull
else
%insert tituly
fi
%insert textcarka

if naroz=NEDEF
%insert textnull
else
%insert naroz
fi
%insert textcarka

if ppvza=NEDEF
%insert textnull
else
%insert ppvza
fi
%insert textcarka

if ppvko=NEDEF
%insert textnull
else
%insert ppvko
fi
%insert osobakonec
//-->
</vemages>
DROP TABLE pracovnici;

CREATE TABLE pracovnici (
prijmeni CHAR(18),
jmeno CHAR(10),
tituly CHAR(45),
narozen DATETIME,
PPVzacatek DATETIME,
PPVkonec DATETIME,
id INT NOT NULL IDENTITY PRIMARY KEY
);
<vemages name="osobazacatek">
INSERT INTO pracovnici VALUES (</vemages>

<vemages name="textnull">NULL</vemages>

<vemages name="textcarka">,</vemages>

<vemages name="prijmz">'<vemages put="U">prijmz</vemages>'</vemages>

<vemages name="jmeno">'<vemages put="U">jmeno</vemages>'</vemages>

<vemages name="tituly">'<vemages put="U">tituly</vemages>'</vemages>

<vemages name="naroz">'<vemages put="U">numstr(naroz.LL)+"-"+numstr(naroz.MM)+"-"+numstr(naroz.DD)</vemages>'</vemages>

<vemages name="ppvza">'<vemages put="U">numstr(ppvza.LL)+"-"+numstr(ppvza.MM)+"-"+numstr(ppvza.DD)</vemages>'</vemages>

<vemages name="ppvko">'<vemages put="U">numstr(ppvko.LL)+"-"+numstr(ppvko.MM)+"-"+numstr(ppvko.DD)</vemages>'</vemages>

<vemages name="osobakonec">);
</vemages>