_ExecISIRClient

(    ReguestId   : Longint;
     UserName    : StringZ;
     Wait        : Byte;
 dim ExitCode    : Word[;
     DSN         : StringZ;
     DSNUser     : StringZ;
     DSNPsw      : StringZ;
     DSNTypDB    : Byte]) : Longint

Volá externí program FlxPamISIRClient.exe, který umožňuje komunikaci s insolvenčním rejstříkem (ISIR).

Obecný popis činnosti

Čtěte zde.

Kde je ISIR klient hledán

Program se nejprve podívá do registru:

REG:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings

, zda existuje klíč:

Path of ISIR Client

Jestliže existuje, hledá se FlxPamISIRClient.exe pomocí tam zadané cesty. Jestliže uvedená hodnota v registru neexistuje, vytvoří se cesta k Pam.Exe a k ní se přípojí adresář ISIRClient a tam se FlxPamISIRClient.exe hledá.

Jestliže tedy bude Pam.Exe nainstalován například do adresáře 'C:\Flux\Bin', bude PVS klient hledán v adresáři: 'C:\Flux\Bin\ISIRClient'.

RequestId:  Ident požadavku

V tabulce ISIR_POZADAVEK se vytvoří požadavek a jeho ident je právě RequestId.

UserName: Jméno uživatele

Jméno uživatele, který zjištění provádí. Obvykle to bude jméno přihlášeného uživatele, které se zjistí makrofunkcí _GetActUser.

_GetActUser(AU_PRIHL_JMENO)

Wait: Čekej

True = Čekej na ukončení externího programu FlxPamISIRClient.exe. Jestli chcete, aby komunikace s PVS serverem pokračovala nezávisle dál, pište False.

ExitCode: Kód vracený programem FlxPamISIRClient.exe

V případě vzniku chyby, ukládá program FlxPamISIRClient.exe její podrobné znění do textového souboru FlxPamISIRClientLog.txt.

DSN: Datový zdroj ODBC

Nepovinný parametr. Jestliže nebude použit nebo bude prázdný, bude použit systémový DSN.

DSNUser: Uživatel databáze

Nepovinný parametr. Jestliže nebude použit parametr DSN nebo bude DSN prázdný, bude použit systémový DSN uživatel.

DSNPsw: Heslo uživatele databáze

Nepovinný parametr. Jestliže nebude použit parametr DSN nebo bude DSN prázdný, bude použito systémové DSN heslo uživatele.

DSNTypDB: Typ databáze

Nepovinný parametr. Jestliže nebude použit parametr DSN nebo bude DSN prázdný, bude použit systémový typ databáze.

Možné typy jsou:

Funkce vrací:

Jestliže funkce dopadne dobře, vrací 0. Jinak vrací systémový kód chyby, jejichž celkový výčet je zde. Zde se také dozvíte, že program FlxPamISIRClient.exe vůbec neexistuje.

Proxy server

Nastavení proxy serveru se bere ze společných systémových hodnot, nebo z registrů. Hodnoty v registrech mají přednost!

reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy Url Adresa
reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy User
reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy Psw
reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy Použij

Jestliže bude 'Proxy Použij' = 0, nebude proxy použita. Hodnota 1 znamená: použij proxy.


Podívejte se na: Ostatní procedury a funkce

Příklad:

dim _IDENT          : Longint;
dim _DT_VZNIK       : DateTime;
dim _UZIV_PAM       : String;
dim _DRUH           : Longint;
dim _STAV           : Longint;
dim _CHYBA          : String;

dim _ID_POZADAVEK   : Longint;
dim _RC             : String[11];

dim _PRIJMENI       : String[50];
dim _STAV_RIZENI    : String[200];

call Test_RC;
exit
call TestSpojeni;
Exit

procedure TestSpojeni
    dim PozId       : Longint;
    dim Result      : Integer;
    dim DosResult   : Integer;
	
    PozId := PridejPozadavek(0);
    if(PozId <> 0)then	
        DosResult := _ExecISIRClient(PozId, _GetActUser(AU_PRIHL_JMENO), true, Result);	
        Printup("DosResult:",DosResult,"  Result:",Result);
        call SmazPozadavek(PozId);
    endif
endproc { TestSpojeni }

procedure Test_RC	
    dim DBSet       : Word;
    dim PozId       : Longint;
    dim Result      : Integer;
    dim DosResult   : Integer;
	
    PozId := PridejPozadavek(1);
    if(PozId <> 0)then
        { Přidáme rodná čísla }
        call PridejRCPozadavku(PozId,   "7206153493");
        call PridejRCPozadavku(PozId,   "6504100691");
        DosResult := _ExecISIRClient(PozId, _GetActUser(AU_PRIHL_JMENO), true, Result);
        Printup("DosResult:",DosResult,"  Result:",Result);
        call ZobrazVysledek(PozId);
        call SmazPozadavek(PozId);
    endif
