Łukasz Kubacki 37 Napisano 24 Lutego 2020 Udostępnij Napisano 24 Lutego 2020 w Struktura pól własnych v2 w bazie danych (edytowane) W celu odczytania nazw tabel, w których przechowywane są wartości pól zaawansowanych, należy wykonać poniższe zapytanie: select konf.NazwaWyswietlanaDluga as [Nazwa w module konfiguracji pol wlasnych], extensionEntities.TableName as [Tabela z wartosciami pol zaawansowanych] from ModelDanychContainer.KonfiguracjePolWlasnych2 konf inner join DataExtensions.CurrentExtensionEntities extensionEntities on konf.MetadaneZaawansonychPolWlasnych_Id = extensionEntities.Id order by konf.NazwaWyswietlanaDluga Z powyższego zapytania dowiadujemy się, że np. tabela przechowująca wartości zaawansowanych pól własnych asortymentu to: ModelDanychContainer.Asortymenty_PolaWlasneAsortyment_Adv2 A więc aby wyświetlić wartości wszystkich pól zaawansowanych dla asortymentu trzeba wykonać zapytanie: select * from ModelDanychContainer.Asortymenty_PolaWlasneAsortyment_Adv2 gdzie [Id] [int] NOT NULL - klucz główny będący jednocześnie kluczem obcym do kolumny [Id] z tabeli ModelDanychContainer.Asortymenty [S0..99] [nvarchar](256) NULL - kolumny przechowujące wartości pól typu "Tekst" [I0..99] [int] NULL - kolumny przechowujące wartości pól typu "Liczba całkowita" [D0..99] [decimal](18, 6) NULL - kolumny przechowujące wartości pól typu "Liczba rzeczywista" [B0..99] [bit] NULL - kolumny przechowujące wartości pól typu "Wartość logiczna" [T0..99] [datetime2](7) NULL - kolumny przechowujące wartości pól typu "Data" [G0..99] [uniqueidentifier] NULL - kolumny przechowujące wartości typu GUID Widać, że nazwy kolumn przechowujące wartości pól zaawansowanych tworzone są według schematu {S|I|D|B|T|G}0..99 gdzie 0..99 jest unikatowym (w ramach typu pola) numerem. Po utworzeniu danego pola nazwa jego kolumny pozostaje już niezmienna. Poniższe zapytanie wypisze wszystkie pola zaawansowane, odpowiadające im nazwy kolumn oraz informacje o powiązanych słownikach: select extensionEntities.TableName as [Tabela z wartosciami pol zaawansowanych], extensionProperties.[Name] as [Nazwa pola], (case extensionProperties.TypeId when 1 then 'I' when 2 then 'G' when 3 then 'S' when 4 then 'D' when 5 then 'T' when 6 then 'B' end) + cast(extensionProperties.PlaceholderIndex as nvarchar(2)) as [Nazwa kolumny pola], case extensionProperties.DataSourceKind when 0 then null when 1 then N'Slownik wlasny' when 2 then N'Slownik systemowy' when 3 then N'Slownik wlasny SQL' end as [Rodzaj slownika], case extensionProperties.DataSourceKind when 0 then null when 1 then (select sw.Nazwa from ModelDanychContainer.SlownikiWlasne sw where sw.Id = extensionProperties.DataSourceId) when 2 then case extensionProperties.DataSourceId when 1 then N'ModelDanychContainer.Waluty' when 2 then N'ModelDanychContainer.Magazyny' when 3 then N'ModelDanychContainer.CentraGromadzeniaFinansow_RachunekBankowy' end when 3 then (select sd.[Name] from ModelDanychContainer.SqlDictionaries sd where sd.Id = extensionProperties.DataSourceId) end as [Nazwa slownika], case extensionProperties.DataSourceKind when 0 then null when 1 then (select sw.Id from ModelDanychContainer.SlownikiWlasne sw where sw.Id = extensionProperties.DataSourceId) when 2 then null when 3 then (select sd.Id from ModelDanychContainer.SqlDictionaries sd where sd.Id = extensionProperties.DataSourceId) end as [Id slownika] from DataExtensions.CurrentExtensionEntities extensionEntities inner join DataExtensions.CurrentExtensionProperties extensionProperties on extensionEntities.Id = extensionProperties.EntityId order by extensionEntities.TableName, extensionProperties.[Name] W przypadku, gdy pole jest typu "Słownik własny", wtedy takie pole przechowywane jest w kolumnie z prefiksem I, która to kolumna zawiera klucz obcy do pozycji słownika własnego. W przypadku, gdy pole jest typu "Słownik własny SQL", wtedy takie pole przechowywane jest w kolumnie z prefiksem I lub G w zależności od typu klucza obcego. W przypadku, gdy pole jest typu "Słownik systemowy", wtedy takie pole przechowywane jest w kolumnie I lub G w zależności od typu klucza obcego. Słowniki własne przechowywane są w tabeli ModelDanychContainer.SlownikiWlasne, a ich wartości w tabeli ModelDanychContainer.PozycjeSlownikowWlasnych Słowniki własne SQL przechowywane są w tabeli ModelDanychContainer.SqlDictionaries a wartośći oczywiście pochodzą ze zdefiniowanego zapytania SQL Edytowane 10 Lutego 2021 przez Łukasz Kubacki informacja o tabeli KonwersjaZaawansowanychPolWlasnychDoWersji2Info 2 Link to postu
Radomił Ząbik 308 Napisano 14 Kwietnia 2020 Udostępnij Napisano 14 Kwietnia 2020 w Struktura pól własnych v2 w bazie danych (edytowane) A czy po konwersji, przechowywane są gdzieś stare nazwy pól własnych (tez z bazy, nie z GUI)? A może jest jakiś raport z konwersji, na którym można by się oprzeć? Ułatwiło by to napisanie jakiegoś ich mapowania. Edytowane 14 Kwietnia 2020 przez Radomił Ząbik Link to postu
Łukasz Kubacki 37 Napisano 15 Kwietnia 2020 Autor Udostępnij Napisano 15 Kwietnia 2020 w Struktura pól własnych v2 w bazie danych Cytat A czy po konwersji, przechowywane są gdzieś stare nazwy pól własnych (tez z bazy, nie z GUI)? Proszę skorzystać z tabeli: select * from ModelDanychContainer.KonwersjaZaawansowanychPolWlasnychDoWersji2Info 1 Link to postu
Radomił Ząbik 308 Napisano 15 Kwietnia 2020 Udostępnij Napisano 15 Kwietnia 2020 w Struktura pól własnych v2 w bazie danych UFF! No to pół dnia do przodu DZIĘKI! Link to postu
Łukasz Kubacki 37 Napisano 7 Lipca 2020 Autor Udostępnij Napisano 7 Lipca 2020 w Struktura pól własnych v2 w bazie danych (edytowane) Zaktualizowałem zapytanie wypisujące wszystkie pola zaawansowane o wyświetlanie nazw nowych słowników systemowych Magazynów i Rachunków bankowych dodanych w nexo v31 Edytowane 7 Lipca 2020 przez Łukasz Kubacki Poprawa czcionki, bo tekst nie był widoczny na czarnym stylu 1 Link to postu
Łukasz Kubacki 37 Napisano 22 Września 2020 Autor Udostępnij Napisano 22 Września 2020 w Struktura pól własnych v2 w bazie danych (edytowane) Od nexo 32.0.0 w module konfiguracji pól własnych obiektu można wyświetlić kolumnę Id (domyślnie jest ona ukryta): Edytowane 8 Lutego 2021 przez Łukasz Kubacki powtorzenie obrazkow 1 Link to postu
Polecane posty