E-shop
Pokud je implementováno napojení ESHOPu přes obecný konektor (dokumentace: Konektor ESO9-eshop) je možné modifikovat jeho chování PROFI procedurami.
Blackbox pro čtení dat
V metodách pro čtení doplněn aparát pro tzv. BlackBox – text s libovolným obsahem pro PROFI implementace rozhraní. Na obsahu atributu BlackBox se domluví implementátor ESO9 a implementátor ESHOPu, bez potřeby měnit rozhraní konektoru.
CREATE OR ALTER function fnESHOP_BlackBox_ALL ( @IDESHOP int = NULL, @ID int = NULL, @Tabulka varchar(30) = NULL) returns varchar(max)
Blackbox pro zápis dat
V zapisujících metodách (ZapisObj, ZapisSubjektVse) je možné zpracovat i vstupní Blackbox z ESHOPU a předat tak další specifické údaje do ESO9.
CREATE OR ALTER PROCEDURE spESHOP_BlackBoxZapis @ID int = NULL, -- ID v tabulce @Tabulka varchar(30) = NULL, -- jméno tabulky, do které ESHOP zapisuje @BlackBox varchar(max) = NULL, -- obsah Blackboxu, volá se jen když není NULL @IDESHOP int = NULL, -- ID eshopu, ze kterého je voláno @vlNalezena smallint = NULL -- 0-nenalezena, vložení; 1-nalezena
Založení subjektu
Pokud existuje procedura s názvem spESHOP_ZapisSubjekt_After, zavolá se po založení subjektu v metodě ZapisSubjektVse (tedy ještě před založením osoby a adresy v tomto subjektu).
Zároveň musí procedura mít právo EXECUTE v roli/účtu, pod kterým webová služba na SQL server přistupuje (nebo se do ní dopíše WITH EXECUTE AS OWNER).
CREATE OR ALTER PROCEDURE dbo.spESHOP_ZapisSubjekt_After
@IDSUBJEKT int = NULL, -- zakladany / modifikovany subjekt
@IDESHOP int = NULL, -- ESHOP ze ktereho bylo volano
@vlTypOper smallint = NULL -- typ operace:
1=insert,
2=update, (3=delete-nenastane),
10=po založení všeho
Procedura volá ještě jednou po založení všeho, co přišlo v metodě ZapisSubjektVse, tedy i po založení osob a adres. Volá se s parametrem @vlTypOper = 10.
Založení objednávky
V metodě zakládání objednávky (ZapisObj) se ještě před založením objednávky volá procedura spESHOP_ZapisObjHDOK_Before, pokud v databázi existuje.
Může se například použít pro vyhledání vzoru dokladu, pokud nestačí jeho určení zařazením do číselníku ESHOP nebo do parametru ESX_VZOROBJ.
CREATE OR ALTER PROCEDURE dbo.spESHOP_ZapisObjHDOK_Before
@IDESHOP int = NULL,
@IDHDOK int = NULL, -- má hodnotu, jen pokud se dohledalo podle @FGUID_OBJ
@FGUID_OBJ varchar(40) = NULL, -- od verze 2.0
@KOD_MENY varchar(10) = NULL, --
@CIS_DOK varchar(20) = NULL, -- pokud se má převzít číslo dokladu z ESHOPU
@CIS_DOK_ESHOP varchar(30) = NULL, -- do JEJICH_CISDOK
@V_SYM varchar(30) = NULL, -- VAR SYMBOL,
@BlackBox varchar(max) = NULL,-- obsah black boxu z ESHOPU
@vlNalezena smallint = NULL, -- 0=nenalezena, 1=nalezena
@IDHDOK_VZOR integer = NULL OUT, -- pripadna upravena hodnota
@ERRTEXT varchar(4000) = NULL OUT,
@vlResult smallint = NULL OUT -- 0=pokračovat,
1=chyba, text chyby v @ERRTEXT,
-1=nepokračovat v zakládání dokladu, ale nekončit chybou
Od verze 2.7.3 lze parametry procedury rozšířit o ID přicházející do objednávky:
@IDSUBJEKT INT = NULL, @IDSUBJOSOBA INT = NULL, @IDSUBJADR_F INT = NULL, @IDSUBJADR_D INT = NULL
Akce po založení objednávky
Pokud existuje procedura s názvem spESHOP_ZapisObjHDOK_After, zavolá se po založení objednávky v metodě ZapisObj. Zavolá se 2x. Popis u metody ZapisObj.
CREATE OR ALTER PROCEDURE dbo.spESHOP_ZapisObjHDOK_After
@IDHDOK int, -- ID založené objednávky
@IDESHOP int, -- ID eshopu, ze kterého je voláno
@vlNalezena smallint, -- 0-nenalezena, proběhlo vložení objednávky;
1-nalezena, neproběhla akce v datech existující objednávky
@vlAkce smallint -- 0=po založení hlavičky,
1=po založení poslední složky (neproběhne pokud @vlNalezena=1)
Rozšířená verze procedury spESHOP_ZapisObjHDOK_After, pro volání @vlAkce = 1, tedy po založení objednávky (od verze 2.7.2):
@VLUHRAZENO smallint -- Například: 0=ne, 1=ano, 2=částečně – podle domluvy s eshopem @HDKUHRADEKC money -- celková cena objednávky