Społeczność Comarch ERP | Użytkownicy Klienci Partnerzy Comarch

Profil użytkownika

avatar

Przemysław Duda

1 pkt
 
pracownik comarch
0 Podziękowań
0 0%

0 pytań

1 odpowiedzi

0 0%

0 pomysłów

0 komentarzy

Aktywność

  • Wartościowy użytkownik
  • Wysoko notowany
  • Lider rankingu
  • Aktywny użytkownik
  • Pomysłodawca
  • Uczynny użytkownik
  • Znawca tematu
  • Specjalista kategorii Chmura
  • Specjalista kategori ERP Altum
  • Specjalista kategorii ERP Optima
  • Specjalista kategorii ERP XL
  • Specjalista kategorii ERP XT
  • Specjalista kategorii ERP esklep
  • Specjalista kategorii ERP mobile
  • Specjalista kategorii ERP Produkcja
  • Specjalista kategorii IBARD
  • Specjalista kategorii wszystko.pl
  • Specjalista kategorii ERP Klasyka
  • Specjalista kategorii ERP iKsięgowośc 24
  • Specjalista kategorii ERP Retail
  • Specjalista kategorii Workflow
  • Specjalista kategorii Techniczne
  • Specjalista kategorii Handel
  • Specjalista kategorii Logistyka
  • Specjalista kategorii Księgowość
  • Specjalista kategorii BI
  • Specjalista kategorii Kadry płace

Rankingi

Miejsce W tym
miesiącu
Punktów
Ranking główny 2395 92 1 pkt
W tym miesiącu 92 92 0 pkt
Pytania i odpowiedzi 1986 61 0 pkt
Pomysły i komentarze 704 42 0 pkt
Najbardziej pomocni - - -

O firmie

Wpisy użytkownika

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

Piotr TomasiakPrzemysław Duda
Comarch ERP Altum
Comarch ERP Altum artykułów: 63

Comarch ERP Altum

Witold PodgórskiPaweł PilacińskiRobert ŻuberPiotr BudzinowskiTomasz GutkowskiAgnieszka KozłowskaJoanna BałutPaulina Pacek

Tematy dostępne w archiwalnym BLOGu Comarch ERP Altum Workflow

Zaktualizowano 3 lata temu

Witamy!

Z racji przeniesienia naszego dotychczasowego bloga do Społeczności Comarch ERP postanowiliśmy przypomnieć listę tematów postów, które zostały dotychczas stworzone w ramach obszaru Workflow. Informacje zawarte na dotychczasowym blogu są bardzo przydatne w poznawaniu i korzystaniu z Edytora Workflow pod kątem tworzenia i wykorzystywania procesów.

Poniżej znajduje się lista tematów z podziałem na kategorie. Zachęcamy do lektury!

--

Zespół Comarch ERP Altum Workflow



Procesy


Proces wiązania dokumentu RLS z dokumentami sprzedażowymi (FS,PAR)
Procesy windykacyjne dla wersji Workflow 6.0 cz.2
Procesy windykacyjne dla wersji Workflow 6.0
Zmiany w procesie obsługi transakcji wewnątrzwspólnotowych w związku z nowymi stanami faktur VAT zakupu i sprzedaży
Aktualizacja normatywów - zmiany w procesie.
Proces obsługujący transakcje wewnątrzwspólnotowe
Proces Poinformuj o rozbieżności w kasie
Proces aktualizacji kursów walut
Proces wysyłający informację o nierozpatrzonych dokumentach reklamacji (RLS)
Proces informujący o uznaniu reklamacji RLS
Lokalne procesy RLS
Przykładowy proces sprawdzenia uprawnień użytkownika
Proces aktualizacji normatywów
Automatyczne generowanie spotkań i kontaktów (CRM)
Aktualizacja opiekunów na kartach osób kontaktowych oraz kontrahentów.
Proces CRM -Seryjne generowanie kwestionariuszy dla kontrahentów pobrancyh z raportu BI
Proces CRM - Powiadomienia o zadaniach
Proces CRM - Zmiana rodzaju kontrahenta w CRM
Proces generowania dokumentu ZZ z BST na dostawcę proponującego najniższą cenę
Zmiany w procesach księgowych odnośnie zapisu właściwego operatora w historii zmian



