dotyczy wersji: 8.2.x; autor: Marcin Wiktor
Import i eksport danych na listach pozycji
BPS oferuje możliwość importowania danych do listy pozycji z pliku Excel oraz eksport wierszy z listy pozycji do pliku .xls.
W tym artykule zostanie przedstawiony sposób włączania obu funkcjonalności dla konkretnej listy pozycji oraz przykładowa konfiguracja opcji Importu danych, mapowania nagłówków do kolumn oraz sposobu obsługi wierszy zawierających błędne dane (np. tekst w polu liczbowym).
1. Konfiguracja funkcji importu danych
Pierwszą czynnością, którą musimy wykonać w celu umożliwienia importu danych jest konfiguracja listy na kroku, na którym chcemy dać użytkownikom taką możliwość.
Nie ma możliwości włączenia przycisku do importu globalnie, na każdy z kroków obiegu. Ta funkcjonalność musi być włączana dla każdego z kroków osobno.
W tym celu wchodzimy w menu edycji kroku, wybieramy zakładkę „Formularze w bieżącym kroku” i w sekcji „Listy pozycji” dla listy, która nas interesuje naciskamy zaznaczony na screenshot’cie przycisk opcji zaawansowanych.
Co ważne, zmiana tych ustawień na danym kroku nie powoduje zerwania dziedziczenia ustawień globalnych formularza.
Następnie zaznaczamy checkbox „Pozwól importować z arkusza Excel” i zapisujemy zmiany
Na potrzeby tego artykułu, lista pozycji będzie składała się z 3 kolumn – Nazwa (pojedynczy wiersz tekstu), Ilość (liczba zmiennoprzecinkowa) oraz komentarz (wiele wierszy tekstu).
Nazwa i ilość będą kolumnami wymaganymi a komentarz będzie opcjonalny.
Początkowo, plik .xls, który będziemy chcieli zaimportować będzie wyglądał następująco:
Kolejną czynnością będzie już konfiguracja funkcji importu na naszej liście pozycji. Znaleźć ją można w konfiguracji atrybutu, w zakładce „Import”.
W polu Numer początkowej kolumny zostawiamy wartość domyślną „A”.
Ponieważ w naszym Excelu, pierwszy wiersz nie zawiera ani danych ani nazw nagłówków, tylko napis „Arkusz zapotrzebowania”, w polu Numer początkowego wiersza zmieniamy wartość z 1 na 2.
W polu Kryterium wyboru kolumn zostawiamy wartość domyślną, czyli „Nagłówki”. Dzięki temu wartości z arkusza będziemy mogli przypisywać do kolumn listy pozycji na podstawie nazwy nagłówka (np. Nazwa lub Komentarz) a nie na podstawie liter kolumn arkusza (np. A lub C). Dzięki temu, jeżeli kiedyś przed kolumną „Komentarz” postanowimy dodać nową kolumnę, np. „Cena jednostkowa” albo zmienimy ich kolejność to nie będzie potrzeby przekonfigurowania ustawień, gdyż nazwa nagłówka pozostanie niezmieniona.
Opcja „Litery kolumn” powinna być używana w sytuacji, gdy nasz arkusz nie zawiera wiersza z nazwami nagłówków – wtedy jedyną opcją identyfikacji pozostaną właśnie litery kolumn arkusza.
Typ importu określa sposób zachowania systemu w przypadku napotkania błędnych wierszy.
Aby zademonstrować różnicę między poszczególnymi opcjami, dodajmy do naszego arkusza 2 nowe wiersze zawierające dane niezgodne z założeniami.
W wierszu nr 7 ilość podajemy słownie, chociaż jest to pole liczbowe.
W wierszu nr 8 nie podajemy ilości, chociaż ustaliliśmy, że to pole będzie wymagane.
Dla opcji „Nie importuj przy błędach walidacji”, nie zaimportują się żadne wiersze. Wyświetlony zostanie komunikat z informacją o nieprawidłowych danych w wierszu 7 i 8.
Dla opcji „Pomiń niezwalidowane wiersze”, zostanie wyświetlony identyczny komunikat jak powyżej, ale wiersze 3-6 się poprawnie zaimportują. Wiersze 7 i 8 zostaną pominięte.
Po wybraniu ostatniej z dostępnych opcji – „Importuj nieprawidłowe pola jako puste”, pojawi się podobny komunikat jak w poprzednich przypadkach, ale wiersz 7 i 8 się także zaimportuje. Błędne dane będą zamieniane na puste wartości.
W ostatniej z opcji – Wymaganie wartości – ustawiamy „Użyj konfiguracji z kroku” zamiast „Wymagaj wszystkich kolumn”. Dzięki temu wiersze z pustą wartością „Komentarz” nie będą traktowane jako błędne gdyż na matrycy atrybutów ustawiliśmy, że nie jest ono wymagane.
Należy uważnie wybrać sposób wymagania wartości. Jeżeli w naszym przykładzie ustawilibyśmy „Wymagaj wszystkich kolumn” to wiersze 3,4 i 5 z arkusza Excel, byłyby traktowane jako błędne gdyż kolumna „Komentarz” jest dla nich pusta.
Ostatnią czynnością będzie zmapowanie danych z arkusza na odpowiednie kolumny listy pozycji.
W kolumnie „Format” dla naszego przykładu wszędzie zostawiamy wartość „Domyślny”. Ta funkcjonalność jest jednak bardzo przydatna przy atrybutach typu Pole wyboru.
Możemy dla nich zdefiniować czy pobierana wartość z komórki Excela będzie traktowana jako ID czy jako nazwa.
Opcje dla kolumny "Format":
- Domyślny – domyślne formatowanie wartości (typ kolumny listy pozycji),
- ID – traktowanie kolumny/nagłówka jako ID,
- Nazwa – traktowanie kolumny/nagłówka jako nazwy wyświetlanej.
Dla powyższych ustawień, po zaimportowaniu naszego pliku otrzymamy komunikat o błędach w wierszach 7 i 8, ale ponieważ zezwoliliśmy na import błędnych danych jako puste pola, dane te zaimportują się z pustymi wartościami w kolumnie „Ilość”
1. Konfiguracja eksportu danych do Excela
Umożliwienie użytkownikom WorkfFlow eksportu danych z listy pozycji do pliku .xls jest bardzo proste.
W menu Opcji zaawansowanych dla listy na danym kroku – analogicznie jak przy włączaniu funkcji importu (rysunek nr. 4) – zaznaczamy „Pozwól eksportować do arkusza Excel” i zapisujemy zmiany.
Przycisk do eksportu pojawia się dopiero po wejściu w tryb edycji dokumentu. Należy o tym pamiętać jeżeli funkcjonalność eksportu chcemy udostępnić np. na końcowym kroku gdzie domyślnie użytkownicy mają uprawnienia tylko do odczytu a nie do edycji dokumentu.
Po wyeksportowaniu danych z listy użytej w poprzednim przykładzie otrzymamy taki efekt:
Jaka jest maksymalna ilosc wiersz do importu i czy mozna to zmienic? 😉
Limitu jako takiego nie ma ustawionego, ale jest jednak trochę czynników, które pośrednio mają na to wpływ.
Są to np. maksymalna wielkość plików przesyłanych do Sharepointa, ustawienia timeoutów czy sama wydajność formularza przy dużej ilości wierszy dla złożonej listy pozycji.
Witam,
mam problem z importem danych z excela do listy, dla wszystkich wierszy pojawia mi się komunikat że dane są nieprawidłowe.
Dodam tylko że wartości danych są czytane ze słownika jako źródło, z tym że do słownika zostały dodane te dane które chcę zaimportować.