Baza wiedzy Trawers ERP

Alerty. AI interpretuje definicje XML

0. Wprowadzenie 1. Autoresponder - Ban 2. Email: faktura z archiwum 3. Import zamówień z Baselinkera 4. Oblicz ceny sprzedaży dla cennika 5. Zamykanie zleceń 6. Wartość zamówień sprzedaży 7. Wezwanie_checklista 8. Faktoring dla BPH 9. Informacja dla przedstawiciela 10. Informacja dla kierownika 10 11. Zapisywanie pliku .csv z asortymentem i cenami 12. Tematy powiązane (AsystentAI)

0. Wprowadzenie

W tym artykule są opisy roli i funkcji alertów, których definicje XML są w katalogu ftp. Opisy utworzono przy pomocy AI. Ułatwiają intepretację definicji zapisanych w plikach XML. Patrz definicje alertów w ftp: ftp: Alerty Patrz też: Alerty. Tworzenie XML. Przykłady

1. Autoresponder - Ban

Ten alert w systemie Trawers ERP pełni funkcję automatycznego odpowiadania na niechciane wiadomości e-mail, czyli działa jak autoresponder dla zablokowanych (banowanych) nadawców. Nazwa alertu: Autoresponder - Ban Kiedy działa? * Codziennie o godzinie 6:00 rano. * Nie powtarza się w ciągu dnia (`POWTORZ=N`). Co analizuje? * Odbiera e-maile z folderu o ID = '06' - jest to folder odbiorczy. * Tylko z ostatniego dnia (`DATA z ostatnich 1 dni`). * E-mail musi nie być jeszcze przypisany do żadnego operatora (`SYMOP pusty`). * Musi pochodzić z systemu pocztowego oznaczonego jako: NA lub ZO (czyli skrzynki w systemie Trawers). * Musi być powiązany z konkretnym odbiorcą lub dostawcą (`ODBDOST` wypełnione). Co sprawdza dalej? * Sprawdza, czy nadawca maila jest oznaczony jako 'banowany' - czyli taki, z którym nie chcemy mieć kontaktu. * Jeśli jest banowany (`Ban = Tak`), to: Co robi alert? 1. Wysyła automatyczną odpowiedź e-mail do nadawcy: ``` Prosimy nie wysyłać korespondencji na nasz adres <adres nadawcy> ``` (dodatkowo informacja, że wiadomość została wygenerowana automatycznie przez alert systemu Trawers) 2. Oznacza e-mail jako przetworzony, aby nie odpowiedzieć ponownie na kolejne wiadomości od tego samego nadawcy w tym samym cyklu (dzięki polom `TR_EMAIL_OZNACZ` i `@UID`). Cel działania: Chroni system i użytkowników przed spamem, błędną korespondencją lub kontaktami z niepożądanymi nadawcami. Umożliwia też zarządzanie reputacją i czasem operatorów - nie muszą ręcznie reagować na tego typu wiadomości.

2. Email: faktura z archiwum

Ten alert w Trawers ERP został nazwany Email: faktura z archiwum i pełni rolę automatycznej obsługi żądań przesyłania faktur w formie PDF. Nazwa alertu: Email: faktura z archiwum Jak działa w czasie? * Uruchamia się co 10 minut (`COMIN=10`). * Działa cały dzień (`ODGODZ 00:00 - DOGODZ 00:00`). * Powtarza się cyklicznie (`POWTORZ=T`). Jakie e-maile analizuje? Alert szuka nowych wiadomości spełniających warunki: 1. Data wiadomości = dzisiejsza (`DATA = TODAY`). 2. Pochodzi ze skrzynki o ID XE (`IDSKRZYN='XE'`). 3. Jest to e-mail odebrany (`RODZAJ='O'`). 4. Jest w folderze 01 (`IDFOLDER='01'`). 5. System pocztowy to NA (`NSYST='NA'`). 6. Nadawca (`ODBDOST`) musi być rozpoznany w systemie. 7. Temat wiadomości zawiera specjalny wzorzec: `[TR:SI?... ]` (jest to żądanie w formacie Trawersa, zawierające parametry, np. numer faktury). Co robi z treścią maila? * W treści tematu szuka parametru nr faktury (np. `F12345/05/20`). To jest numer dokumentu, który ma zostać wyciągnięty z archiwum. * Jeśli nie znajdzie numeru --> odpowiada komunikatem o braku parametru. Kto może dostać fakturę? * Sprawdza, czy odbiorca (`ODBDOST`) jest upoważniony: * kod `100000`, albo * kod `005304`. * Jeśli tak, i jeśli podany numer faktury istnieje --> system: 1. generuje wydruk faktury (raport `NA_DFA50`), 2. dodaje go jako załącznik PDF do odpowiedzi. Co wysyła w odpowiedzi? * Automatyczny e-mail z treścią: ``` E-mail wygenerowany automatycznie. Odpowiedź na e-mail z dnia @DATA, temat: @TEMAT ``` * Jeśli faktura została znaleziona -> dołącza PDF. * Jeśli nie -> informuje: ``` Uwaga: Brak załącznika z plikiem pdf oznacza brak faktury o podanym numerze. ``` Cel działania: Ten alert to samobsługowy mechanizm - pozwala klientom (lub uprawnionym pracownikom) samodzielnie uzyskać kopię faktury z archiwum. Wystarczy wysłać e-mail o określonym formacie tematu, a system automatycznie odeśle fakturę jako załącznik. Innymi słowy: To jest automatyczny serwer faktur na żądanie, sterowany przez temat e-maila. NOTE: Po wdrożeniu KSeF, nie trzeba przechowywać faktur w e-archiwum. Opisany mechanizm można zastosować do pobierania innych dokumentów z e-archiwum. Wszystkie dokumenty transakcyjne można pobierać via RefNo. *********************************************************************************************************************** Przykład użycia Klient (lub uprawniona osoba) wysyła e-mail: * Adres: na firmową skrzynkę (np. `faktury@firma.pl`, która jest podpięta do skrzynki `XE` w Trawersie). * Temat: ``` [TR:SI?nr=F12345/05/20] ``` > tu `F12345/05/20` to numer faktury, o którą prosimy * Treść wiadomości: może być pusta, bo alert patrzy tylko na temat. Alert działa co 10 minut i przetwarza nową pocztę. * Widzi e-mail z powyższym tematem. * Wydobywa numer faktury z parametru `nr=...`. * Sprawdza, czy nadawca (`ODBDOST`) jest uprawniony (np. `100000` lub `005304`). Jeśli wszystko się zgadza: System automatycznie generuje fakturę w PDF z archiwum i odsyła odpowiedź. Klient dostaje odpowiedź e-mail: * Temat odpowiedzi: ``` Odp. automatyczna [TR:SI?nr=F12345/05/20] ``` * Treść: ``` E-mail wygenerowany automatycznie. Odpowiedź na e-mail z dnia 09.09.2025, temat: [TR:SI?nr=F12345/05/20] Uwaga: Brak załącznika z plikiem pdf oznacza brak faktury o podanym numerze. ``` * Załącznik: `F12345-05-20.pdf` (tylko jeśli faktura istnieje w archiwum). Co jeśli numeru nie ma albo jest błędny? * Odpowiedź przychodzi bez załącznika. * Treść będzie zawierać komunikat: ``` Brak parametru nr dokumentu, nr= ? [TR:SI?nr=xxxxxx/mm/rr] ``` *********************************************************************************************************************** Wzór wiadomości e-mail, który można przekazać klientom lub pracownikom, aby łatwo zamawiali faktury z archiwum przez system Trawers. Szablon zapytania o fakturę Adresat (Do): `faktury@firma.pl` *(lub inny adres przypisany do skrzynki e-mail w Trawersie, np. `XE`)* Temat wiadomości (ważne!): ``` [TR:SI?nr=F12345/05/20] ``` Treść wiadomości: ``` Proszę o przesłanie kopii faktury o numerze F12345/05/20. ``` Odpowiedź automatyczna, jaką dostanie klient Temat: ``` Odp. automatyczna [TR:SI?nr=F12345/05/20] ``` Treść: ``` E-mail wygenerowany automatycznie. Odpowiedź na e-mail z dnia 09.09.2025, temat: [TR:SI?nr=F12345/05/20] Uwaga: Brak załącznika z plikiem pdf oznacza brak faktury o podanym numerze. ``` Załącznik: * `F12345-05-20.pdf` (jeżeli faktura istnieje w archiwum i użytkownik ma do niej dostęp). Wskazówki dla użytkowników: * Numer faktury musi być podany w formacie: `Fxxxxx/mm/rr` (np. `F12345/05/20`). * Numer należy zawsze wpisać w temacie e-maila w nawiasach kwadratowych, np.: ``` [TR:SI?nr=F12345/05/20] ``` * Jeśli numer będzie błędny lub faktura nie istnieje -> przyjdzie odpowiedź bez załącznika. * Tylko osoby uprawnione (np. kontrahenci o symbolach `100000` lub `005304`) otrzymają faktury.