Tworzenie procesów:

Przygotowywanie procesów - Best Practises
Nowy typ procesu: schemat blokowy
Podprocesy - traktowanie innych procesów jako aktywności
Proces lokalny - nowy typ procesu w Workflow
Zmiany w procesie Automatycznej obsługi transakcji wewnątrzwspólnotowej
Rozszerzalność lokalnych zdarzeń



Aktywności:

Aktywność Wyślij informację
Nowe aktywności biznesowe w 5.4
Aktywności "Wykonaj SQL"
Ulepszenia w aktywności Wyślij e-mail
Nowy designer dla aktywności Przypisz
Zmiany w aktywności "Wyślij e-mail"
Aktywności do zarządzania danymi binarnymi w Altum
Aktywność sortowania kolekcji
Atrybuty - przykłady praktycznego zastosowania
Aktywności do zarządzania słownikami
Aktywności do zarządzania kolekcjami
Nowa aktywność wywoływania metod - Invoke Method
Aktywność oczekiwania na zdarzenie (WaitForEvent)



Zdarzenia startowe:

Nowy interfejs do zarządzania mapowaniem parametrów zdarzeń na argumenty startowe procesu
Aktywności i zdarzenia startowe dla ZWE
Zdarzenie lokalne po wygenerowaniu FS z WZ
Nowe zdarzenia lokalne dla WZ/MM-/MM+/PZ/PW



Konfiguracja:

Możliwość dynamicznej zmiany języka interfejsu bez ponownego uruchamiania
Możliwość konfiguracji EndpointaWorkflow po numerze IP oraz po nazwie serwera
Możliwość wznowienia przerwanej instancji procesu



Problem Solver:

Naprawa komunikacji SQL Service Brokera
ProblemSolver - pierwszy krok rozwiązania problemu
Zmiana portu SQL Service Brokera przy pomocy konfiguratora Workflow
Automatyczne uruchomienie Problem Solvera
Problem Solver - opis działania i funkcje



Skrzynka zadań:

Ergonomiczne zmiany notyfikatora skrzynki zadań
Hiperlinki w skrzynce zadań
Zmiany w ergonomii i sposobie przekazywania wartości podczas uruchamiania procesów z Inbox
Nowa skrzynka zadań w Comarch ERP Altum/Retail 5.5 - porównanie z wersją 5.4
Dynamiczny edytor wiadomości skrzynki odbiorczej
Monitorowanie podglądu stanu wykonania procesu w skrzynce zadań



Integracja z BI:

Workflow - Integracja z BI
Workflow - Integracja BI - przykład
Kontekstowy wybór raportu w aktywności Pobierz raport BI
Autokonfiguracja Workflow w zależności od instalacji modułu BI



Konteksty:

Mapowanie więcej niż jednego elementu z kontekstu
Zmiany ergonomiczne w kontekstach
Zaktualizowana lista kontekstów, linków i hiperlinków w Workflow



Edytor Workflow:

Blokowanie modyfikacji standardowych procesów
Zmiany ergonomiczne w UI edytora WF
Combobox na liście parametrów procesu
Domyślne sortowanie listy importu procesów
Składnia wyszukiwarki Panel Search w edytorze Workflow
Załączniki w informacjach i decyzjach
Zmiana wyglądu podglądu stanu wykonania
Możliwość zamiany decyzji na informację i informacji na decyzję
Lepsza ergonomia importu procesów w edytorze



Integracja z Comarch ERP Retail:

Zdalne uruchamianie procesów Workflow
Synchronizacja obiektów na oddziały



Tips and Tricks:

Wyszukiwanie plików na dysku z poziomu procesu Workflow
Timeout na aktywnościach SQL
Możliwości rozszerzalności Workflow - przykład
Uruchamianie dwóch wersji Workflow na tym samym stanowisku
Skróty do procesów Workflow na pulpicie Altum
Zapis stanu procesu na bazę i jego konsekwencję
Formatowanie danych przekazywanych w wiadomości e-mail
Obsługa parametrów w wydrukach w Altum
Nowe wsparcie dla tłumaczeń



Dokumentacja:

Dodatkowe materiały dotyczące Workflow 5.3
Dokumentacja do procesów
Zmiana bezpieczeństwa w kontekście Workflow 5.3
Zmiany w szkoleniach Workflow

Proces pokazuje w łatwy sposób, jak możemy wykorzystać Workflow w konkretnym scenariuszu biznesowym, bez konieczności wprowadzania w nim dodatkowych zmian programistycznych.


Schemat blokowy procesu:



Aspekt biznesowy jest następujący: w e-Sklepie generowane są zamówienia sprzedaży, które następnie synchronizowane są do Altum.



W momencie pojawienia się danego zamówienia w bazie danych, na zdarzenie startowe zatwierdzenia zamówienia sprzedaży, pochodzące z synchronizacji dokumentu ZS, uruchamiany jest proces Workflow (dodatkowe informacje o tej funkcjonalności można otrzymać poprzez kontakt z Asystą Techniczną). Jeśli zamówienie pochodzi z e-Sklepu, co jest weryfikowane na samym początku procesu, następuje sprawdzenie, czy kontrahent na którego wystawiono zamówienie sprzedaży nie jest kontrahentem Nieokreślonym, jeśli tak, to żadne kroki nie są podejmowane, a do użytkownika uruchamiającego proces, wysyłana jest informacja o jego zakończeniu.


W przypadku określenia kontrahenta, do zamówienia sprzedaży generowana jest faktura sprzedaży, która następnie (po wyeksportowaniu jej do dokumentu pdf) jest podpinana do dokumentu FS jako załącznik.



Po stronie e-Sklepu załącznik ten jest podpięty do zamówienia sprzedaży.


Podgląd faktury sprzedaży wygląda następująco:



Na koniec, na skrzynkę mailową kontrahenta, wysłane zostaje powiadomienie o fakturze:

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:

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

Piotr TomasiakPrzemysław Duda
Comarch Retail
Comarch Retail artykułów: 56

Witold PodgórskiJarosław GórkaKrzysztof SzeremetaMagdalena SoswaPatrycja ZemlikPaweł BaryłkoRafał BołozPaula Żarnowska-Ziobro
Comarch ERP Altum
Comarch ERP Altum artykułów: 63

Comarch ERP Altum

Witold PodgórskiPaweł PilacińskiRobert ŻuberPiotr BudzinowskiTomasz GutkowskiAgnieszka KozłowskaJoanna BałutPaulina Pacek

Eksport stanu instancji procesu

Zaktualizowano 4 lata temu

Dla przypomnienia zapis stanu uruchomionego procesu pozwala przerwać wykonanie instancji w oczekiwaniu na spełnienie zewnętrznych warunków, nie tracąc przy tym danych, które mamy w pamięci operacyjnej działającego procesu. Dzięki temu jesteśmy w stanie w procesie wysłać zadanie z decyzją do podjęcia przez użytkownika uwarunkowując od jego odpowiedzi dalsze działanie procesu. Na przykład wysyłając w procesie pytanie do magazyniera, czy tworząc zamówienie na brakujący towar nie wiemy kiedy pojawi się jego odpowiedź. Magazynier może odpowiedzieć od razu, może też to zrobić po pewnym czasie, na przykład kolejnego dnia. W oczekiwaniu na jego decyzję instancja procesu nie może wykonywać się dalej. Nie znamy jego decyzji i proces nie wie czy stworzyć zamówienie czy nie. Dodatkowo, żeby nie zajmować niepotrzebnie zasobów serwera i zabezpieczyć się przed np. jego restartem aktualny stan instancji powinien być zapisany na bazie danych. Gdy magazynier podejmie decyzje zapisany stan posłuży do odtworzenia instancji procesu i jej kontynuacji od właściwego miejsca. Odpowiedź magazyniera pokieruje także odpowiednio instancją procesu by stworzyła lub nie pożądane zamówienie.

