Business Intelligence Start
Copyright 2018 COMARCH Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie na nośniku filmowym, magnetycznym lub innym, powoduje naruszenie praw autorskich niniejszej publikacji. 2
Migracja do nowej wersji Proces migracji należy wykonać na serwerze, na którym znajdują się bazy danych Comarch ERP XL. Aby dokonać aktualizacji należy ściągnąć z Indywidualnych Stron Klientów/Partnerów najnowszy instalator Business Intelligence Start w wersji 2018. Ze względu na dodanie w wersji ERP XL BI Start 2018 obsługi spinaczy elementów, konieczne jest wykonanie poniższego skryptu w kontekście bazy systemu ERP XL: IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(n'[dbo].[numerdokumentuformatbi]') and xtype in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[numerdokumentuformatbi] EXEC('CREATE FUNCTION [dbo].[numerdokumentuformatbi]( @Obszar INT, @p_gidtyp VARCHAR(20), @p_spityp VARCHAR(20), @p_trntyp VARCHAR(20), @p_numer VARCHAR(20), @p_rok VARCHAR(20), @p_seria VARCHAR(20), @p_miesiac VARCHAR(20), @p_typskrot VARCHAR(20) ) RETURNS VARCHAR(max) AS BEGIN DECLARE @formatdok VARCHAR(max) DECLARE @gidtyp INT DECLARE @Format VARCHAR(30) DECLARE @I INT DECLARE @Imax INT DECLARE @Poprzedni VARCHAR(50) DECLARE @formatogolny VARCHAR(50) DECLARE @sql varchar(max) SET @formatdok = SET @SQL = -- @Obszar = 1 - P3atnooci -- @Obszar = 2 -... DECLARE Dokumenty CURSOR FOR SELECT Ob_GidTyp FROM CDN.Obiekty WHERE ( @Obszar = 1 AND Ob_GidTyp in (784,4145,7691 ) ) OR ( @Obszar = 3 AND Ob_GidTyp in (434,2768,2832,4144,7680,7681,7684,7690,784) ) OPEN Dokumenty; FETCH NEXT FROM Dokumenty INTO @gidtyp IF @gidtyp IS NOT NULL SET @formatdok = CASE WHILE @@FETCH_STATUS = 0 BEGIN 3
SET @formatdok = @formatdok + WHEN +@p_gidtyp+ = + CAST(@gidTyp as varchar) + THEN IF @gidtyp = 7691 SELECT @formatdok = @formatdok + ( SELECT DPN_Symbol + + + / + right(0+cast(+@p_miesiac+ as varchar),2) + / + cast(+@p_rok+ as varchar) + / + cast(+@p_numer+ as varchar) FROM CDN.DefPodNag WHERE DPN_ID = +@p_spityp+) ELSE IF @gidtyp = 2768 SET @formatdok = @formatdok +VAT-7 + + + right(0+cast(+@p_miesiac+ as varchar),2) + / + cast(+@p_rok+ as varchar) ELSE IF @gidtyp = 7712 SET @formatdok = @formatdok +VAT-7D + + + case +@p_miesiac+ when 1 then I/ + cast(+@p_rok+ as varchar) when 2 then II/ + cast(+@p_rok+ as varchar) when 3 then III/ + cast(+@p_rok+ as varchar) when 4 then IV/ + cast(+@p_rok+ as varchar) end ELSE IF @gidtyp = 7696 SET @formatdok = @formatdok +VAT-7K + + + case +@p_miesiac+ when 1 then I/ + cast(+@p_rok+ as varchar) when 2 then II/ + cast(+@p_rok+ as varchar) when 3 then III/ + cast(+@p_rok+ as varchar) when 4 then IV/ + cast(+@p_rok+ as varchar) end ELSE IF @gidtyp = 6400 OR @gidtyp = 6401 SET @formatdok = @formatdok +DRA + + + right(0+ +@p_seria+,2) + / + right(0+cast(+@p_miesiac+ as varchar),2) + / + cast(+@p_rok+ as varchar) ELSE IF @gidtyp = 6272 SET @formatdok = @formatdok +PIT- + + + CASE +@p_trntyp+ WHEN 3 THEN 4 WHEN 6 THEN 8A ELSE END + + right(0+cast(+@p_miesiac+ as varchar),2) + / + cast(+@p_rok+ as varchar) ELSE IF @gidtyp = 2832 SET @formatdok = @formatdok + NO- + + + right(cast(+@p_rok+ as varchar),2) + / + rtrim(+@p_seria+) + case when +@p_seria+= then else / end + cast(+@p_numer+ as varchar) ELSE IF @gidtyp = 2833 SET @formatdok = @formatdok +UP- + + + right(cast(+@p_rok+ as varchar),2) + / + rtrim(+@p_seria+) + case when +@p_seria+= then else / end + cast(+@p_numer+ as varchar) ELSE BEGIN 4
SELECT @formatdok = @formatdok + + OB_Skrot + FROM CDN.Obiekty WHERE OB_GIDTyp = @gidtyp; IF @gidtyp IN (2048,2064,2080,2096,2112,2128,2144,2160,2176,2192,2224,2288) SET @formatdok = @formatdok + + + + + + REPLACE(SPACE(5-LEN(cast(+@p_Numer+ as Varchar))) + cast(+@p_numer+ as Varchar),,0) +/ + cast(+@p_rok+ as Varchar) + case when +@p_seria+<> then / + +@p_seria+ else end ELSE IF @gidtyp IN (7680,7681,7682,7683) SET @formatdok = @formatdok + + + / + + + right(cast(+@p_rok+ as varchar),2) +/+ cast(+@p_numer+ as varchar) + case when +@p_spityp+ <> 0 then /+ cast(+@p_spityp+ as varchar) else end + case when +@p_trntyp+ <> 0 then /+ cast(+@p_trntyp+ as varchar) else end ELSE IF @gidtyp IN (7684,7690) SET @formatdok = @formatdok + + + - + + + right(cast(+@p_rok+ as varchar),4) + /+ rtrim(+@p_seria+) + / + cast(+@p_numer+ as varchar) ELSE IF @gidtyp = 2832 SET @formatdok = @formatdok + + + - + + + right(cast(+@p_rok+ as varchar),2) + / + rtrim(+@p_seria+) + case when +@p_seria+= then else / end + cast(+@p_numer+ as varchar) ELSE IF @gidtyp = 4144 SET @formatdok = @formatdok + + + - + + + rtrim(+@p_seria+) + case when +@p_seria+= then else / end + cast(+@p_rok+ as varchar) +/+ right(0+cast(+@p_miesiac+ as varchar),2) +/+ cast(+@p_numer+ as varchar) ELSE IF @gidtyp = 4145 SET @formatdok = @formatdok + + + - + + + rtrim(+@p_seria+) + case when +@p_seria+= then else / end + cast(+@p_rok+ as varchar) +/+ right(0+cast(+@p_miesiac+ as varchar),2) +/+ cast(+@p_numer+ as varchar) ELSE IF @gidtyp = 4146 SET @formatdok = @formatdok + + + - + + + rtrim(+@p_seria+) + case when +@p_seria+= then else / end + cast(+@p_rok+ as varchar) +/+ right(0+cast(+@p_miesiac+ as varchar),2) +/+ cast(+@p_numer+ as varchar) ELSE IF @gidtyp = 784 SET @formatdok = @formatdok + + + - + + + right(cast(+@p_rok+ as varchar),2) + / + rtrim(+@p_seria+) + /+ cast(+@p_numer+ as varchar) + case when +@p_trntyp+=1 then /RBO else end + / + cast(+@p_miesiac+ as varchar) ELSE IF @gidtyp IN (2976,2977) SET @formatdok = @formatdok + + + - + + + cast(+@p_numer+ as varchar) + + cast(+@p_miesiac+ as varchar) + / + cast(+@p_rok+ as varchar) ELSE IF @gidtyp = 434 SET @formatdok = @formatdok + + + - + + + cast(+@p_rok+ as varchar) + / + case when 5
rtrim(+@p_seria+)<> then rtrim(+@p_seria+) + / else end + cast(+@p_numer+ as varchar) ELSE IF @gidtyp = 435 SET @formatdok = @formatdok + + + + + - + + + cast(+@p_numer+ as varchar) + / + RIGHT(cast(+@p_Rok+ as Varchar),2) + case when rtrim(+@p_seria+)<> then / + rtrim(+@p_seria+) else end ELSE IF @gidtyp = 800 SET @formatdok = @formatdok +RKB + + + right(cast(+@p_rok+ as varchar),2) + / + case when rtrim(+@p_seria+)<> then rtrim(+@p_seria+) + / else end + cast(+@p_numer+ as varchar) ELSE IF @gidtyp in (2978,2979,2980,2981) SET @formatdok = @formatdok + + + - + + + cast(+@p_numer+ as varchar) + / + right(cast(+@p_rok+ as varchar),2) + / + rtrim(+@p_seria+) + / + case when +@p_seria+= then else / end + right(0+cast(+@p_miesiac+ as varchar),2) END FETCH NEXT FROM Dokumenty INTO @gidtyp END CLOSE Dokumenty DEALLOCATE Dokumenty IF @gidtyp IS NOT NULL SET @formatdok = @formatdok + ELSE IF @formatdok <> SET @formatdok = @formatdok + SET @formatdok = @formatdok + CASE WHEN +@p_spityp+=0 AND +@p_gidtyp+ IN (2033,2041,2036,2044,2037,2045,1520,1521,1528,1529) THEN (S) WHEN +@p_spityp+<0 AND +@p_gidtyp+ IN (2033,2041,2036,2044,2037,2045,1520,1521,1528,1529) THEN (s) WHEN +@p_trntyp+ IN (12,13) THEN (A) ELSE END + +@p_typskrot+ + - SELECT @Format=Kon_wartosc, @I=1, @Imax=len(kon_wartosc) FROM cdn.konfig WHERE Kon_Numer=992 WHILE @I<=@Imax BEGIN SET @Poprzedni = @formatdok SET @formatdok = @formatdok + + + CASE SUBSTRING(@Format,@I,1) WHEN 1 THEN cast(+@p_numer+ as Varchar) WHEN 2 THEN REPLACE(SPACE(8-LEN(cast(+@p_Numer+ as Varchar))) + cast(+@p_numer+ as Varchar),,0) WHEN 3 THEN RIGHT(cast(+@p_Rok+ as Varchar),2) WHEN 4 THEN cast(+@p_rok+ as Varchar) WHEN 5 THEN RTRIM(+@p_Seria+) WHEN 6 THEN CASE WHEN +@p_miesiac+ = 0 THEN ELSE cast(+@p_miesiac+ as Varchar) END WHEN 7 THEN CASE WHEN +@p_miesiac+ = 0 THEN WHEN +@p_miesiac+>= 10 THEN cast(+@p_miesiac+ as Varchar) ELSE 0+cast(+@p_Miesiac+ as Varchar) END 6
END IF (@Poprzedni<>@formatDok AND @I+2 <= @Imax) SET @formatdok=@formatdok+ + + + SUBSTRING(@Format,@I+1,1) + + SET @I = @I+2 END IF @gidtyp IS NOT NULL SET @formatdok = @formatdok + END RETURN @formatdok END') Po wykonaniu powyższego skryptu można przystąpić do standardowej procedury migracji. Podczas pierwszego uruchomienia aplikacji księga raportów zostanie wykonana aktualizacja baz BI, definicji raportów standardowych oraz serwisu subskrypcji. Po zakończeniu instalacji, przy pierwszym uruchomieniu aplikacja dokona konwersji baz do nowej wersji. Pojawi się poniższe okno: Kliknięcie przycisku Rozpocznij aktualizację spowoduje konwersję baz danych do najnowszej wersji. Aktualizacji należy dokonać w trybie administratora. Jeśli program nie jest uruchomiony w tym trybie pojawi się poniższy komunikat: Aby uruchomić aplikację w trybie administratora należy kliknąć prawym przyciskiem myszy na ikonie aplikacji i wybrać opcję Uruchom jako administrator. Podczas aktualizacji zostaną również zaktualizowane definicje raportów wzorcowych i standardowych. Jeśli oryginalne definicje nie zostały zmodyfikowane przez użytkownika aktualizacja przebiegnie bez jego ingerencji. Natomiast jeśli definicje zostały zmodyfikowane pojawi się okno pozwalające zdecydować czy zmodyfikowana definicja ma zostać zastąpiona nową: 7
UWAGA: Jeśli bieżąca wersja raportu zostanie nadpisana przez nową wersję wszystkie zmiany w zapytaniach wprowadzone przez użytkownika zostaną utracone. UWAGA: W przypadku dokonywania migracji na systemie 64bitowym komunikat o zmodyfikowanych raportach może się pokazywać również dla raportów nie zmodyfikowanych. W przypadku negatywnej odpowiedzi na pytanie znajdujące się w oknie powyżej zostanie utworzony nowy raport o takiej samej nazwie z dopisanym numerem wersji raportu zawierający nową definicję. Po zakończonej aktualizacji aplikacja uruchomi się już w nowej wersji. UWAGA: W momencie uruchamiania aplikacji nastąpi synchronizacja uprawnień użytkowników domenowych utworzonych w systemie ERP XL. Jeśli użytkownik domenowy nie ma wybranej roli z poziomu systemu ERP XL bądź na wybranej roli posiada prawa, których nie ma w aplikacji BI Start, nie będzie miał dostępu do aplikacji BI Start. Należy nadać takiemu użytkownikowi domenowemu odpowiednią rolę z poziomu modułu Administrator systemu ERP XL. UWAGA: Po wykonanej migracji konieczna jest zmiana użytkownika, po jakim działa serwis subskrypcji. Konto użytkownika musi mieć dostęp do SQL-a bądź konieczne jest nadanie takiego dostępu kontu local system. 8