3. Import zamówień z Baselinkera

Alert o nazwie: Import zamówień z Baselinkera odpowiada za automatyczne pobieranie nowych zamówień z systemu Baselinker do Trawersa. Nazwa: `Import zamówień z Baselinkera` Harmonogram działania: * Uruchamia się co godzinę (`COGODZ=1`). * Pracuje przez całą dobę (`ODGODZ=00:00` - `DOGODZ=00:00`). * Jest cykliczny (`POWTORZ=T`). Co robi? W definicji raportu znajduje się: ``` ţBLGetOrders{000001;T;python python.py %1} ``` To oznacza, że: 1. Wywoływana jest funkcja `BLGetOrders`, która odpowiada za komunikację z API Baselinkera. 2. Pobierane są nowe zamówienia (parametr `000001` wskazuje np. na identyfikator lub zestaw ustawień integracji). 3. Parametr `T` zapewne oznacza, że pobieranie jest aktywne / pełne (np. z pełną synchronizacją). 4. Dodatkowo uruchamiany jest skrypt Python (`python.py`), który może: * przetwarzać dane zamówień, * robić dodatkowe mapowania, * albo przygotowywać je do importu w Trawersie. Efekt działania: * Zamówienia z kont podłączonych do Baselinkera (np. z Allegro, sklepów internetowych, marketplaceów) są automatycznie pobierane do systemu Trawers. * Dzięki temu użytkownicy nie muszą ręcznie wprowadzać zamówień - wszystko dzieje się automatycznie co godzinę. Cel biznesowy: * Automatyzacja sprzedaży online - zamówienia z e-commerce pojawiają się w ERP bez udziału człowieka. * Oszczędność czasu - nie trzeba kopiować danych z maili czy panelu Baselinkera. * Spójność danych - wszystkie zamówienia są w systemie ERP, gotowe do dalszej obsługi (fakturowania, magazynu, wysyłki). *********************************************************************************************************************** Schemat działania alertu: Import zamówień z Baselinkera - krok po kroku Od momentu złożenia zamówienia przez klienta, aż do pojawienia się go w Trawersie. Przepływ procesu Klient składa zamówienie * Klient kupuje produkt np. na Allegro, w sklepie internetowym, Amazonie czy innym kanale, który jest spięty z Baselinkerem. * Zamówienie trafia do panelu Baselinker. Baselinker zapisuje zamówienie * W Baselinkerze zamówienie zostaje zapisane z pełnymi danymi: * dane klienta, * adres dostawy, * metoda wysyłki, * sposób płatności, * lista produktów (kody, ilości, ceny). Alert w Trawersie uruchamia się co godzinę * Alert Import zamówień z Baselinkera działa automatycznie co godzinę. * Wywołuje polecenie: ``` BLGetOrders{000001;T;python python.py %1} ``` które: * łączy się z API Baselinkera, * pobiera nowe zamówienia, * przekazuje dane do Trawersa, * opcjonalnie uruchamia skrypt Python, aby np. przetworzyć dane (mapowanie kodów produktów, konwersja formatu, logi). Zamówienia są importowane do Trawersa * W Trawersie tworzone są dokumenty zamówień od klientów. * Każde zamówienie zawiera: * dane nabywcy, * adres dostawy, * powiązane produkty (zgodne z kartotekami w ERP), * status (np. do realizacji). Obsługa w Trawersie Od tego momentu zamówienie w ERP może być obsługiwane standardowo: * rezerwacja towaru w magazynie, * wystawienie dokumentów WZ / faktury, * przekazanie do działu logistyki / kuriera, * śledzenie statusu realizacji. Korzyści * Pełna automatyzacja - operatorzy nie muszą ręcznie wklepywać danych z Baselinkera. * Mniej błędów - wszystkie informacje są pobierane dokładnie z zamówienia. * Aktualność danych - co godzinę Trawers ma najnowsze zamówienia. * Integracja wielu kanałów - niezależnie, czy sprzedaż pochodzi z Allegro, własnego sklepu czy innego marketplaceu, wszystko trafia do ERP.