endproc { Test_RC }

function PridejPozadavek(    Druh  : Word)
    dim DBSet   : Word;
    dim PozId   : Longint;
    dim Result  : Integer;
	
    SQLOpen(SQLDB_SYSHANDLE, DBSet);
    call Bind_ISIR_POZADAVEK(DBSet);
    SQLSelect(DBSet, "ISIR_POZADAVEK", "IDENT=-1", "IDENT");
    if _SQLAddNew(DBSet) then
        PozId       := _IDENT;
        _DT_VZNIK   := _ActDateTime;
        _UZIV_PAM   := "Flux";
        _DRUH       := Druh;
        _STAV       := 0;
        _CHYBA      := " ";
        if _SQLUpdate(DBSet)=false then
            _MsgBox(0, "Chyba při _SQLUpdate", 0);
            PozId := 0;
        endif
        SQLClose(DBSet);
    else
        _MsgBox(0, "Chyba při _SQLAddNew", 0);
        PozId := 0;
    endif
    return PozId;
endfunc { PridejPozadavek }

procedure PridejRCPozadavku(    PozId : Longint;
                                RC    : String[11])
    dim DBSet   : Word;
    dim Result  : Integer;
	
    SQLOpen(SQLDB_SYSHANDLE, DBSet);
    call Bind_ISIR_POZADAVEK_RC(DBSet);
    SQLSelect(DBSet, "ISIR_POZADAVEK_RC", "ID_POZADAVEK=-1", "ID_POZADAVEK");
    if _SQLAddNew(DBSet) then
        _ID_POZADAVEK := PozId;
        _RC := RC;
        if _SQLUpdate(DBSet)=false then
            _MsgBox(0, "Chyba při _SQLUpdate", 0);
            PozId := 0;
        endif
        SQLClose(DBSet);
    else
        _MsgBox(0, "Chyba při _SQLAddNew", 0);
    endif
endproc { PridejPozadavek }

procedure ZobrazVysledek(    PozId : Longint)
    dim DBSet	: Word;
    dim Result	: Integer;
	
    SQLOpen(SQLDB_SYSHANDLE, DBSet);
    call Bind_ISIR_POZADAVEK_VYSLEDEK(DBSet);
    SQLSelect(DBSet, "ISIR_POZADAVEK_VYSLEDEK", "ID_POZADAVEK=" + _Str(PozId), "ID_POZADAVEK");
    if _SQLFirst(DBSet) then
        repeat
            Trace("RC:",_RC,", Příjmení:",_PRIJMENI,", Stav:",_STAV_RIZENI);
        until _SQLNext(DBSet) = False;
        SQLClose(DBSet);
    endif
endproc { ZobrazVysledek }

procedure SmazPozadavek(    PozId : Longint)
    SQLExecute(SQLDB_SYSHANDLE, "delete from ISIR_POZADAVEK where IDENT = " + _Str(PozId));
    SQLExecute(SQLDB_SYSHANDLE, "delete from ISIR_POZADAVEK_RC where ID_POZADAVEK = " + _Str(PozId));
    SQLExecute(SQLDB_SYSHANDLE, "delete from ISIR_POZADAVEK_VYSLEDEK where ID_POZADAVEK = " + _Str(PozId));
endproc { SmazPozadavek }

procedure Bind_ISIR_POZADAVEK(    DBSet : Word)
    SQLBindPK(DBSet,"IDENT",        _IDENT);
    SQLBind(DBSet,  "DT_VZNIK",     SQL_DATETIME,   _DT_VZNIK,
                    "UZIV_PAM",     SQL_VARCHAR,    _UZIV_PAM,
                    "DRUH",         SQL_INTEGER,    _DRUH,
                    "STAV",         SQL_INTEGER,    _STAV,
                    "CHYBA",        SQL_VARCHAR,    _CHYBA
    );
endproc { Bind_ISIR_POZADAVEK }

procedure Bind_ISIR_POZADAVEK_RC(    DBSet : Word)
    SQLBind(DBSet,  "ID_POZADAVEK", SQL_INTEGER,    _ID_POZADAVEK,
                    "RC",           SQL_VARCHAR,    _RC
                    );
endproc { Bind_ISIR_POZADAVEK_RC }

procedure Bind_ISIR_POZADAVEK_VYSLEDEK(    DBSet : Word)
    SQLBind(DBSet, 	"ID_POZADAVEK",     SQL_INTEGER,    _ID_POZADAVEK,
                    "RC",               SQL_VARCHAR,    _RC,
                    "PRIJMENI",         SQL_VARCHAR,    _PRIJMENI,
                    "STAV_RIZENI",      SQL_VARCHAR,    _STAV_RIZENI
                    );
endproc { Bind_ISIR_POZADAVEK_VYSLEDEK }