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=0AND comm_status=0ORDER BY id)-- update comm_status - hromadné zpracování bylo zahájenoUPDATE EcENTITY SET comm_status =1, processed1=GETDATE() WHERE bulk_id = @BulkId-- získáte horní entitu hromadné strukturySET @EntId = (SELECT TOP 1 id FROM EcENTITY WHERE bulk_id=@BulkId AND EcENTITY. id NOTIN (SELECTEcASSOC. 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í úrovniSELECT*FROM EcENTITY WHERE EcENTITY. id IN (SELECT ent_id_child FROM EcASSOC WHEREent_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 chybuINSERTINTO 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.SELECTCAST(CASEWHENEXISTS(SELECT*FROM EcASSOC WHERE EcENTITY. id=EcASSOC. ent_id_child) THEN0ELSE1ENDASBIT) 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. idWHERE (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 !