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
DokuWiki Appliance - Powered by TurnKey Linux