4. Oblicz ceny sprzedaży dla cennika

Alert: Oblicz ceny sprzedaży w Trawers ERP: Co to jest? Automat, który przelicza ceny sprzedaży w cenniku katalogowym według wcześniej zapisanych parametrów. Kiedy działa? * Codziennie (`CODNI=1`), przez całą dobę (okno 00:0000:00), cyklicznie (`POWTORZ=T`). Jak to działa technicznie? W sekcji RAPORT widać: ``` WykonajFunkcje{MI_OC315;ParametryDlaCennikaPLN_Netto1} ``` To znaczy: uruchom funkcję/konfigurator MI_OC315 z zestawem parametrów ParametryDlaCennikaPLN_Netto1. Komentarz w definicji podpowiada, że przykładowo liczy cenę Netto 1 w PLN według formuły [0100] dla indeksów z grupy [01]. Co jest efektem? * System wylicza/aktualizuje ceny (np. Netto 1 w PLN) dla wybranych indeksów zgodnie z parametrami w MI_OC315. * Zakres (które indeksy), formuła wyceny (np. marża/narzut na koszcie, kurs waluty, zaokrąglenia), wariant cennika - wszystko bierze z tego zestawu parametrów. Dlaczego robić automatycznie? * Po zmianach kosztów, kursów walut albo marż - cennik sam się odświeża. * Mniej ręcznej pracy i spójne zasady wyceny. Przykład praktyczny Załóżmy, że: * Chcesz, aby Netto 1 (PLN) dla towarów z grupy 01 liczyło się jako *średni koszt + 25% marży*, zaokrąglone do 0,10 PLN. * Taki zestaw zapisujesz w MI_OC315 jako: ParametryDlaCennikaPLN_Netto1. ParametryDlaCennikaPLN_Netto1, to: Nazwa parametrów last user choice - ID Ostatni wybór operatora Patrz opis funkcji TrExtLang -> tWykonajFunkcje{} Efekt: co dzień alert uruchamia MI_OC315 i aktualizuje ceny Netto 1 tam, gdzie trzeba. Jak tym sterować? * Zmiana logiki (formuły, marży, kursu, filtrów indeksów): edytujesz zestaw parametrów w MI_OC315. * Inny cennik/inna cena (np. Netto 2, waluta EUR, inna grupa indeksów): tworzysz nowy zestaw w MI_OC315 i podstawiasz jego nazwę do alertu. Na co uważać? * Jeśli niektóre ceny są ręcznie nadpisywane, ustal, czy MI_OC315 ma je pomijać, czy nadpisywać. * Zaokrąglenia i progi - sprawdź, czy odpowiadają polityce cenowej. * Zrób test na wąskiej grupie indeksów przed wdrożeniem na całość.

5. Zamykanie zleceń produkcyjnych / usługowych

Alert w Trawers ERP o nazwie: Zamykanie zleceń odpowiada za automatyczne zamykanie zleceń produkcyjnych, które zostały już w całości zrealizowane. Nazwa: Zamykanie zlecen Harmonogram działania: * Uruchamia się co 10 minut (`COMIN=10`), przez cały dzień (`00:0023:59`). * Działa cyklicznie (`POWTORZ=T`). * Między kolejnymi wywołaniami zostawia 10 minut przerwy (`POMIN=10`). Logika działania: 1. Wybierane są zlecenia produkcyjne o statusie O (Otwarte). ``` WARUNE1: IS_EQ(STATUS,'O') ``` 2. Alert oblicza łączną ilość przyjętą na magazyn: ``` Przyjeto = @ILOSCW + @ILOSCW1 ``` 3. Porównuje tę ilość z ilością zleconą do produkcji (`@ILOSCZ`). * Jeśli Przyjęto Ilość zlecona -> ustawia flagę Można zamknąć = TAK. 4. Jeżeli warunek spełniony, wysyła polecenie zamknięcia zlecenia: ``` <woClose> <workOrderPrefix>@WOPRE</workOrderPrefix> <workOrderSuffix>@WOSUF</workOrderSuffix> </woClose> ``` Efekt działania: * Zlecenia produkcyjne, które zostały w pełni zrealizowane (ilość wykonana ilość zlecona), są automatycznie zamykane. * Zlecenia niepełne pozostają otwarte. Cel biznesowy: * Utrzymanie porządku w systemie produkcyjnym. * Automatyzacja - nie trzeba ręcznie pilnować i zamykać każdego zlecenia. * Zapobieganie dalszej rejestracji operacji w zleceniach, które są już faktycznie zakończone. *********************************************************************************************************************** Praktyczny scenariusz działania alertu: Zamykanie zleceń krok po kroku. Przykład 1: Zlecenie zrealizowane w całości * Zlecenie: produkcja 100 sztuk. * Status początkowy: [O] (Otwarte). * Ilość zlecona (`@ILOSCZ`) = 100. * Ilość przyjęta (`@ILOSCW + @ILOSCW1`) = 100. Alert co 10 minut sprawdza warunek: * 100 (przyjęto) 100 (zlecono) -> warunek spełniony. Efekt: * Alert generuje polecenie `<woClose>` -> zlecenie zostaje automatycznie zamknięte. * Status zmienia się z [O] (Otwarte) na [Z] (Zamknięte). Przykład 2: Zlecenie częściowo zrealizowane * Zlecenie: produkcja 100 sztuk. * Status początkowy: [O]. * Ilość zlecona = 100. * Ilość przyjęta = 95. Alert sprawdza: * 95 (przyjęto) < 100 (zlecono) -> warunek nie spełniony. Efekt: * Alert nie zamyka zlecenia. * Status pozostaje [O]. * Można jeszcze przyjmować brakujące 5 sztuk. Przykład 3: Nadprodukcja * Zlecenie: 100 sztuk. * Ilość przyjęta = 105. Sprawdzenie: * 105 100 -> warunek spełniony. Efekt: * Zlecenie zostaje zamknięte mimo nadprodukcji. * Status = [Z]. Podsumowanie * Alert pilnuje, aby otwarte zlecenia zamykały się same, gdy osiągną wymaganą ilość. * Obsługuje też przypadki nadprodukcji - wtedy zamyka od razu. * Przy niedoprodukcji - pozostawia otwarte.