Do wersji Comarch ERP Altum Workflow 6.1 stan instancji procesu jest zapisywany gdy wykonywane są następujące aktywności:

  • Wyślij decyzję (proces czeka na niedeterministyczną odpowiedź od użytkownika),
  • Wstrzymaj proces (proces czeka określoną ilość czasu, np. 2h lub do określonej chwili w czasie do najbliższego piątku do 20:00; ogólnie zewnętrznym zdarzeniem jest nadejście konkretnej chwili w czasie) ,
  • Oczekiwanie na zdarzenie (proces czeka na wykonanie wskazanej operacji biznesowej np. zatwierdzenie faktury o numerze FS\2014\00001; tutaj zewnętrznym zdarzeniem jest wykonanie odpowiedniej akcji w systemie, która wygeneruje zdarzenie)

Wykorzystanie w swoim procesie którejś z powyżej wymienionych aktywności zapisuje aktualny stan wykonywania instancji procesu, czyli serializuje za pomocą NetDataContractSerializer wszystkie wartości obiektów parametrów procesu oraz zmiennych, które są dostępne dla aktywności powodującej zapis stanu. Pisaliśmy już, w jednym z poprzednich wpisów o konsekwencjach jakie niesie za sobą zapis stanu. Polecamy przypomnieć sobie ten wpis. Żeby uniknąć problemów przy odtwarzaniu instancji zapis stanu musi mieć wpływ na tworzoną przez nas definicję procesu.

Wraz z wydaniem wersji Comarch ERP Workflow 6.0 , udostępniliśmy nową funkcjonalność dla monitora procesów w Edytorze Workflow, która dzięki możliwości eksportu zapisanego stanu procesu pozwala podejrzeć co nasz proces zapisał do bazy danych.

Z poziomu monitorowania możemy zapisać instancję, której stan to "oczekiwanie na decyzję" do pliku w formacie XML. W celu wykonania tej operacji, klikamy w instancję oczekującą na podjęcie decyzji prawym przyciskiem myszy i z menu kontekstowego wybieramy opcję "Zapisz stan instancji do pliku".





Następnie wybieramy lokalizację do której dany plik zostanie zapisany:





Teraz możemy już sprawdzić szczegóły pliku XML:





Dzięki eksportowi stanu instancji możemy:

  • Sprawdzić czy nasz proces nie zapisuje zbyt dużo danych do bazy - im danych mniej tym szybciej instancja zapisze swój stan i później go odtworzy, dodatkowo będzie potrzeba mniej miejsca na składowanie danych
  • Zdiagnozować jakie nadmiarowe dane są zapisywane i poprawić nasz proces (np. poprzez "wyzerowanie" odpowiedniej zmiennej)
  • W skrajnych przypadkach, gdy nasza instancja oczekuje bardzo długo na przyjście zdarzenia (np. rok) możemy wykorzystać eksport stanu do podejrzenia i zmiany pewnych zapamiętanych wartości na bazie, bo w między czasie zmieniły się wymagania; ta możliwość powinna być jednak wykorzystywana z rozwagą, w szczególności w produkcyjnym środowisku bo nieodpowiednia modyfikacja uniemożliwi w ogóle wznowienie procesu;

Mamy nadzieję, że nowa funkcjonalność pomoże w przygotowaniu niezawodnych i szybkich procesów. W razie uwag prosimy o komentarze.

Na koniec chcielibyśmy również przypomnieć, że wysyłanie zadania, z jedną decyzją np. OK może być zastąpione wysłaniem informacji (aktywność wyślij informację), która nie powoduje zablokowania wykonywania instancji procesu przez co nie wymaga zapisu stanu instancji. O możliwości szybkiej zmiany decyzji na informację pisaliśmy w jednym z poprzednich wpisów. W takim przypadku wiele zyskamy gdy użyjemy informacji a wymagania biznesowe zostaną spełnione.