Ukázka pracovního postupu

zde je základní ukázka, jak zpracovat data a nahlásit zpracování zpět do datového rozhraní:

-- proměnná pro uložení hromadného ID, které váš systém právě zpracovává DECLARE
 @BulkId INT = -1;
 
-- proměnná pro uložení EcENTITY.id nejvyšší entity v rámci aktuálního hromadného ID 
DECLARE @EntId BIGINT = -1;

-- získáte další čekající hromadné ID (data čekající na zpracování systémem):
SET @BulkId = (SELECT TOP 1 bulk_id FROM EcENTITY WHERE comm_dir=0 AND comm_status=0 ORDER BY id)

-- update comm_status - hromadné zpracování bylo zahájeno
UPDATE EcENTITY SET comm_status = 1, processed1=GETDATE() WHERE bulk_id = @BulkId

-- získáte horní entitu hromadné struktury
SET @EntId = (SELECT TOP 1 id FROM EcENTITY WHERE bulk_id=@BulkId AND EcENTITY. id NOT IN (SELECT
EcASSOC. ent_id_child FROM EcASSOC))

-- získejte seznam asociací pro nejvyšší entitu - asociace první úrovně SELECT * 
FROM EcASSOC WHERE ent_id_parent=@EntId;
-- získejte seznam odkazů pro nejvyšší entitu SELECT * 
FROM EcLINK WHERE ent_id=@EntId;
-- získá seznam podřízených entit v první úrovni
SELECT * FROM EcENTITY WHERE EcENTITY. id IN (SELECT ent_id_child FROM EcASSOC WHERE
ent_id_parent=@EntId);

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- zapisovat data do systému
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- nahlásit, že váš systém úspěšně zpracoval hromadné zásilky.

UPDATE EcENTITY SET comm_status = 7, processed2=GETDATE() WHERE bulk_id = @BulkId

-- nebo nahlásit chybu
INSERT INTO EcLOG (ent_id, level, message) VALUES (@EntId, 1, 'unknown Unit of Measure') 
UPDATE EcENTITY SET comm_status = 9, processed2=GETDATE() WHERE bulk_id = @BulkId

Další vzorky

//výběr všech entit v rámci hromadného výběru - sloupec bulk_top (BIT) je přidán k identifikaci nejvyšší entity v
 hromadném výběru.
SELECT CAST(CASE WHEN EXISTS(SELECT * FROM EcASSOC WHERE EcENTITY. id=EcASSOC. ent_id_child) THEN 0
ELSE 1 END AS BIT) AS bulk_top, * FROM EcENTITY WHERE bulk_id=@BulkId ORDER BY id DESC

//všechny záznamy asociace EcASSOC spojené s atributy podřízené entity (všechny hromadné asociace)
SELECT EcENTITY.*, EcASSOC.* FROM EcASSOC LEFT JOIN EcENTITY ON EcASSOC. ent_id_child=EcENTITY. id
WHERE (EcENTITY.bulk_id=@BulkId)

Varování

nikdy neaktualizujte (neměňte) hodnotu EcENTITY.comm_dir v hromadném souboru ! celý hromadný soubor musí mít jedinou hodnotu EcENTITY.comm_dir !