6. Wartość zamówień sprzedaży

Alert w Trawers ERP o nazwie Wartość zamówień sprzedaży służy do kontroli i akceptacji zamówień sprzedaży o dużej wartości. Nazwa: `Wartosc zamówień sprzedaży` Harmonogram działania: * Sprawdza zamówienia co minutę (`COMIN=1`). * Działa przez całą dobę (`ODGODZ=00:00 - DOGODZ=00:00`). * Powtarza się cyklicznie (`POWTORZ=T`). * Jest odroczony o minutę pomiędzy uruchomieniami (`POMIN=1`). Jakie dokumenty analizuje? * Dotyczy tylko dokumentów o rodzaju [ZL] (`WARUNE1: IS_EQ(RODZAJD,'ZL')`), czyli zamówień sprzedaży. Logika działania: 1. Zbiera zamówienia - zapamiętuje numery i wartości zamówień (`TR_MEM[ZAMOWIENIA]`). 2. Sprawdza wartość zamówienia: * Jeżeli wartość > 1000 PLN, zamówienie wymaga akceptacji. 3. Pokazuje okno dialogowe operatorowi: * Wyświetla numer i wartość zamówienia. * Pytanie: Czy akceptować?. * Opcje: Tak / Nie. 4. Decyzja operatora: * Jeśli Tak -> system wysyła polecenie akceptacji zamówienia: ``` <acceptSalesOrder> <documentNr>[NumerZamówienia]</documentNr> </acceptSalesOrder> ``` i potwierdza: SOA OK. * Jeśli Nie -> wpisuje komunikat: Odrzucono przez operatora: [Numer]. Efekt działania: * Małe zamówienia ( 1000 PLN) są akceptowane automatycznie. * Duże zamówienia (> 1000 PLN) wymagają potwierdzenia operatora w dodatkowym oknie. * System zapisuje, które zamówienia zostały zaakceptowane, a które odrzucone. Cel biznesowy: * Zapewnia kontrolę nad ryzykownymi zamówieniami o wysokiej wartości. * Chroni przed przypadkowym przyjęciem zbyt dużych zamówień bez zgody kierownika/handlowca. * Daje ścieżkę akceptacji w ERP - operator widzi okno, wybiera decyzję, a system wykonuje odpowiednie polecenie.

7. Wezwanie_checklista

Alert w Trawers ERP o nazwie: Wezwanie_checklista służy do obsługi procesu wysyłki wezwań do zapłaty (przypomnień dla kontrahentów o zaległych płatnościach). Nazwa: `Wezwanie_checklista` Harmonogram działania: * Aktywny cały czas (`00:00 - 00:00`), cykliczny (`POWTORZ=T`). * Uruchamiany ręcznie lub zgodnie z harmonogramem systemu. Warunki wyboru danych (część Query): Alert filtruje dokumenty (rozrachunki) wg warunków: 1. ROZLICZ = 0 -> dokument nie został jeszcze rozliczony. 2. ROKROZ pusty -> brak roku końcowego rozliczenia. 3. TERMIN minął 7 dni temu (`!TD_GE(TERMIN,f_data-7)`). 4. KWOTA > KWOTAR -> kwota należności większa od kwoty rozliczającej (czyli pozostało coś do zapłaty). Czyli wybiera przeterminowane, nierozliczone należności o dodatnim saldzie. Część interaktywna (RAPORT): * Alert buduje checklistę (listę wyboru) kontrahentów spełniających powyższe kryteria. * Operator widzi okno z listą kontrahentów i zaznacza tych, do których ma być wysłane wezwanie do zapłaty. * `TN=T` -> Wysłać * `TN=N` -> Nie wysyłać * W tle zapisywane są dane w pamięci (`TR_MEM`, `checklist;odbiorcy`). Na końcu alert wywołuje kolejny proces: ``` TR_ALERT;;WEZW03 ``` który odpowiada za faktyczne generowanie i wysyłanie wezwań. Efekt działania: * Użytkownik dostaje wygodną listę dłużników. * Sam decyduje, komu wysłać wezwanie. * Po zatwierdzeniu system uruchamia kolejny alert/raport (`WEZW03`), który przygotowuje i wysyła wezwania. Cel biznesowy: * Automatyzuje kontrolę przeterminowanych należności. * Minimalizuje ryzyko pominięcia klienta, który zalega z płatnością. * Umożliwia operatorowi ręczną selekcję - dzięki czemu można np. pominąć kluczowego klienta albo takiego, z którym wcześniej ustalono indywidualny termin płatności. *********************************************************************************************************************** Scenariusz praktyczny działania alertu: Wezwanie_checklista krok po kroku: Przykład - zaległa faktura Wystawienie faktury * Data wystawienia: 01.06.2023 * Termin płatności: 30 dni (czyli do 01.07.2023) * Kwota: 5000 PLN * Faktura nie została jeszcze rozliczona (`ROZLICZ = 0`, `ROKROZ pusty`). Po terminie * Mija 7 dni od terminu płatności -> 08.07.2023 faktura staje się przeterminowana. * Nadal jest nieopłacona, więc spełnia warunki alertu: * `ROZLICZ = 0` * brak `ROKROZ` * `TERMIN sprzed 7 dni` * `KWOTA > KWOTAR` (czyli nadal jest saldo do zapłaty). Uruchomienie alertu * Alert Wezwanie_checklista uruchamia się (automatycznie / ręcznie). * Buduje checklistę kontrahentów z zaległymi płatnościami. * Na ekranie pojawia się lista - np.: ``` Wysyłanie wezwań do zapłaty Proszę wybrać odbiorców, którym wysłać wezwanie: [ ] Klient A - Faktura F/123/06/2023 - 5000 PLN - Termin 01.07.2023 [ ] Klient B - Faktura F/456/05/2023 - 3000 PLN - Termin 15.06.2023 ... ``` Decyzja operatora * Operator zaznacza, że do Klienta A ma być wysłane wezwanie (`TN = T`). * Klienta B można np. odznaczyć, jeśli ustalono indywidualne przedłużenie terminu. Generowanie wezwania * Po zatwierdzeniu checklisty alert przekazuje dane do procesu WEZW03. * System tworzy wezwanie do zapłaty (najczęściej jako pismo/wiadomość e-mail z PDF). * Klient A dostaje oficjalne przypomnienie o zaległości. -- Efekt biznesowy * Operator nie musi ręcznie sprawdzać terminów - system sam wyłapuje przeterminowane płatności. * Użytkownik ma pełną kontrolę, komu wysłać wezwanie. * Minimalizuje się ryzyko: 'zapomnienia' o dłużniku.

