Sloučení duplicitních položek v databázi
Popis
Jedná se například o situaci, kdy chce klient zapnout kontrolu duplicit, ale už má v databázi duplicitní společnosti. Každá z nich už má více navázaných položek, takže ruční úprava by byla časově náročná.
Verze
Všechny verze eWay-CRM®
Obtížnost řešení
Vysoká
Postup řešení
Nejprve je třeba duplicity vyhledat. Následující skript vypisuje identifikátor společnosti, IČ, název a RowNumber. Pomocí RowNumber určujeme, která verze společnosti by měla zůstat zachována. Měla by to být ta, která má RowNumber = 1 (to je nejstarší záznam o dané firmě).
SELECT ItemGUID, IdentificationNumber, FileAs, ROW_NUMBER() OVER (PARTITION BY IdentificationNumber ORDER BY ItemCreated) RowNumber FROM EWD_Companies WHERE IdentificationNumber IN ( SELECT IdentificationNumber FROM EWD_Companies WHERE IdentificationNumber IS NOT NULL AND LEN(IdentificationNumber) > 1 GROUP BY IdentificationNumber HAVING COUNT(*) > 1 )
Poté provedeme spojení duplicit voláním procedury eWaySP_MergeItems. Zde se uvádí, z jaké položky kopírujeme do jaké.
EXEC eWaySP_MergeItems @FolderName = 'Companies', @TargetItemGUID = 'BDB68D03-96CE-4ED1-83B3-245813D1CBC9', -- GUID cílové společnosti @SourceItemGUID1 = 'BDB68D03-96CE-4ED1-83B3-245813D1CBC9', -- opět GUID cílové společnosti, protože nechceme přepisovat atributy na společnosti, pouze chceme převést vazby @SourceItemGUID2 = '684FDB63-2A26-4C56-B82A-AA1A8D2D09F2' -- GUID duplicity
Poté je potřeba duplicitu ještě odmazat:
EXEC eWaySP_DeleteItem @ItemGUID = '684FDB63-2A26-4C56-B82A-AA1A8D2D09F2', @FolderName = 'Companies'
Nyní už je záznam o společnosti v eWay-CRM® přítomen pouze jednou s tím, že jsou zachovány všechny vazby, tedy i vazby z duplicity.