Czy wiesz, że w Comarch ERP Altum Workflow możesz przekazywać do procesu pliki, a następnie je w nim przetwarzać w dowolny sposób ?

1 pkt
Przemysław Duda napisał/a o
BPM
BPM artykułów: 12

Comarch Retail
Comarch Retail artykułów: 58

Comarch ERP Altum
Comarch ERP Altum artykułów: 67

Comarch ERP Altum

4 lata temu

Wraz z wydaniem wersji Comarch ERP Altum Workflow 6.2 została dodana nowa funkcjonalność - możliwość przesyłania plików do procesów Workflow. Dzięki niej, możemy sprostać kolejnym wymaganiom naszych klientów. W opisanym poniżej przykładzie pokażemy aspekt biznesowy użycia nowego mechanizmu, będzie to import do procesu arkusza kalkulacyjnego .xlsx (warto wspomnieć, że nie wspieramy poprzedniego, binarnego formatu .xls), na podstawie którego ustawimy wartości atrybutów na obiektach w bazie Altum. Istotną informacją dla użytkownika jest to, że do wykonania procesu operującego na pliku .xlsx nie ma konieczności instalowania produktu Microsoft Excel.


Zacznijmy od początku, czyli od samego przekazywania plików do procesów. Mamy tutaj możliwość zarówno przekazywania pojedynczych jak i wielu plików. Zacznijmy od prostego procesu, który wysyła do skrzynki zadań użytkownika Altum wiadomość, w której załączniku znajduje się wskazany podczas uruchamiania procesu plik, np.: screen. Schemat procesu wygląda następująco:

Zatem w pierwszej kolejności tworzona jest dynamiczna lista załączników, w momencie wyboru załącznika poprzez okno parametrów procesu, tworzony jest dla niego załącznik, który następnie przesyłamy w informacji do skrzynki zadań. Parametr procesu, do którego przypisywany jest plik ustalamy następująco:

Jest to parametr o typie Comarch.Workflow.Library.FileDataType. Natomiast aktywność "Stwórz załącznik" należy skonfigurować następująco:

Tak przygotowany proces, publikujemy, dodajemy do wybranej grupy operatorów i uruchamiamy z poziomu skrzynki zadań:

Należy zwrócić tutaj uwagę na to, że do momentu uruchomienia procesu nie jest wykonywana zbędna walidacja wprowadzonego pliku. Może się okazać np., że:
- plik został usunięty lub zmieniono mu nazwę - wtedy otrzymamy stosowny komunikat:



- rozmiar pliku przekracza dopuszczalną wielkość - jest to wartość konfigurowalna, określa ją wpis w tabeli Workflow.Configuration o nazwie klucza FileDataTypeMaxSize - również otrzymamy stosowny komunikat

Jak łatwo się zgadnąć, parametr w tabeli konfiguracji o nazwie FileDataTypeMaxCount określa maksymalną liczbę plików, które możemy przekazać do jednego procesu.

W momencie uruchomienia naszego procesu, do skrzynki zadań użytkownika Altum zostaje wysłana informacja, zawierająca przekazany wcześniej plik. Możemy go podejrzeć.

Jeżeli chcielibyśmy przesłać do procesu jednocześnie większą liczbę plików, wtedy należy w inny sposób ustalić typ parametru w procesie Workflow. Możemy go skonfigurować w dwojaki sposób: jako tablica wartości wcześniej użytego typu lub też lista.

Natomiast samo dodanie plików do listy załączników możemy zrealizować w pętli ForEach.


Poza tymi zmianami, działanie procesu nie różni się w żaden sposób. Uruchamiamy go z poziomu skrzynki zadań, dodajemy pliki i odczytujemy w informacji która dotarła do skrzynki.

Przejdźmy teraz do bardziej skomplikowanego wykorzystania naszej funkcjonalności. Załóżmy, że firma X przechowuje w arkuszu kalkulacyjnym dane o obrotach poszczególnych oddziałów w kolejnych kwartałach. Struktura firmy wygląda następująco:

Arkusz kalkulacyjny natomiast wygląda następująco:

W wierszu nr 1 znajdują się nagłówki kolumn, wszystkie komórki w tym wierszu, z wyjątkiem kolumny A, będą w naszym procesie odpowiadały za atrybuty, które zostaną dodane do poszczególnych centrów struktury firmy, których nazwy zostały określone w wierszach od drugiego.
Przejdźmy do struktury naszego procesu, abyśmy mogli odczytać zawartość pliku .xlsx, należy zaimportować referencję Comarch.Workflow.Office.Integration, znajdującą się w katalogu głównym naszej aplikacji. Po wykonaniu tej operacji i upewnieniu się, że nasza biblioteka jest zaznaczona w procesie:

w grupie aktywności standardowych pojawi nam się aktywność "Odczytaj arkusz Excel".

Schemat naszego procesu wygląda następująco:

W konfiguracji aktywności "Odczytaj arkusz excel" podajemy właściwość data z obiektu typu FileDataType.

A następnie, gdy dostaniemy obiekt będący arkuszem (spreadsheet), wykonujemy na nim stosowne operacje. To w jaki sposób będziemy analizowali dany plik, zależy od tego jak został on zaprojektowany, a także od tego jakie są wymagania biznesowe naszego procesu. W tym wypadku, nasz proces dla każdego oddziału stworzy lub zaktualizuje atrybuty o nazwach wskazanych w kolumnach B,C,… w wierszu 1 naszego arkusza i przypisze im podane wartości.


W tym celu wykorzystujemy pętlę ForEach, w której dla każdego wiersza pobranego z arkusza kalkulacyjnego sprawdzamy czy dany wiersz nie jest nagłówkiem dokumentu (który odpowiada za nazwy atrybutów) - jeśli tak dodaje brakujące atrybuty do oddziałów określonych w kolumnie A, jeśli nie to przypisuje konkretnym atrybutom stosowne wartości z danego wiersza.

Uruchomienie procesu z poziomu skrzynki zadań, daje oczekiwany rezultat:

Masz pytanie?

zadaj pytanie

Masz pomysł?

zgłoś pomysł