8. Faktoring dla BPH

Alert: Faktoring dla BPH został zdefiniowany, aby generować plik CSV z fakturami przeznaczonymi do przekazania bankowi BPH w ramach faktoringu. Nazwa i kontekst * Nazwa: Faktoring dla BPH * System: NA (Należności) * Uruchamianie: raz dziennie (`CODNI=1`), obejmuje dokumenty z ostatnich 14 dni. Warunki wyboru danych Alert przetwarza tylko te faktury, które: 1. ROZLICZ = 0 -> nierozliczone, otwarte rozrachunki. 2. ROKROZ pusty -> brak roku końcowego rozliczenia. 3. RODZAJ $ (FA; FK) -> dokumenty sprzedaży: faktura VAT i faktura korygująca. 4. ODODNUME = 'FB' -> wyróżnik wskazujący, że faktura jest przeznaczona do faktoringu w BPH. (wyróżnik podany w karcie odbiorcy) 5. DATA z ostatnich 14 dni -> tylko nowe rozrachunki (świeże faktury). Raport / Akcja alertu * Tworzony jest plik CSV o nazwie zawierającej datę i godzinę (np. `faktoringFB_20230420_153012.csv`). * W pliku zapisywane są informacje z faktur: * numer doręczenia (symbol faktury), * daty wystawienia i terminy płatności, * wartości (kwota brutto pomniejszona o rozliczenia), * dane kontrahenta (nazwa, adres, kod, miasto, kraj). * Dodatkowo tworzony jest podsumowujący rekord kontrolny: * liczba pozycji, * suma wartości wszystkich faktur. Efekt działania * Każdego dnia system automatycznie generuje plik CSV z fakturami do faktoringu w banku BPH. * Plik może być przesłany na serwer banku (np. przez FTP) lub ręcznie przekazany. * Dzięki temu księgowość nie musi ręcznie przygotowywać listy faktur dla banku. Cel biznesowy * Automatyzacja obsługi faktoringu - minimalizacja pracy ręcznej. * Standaryzacja danych - plik w formacie wymaganym przez bank. * Bezpieczeństwo i kontrola - podsumowania w pliku pozwalają zweryfikować kompletność danych.

9. Informacja dla przedstawiciela handlowego

Alert: Informacja dla przedstawiciela służy do informowania handlowców/przedstawicieli o zaległościach płatniczych klientów. Nazwa i kontekst * Nazwa: Informacja dla przedstawiciela * System: NA (Należności) * Uruchamianie: raz dziennie (`CODNI=1`). Warunki wyboru danych Alert wybiera tylko te rozrachunki (należności), które: 1. ROZLICZ = 0 -> nierozliczone (wciąż otwarte). 2. TERMIN płatności minął 7 dni temu (`!TD_GE(TERMIN,f_data-7)`). 3. ROKROZ pusty -> brak roku końcowego rozliczenia. Oznacza to, że raport obejmuje przeterminowane należności nieopłacone od co najmniej tygodnia. Raport / treść alertu Alert generuje zestawienie w układzie tabelarycznym. W raporcie dla każdego klienta/przedstawiciela wyświetlane są: * @OSOBA -> klient/przedstawiciel powiązany z rozrachunkiem, * Nr dokumentu (@NUMER) - numer faktury/rozrachunku, * Kwota należności (@KWOTA), * Kwota zapłacona (@KWOTAR), * Kwota zaległości (@KWOTA - @KWOTAR), * Termin płatności (@TERMIN) - z możliwością wyliczenia dni po terminie. Układ kolumn wygląda mniej więcej tak: ``` Klient Nr dokumentu Należność Zapłacona Zaległość Termin ------------------------------------------------------------------------- Kowalski FV/123/06/16 5000,00 2000,00 3000,00 2016-06-15 ``` Efekt działania * Każdego dnia handlowiec/przedstawiciel otrzymuje listę zaległości swoich klientów. * Dzięki temu wie, którzy klienci mają przeterminowane faktury i na jakie kwoty. * Ułatwia to przygotowanie się do rozmów i działań windykacyjnych. Cel biznesowy * Zapewnienie handlowcom bieżącej informacji o stanie rozliczeń ich klientów. * Wsparcie w egzekwowaniu płatności i rozmowach handlowych. * Szybsza reakcja na zaległości (np. wstrzymanie realizacji nowych zamówień, przypomnienia telefoniczne).

