Wprowadzanie danych do systemów ERP jest często żmudną pracą. Podczas ręcznego uzupełniania informacji na kartotekach oraz dokumentach, szczególnie gdy proces trwa długo, operatorzy mogą popełniać błędy. W skrajnych przypadkach wpływają one na finanse przedsiębiorstwa, jak również powodują problemy w procesach logistycznych bądź wewnątrzfirmowych.
Aby unikąć tego typu sytuacji utworzyliśmy narzędzie PROSPEO Excel2SQL, które optymalizuje proces wprowadzania danych do stystemu zgodnie z obecnym zapotrzebowaniem. Dzięki zastosowaniu programu proces uzupełnienia informacji w systemie staje się sprawny, stabilny i wyeliminowane zostają błędy ludzkie.
Zastosowanie
Program służy do automatycznej aktualizacji danych w bazie systemu ERP, opierając się na danych z pliku Excel (.xmls). Narzędzie ma zastosowanie w każdej firmie, która korzysta z rozwiązań Comarch ERP XL. Głównym celem aplikacji jest automatyzacja przenoszenia danych z plików Excel do aplikacji Comarch ERP XL.
Ogólna zasada działania
Zestawienie danych w formacie Excel może być przenoszone do odpowiednich struktur w ERP XL. Aplikacja może m.in. zaktualizować cenniki towarów, adresy mailowe kontrahentów, atrybuty, zwrócić informację o kartotece na podstawie kodu EAN.
Przenoszenie danych z Excela do ERP XL odbywa się na zasadzie zdefiniowania powiązań pomiędzy kolumnami z arkusza Excel, a obiektami w ERP XL. Powiązania są zapisywane za pomocą szablonów wielokrotnego użytku. Edycja szablonów dostępna jest dla operatorów mających uprawnienie Administrator.
Wymagania
Do działania programu potrzebne są dane autoryzacyjne do konta SQL z bazą danych ERP XL.
Program nie wymaga zainstalowanego Excela na komputerze. Obsługuje pliki Excel w wersji 2007 bądź wyższej.
Program nie wymaga posiadania żadnych dodatkowych licencji Comarch ERP XL.
Program reprezentuje narzędzia typu Low-code (programowanie w sposób wizualny), jednak do definiowania szablonów potrzebna jest podstawowa wiedza SQL.
Szablon przykładowy – Aktualizacja adresów e-mail
Przedstawiamy działanie programu na przykładzie imprortu adresów e-mail.
W pierwszym wierszu arkusza nadajemy tytuły kolumnom, które będą dalej wykorzystywane w aplikacji jako zmienne w zapytaniu.
Arkusz Excel składa się z dwóch kolumn: A) akronim, B) e-mail. Arkusz jest wypełniony danymi:
1. Utworzenie nowego szablonu
Za pomocą przycisku „Wczytaj plik Excel” wskaż plik Excel.
2. Tworzymy nowe zapytanie, klikając przycisk "Dodaj nowe"
W przypadku, gdy przycisk jest dla Ciebie niedostępny, to należy zalogować się z uprawnieniami Administratora.
3. Mapowanie danych
Mapowanie danych pomiędzy arkuszem Excel a aplikacją odbywa się za pomocą definiowania zmiennych i określania ich typów. Możliwe jest również określenie wymagalności zmiennych. Wartości z tabel są mapowane na obiekty zmiennych, dzięki czemu mamy możliwość tworzyć w pełni dopasowane zapytania do naszych potrzeb i mamy pewność, iż dane, które przekazujemy zostaną w odpowiedni sposób ujęte w tworzonym skrypcie.
4. Tworzenie kodu zapytania
Zapytanie SQL, które umożliwia podmianę adresu e-mail na kartotece kontrahenta można pobrać z poniższego linku.
Za pomocą PPM (prawego przycisku myszy) możemy wybrać z menu kontekstowego odwołanie do zmiennej.
5. Testowanie zapytania SQL
Mamy możliwość sprawdzenia poprawności, wprowadzanego przez nas zapytania, jak również sprawdzenia poprawności mapowania wartości na odpowiednie typy zmiennych.
W tym celu wybieramy tryb pracy "Podgląd zapytania", po czym mamy możliwość wskazania wiersza, dla którego chcemy sprawdzić mapowane wartości.
Przyciskiem "Testuj zapytanie" możemy sprawdzić zwracany rezultat naszej operacji. Wprowadzona operacja wykonywana jest w transakcji, która po zwróceniu wyniku zostaje wycofana. Dzięki temu przeprowadzone testy nie ingerują w strukturę bazy danych (operacje w trybie testu są automatycznie wycofywane).
Mamy możliwość zwrócenia wartości do osobnej kolumny, jak również powiązanego dokumentu lub kartoteki z systemu Comarch ERP XL.
6. Wykonanie zapytania
Mamy możliwość podjęcia interakcji z wybranymi pozycjami bądź ze wszystkimi danymi, wybierając opcję "Wykonaj operacje dla całego arkusza" / "Wykonaj operacje dla wskazanych wierszy".
Jeżeli w zapytanie zwraca typ obiektu systemowego (kartotekę/dokument/definicję,która jest obsłużona przez API), to mamy możliwość podglądu danej formatki za pomocą przycisku lupy. Przyspiesza to pracę operatora, wprowadzającego modyfikacje, który z kontekstu aplikacji może analizować dane w systemie bez potrzeby ich ręcznego odnajdywania w ERP XL.
Aby dbać o integralność i bezpieczeństwo danych - operacje są przeprowadzane w transakcji, dzięki czemu w przypadku wystąpienia jakiegokolwiek błędu zostanie one wycofana, jak również zostaną wycofane powiązane operacje.
Pobierz wersję DEMO
Przed zakupem pełnej licencji istnieje możliwość zapoznania się z funkcjonowaniem aplikacji w wersji DEMO. Musisz być zalogowany w serwisie światxl.pl, aby pobrać demo.
Wersja demo dostępna jest do pobrania pod poniższym linkiem:
Wersja demo posiada następujące ograniczenia:
- import tylko 10 pierwszych rekordów z Excela,
- brak możliwości wykonania operacji dla wskazanych wierszy,
- możliwość uruchomienia aplikacji 30 razy.
W celu aktywacji pełnej wersji należy wprowadzić kod aktywacyjny otrzymany od nas. Klucz generowany jest na podstawie przesłanego numeru NIP.
Po wpisaniu klucza pojawi się komuniat potwierdzający prawidłowy przebieg aktywacji.
Bezpośrednio w aplikacji narzędzia PROSPEO Excel2SQL możesz znaleźć informacje o programie, stanie licencji oraz konfigurację z bazą danych na potrzeby tworzenia zapytań.
Instalacja i Konfiguracja
1) Pobierz plik i rozpakuj na komputerze w dowolnym folderze.
Program może zostać zainstalowany na dowolnym komputerze, znajdującym się w sieci z dostępem do bazy danych ERP XL. Na stanowisku powinien być zainstalowany system Comarch ERP XL.
2) Instalacja aplikacji
Aplikacja instalowana jest standardowym kreatorem instalacyjnym. W zależności od ustawień systemu może pojawić się komunikat z Windows Defender. W takiej sytuacji należy odblokować plik lub wybrać opcję „Więcej informacji”, aby kontynuować instalację.
3) Uruchomienie aplikacji
Podczas uruchomienia aplikacja poprosi o autoryzację w standardowy sposób z Comarch ERP XL. W celu wykonania konfiguracji nalezy zalogować się na operatora, który zdefiniowany jest w systemie jako Administrator.
4) Konfiguracja aplikacji
W przypadku pierwszego uruchomienia lub w przypadku pierwszego uruchomienia nowszej wersji aplikacji zostanie wyświetlony monit z prośbą o autoryzację SQL, dane te są potrzebne, aby utworzyć obiekty bazodanowe niezbędne do pracy z aplikacją.
Aby zapewnić bezpieczeństwo pracy aplikacji nastąpi zapytanie o podanie nazwy użytkownika i hasła dla zapytań SQL zdefiniowanych w aplikacji – właściwość tą można zmienić z poziomu „Ustawienia bazy danych” dostępnej w górnej belce aplikacji. Zalecamy w tym miejscu używać loginu bazodanowego, który umożliwia jedynie wykonywanie operacji, które znajdują się w zdefiniowanych zapytaniach.
Administracja
Będąc zalogowanym na koncie Administratora możemy dodawać nowe zapytania oraz edytować istniejące posługując się opcjami:
DODAJ NOWE – kreator tworzenia nowego zapytania
KOPIUJ – kopiuje istniejące zapytanie i tworzy nową wersję
EDYTUJ – kreator edycji zapytania
USUŃ – usuwa zapytanie z listy zapytań (fizycznie obiekt zostaje w bazie danych i można go odzyskać w razie omyłkowego usunięcia)
Każde z zapytań posiada składowe:
AKTWNE – pole określające czy zapytanie ma być aktywne dla użytkowników niebędących administratorem) – jeżeli prowadzone są prace nad zapytaniem i/lub nie chcemy by użytkownicy mieli do niego dostęp należy zdjąć zaznaczenie z tej właściwości
NAZWA ZAPYTANIA – nazwa, która będzie wyświetlana na liście zapytań
ZAPYTANIE – treść zapytania SQL, które ma się wykonać na bazie danych
DEFINICJA ZMIENNYCH – zarządzanie zmiennymi w zapytaniu na podstawie kolumn, mapowanie kolumny z pliku Excel na określony typ zmiennej.
Dostępne są typy zmiennych varchar, bit, int, decimal, datetime oraz ich nullowalność (określenie czy wartość może nie zostać ujęta)
DOSTĘP – określenie dostępu do zapytania, domyślnie zapytanie jest dostępne dla wszystkich operatorów. W celu zawężenia dostępu można określić jego tryb działania:
W przypadku opcji:
Wszyscy operatorzy – brak ograniczeń do wykonywania i widoczności zapytania dla Operatorów
Wybrani operatorzy – widzą zapytanie jedynie wybrani operatorzy systemu
Wszyscy poza wskazanymi – widzą zapytanie wszyscy operatorzy poza wybranymi
Podane ograniczenia nie dotyczą operatora typu Administrator.
Cena
Cena programu wynosi 4 200 zł netto.
Licencja jest serwerowa, czyli niezależna od liczby użytkowników w programie ERP XL. Działanie programu w ramach jednej licencji ograniczone jest do współpracy z jedną firmą.
Aby aktywować pełną wersję programu należy złożyć zamówienie na adres: prospeo@prospeo.com.pl. Po opłaceniu faktury prześlemy kod aktywacyjny.
Zasady Upgrade
Program objęty jest gwarancją upgrade, co oznacza prawo do bezpłatnej aktualizacji w okresie jednego roku od daty zakupu oraz dobrowolną opłatą pozwalającą na przedłużenie upgrade na kolejny rok.
W ramach aktualizacji program jest dostosowywany do aktualnych wersji ERP XL oraz do zmian prawnych.
Cena za przedłużenie upgrade na kolejny rok wynosi 840 zł netto.
Zakup upgrade nie jest obowiązkowy, a program nie posiada żadnych ograniczeń uniemożliwiających działanie w kolejnych wersjach ERP XL. Możliwe zaprzestanie prawidłowego współdziałania programu z nową wersją ERP XL jest od nas niezależne.
Gwarantujemy, że zakupiony program współpracuje z najnowszą wersją ERP XL dostępną w momencie zakupu i będzie działać z wersjami wydanymi przez kolejny rok.
Historia zmian
- Wersja 1.0 - dodanie panelu administracyjnego, rozróżnienie na użytkownika administracyjnego z prawem do tworzenia nowych szablonów i użytkownika z prawem do uruchamiania poleceń.
- Wersja 1.1 - poprawienie interfejsu aplikacji, co czyni ją bardziej intuicyjną przy użytkowaniu.
- Wersja 1.2 - dodanie listy dostępnych pól wczytanych z arkusza, dodanie mechanizmu do wyboru formatu wybranego pola oraz poprawienie walidacji zapytania.
- Wersja 2.0 - zmiany w stosunku do poprzedniej wersji:
- Zmiana interfejsu graficznego aplikacji.
- Dodanie mechanizmu umożliwiającego tworzenie struktury bazodanowej aplikacji po podaniu użytkownika administracyjnego (instalacja bez potrzeby uruchamiania SQL Server Management Studio i wykonywania zapytań).
- Oparcie aplikacji o autoryzację Comarch (wspierane wersje ERP XL od wersji 2021.1 w górę).
- Dodanie konfiguracji globalnej – zdefiniowanie aplikacji na jednym ze stanowisk w firmie powoduje, iż jest ona automatycznie skonfigurowana do pracy na innych stanowiskach, nie jest wymagane odtwarzanie konfiguracji na każdym ze stanowisk.
- Zmiana licencjonowania aplikacji – aplikacja autoryzuje się poprzez usługę webową – wystarczy podanie NIP-u w celu aktywacji aplikacji.
- Utworzenie pliku instalacyjnego aplikacji (prosty kreator msi, który pozwala wybrać miejsce instalacji programu, proste zarządzanie z poziomu „Dodaj lub usuń programy”.
- Utworzenie nowego sposobu kontroli dostępów do wykonywania zapytań SQL: wszyscy operatorzy, wybrani operatorzy, wszyscy poza wybranymi.
- Obsłużenie możliwości wyboru arkusza z pliku Excel (nie ma potrzeby umiejscawiania danych w pierwszym arkuszu).
- Dodanie możliwości podglądu wczytywanego pliku Excel.
- Dodanie możliwości interakcji z wynikiem operacji – wyświetlanie wyniku operacji w stosunku do każdego z wierszy oraz umożliwienie podglądu np. edytowanej kartoteki/dokumentu ERP XL.
- Możliwość pracy na zmiennych w zapytaniach SQL – zapytania są opisywane poprzez zmienne typu VARCHAR, BIT, INT, DECIMAL, DATETIME, zabezpiecza ten fakt przed atakami typu SQL Injection, ponieważ wartości są parsowane do zmiennych, nie jako dynamiczny SQL.
- Dodanie parsera zmiennych oraz możliwości prześledzenia mapowania zmiennych z pliku Excel, dzięki czemu łatwo można zweryfikować tworzone zapytania.
- Opracowano kreator zapytania wraz z możliwością sprawdzenia wyniku zapytania na wybranej pozycji z pliku Excel.
- Zadbano o bezpieczeństwo aplikacji – utworzony osobny użytkownik bazodanowy do operacji w aplikacji, zrezygnowano z przechowywania ConnectionString po stronie pliku konfiguracyjnego w celu podniesienia bezpieczeństwa aplikacji.
- Dodano mechanizm umożliwiający filtrowanie tylko takich zapytań, które posiadają kolumny, które są w obecnie wczytanym pliku Excel, co znacząco ułatwia pracę z aplikacją.
- Możliwość wykonania operacji dla wskazanych pozycji z pliku Excel lub dla wszystkich (możemy selektywnie zdecydować, dla których pozycji chcemy wykonać operację bez potrzeby ponownego preparowania treści w pliku Excel).
- Operacje wykonywane są w transakcji, w przypadku wystąpienia problemu w wykonywaniem operacji na pozycji (zapytanie, w którymś momencie zwraca błąd) następuje wycofanie transakcji (co powoduje przywrócenie stanu przed błędną operacją na bazie danych).
- Nowy edytor zapytania SQL, w którym zadbano o kolorowanie składni, numerację wierszy oraz możliwość wklejania zdefiniowanych zmiennych poprzez menu kontekstowe.
- Obsłużony drap and drop plików Excel (wystarczy przeciągnąć plik nad okno aplikacji aby go wczytać).
- Wersja 3.0 - umożliwia wykorzystanie w zapytaniach dynamicznych zmiennych z kontrolek. Przy użyciu kilku prostych kontrolek można zaszyć logikę aplikacyjną w zwykłym zapytaniu SQL, jak np. tworząc kontrolkę typu lista i dając w niej flagę kierunkową "typ operacji" – dodaj/usuń, podnieś ceny o zadany procent itd.
1. Dodano możliwość użycia zmiennych systemowych do zapytań, takich jak: Operator_ID – identyfikator uruchomionego operatora oraz Operator_CODE – akronim operatora oraz Identyfikator sesji (numer sesji z CDN.Sesje). Dzięki temu możliwe jest wykorzystanie ich w zapytaniach SQL, m.in. do ustawienia informacji o tym, kto modyfikował kartotekę/dokument jako ostatni, jak również do określania, jaki numer sesji wykonuje zmianę na dokumencie w danej chwili lub historycznie. Nowe opjce znajdują się w kreatorze zapytania SQL w menu kontekstowym.
2. Dodanie dynamicznych kontrolek do definicji zapytań, dzięki czemu użytkownik bez potrzeby edycji pliku Excel może dostarczyć wartości dla kontrolek, które będą miały zastosowanie w stosunku do wszystkich wczytywanych wierszy. Nie ma ograniczeń co do listy kontrolek. Ich układ w aplikacji jest zależny od kolejności dodania definicji.
Możliwe jest tworzenie kontrolek typu:
- Textbox (VARCHAR) – pole przyjmujące tekst,
- Checkbox (BIT) – kontrolka przyjmująca wartość true/false,
- NumericUpDown (INT) – kontrolka przyjmująca liczbę całkowitą,
- NumericUpDown (DECIMAL) – kontrolka przyjmująca liczbę rzeczywistą,
- DatePicker (DATE) – kontrolka umożliwiająca wybór daty,
- DateTimePicker (DATETIME) – kontrolka umożliwiająca wybór daty i godziny,
- Lista (Combobox) – kontrolka pozwalająca wyświetlić dowolną listę elementów wyrażoną zapytaniem SQL ,np. kontrahent, towar, sposób postępowania w aplikacji, zmienne kierunkowe.
W trybie tworzenia zapytania możliwe jest definiowanie kontrolkami oraz zarządzanie nimi:
W trybie testowania zapytań możliwe jest wpisywanie różnych wartości kontrolek i testowanie zwracanych rezultatów:
Odwołanie do kontrolek jest dostępne z poziomu menu kontekstowego zapytania SQL. W przypadku kontrolki typu lista możemy zadecydować czy chcemy odwołać się do identyfikatora elementu czy też do wyświetlanej treści w kontrolce. Inne kontrolki mapowane są na zmienne odpowiadające ich typowi w kodzie SQL. Definicja tych zmiennych dostępna jest w menu kontekstowym.
Przykład definicji kontrolki typu lista:Nazwa kontrolki – nazwa tworzonej zmiennej jeżeli kontrolka nazywa się Kontrolka to będzie dostępna do użycia pod nazwą zmiennej @dynamicControlKontrolka.
Wyświetlany opis – informacja wyświetlana przy kontrolce – opis biznesowy, który określa dla operatora działającego z zapytaniem SQL celowość uzupełnienia pola.
Inicjalizacja listy – w przypadku kontrolek typu lista możliwe jest dowolne zwrócenie wartości – warunkiem jest przypisanie unikalnej wartości int w pierwszej kolumnie oraz wartości tekstowej w drugiej zwracanej kolumnie.
Domyślna wartość – domyślnie ustawiona wartość dla kontrolki – w przypadku tekstu może to być select 'test', dla daty select GETDATE(), dla inta select 1 – wartości mogą być wyliczone.
W przypadku każdego typu kontrolki możliwe jest wpisanie domyślnej wartości. W tym celu zwracamy wartość określonego typu w kontrolce (dla kontrolki typu lista jest to identyfikator elementu).
Przykładowy podgląd kontrolek wraz z zadeklarowanymi domyślnymi wartościami:
Podgląd dynamicznych kontrolek w głównym oknie aplikacji:
3. Przy pierwszym uruchomieniu aplikacji zostanie wyświetlony monit o potrzebie podniesienia wersji aplikacji. Wystarczy podać dane użytkownika z uprawnieniami administratora SQL, aby założone zostały nowe definicje na bazie danych.
- Wersja 3.1.0.0
- Rozwiązano problem z bindowaniem wartości kolumn w przypadku, gdy definicja kolumny zawierała znak specjalny np. opis „Waga [g]”.
- Rozwiązano problem z sortowaniem wartości po wygenerowanej kolumnie LP.
- Zmodyfikowano działanie kolumny z rezultatem i mechanizm zapisu wyniku wykonanych operacji do pliku Excel.
- Dodano możliwość filtrowania danych w datagrid w podglądzie, dzięki czemu możliwe jest łatwe zaznaczenie interesującego nas zakresu danych z pliku Excel i podjęcie w stosunku do niego akcji i/lub wyfiltrowanie określonych rezultatów.
- Dodano możliwość edycji danych w wierszach bez potrzeby edycji pliku Excel i ponownego wczytania (np. jeżeli podczas importu danych chcemy wprowadzić inne wartości w obrębie wybranego wiersza).
- Obniżono minimalną obsługiwaną wersję API z wersji 2021.1 do 2021.0 z powodu zapytań Klientów w tej wersji.