10. Informacja dla kierownika z grupy 10

Alert: Informacja dla kierownika 10 przygotowuje raport o zaległych płatnościach dla kontrahentów przypisanych do grupy nr 10. Nazwa i kontekst * Nazwa: Informacja dla kierownika 10 * System: NA (Należności) * Priorytet: 6 (ważny, ale nie najwyższy). * Uruchamianie: co 7 dni (`CODNI=7`), przez całą dobę (`ODGODZ=00:00 - DOGODZ=00:00`). Warunki wyboru danych Alert obejmuje tylko rozrachunki: 1. ROZLICZ = 0 -> należności nierozliczone (otwarte). 2. ROKROZ pusty -> brak roku końcowego rozliczenia. 3. ODGRUPA = '10' -> kontrahenci należący do grupy 10. Czyli system zbiera otwarte, nierozliczone należności klientów z grupy 10. Raport / treść alertu * Raport formatuje się jak dokument (czcionki, linie, nagłówki). * Nagłówek: * tytuł: Zaległe płatności, * grupa kontrahenta = 10, * data wykonania (`TR_MEM[data]`). * Dla każdego odbiorcy (`@OSOBA`) alert wywołuje wydruk WEZALERT z parametrami: * system: NA (należności), * rodzaj: RZ (rozrachunki), * raport: WEZALERT, * zakres zaległości (`z1=30`, `z2=60` -> np. faktury przeterminowane 30-60 dni). Efekt działania * Kierownik dostaje cykliczny raport zbiorczy o zaległościach w grupie kontrahentów nr 10. * Raport zawiera wezwane płatności, pogrupowane wg klientów. * Daje możliwość szybkiej kontroli, które należności są przeterminowane i od jak dawna. Cel biznesowy * Regularne informowanie kierownika odpowiedzialnego za grupę klientów nr 10 o zaległościach. * Ułatwia podejmowanie działań windykacyjnych i handlowych. * Zwiększa kontrolę nad płynnością finansową poprzez monitorowanie zaległości co tydzień. *********************************************************************************************************************** Scenariusz praktyczny działania alertu: Informacja dla kierownika 10 krok po kroku: Dane wejściowe - przykładowy klient z grupy 10 * Klient: Firma Alfa (przypisana do grupy kontrahentów nr 10) * Faktury: 1. Faktura FA/123/06/2023 - kwota 5 000 PLN, termin płatności minął 35 dni temu. 2. Faktura FA/456/06/2023 - kwota 8 000 PLN, termin płatności minął 55 dni temu. * Obie faktury są nierozliczone (`ROZLICZ=0`) i bez roku końcowego rozliczenia (`ROKROZ pusty`). Działanie alertu 1. Alert uruchamia się raz na 7 dni. 2. Sprawdza należności klientów z ODGRUPA = 10. 3. Znajduje dwie faktury przeterminowane: 35 i 55 dni. 4. Wywołuje dla klienta wydruk WEZALERT z parametrami `z1=30`, `z2=60`. Raport (fragment) Nagłówek: ``` Zaległe płatności Grupa kontrahenta: 10 Data: 2023-07-01 ------------------------------------------------------------ ``` Pozycje dla klienta: Firma Alfa: ``` Klient: Firma Alfa Nr dokumentu Kwota należności Kwota zapłacona Zaległość Termin FA/123/06/2023 5 000,00 PLN 0,00 PLN 5 000,00 PLN 2023-05-27 FA/456/06/2023 8 000,00 PLN 0,00 PLN 8 000,00 PLN 2023-06-06 ``` *(alert pokazuje, że faktury są w zakresie 3060 dni przeterminowania)* Efekt biznesowy * Kierownik otrzymuje pełną informację o zaległościach klientów ze swojej grupy (10). * Widzi, że: Firma Alfa ma 2 faktury zaległe: 35 i 55 dni po terminie. * Może podjąć działania: * wysłać przypomnienie, * skontaktować się z klientem, * wstrzymać nowe zamówienia do czasu uregulowania zaległości. *********************************************************************************************************************** Raport z alertu: Informacja dla kierownika 10 w formie tabeli ASCII tak, żeby była czytelna w dokumentacji albo mailu. Raport - przykład tabeli ASCII ``` ============================================================ ZALEGŁE PŁATNOŚCI Grupa kontrahenta: 10 Data: 2023-07-01 ============================================================ Klient: Firma Alfa -------------------------------------------------------------------------------- Nr dokumentu Kwota należności Kwota zapłacona Zaległość Termin -------------------------------------------------------------------------------- FA/123/06/2023 5 000,00 PLN 0,00 PLN 5 000,00 PLN 2023-05-27 FA/456/06/2023 8 000,00 PLN 0,00 PLN 8 000,00 PLN 2023-06-06 -------------------------------------------------------------------------------- RAZEM: 13 000,00 PLN =============================================================== ``` W ten sposób kierownik od razu widzi: * jakie dokumenty są przeterminowane, * jaka jest ich wartość, * ile wynosi całkowita zaległość klienta, * do jakiej grupy kontrahentów należy. *********************************************************************************************************************** Raport zbiorczy z alertu: Informacja dla kierownika 10 - pokazująca kilku klientów z grupy nr 10. Raport - zbiorcza tabela ASCII ``` ============================================================ ZALEGŁE PŁATNOŚCI Grupa kontrahenta: 10 Data: 2023-07-01 ============================================================ Klient: Firma Alfa -------------------------------------------------------------------------------- Nr dokumentu Kwota należności Kwota zapłacona Zaległość Termin -------------------------------------------------------------------------------- FA/123/06/2023 5 000,00 PLN 0,00 PLN 5 000,00 PLN 2023-05-27 FA/456/06/2023 8 000,00 PLN 0,00 PLN 8 000,00 PLN 2023-06-06 -------------------------------------------------------------------------------- RAZEM: 13 000,00 PLN Klient: Firma Beta -------------------------------------------------------------------------------- Nr dokumentu Kwota należności Kwota zapłacona Zaległość Termin -------------------------------------------------------------------------------- FA/789/06/2023 4 500,00 PLN 1 500,00 PLN 3 000,00 PLN 2023-05-20 FA/812/06/2023 2 000,00 PLN 0,00 PLN 2 000,00 PLN 2023-06-10 -------------------------------------------------------------------------------- RAZEM: 5 000,00 PLN Klient: Firma Gamma -------------------------------------------------------------------------------- Nr dokumentu Kwota należności Kwota zapłacona Zaległość Termin -------------------------------------------------------------------------------- FA/900/06/2023 12 000,00 PLN 10 000,00 PLN 2 000,00 PLN 2023-05-25 -------------------------------------------------------------------------------- RAZEM: 2 000,00 PLN ================================================================ PODSUMOWANIE DLA GRUPY 10: 20 000,00 PLN ================================================================ ``` Taki raport zbiorczy pozwala kierownikowi od razu zobaczyć: * który klient zalega, * które faktury są nieopłacone, * ile brakuje do zapłaty na poziomie klienta i całej grupy.

11. Zapisywanie pliku .csv z asortymentem i cenami

Alert: Stany i ceny cyklicznie tworzy plik .csv zawierający wybrane indeksy KIM wraz z dwiema cenami sprzedaży i ilością dostępną w magazynie 01. <Trawers_Alert wydanie='2026.07.29' wersja='5.00'> <TRALERTDB> <NAZWA>Stany i ceny dla PS</NAZWA> <NSYST>MG</NSYST> <SELECT>229</SELECT> <COMIN>15</COMIN> <ODGODZ>07:00</ODGODZ> <DOGODZ>19:00</DOGODZ> <POWTORZ>T</POWTORZ> <TEMAT>Stany i ceny dla PS</TEMAT> <RAPORT>TţNazwijPlik{ala;csv}ţNadpiszPlik{} ţCofnijWiersz{} PţUsuńSpacje{@INDEKS};ţUsuń { ;ţUsuńSpacje{ţ96 {TR_CENA_SPR;;@INDEKS;4;50;01}}};ţUsuń { ;ţUsuńSpacje{ţ60{ţ96 {TR_CENA_SPR;;@INDEKS;4;10;01};Brak ceny!!!;0;ţ96 {TR_CENA_SPR;;@INDEKS;4;10;01}}}};ţUsuńSpacje {ţFormat{ţIlośćDostępna{01;@INDEKS;;};999}}; </RAPORT> <ADDDATE>2026.07.29</ADDDATE> <ADDDATD>2026-07-29</ADDDATD> <ADDTIME>13:12:19</ADDTIME> <ADDUSER>AA</ADDUSER> <ADDPROC>AD_TAL10</ADDPROC> <ADDSYST>AD</ADDSYST> <CHGDATE>2026.07.29</CHGDATE> <CHGDATD>2026-07-29</CHGDATD> <CHGTIME>13:12:19</CHGTIME> <CHGUSER>AA</CHGUSER> <CHGPROC>AD_TAL10</CHGPROC> <CHGSYST>AD</CHGSYST> <NPOLE1>GRUPA</NPOLE1> <NPOLE2>MRODZAJ</NPOLE2> <NPOLE3>BLOKADTN</NPOLE3> <TPOLE1>C</TPOLE1> <TPOLE2>C</TPOLE2> <TPOLE3>C</TPOLE3> <DPOLE11>2</DPOLE11> <DPOLE12>2</DPOLE12> <DPOLE13>1</DPOLE13> <OPOLE1>Grupa indeksu %GG</OPOLE1> <OPOLE2>Rodzaj: Pp:Pw:Mz:Zs:Pr:...</OPOLE2> <OPOLE3>[ ][T] Zablokowana</OPOLE3> <RELAC1>nie zawiera tekstu (...)</RELAC1> <RELAC2>jest = (równy)</RELAC2> <RELAC3>jest = (równy)</RELAC3> <WARTOD1>'ZA'</WARTOD1> <WARTOD2>'03'</WARTOD2> <WARTOD3>'N'</WARTOD3> <LACZNI2>i</LACZNI2> <LACZNI3>i</LACZNI3> <WARUNE1>!IS_IN(GRUPA,'ZA')</WARUNE1> <WARUNE2>IS_EQ(MRODZAJ,'03')</WARUNE2> <WARUNE3>IS_EQ(BLOKADTN,'N')</WARUNE3> </TRALERTDB> </Trawers_Alert> Ogólna interpretacja Alert Stany i ceny dla PS cyklicznie tworzy plik `ala.csv` zawierający wybrane indeksy KIM wraz z dwiema cenami sprzedaży i ilością dostępną w magazynie 01. Skrót PS nie jest rozwinięty w definicji. Najprawdopodobniej oznacza system lub platformę, która pobiera ten plik. Harmonogram Alert: * sprawdza dane co 15 minut, * działa w godzinach 07:0019:00, * ma ustawione `POWTORZ=T`, czyli wcześniej przetworzone rekordy mogą być ujmowane ponownie. Dokumentacja wskazuje, że częstotliwość określa moment kolejnego sprawdzenia, a opcja ponownego ujmowania pozwala przetwarzać te same rekordy w kolejnych wykonaniach. Ponieważ w XML nie ma widocznego dodatkowego okresu ponowienia, można przyjąć, że kwalifikujące się indeksy będą najprawdopodobniej eksportowane przy każdym wykonaniu alertu. Źródło danych ``` NSYST = MG SELECT = 229 ``` Alert przegląda zbiór 229 - Kartoteka indeksów KIM. W kartotece znajdują się m.in. pola `INDEKS`, `GRUPA`, `MRODZAJ` i informacje o blokadzie. Warunki wyboru indeksów Do pliku trafią tylko karty KIM spełniające jednocześnie trzy warunki: ``` !IS_IN(GRUPA,'ZA') AND IS_EQ(MRODZAJ,'03') AND IS_EQ(BLOKADTN,'N') ``` Czyli: 1. Grupa indeksu nie zawiera `ZA` Ponieważ grupa KIM jest polem dwuznakowym, praktycznie oznacza to wykluczenie grupy `ZA`. 2. Rodzaj indeksu = `03` Kod `03` oznacza Materiał kupowany [Mz], czyli towary i materiały magazynowane. 3. Karta nie jest zablokowana `BLOKADTN=N` oznacza wybór kart aktywnych, niezablokowanych. Nazwa i sposób tworzenia pliku Pierwsza linia raportu: ``` T ţNazwijPlik{ala;csv} ţNadpiszPlik{} ţCofnijWiersz{} ``` oznacza: * nazwa pliku: `ala.csv`, * istniejący plik o tej nazwie ma być nadpisany, * `CofnijWiersz{}` usuwa pusty wiersz, który powstałby przez techniczną linię sterującą. Funkcja `NazwijPlik` zmienia automatyczną nazwę pliku na wskazaną przez autora wzorca. `CofnijWiersz` cofa wydruk o jeden wiersz. Miejsce zapisu pliku zależy od urządzenia wyjściowego przypisanego do alertu. Tego przypisania nie ma w pokazanym fragmencie XML. Struktura jednego wiersza CSV Dla każdego indeksu spełniającego warunki powstaje wiersz: ``` INDEKS;CENA_50;CENA_10;ILOSC_DOSTEPNA; ``` Czyli cztery kolumny rozdzielone średnikami, z dodatkowym średnikiem na końcu. Kolumna 1 - indeks KIM ``` ţUsuńSpacje{@INDEKS} ``` Zwraca symbol indeksu bez spacji początkowych i końcowych. Kolumna 2 - cena z cennika typu 50 ``` ţ96{TR_CENA_SPR;;@INDEKS;4;50;01} ``` Parametry oznaczają: ``` indeks = @INDEKS nr ceny = 4 typ cennika = 50 magazyn = 01 waluta = domyślna, czyli PLN data/czas = bieżące ``` Typ `50` to podstawowy cennik katalogowy dla magazynu/oddziału, a numer ceny `4` jest pierwszą ceną brutto. Funkcja ceny przyjmuje kolejno indeks, numer ceny, typ cennika i magazyn. Zewnętrzne funkcje: ``` UsuńSpacje Usuń{ ;...} `` usuwają spacje brzegowe oraz wszystkie pozostałe spacje z wyniku, np. separatory tysięcy. `Usuń` usuwa wskazane znaki z tekstu. **Kolumna 3 cena promocyjna z cennika typu 10 ``` ţ60{ ţ96{TR_CENA_SPR;;@INDEKS;4;10;01}; Brak ceny!!!; **0; ţ96{TR_CENA_SPR;;@INDEKS;4;10;01} } ``` Jest to: ``text nr ceny = 4 typ cennika = 10 magazyn = 01 ``` Typ `10` oznacza cennik promocyjny dla magazynu/oddziału. Funkcja `60` porównuje teksty: * gdy funkcja ceny zwróci `Brak ceny!!!` - do CSV wpisuje `0`, * w przeciwnym razie wpisuje znalezioną cenę. Funkcja `t60` ma postać `tekst1; tekst2; wynik gdy równe; wynik gdy różne`. Kolumna 4 - ilość dostępna w magazynie 01 ``` ţFormat{ ţIlośćDostępna{01;@INDEKS;;}; 999 } ``` Zwraca ilość dostępną dla indeksu w magazynie `01`. Ilość dostępna oznacza ilość możliwą do wykorzystania lub sprzedaży, po uwzględnieniu dostępności magazynowej. Format `999` oznacza: * maksymalnie trzy cyfry, * brak części dziesiętnej, * brak spacji brzegowych. Przykładowy rezultat Schematycznie plik może wyglądać tak: ```csv TOWAR-001;123.00;99.00;25; TOWAR-002;45.50;0;8; TOWAR-003;19.99;17.99;0; ``` Plik nie zawiera wiersza nagłówkowego. Istotne uwagi i możliwe problemy 1. Brak obsługi brakującej ceny typu 50 Dla ceny promocyjnej typu `10` brak ceny jest zamieniany na `0`. Dla ceny podstawowej typu `50` takiego zabezpieczenia nie ma. Jeżeli cena nie zostanie znaleziona, w drugiej kolumnie może pojawić się tekst: ``` Brak ceny!!! ``` zamiast wartości liczbowej. 2. Format ilości jest bardzo wąski Format: ``` 999 ``` mieści tylko trzy cyfry. Dla ilości większej niż `999` funkcja formatująca może zwrócić `***`, podobnie jak przy innych przepełnieniach formatu liczbowego. Ponadto ilości ułamkowe nie będą pokazane z miejscami po przecinku. Dla towarów ewidencjonowanych np. w kilogramach lub metrach może to prowadzić do utraty precyzji. 3. Plik jest stale nadpisywany Każde wykonanie tworzy aktualny zrzut danych w `ala.csv`, a nie historię zmian. Jest to właściwe dla integracji, która oczekuje pełnego, bieżącego pliku. 4. Cena jest ceną brutto Numer ceny `4` oznacza cenę brutto odpowiadającą cenie netto nr 1. Jeżeli odbiorca pliku oczekuje cen netto, należałoby użyć numeru `1`, a nie `4`. Podsumowanie Alert co 15 minut, w godzinach 07:00-19:00, przygotowuje aktualny plik `ala.csv` dla: * niezablokowanych materiałów kupowanych `[Mz]/03`, * z pominięciem grupy `ZA`, * z ceną brutto nr 4 z cennika magazynowego typu `50`, * z ceną brutto nr 4 z promocji magazynowej typu `10`, * z ilością dostępną w magazynie `01`. Najważniejsze ryzyka definicji to brak zamiany brakującej ceny typu `50` na zero oraz zbyt krótki format ilości `999`.

12. Tematy powiązane

Alerty. Przykłady. Wbudowane Alerty. Definiowanie. Opis Alerty. Rozbudowa Alerty. AI tworzy definicje XML ftp: Alerty Katalog: ftp.tres.pl Słowa kluczowe #Admin-Alerty #Admin-KatalogFTP #TrawersERP-Komunikacja #Pomoc-AsystentAI