Szablon danych procesu od zamówienia do płatności: fakturowanie i rozliczenia
Szablon danych procesu od zamówienia do płatności: fakturowanie i rozliczenia
- Zalecane atrybuty do zebrania
- Najważniejsze czynności do śledzenia
- Wskazówki dotyczące ekstrakcji danych z NetSuite
Atrybuty procesu od zamówienia do płatności: fakturowanie i rozliczenia
| Nazwa | Opis | ||
|---|---|---|---|
| Nazwa działania ActivityName | Nazwa zdarzenia biznesowego, które wystąpiło w określonym momencie cyklu życia faktury. | ||
| Opis Nazwa działania opisuje konkretny krok lub zdarzenie w procesie fakturowania, na przykład „Utworzenie faktury”, „Zatwierdzenie faktury” lub „Otrzymanie płatności od klienta”. Działania te tworzą kolejne etapy mapy procesu. Analiza ich kolejności i częstotliwości jest podstawą process mining. Pozwala zobrazować rzeczywisty przebieg procesu, wykryć częste i rzadkie ścieżki (warianty) oraz wskazać działania, które często się powtarzają, co może oznaczać konieczność ponownej obsługi lub nieefektywność. Dlaczego to ważne Ten atrybut jest niezbędny do utworzenia mapy procesu oraz zobrazowania i analizy różnych etapów i ścieżek obsługi faktury. Skąd pobrać Dane pochodzą z dzienników systemowych, zmian statusu lub rekordów zdarzeń powiązanych z transakcją faktury w NetSuite. Często trzeba przypisać zmiany statusu transakcji lub utworzenie powiązanych rekordów do zdefiniowanych nazw działań. Przykłady Utworzenie fakturyZatwierdzenie fakturyOtrzymanie płatności od klientaPełna spłata faktury | |||
| Numer faktury InvoiceNumber | Unikalny identyfikator każdej faktury, używany jako główny identyfikator sprawy w procesie fakturowania. | ||
| Opis Numer faktury stanowi podstawę analizy procesu fakturowania. Pozwala jednoznacznie śledzić każdą fakturę od utworzenia do zamknięcia. Łączy powiązane działania, takie jak zatwierdzenie, wysłanie i przypisanie płatności, w jedną sprawę. W process mining analiza przebiegu każdej faktury pozwala zobaczyć cały cykl fakturowania. Ułatwia wykrywanie wariantów procesu, wąskich gardeł i odstępstw od standardowego przebiegu. Dzięki temu można lepiej zarządzać przepływami pieniężnymi i efektywnością operacyjną. Dlaczego to ważne Numer jest niezbędny do śledzenia całego cyklu życia każdej faktury. Pozwala odtworzyć przebieg procesu fakturowania i szczegółowo analizować jego wyniki. Skąd pobrać Zwykle jest to pole „Transaction ID” lub inne pole z unikalnym identyfikatorem w rekordzie transakcji faktury w NetSuite. Przykłady INV-0012345INV-0012346INV-0012347 | |||
| Znacznik czasu zdarzenia EventTimestamp | Dokładna data i godzina wystąpienia określonego działania lub zdarzenia. | ||
| Opis Ten atrybut zapisuje dokładny moment wykonania działania. Pozwala uporządkować zdarzenia chronologicznie i przeprowadzać analizy oparte na czasie. W process mining znacznik czasu zdarzenia służy do obliczania czasu między działaniami, czasu trwania spraw i czasu oczekiwania. Pomaga wykrywać wąskie gardła, mierzyć wyniki procesu względem SLA i analizować jego przebieg w czasie. Na jego podstawie oblicza się na przykład czas wystawienia faktury i wskaźnik Days Sales Outstanding (DSO). Dlaczego to ważne Pozwala ustalić kolejność zdarzeń, niezbędną do obliczania miar czasu, wykrywania wąskich gardeł i analizy wyników procesu w czasie. Skąd pobrać Znaczniki czasu znajdują się zwykle w notatkach systemowych, ścieżkach audytu lub polach „Date Created” powiązanych rekordów transakcji faktury w NetSuite. Przykłady 2023-10-26T10:00:00Z2023-10-27T14:30:00Z2023-11-15T09:05:00Z | |||
| Data ostatniej aktualizacji danych LastDataUpdate | Znacznik czasu wskazujący, kiedy ostatnio odświeżono dane z systemu źródłowego. | ||
| Opis Ten atrybut wskazuje, kiedy ostatnio zaktualizowano zbiór danych. Pozwala ocenić aktualność analizy process mining. Analitycy i osoby odpowiedzialne za proces mogą sprawdzić, czy wnioski odzwierciedlają bieżącą sytuację operacyjną. To ważna metadana każdego dashboardu i raportu. Informuje, z jakiego okresu pochodzą dane, i zapobiega błędnemu uznaniu ich za aktualizowane w czasie rzeczywistym. Dlaczego to ważne Informuje użytkowników o aktualności danych, dzięki czemu wiadomo, jakiego okresu dotyczy analiza i czy wnioski są nadal przydatne. Skąd pobrać Narzędzie lub potok do pobierania danych generuje i zapisuje ten znacznik czasu podczas odświeżania danych. Przykłady 2024-05-21T02:00:00Z | |||
| System źródłowy SourceSystem | System, z którego pobrano dane. | ||
| Opis Ten atrybut wskazuje źródło danych o procesie. W tym widoku będzie to zawsze „NetSuite”. W szerszym kontekście analitycznym, zwłaszcza w organizacjach korzystających z kilku systemów ERP lub zintegrowanych systemów, atrybut ten pomaga śledzić pochodzenie danych i zarządzać nimi. Ułatwia rozróżnianie procesów obejmujących różne platformy i przypisywanie wyników analizy do właściwego systemu ewidencyjnego. Dlaczego to ważne Wskazuje pochodzenie danych i pomaga nimi zarządzać, zwłaszcza gdy zintegrowanych jest kilka systemów. Skąd pobrać To stała wartość („NetSuite”) dodawana podczas pobierania i przekształcania danych. Przykłady NetSuite | |||
| Czas zakończenia zdarzenia EventEndTime | Dokładna data i godzina zakończenia określonego działania lub zdarzenia. | ||
| Opis Czas zakończenia zdarzenia wskazuje, kiedy działanie dobiegło końca. Wiele działań jest natychmiastowych, więc czas rozpoczęcia i zakończenia jest taki sam. Inne, na przykład zatwierdzanie, mogą trwać dłużej. Ten atrybut w połączeniu ze znacznikiem czasu zdarzenia (czasem rozpoczęcia) pozwala bezpośrednio obliczyć czas realizacji działania. Analiza tego czasu pokazuje, które etapy pochłaniają najwięcej czasu i zasobów. Pozwala też odróżnić czas realizacji od oczekiwania między działaniami. Dzięki temu można wskazać nieefektywności w konkretnych zadaniach. Dlaczego to ważne Pozwala dokładnie obliczyć czas realizacji każdego działania, co pomaga analizować efektywność wykorzystania zasobów i wykrywać czasochłonne zadania. Skąd pobrać Podobnie jak StartTime, dane można pobrać ze ścieżek audytu systemu NetSuite. Może być potrzebna logika łącząca zdarzenie rozpoczęcia z odpowiadającym mu zdarzeniem zakończenia. Przykłady 2023-10-26T10:05:14Z2023-10-27T14:32:00Z2023-11-15T09:05:00Z | |||
| Czy zautomatyzowano IsAutomated | Flaga wskazująca, czy system wykonał daną czynność automatycznie. | ||
| Opis Ten atrybut logiczny pozwala odróżnić czynności wykonane ręcznie przez użytkownika od tych realizowanych automatycznie przez workflow systemu, skrypt lub integrację. Atrybut ten służy do mierzenia poziomu automatyzacji procesu fakturowania i bezpośrednio wspiera KPI „Udział automatycznego fakturowania”. Filtrowanie czynności automatycznych i ręcznych pomaga analitykom wykrywać wąskie gardła wynikające z ręcznej obsługi oraz wskazywać możliwości zwiększenia automatyzacji, ograniczenia błędów ludzkich i poprawy efektywności. Dlaczego to ważne Pomaga mierzyć poziom automatyzacji procesu oraz wskazywać możliwości ograniczenia pracy ręcznej i poprawy efektywności. Skąd pobrać Zwykle ustala się to na podstawie pola „User” przypisanego do czynności. Zdarzenia wywołane przez użytkowników o nazwach „SYSTEM”, „Workflow” lub „Integration” oznacza się jako automatyczne. Przykłady truefalse | |||
| Data faktury InvoiceDate | Oficjalna data faktury wystawionej klientowi. | ||
| Opis Data faktury, czyli data transakcji, stanowi punkt wyjścia dla wielu obliczeń finansowych związanych z fakturowaniem. Zwykle od niej wyznacza się termin płatności i warunki płatności. W analizie jest podstawą do obliczania ważnych KPI finansowych, takich jak Days Sales Outstanding (DSO) i wiek należności. Umożliwia analizę kohortową i porównywanie wyników fakturowania w różnych okresach, na przykład miesiąc do miesiąca lub rok do roku. Dlaczego to ważne Ta data stanowi punkt odniesienia dla ważnych miar finansowych, takich jak Days Sales Outstanding (DSO) i wiek należności, które bezpośrednio wpływają na analizę kapitału obrotowego. Skąd pobrać Odpowiada polu „Date” (trandate) w rekordzie transakcji faktury w NetSuite. Przykłady 2023-10-262023-10-272023-11-15 | |||
| Łączna kwota faktury InvoiceTotalAmount | Całkowita wartość faktury, obejmująca podatki i inne opłaty. | ||
| Opis Ten atrybut określa pełną kwotę, którą klient ma zapłacić. To podstawowa informacja finansowa dotycząca każdej sprawy związanej z fakturą. Analiza procesu według kwoty faktury pozwala porównywać sprawy pod względem wartości. Może na przykład pokazać, czy obsługa faktur o wysokiej wartości przebiega inaczej i jest bardziej złożona niż w przypadku faktur o niskiej wartości. Kwota pomaga też ustalać priorytety działań windykacyjnych i oceniać finansowy wpływ opóźnień w płatnościach lub błędów na fakturach. Dlaczego to ważne Umożliwia analizę procesu według wartości, pomaga ustalać priorytety obsługi faktur o wysokiej wartości i oceniać finansowy wpływ nieefektywności. Skąd pobrać Odpowiada polu „Total” (total) w rekordzie transakcji faktury w NetSuite. Przykłady 1500.0089.9912500.50 | |||
| Nazwa klienta CustomerName | Nazwa klienta, któremu wystawiono fakturę. | ||
| Opis Ten atrybut wskazuje podmiot prawny lub osobę, na którą wystawiono fakturę. Łączy proces fakturowania z zarządzaniem relacjami z klientami. Analiza procesu według klienta pomaga wykrywać wzorce płatności, spory i złożoność obsługi faktur dla poszczególnych klientów. Może wspierać segmentację klientów, ustalanie limitów kredytowych i dobór działań windykacyjnych. Pozwala na przykład sprawdzić, czy faktury konkretnego klienta często wymagają korekt. Dlaczego to ważne Umożliwia analizę z perspektywy klienta i pomaga wykrywać wzorce płatności, częste problemy oraz odstępstwa od procesu dotyczące konkretnych klientów. Skąd pobrać Odpowiada polu nazwy „Customer” lub „Entity” w rekordzie transakcji faktury w NetSuite. Przykłady Global Tech Inc.Innovate Solutions LLCCornerstone Corp | |||
| Region Region | Region geograficzny powiązany z klientem lub transakcją. | ||
| Opis Atrybut Region pozwala klasyfikować faktury według położenia geograficznego. Region można określić na podstawie adresu klienta lub jednostki biznesowej, która wystawiła fakturę. To przydatny wymiar analizy porównawczej. Dashboard „Porównanie procesu fakturowania w regionach” wykorzystuje ten atrybut do zestawiania KPI, takich jak czas cyklu, odsetek błędów i warianty procesu. Ułatwia to wykrywanie różnic w wynikach między regionami, poznawanie dobrych praktyk w regionach osiągających lepsze wyniki i ujednolicanie procesów w organizacji. Dlaczego to ważne Umożliwia porównywanie różnych obszarów geograficznych, co pomaga wykrywać różnice w wynikach i upowszechniać dobre praktyki. Skąd pobrać Dane te są często przechowywane w niestandardowym segmencie lub polu klasyfikacji w kartotece klienta albo rekordzie transakcji w NetSuite. Przykłady Ameryka PółnocnaEuropa, Bliski Wschód i AfrykaAzja i Pacyfik | |||
| Termin płatności DueDate | Data, do której należy opłacić fakturę. | ||
| Opis Termin płatności jest obliczany na podstawie daty faktury i uzgodnionych warunków płatności. Wyznacza datę, do której klient powinien zapłacić, aby płatność nie była uznana za opóźnioną. Ten atrybut jest niezbędny do monitorowania należności i zarządzania przepływami pieniężnymi. Stanowi punkt odniesienia przy obliczaniu KPI odsetka płatności terminowych i analizie zachowań płatniczych klientów. Odchylenia od terminu pomagają wskazać klientów, którzy często płacą z opóźnieniem, i ocenić skuteczność działań windykacyjnych. Dlaczego to ważne Pozwala mierzyć terminowość płatności i analizować zachowania płatnicze klientów, wspierając działania windykacyjne i prognozowanie przepływów pieniężnych. Skąd pobrać Odpowiada polu „Due Date” (duedate) w rekordzie transakcji faktury w NetSuite. Przykłady 2023-11-252023-11-262023-12-15 | |||
| Użytkownik User | Imię i nazwisko lub identyfikator użytkownika, który wykonał działanie. | ||
| Opis Ten atrybut wskazuje pracownika lub użytkownika systemu odpowiedzialnego za wykonanie danego kroku procesu. Może to być osoba, która utworzyła fakturę, zatwierdziła ją lub przypisała płatność. Analiza procesu według użytkownika pomaga ocenić rozkład obciążenia pracą i wyniki poszczególnych osób oraz wskazać potrzeby szkoleniowe. Może też ujawnić możliwości automatyzacji, pokazując, które działania ręczne wykonuje najwięcej użytkowników. Atrybut ten jest również ważny przy analizie zgodności i ścieżek audytu. Dlaczego to ważne Umożliwia analizę rozkładu obciążenia pracą, wyników poszczególnych użytkowników i przestrzegania procedur. Pomaga zarządzać zasobami i planować szkolenia. Skąd pobrać Dane są dostępne na karcie System Notes lub w polach „Modified By” rekordów faktury i powiązanych transakcji w NetSuite. Przykłady Alice SmithBob JohnsonSYSTEM | |||
| Czy płatność wpłynęła w terminie IsOnTimePayment | Flaga wskazująca, czy płatność klienta wpłynęła najpóźniej w terminie płatności faktury. | ||
| Opis Ta obliczana flaga logiczna porównuje znacznik czasu czynności „Otrzymano płatność od klienta” z terminem płatności faktury zapisanym w polu „DueDate”. Przyjmuje wartość true, jeśli płatność wpłynęła w terminie lub wcześniej, a false, jeśli była spóźniona. Atrybut ten stanowi podstawę KPI „Odsetek płatności w terminie” oraz dashboardu „Przestrzeganie warunków płatności”. Zapewnia jednoznaczną, binarną miarę terminowości płatności klientów, co upraszcza analizę i raportowanie. Pomaga szybko wykrywać trendy w terminowości płatności i oceniać skuteczność działań windykacyjnych. Dlaczego to ważne Zapewnia czytelną miarę skuteczności windykacji, wspierając obliczanie KPI „Odsetek płatności w terminie” i analizę zachowań klientów. Skąd pobrać Atrybut obliczany przez porównanie znacznika czasu zdarzenia płatności z atrybutem „DueDate” na poziomie sprawy. Przykłady truefalse | |||
| Czy wymagało poprawy IsRework | Obliczana flaga wskazująca czynności uznane za poprawki lub pętle korekt. | ||
| Opis Ta flaga logiczna przyjmuje wartość true dla czynności oznaczających poprawki, które nie tworzą wartości, takich jak „Skorygowano fakturę” lub drugie zdarzenie „Zatwierdzono fakturę” w ramach tej samej sprawy. Zwykle jest wyliczana na podstawie nazwy czynności lub jej powtórzenia. Atrybut ten jest niezbędny do dashboardu „Analiza poprawek i odrzuceń faktur” oraz KPI „Wskaźnik błędów faktur”. Ułatwia określenie skali poprawek i wskazanie problemów z jakością procesu. Filtrowanie czynności naprawczych pozwala zespołom szybko ustalić przyczyny błędów i zmierzyć wpływ działań usprawniających. Dlaczego to ważne Bezpośrednio mierzy jakość procesu, oznaczając nieefektywne pętle poprawek. Umożliwia analizę przyczyn błędów fakturowania i ich skutków finansowych. Skąd pobrać To atrybut pochodny obliczany podczas przekształcania danych. Reguły identyfikują poprawki, na przykład oznaczając określone nazwy czynności („Skorygowano fakturę”) lub powtarzające się czynności. Przykłady truefalse | |||
| Dział Department | Dział wewnętrzny powiązany z fakturą. | ||
| Opis Atrybut wskazuje dział wewnętrzny odpowiedzialny za transakcję, na przykład sprzedaż, usługi lub konkretną linię biznesową. W NetSuite jest to standardowy segment klasyfikacji. Analiza procesu według działów umożliwia porównania wewnętrzne i pomaga ustalić, czy niektóre działy sprawniej obsługują fakturowanie niż inne. Może ujawnić różnice w przestrzeganiu procesu lub przydziale zasobów, co ułatwia zaplanowanie działań usprawniających w konkretnych częściach organizacji. Dlaczego to ważne Umożliwia porównanie wyników procesu w różnych działach i wskazuje różnice oraz możliwości ujednolicenia procesów wewnętrznych. Skąd pobrać Odpowiada polu klasyfikacji „Department”, które można ustawić na poziomie nagłówka lub pozycji transakcji faktury w NetSuite. Przykłady Sprzedaż, duże przedsiębiorstwaUsługi profesjonalneSprzęt | |||
| Liczba dni sprzedaży do otrzymania płatności DaysSalesOutstanding | Liczba dni między datą faktury a datą otrzymania płatności. | ||
| Opis Liczba dni sprzedaży do otrzymania płatności (DSO) to miara finansowa określająca średnią liczbę dni potrzebnych na otrzymanie płatności po wystawieniu faktury. Atrybut oblicza się osobno dla każdej faktury, co umożliwia szczegółową analizę. DSO często agreguje się jako KPI wysokiego poziomu, ale dostępność tej miary dla poszczególnych faktur pozwala prowadzić dokładniejsze analizy. Można dzięki niej ustalić, którzy klienci, regiony lub rodzaje faktur mają najwyższe DSO. Dashboard „Trend DSO” pokazuje zmiany efektywności windykacji w czasie i dostarcza informacji przydatnych w zarządzaniu kapitałem obrotowym. Dlaczego to ważne Mierzy efektywność windykacji dla każdej faktury z osobna, umożliwiając szczegółową analizę przyczyn wysokiego DSO i jego wpływu na przepływy pieniężne. Skąd pobrać Oblicza się ją, odejmując „InvoiceDate” od znacznika czasu czynności „Otrzymano płatność od klienta”. Przykłady 294562 | |||
| Numer zamówienia sprzedaży SalesOrderNumber | Identyfikator zamówienia sprzedaży, na podstawie którego wystawiono fakturę. | ||
| Opis Ten atrybut bezpośrednio łączy fakturę z pierwotnym zamówieniem sprzedaży, wiążąc proces fakturowania z wcześniejszymi etapami sprzedaży i realizacji zamówienia. Uwzględnienie numeru zamówienia sprzedaży pozwala szerzej analizować cały cykl od zamówienia do płatności. Umożliwia prześledzenie problemów z fakturowaniem do ich źródła w procesie sprzedaży. Częste korekty faktur mogą na przykład wynikać z błędów przy wprowadzaniu danych dla określonych rodzajów zamówień. Dlaczego to ważne Łączy proces fakturowania z procesem sprzedaży i umożliwia analizę całego cyklu od zamówienia do płatności, co pomaga ustalić źródła problemów z fakturami. Skąd pobrać Informację można znaleźć w polu „Created From” lub na karcie „Related Records” transakcji faktury w NetSuite. Przykłady SO-0009876SO-0009877SO-0009878 | |||
| Status faktury InvoiceStatus | Bieżący status faktury w jej cyklu życia. | ||
| Opis Ten atrybut pokazuje bieżący stan faktury, na przykład „Open”, „Paid in Full” lub „Voided”. Informuje, na jakim etapie procesu znajduje się faktura. Dashboard „Przegląd statusów otwartych faktur” opiera się bezpośrednio na tym atrybucie. Umożliwia bieżącą ocenę należności, dzięki czemu zespoły finansowe mogą monitorować nieopłacone salda, prowadzić działania windykacyjne i prognozować wpływy. Analiza statusu końcowego pomaga też ocenić wyniki procesu. Dlaczego to ważne Pokazuje bieżący stan należności i umożliwia tworzenie dashboardów do monitorowania otwartych faktur oraz postępów w fakturowaniu. Skąd pobrać Odpowiada polu „Status” w rekordzie transakcji faktury w NetSuite. Przykłady OtwartaOpłacono w całościUnieważnionoOczekuje na zatwierdzenie | |||
| Waluta Currency | Kod waluty, w której podano kwotę faktury. | ||
| Opis Ten atrybut określa walutę kwoty faktury, na przykład USD, EUR lub GBP. Jest niezbędnym kontekstem dla każdej wartości pieniężnej. W organizacjach międzynarodowych analiza według waluty pomaga oceniać wyniki finansowe na różnych rynkach. Ułatwia prawidłową interpretację kwot oraz ich agregowanie i porównywanie po przeliczeniu walut, jeśli jest to potrzebne. Dlaczego to ważne Zapewnia niezbędny kontekst dla wartości pieniężnych, co ma znaczenie dla rzetelnego raportowania i analizy finansowej, zwłaszcza w organizacjach działających w wielu krajach. Skąd pobrać Odpowiada polu „Currency” w rekordzie transakcji faktury w NetSuite. Przykłady USDEURGBP | |||
| Warunki płatności PaymentTerms | Uzgodnione warunki płatności między firmą a klientem. | ||
| Opis Warunki płatności określają, kiedy i w jaki sposób klient powinien opłacić fakturę, na przykład „Net 30” lub „Płatność przy odbiorze”. Na ich podstawie system automatycznie oblicza termin płatności. Ten atrybut jest niezbędny w dashboardzie „Przestrzeganie warunków płatności”. Analiza terminowości płatności dla różnych warunków pozwala ocenić ich skuteczność. Może na przykład pokazać, czy klienci z terminem „Net 15” płacą szybciej niż klienci z terminem „Net 30”. Takie informacje pomagają w negocjowaniu przyszłych umów i ustalaniu zasad kredytowych. Dlaczego to ważne Pozwala ocenić skuteczność różnych warunków płatności i ich wpływ na terminowość płatności klientów. Skąd pobrać Odpowiada polu „Terms” w rekordzie transakcji faktury w NetSuite. Przykłady Termin płatności 30 dniTermin płatności 60 dniPłatność przy odbiorze | |||
Czynności w procesie od zamówienia do płatności: fakturowanie i rozliczenia
| Działanie | Opis | ||
|---|---|---|---|
| Otrzymanie płatności od klienta | Otrzymano płatność od klienta i zarejestrowano ją w systemie. Zdarzenie odpowiada utworzeniu transakcji „Customer Payment” w NetSuite. Płatność może dotyczyć jednej lub kilku faktur. | ||
| Dlaczego to ważne Oznacza otrzymanie środków, ale niekoniecznie przypisanie ich do konkretnej faktury. To pierwszy etap rozliczania płatności i ważne zdarzenie przy obliczaniu DSO. Skąd pobrać Dane pochodzą z daty utworzenia rekordu transakcji „Customer Payment”. Płatność jest powiązana z fakturą na karcie „Apply”. Rejestrowanie Utworzenie rekordu transakcji Customer Payment. Typ zdarzenia explicit | |||
| Pełna spłata faktury | Status faktury zmienił się na „Paid In Full”, co oznacza, że saldo wynosi zero. To pomyślne zakończenie cyklu fakturowania i windykacji dla danej faktury. | ||
| Dlaczego to ważne To główne zdarzenie oznaczające pomyślne zakończenie procesu. Analiza czasu potrzebnego na osiągnięcie tego stanu pokazuje pełny czas cyklu konwersji gotówki. Skąd pobrać Zdarzenie można wywnioskować ze zmiany pola „Status” w rekordzie faktury na „Paid In Full”. Znacznik czasu zmiany statusu jest dostępny w notatkach systemowych transakcji. Rejestrowanie Wnioskowane na podstawie zmiany pola „Status” na „Paid In Full” zarejestrowanej w notatkach systemowych. Typ zdarzenia inferred | |||
| Utworzenie faktury | Oznacza oficjalne utworzenie rekordu transakcji faktury w NetSuite. To zdarzenie rozpoczyna proces fakturowania dla danego numeru faktury. Jest rejestrowane na podstawie znacznika czasu utworzenia transakcji. | ||
| Dlaczego to ważne To główne zdarzenie rozpoczynające proces fakturowania. Analiza czasu między nim a kolejnymi zdarzeniami pokazuje ogólną efektywność procesu i stanowi punkt odniesienia dla KPI czasu wystawienia faktury. Skąd pobrać Dane pochodzą ze znacznika czasu „Date Created” w rekordzie transakcji faktury. Notatki systemowe NetSuite również rejestrują utworzenie faktury i wskazują użytkownika. Rejestrowanie Zdarzenie rejestrowane podczas tworzenia rekordu transakcji faktury. Typ zdarzenia explicit | |||
| Wysłanie faktury do klienta | Oznacza wysłanie faktury klientowi, zwykle pocztą elektroniczną. Zdarzenie można zarejestrować, śledząc użycie przez użytkownika funkcji „Email” w rekordzie faktury. | ||
| Dlaczego to ważne To początek okresu, w którym firma oczekuje na płatność klienta, i główny punkt odniesienia przy obliczaniu wskaźnika Days Sales Outstanding (DSO). Skąd pobrać Zdarzenie można wywnioskować z wypełnienia pola „Date Last Emailed” w rekordzie faktury. Można je też zarejestrować na podstawie utworzenia rekordu wiadomości e-mail na karcie Communication. Rejestrowanie Wnioskowane na podstawie wypełnienia pola „Date Last Emailed” lub utworzenia rekordu komunikacji. Typ zdarzenia inferred | |||
| Zatwierdzenie faktury | Faktura została formalnie zatwierdzona i można ją wysłać klientowi. Zdarzenie jest rejestrowane, gdy status zatwierdzenia zmienia się z „Pending Approval” na „Approved”, zwykle w wyniku działania workflow. | ||
| Dlaczego to ważne To ważny etap, od którego zależy, czy faktura może zostać wysłana klientowi. Jest niezbędny do pomiaru czasu zatwierdzania i obliczenia KPI „Udział zautomatyzowanego fakturowania”. Skąd pobrać Zdarzenie można wywnioskować ze zmiany pola „Approval Status” w rekordzie faktury na „Approved”. Dokładny znacznik czasu zmiany jest zapisany w notatkach systemowych transakcji. Rejestrowanie Wnioskowane na podstawie zmiany pola „Approval Status” na „Approved” zarejestrowanej w notatkach systemowych. Typ zdarzenia inferred | |||
| Nadejście terminu płatności | Zdarzenie obliczeniowe, które występuje, gdy bieżąca data pokrywa się z terminem płatności faktury. Nie odpowiada bezpośrednio działaniu użytkownika ani systemu, lecz jest wyznaczane z istniejących danych podczas analizy. | ||
| Dlaczego to ważne To ważny punkt odniesienia przy ocenie terminowości płatności. Jest niezbędny do obliczenia KPI „Odsetek płatności terminowych” i analizy zachowań płatniczych klientów. Skąd pobrać W NetSuite nie jest to jawne zdarzenie. Oblicza się je przez porównanie znacznika czasu w dzienniku zdarzeń z polem „Due Date” w rekordzie transakcji faktury. Rejestrowanie Obliczane, gdy znacznik czasu zdarzenia jest równy wartości pola „Due Date” na fakturze. Typ zdarzenia calculated | |||
| Przekazanie faktury do zatwierdzenia | Oznacza zmianę statusu faktury na „Pending Approval”. Zdarzenie jest rejestrowane, gdy użytkownik przekazuje fakturę do skonfigurowanego workflow zatwierdzania, często dodawanego w ramach dostosowania systemu. | ||
| Dlaczego to ważne To działanie wskazuje początek potencjalnego wąskiego gardła w procesie zatwierdzania. Czas oczekiwania na zatwierdzenie stanowi istotną część całkowitego czasu obsługi faktury. Skąd pobrać Zdarzenie można wywnioskować ze zmiany pola „Approval Status” w rekordzie faktury na „Pending Approval”. Znacznik czasu tej zmiany znajduje się w ścieżce audytu notatek systemowych faktury. Rejestrowanie Wnioskowane na podstawie zmiany pola „Approval Status” zarejestrowanej w notatkach systemowych. Typ zdarzenia inferred | |||
| Przypisanie płatności do faktury | Otrzymana od klienta płatność została przypisana do tej faktury, zmniejszając kwotę do zapłaty. Zdarzenie jest rejestrowane po zapisaniu przypisania w rekordzie Customer Payment. | ||
| Dlaczego to ważne To połączenie między otrzymaniem środków a rozliczeniem faktury. Czas od zdarzenia „Otrzymanie płatności” do tego etapu wyznacza KPI „Czas rozliczenia płatności”. Skąd pobrać Dane pochodzą z notatek systemowych lub ścieżki audytu transakcji Customer Payment, konkretnie z momentu zapisania przypisania płatności do pozycji faktury. Ważny jest znacznik czasu tego przypisania. Rejestrowanie Rejestrowane po zapisaniu rekordu Customer Payment z przypisaniem płatności do faktury. Typ zdarzenia explicit | |||
| Unieważnienie faktury | Faktura została unieważniona, co oznacza jej anulowanie i odwrócenie wpływu na księgę główną. Zwykle robi się to w przypadku faktur wystawionych przez pomyłkę, zanim zostaną opłacone. | ||
| Dlaczego to ważne Oznacza wyjątek w procesie i jego stan końcowy. Analiza przyczyn unieważniania faktur może ujawnić błędy we wprowadzaniu danych lub przebiegu procesu, które należy skorygować na wcześniejszym etapie. Skąd pobrać To jawne działanie użytkownika. Można je zarejestrować na podstawie notatek systemowych faktury, które wskazują, kiedy i przez kogo transakcja została unieważniona. Rejestrowanie Jawne działanie „Void” zarejestrowane w notatkach systemowych faktury. Typ zdarzenia explicit | |||
| Utworzenie noty kredytowej | Utworzono notę kredytową i przypisano ją do faktury, zmniejszając saldo do zapłaty. Zwykle oznacza to zwrot produktu, reklamację usługi lub korektę ceny. | ||
| Dlaczego to ważne Wskazuje na konieczność ponownej obsługi, problemy z jakością lub spory z klientami. Częste występowanie może sygnalizować problemy u źródła. To ważne zdarzenie w dashboardzie „Analiza korekt i odrzuceń faktur”. Skąd pobrać Dane pochodzą z utworzenia transakcji Credit Memo. Powiązanie z pierwotną fakturą można znaleźć w polu „Created From” lub na karcie „Apply” noty kredytowej. Rejestrowanie Utworzenie rekordu Credit Memo powiązanego z pierwotną fakturą. Typ zdarzenia explicit | |||
| Wysłanie przypomnienia o płatności | Do klienta wysłano wiadomość dotyczącą zaległej płatności. Zdarzenie jest rejestrowane jako działanie lub wiadomość e-mail wysłana z rekordu faktury albo klienta, często za pośrednictwem rozwiązania do obsługi windykacji. | ||
| Dlaczego to ważne To zdarzenie pozwala ocenić skuteczność działań windykacyjnych. Analiza jego wpływu na późniejsze płatności pomaga dobrać częstotliwość i terminy przypomnień. Skąd pobrać Dane pochodzą z rekordu wiadomości e-mail utworzonego na karcie Communication > Messages w rekordzie faktury lub klienta. Zautomatyzowane rozwiązania do obsługi windykacji mogą też rejestrować takie zdarzenia jako rekordy niestandardowe lub zadania. Rejestrowanie Rejestrowane jako wiadomość e-mail lub działanie powiązane z fakturą. Typ zdarzenia explicit | |||
| Zamknięcie faktury | Transakcja faktury została zamknięta, często w ramach księgowania na koniec okresu. Po pełnej spłacie i uzgodnieniu transakcji nie można już jej zmieniać. | ||
| Dlaczego to ważne Zamknięcie często następuje po pełnej spłacie, ale może być ostatnią czynnością administracyjną. Analiza opóźnień między płatnością a zamknięciem pozwala ocenić ich wpływ na terminowość raportowania finansowego. Skąd pobrać Zdarzenie można wywnioskować ze zmiany pola „Status” na „Closed” lub podobny stan. Znacznik czasu zmiany pochodzi z notatek systemowych. Rejestrowanie Wnioskowane na podstawie zmiany pola „Status” zarejestrowanej w notatkach systemowych. Typ zdarzenia inferred | |||
Instrukcje ekstrakcji danych
Kroki
- Zaloguj się do NetSuite: Zaloguj się na konto NetSuite przy użyciu roli z uprawnieniami do tworzenia i uruchamiania zapisanych wyszukiwań rekordów transakcji.
- Przejdź do zapisanych wyszukiwań: Otwórz Reports > Saved Searches > All Saved Searches > New. Z listy typów wyszukiwania wybierz „Transaction”. Będzie to podstawa do utworzenia kilku wyszukiwań, po jednym dla każdego typu zdarzenia.
- Utwórz wyszukiwanie „Utworzono fakturę”: To podstawowe wyszukiwanie rejestrujące utworzenie faktur.
- Na karcie „Criteria”, w sekcji „Standard”, ustaw filtr „Type” na „is Invoice”.
- Dodaj filtr „Main Line” i ustaw go na „is true”, aby uzyskać jeden rekord na fakturę.
- Na karcie „Results” dodaj wymagane kolumny. Użyj formuł, aby utworzyć ujednolicone pola, takie jak „ActivityName”. Na przykład dodaj pole „Formula (Text)” z formułą
_UTF8'Invoice Created'.
- Utwórz wyszukiwania zmian statusu (zatwierdzenie, opłacenie, unieważnienie, zamknięcie): Wiele czynności odpowiada zmianom statusu. Najpewniejszym sposobem ustalenia dokładnego znacznika czasu jest użycie System Notes.
- Utwórz nowe zapisane wyszukiwanie typu Transaction.
- Na karcie „Criteria” ustaw „Type” na „is Invoice”.
- Na karcie „Standard” dodaj filtr „System Notes : Field” i wybierz odpowiednie pole statusu, na przykład „Approval Status”.
- Dodaj filtr „System Notes : New Value” i ustaw wartość docelową, na przykład „Approved”.
- Na karcie „Results” przypisz „System Notes : Date” do
EventTimestamp, a „System Notes : Set by” doUser. - Powtórz te czynności dla każdej aktywności zależnej od statusu: „Przekazano fakturę do zatwierdzenia”, „Zatwierdzono fakturę”, „Faktura opłacona w całości”, „Unieważniono fakturę” i „Zamknięto fakturę”. Odpowiednio zmień filtry pola i wartości.
- Utwórz wyszukiwanie „Wysłano fakturę do klienta”: To zdarzenie zwykle rejestruje się, śledząc wiadomości e-mail wysłane z poziomu rekordu faktury.
- Utwórz nowe zapisane wyszukiwanie typu Transaction i ustaw „Type” na „is Invoice”.
- Na karcie „Criteria”, w sekcji „Related Records”, dodaj filtr „Messages : Date Sent” i ustaw go na „is not empty”.
- Na karcie „Results” przypisz „Messages : Date Sent” do
EventTimestamp, a „Messages : Author” doUser.
- Utwórz wyszukiwania płatności i not kredytowych: Dotyczą one osobnych typów transakcji powiązanych z fakturą.
- Dla zdarzenia „Otrzymano płatność od klienta” utwórz wyszukiwanie z warunkiem „Type” równym „Customer Payment”. Jako znacznik czasu zdarzenia zapisz datę utworzenia.
- Dla zdarzenia „Przypisano płatność do faktury” użyj tego samego wyszukiwania „Customer Payment”, ale połącz je z polami „Applied To Transaction”. Pole „Date Created” transakcji płatności będzie znacznikiem czasu. Wyniki będą zawierać po jednym wierszu dla każdego przypisania płatności do faktury.
- Dla zdarzenia „Utworzono notę kredytową” utwórz wyszukiwanie z warunkiem „Type” równym „Credit Memo” i połącz je z polem „Created From”, aby uzyskać numer faktury źródłowej.
- Uruchom i wyeksportuj zapisane wyszukiwania: Uruchom każde utworzone wyszukiwanie. Na stronie wyników kliknij ikonę eksportu (CSV, Excel lub PDF) i wybierz CSV. Jeśli liczba wyników przekracza limit eksportu NetSuite, może być konieczne pobranie danych w kilku partiach.
- Połącz i przekształć dane: Połącz wszystkie wyeksportowane pliki CSV w jeden plik za pomocą narzędzia takiego jak Microsoft Excel, skryptu Python lub narzędzia do przygotowywania danych.
- Wyznacz zdarzenie „Nadszedł termin płatności”: W połączonym pliku danych dodaj nowy wiersz dla każdego zdarzenia „Utworzono fakturę”. Ustaw
ActivityNamena „Nadszedł termin płatności”,EventTimestampna wartość z pola „DueDate” faktury i skopiuj pozostałe istotne atrybuty faktury. - Przygotuj dziennik zdarzeń: Ujednolić nagłówki kolumn zgodnie z wymaganym schematem, na przykład
InvoiceNumber,ActivityName,EventTimestamp. Upewnij się, że formaty znaczników czasu są spójne. Dodaj kolumnySourceSystemiLastDataUpdateze stałymi wartościami dla tej partii danych. Zapisz końcowy, połączony plik jako CSV, aby można go było przesłać.
Konfiguracja
- Wymagania wstępne: Potrzebna jest rola użytkownika z uprawnieniami do tworzenia, edytowania i uruchamiania zapisanych wyszukiwań typu „Transaction”. Wymagany jest również dostęp do rekordów Invoice, Customer Payment, Credit Memo i System Notes.
- Typ wyszukiwania: We wszystkich ekstrakcjach podstawowym typem wyszukiwania jest „Transaction”. Umożliwia on dostęp do wymaganych rekordów i ich powiązań.
- Filtrowanie według zakresu dat: Aby ograniczyć obciążenie i ilość danych, zastosuj filtr zakresu dat w każdym wyszukiwaniu. Przy pierwszej analizie zaleca się filtrowanie pola „Date Created” do ostatnich 3–6 miesięcy.
- Filtr Main Line: Dla zdarzeń na poziomie nagłówka dokumentu, takich jak „Utworzono fakturę”, ustaw kryterium „Main Line” na „true”. Ustaw „false”, jeśli potrzebna jest analiza szczegółów pozycji, która nie jest wymagana w tym procesie.
- System Notes: Rejestrowanie zmian statusu w dużej mierze opiera się na System Notes. Sprawdź, czy w konfiguracji NetSuite włączono audyt kluczowych pól transakcji, takich jak „Status” i „Approval Status” (Setup > Company > Enable Features > SuiteCloud > SuiteAudit Trail).
- Wydajność: Złożone wyszukiwania z wieloma połączeniami i polami formuł mogą długo działać w interfejsie NetSuite, zwłaszcza dla dużego zakresu dat. Warto uruchamiać je i eksportować poza godzinami szczytu. Jeśli wyszukiwanie przekroczy limit czasu, skróć zakres dat i eksportuj dane w mniejszych partiach.
Przykładowe zapytanie sql
/*
This section describes the configuration for multiple NetSuite Saved Searches needed to generate the complete event log. Each block represents a separate Saved Search that must be created in the UI, exported, and then combined externally.
*/
-- Search 1: Invoice Created
Activity Name: 'Invoice Created'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Main Line is true
Results Columns (Mapped to Event Log Attributes):
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Created'
- EventTimestamp: Date Created
- User: Created By
- InvoiceDate: Date
- DueDate: Due Date
- InvoiceTotalAmount: Amount (Gross)
- CustomerName: Name
-- Search 2: Invoice Submitted for Approval
Activity Name: 'Invoice Submitted for Approval'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Pending Approval' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Submitted for Approval'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 3: Invoice Approved
Activity Name: 'Invoice Approved'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Approval Status
- System Notes : New Value is [Your 'Approved' status]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Approved'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 4: Invoice Sent to Customer
Activity Name: 'Invoice Sent to Customer'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Messages : Date Sent is not empty
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Sent to Customer'
- EventTimestamp: Messages : Date Sent (use Maximum summary type if multiple)
- User: Messages : Author (use Maximum summary type)
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 5: Payment Reminder Issued
Activity Name: 'Payment Reminder Issued'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- User Notes : Note contains [Your dunning/reminder keyword]
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Payment Reminder Issued'
- EventTimestamp: User Notes : Date
- User: User Notes : Author
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 6: Credit Memo Created
Activity Name: 'Credit Memo Created'
Saved Search Type: Transaction
Criteria:
- Type is Credit Memo
- Main Line is true
Results Columns:
- InvoiceNumber: Created From : Document Number
- ActivityName: Formula (Text) = 'Credit Memo Created'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 7: Customer Payment Received
Activity Name: 'Customer Payment Received'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is true
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Customer Payment Received'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 8: Payment Applied To Invoice
Activity Name: 'Payment Applied To Invoice'
Saved Search Type: Transaction
Criteria:
- Type is Customer Payment
- Main Line is false
Results Columns:
- InvoiceNumber: Applied to Transaction : Document Number
- ActivityName: Formula (Text) = 'Payment Applied To Invoice'
- EventTimestamp: Date Created
- User: Created By
- CustomerName: Name
-- Search 9: Invoice Paid In Full
Activity Name: 'Invoice Paid In Full'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value is Paid In Full
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Paid In Full'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Search 10: Invoice Voided
Activity Name: 'Invoice Voided'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- Status is Invoice : Voided
- System Notes : Field is Status
- System Notes : New Value is Voided
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Voided'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
-- Search 11: Invoice Closed
Activity Name: 'Invoice Closed'
Saved Search Type: Transaction
Criteria:
- Type is Invoice
- System Notes : Field is Status
- System Notes : New Value contains Closed
Results Columns:
- InvoiceNumber: Document Number
- ActivityName: Formula (Text) = 'Invoice Closed'
- EventTimestamp: System Notes : Date
- User: System Notes : Set by
- CustomerName: Name
- InvoiceTotalAmount: Amount (Gross)
-- Event to be Derived Post-Extraction: Payment Due Date Reached
/*
This event is not extracted directly. After combining all other CSVs, create a new row for each unique invoice.
Set ActivityName to 'Payment Due Date Reached'.
Set EventTimestamp to the DueDate value from the 'Invoice Created' event for that invoice.
Copy other attributes like InvoiceNumber, CustomerName, etc.
*/ Kroki
- Wymaganie wstępne: włącz SuiteAnalytics Connect: Sprawdź, czy moduł SuiteAnalytics Connect jest objęty licencją i włączony w instancji NetSuite. Zwykle wykonuje to administrator NetSuite w sekcji Setup > Company > Enable Features > Analytics.
- Pobierz i skonfiguruj sterownik ODBC: Otwórz dashboard główny NetSuite i znajdź portlet „Settings”. Kliknij łącze „Set Up SuiteAnalytics Connect”, aby pobrać sterownik ODBC odpowiedni dla systemu operacyjnego. Zainstaluj i skonfiguruj sterownik zgodnie z instrukcjami NetSuite, podając host usługi, port, Account ID, Role ID, adres e-mail i hasło.
- Nawiąż połączenie z bazą danych: Użyj klienta SQL obsługującego połączenia ODBC, takiego jak DBeaver, Tableau lub Power BI. Utwórz nowe połączenie ODBC za pomocą skonfigurowanego sterownika. Przetestuj połączenie, aby sprawdzić, czy można się uwierzytelnić i uzyskać dostęp do repliki bazy danych NetSuite w trybie tylko do odczytu.
- Przygotuj zapytanie SQL: Skopiuj pełne zapytanie SQL z sekcji „Query” tego dokumentu. Zapytanie pobiera wszystkie wymagane czynności i atrybuty procesu fakturowania od zamówienia do płatności.
- Ustaw parametry zapytania: Przed uruchomieniem znajdź w zapytaniu wartości zastępcze. Zastąp
'YYYY-MM-DD'żądaną datą początkową i końcową okresu ekstrakcji. Zastąp też[Your Subsidiary ID]wewnętrznym identyfikatorem analizowanej jednostki zależnej NetSuite. - Uruchom zapytanie: Wykonaj zmodyfikowane zapytanie w kliencie SQL. Czas wykonania zależy od zakresu dat i liczby transakcji na koncie NetSuite.
- Sprawdź wyniki: Po zakończeniu zapytania otrzymasz płaską tabelę reprezentującą dziennik zdarzeń. Każdy wiersz odpowiada konkretnej czynności w cyklu życia faktury. Sprawdź kompletność i poprawność danych.
- Wyeksportuj dziennik zdarzeń: Wyeksportuj wyniki zapytania z klienta SQL do pliku CSV. Zapisz go w kodowaniu UTF-8, aby uniknąć problemów z wyświetlaniem znaków.
- Przygotuj dane do przesłania: Przed przesłaniem do narzędzia process mining sprawdź, czy nagłówki kolumn odpowiadają wymaganym nazwom atrybutów, takim jak InvoiceNumber, ActivityName i EventTimestamp. Upewnij się, że formaty daty i godziny są spójne.
Konfiguracja
- Licencja SuiteAnalytics Connect: Dostęp do repliki bazy danych NetSuite w trybie tylko do odczytu wymaga ważnej licencji na moduł SuiteAnalytics Connect. Bez niej bezpośredni dostęp przez SQL nie jest możliwy.
- Dedykowana rola i użytkownik: Zdecydowanie zaleca się utworzenie dedykowanej roli NetSuite z odpowiednimi uprawnieniami do SuiteAnalytics Connect. Rola powinna zapewniać dostęp tylko do odczytu do wymaganych rekordów, w tym Transactions, Customers i System Notes. Aby zapewnić bezpieczeństwo i możliwość audytu ekstrakcji, należy przypisać do tej roli dedykowanego użytkownika.
- Filtrowanie według zakresu dat: W podanym zapytaniu klauzula
WHEREfiltruje datę utworzenia faktury (Transaction.TRANDATE). Przy pierwszej ekstrakcji warto zacząć od krótszego zakresu, na przykład ostatnich 3–6 miesięcy, aby ograniczyć obciążenie i ilość danych. Przykład:AND T.TRANDATE BETWEEN '2023-01-01' AND '2023-06-30'. - Filtrowanie według jednostki zależnej: Jeśli konto obejmuje kilka jednostek zależnych, filtrowanie według konkretnej jednostki ma zasadnicze znaczenie dla wydajności i trafności danych. W zapytaniu znajduje się wartość zastępcza
WHERE T.SUBSIDIARY_ID = [Your Subsidiary ID], którą należy skonfigurować. - Aktualność danych: Baza SuiteAnalytics Connect jest repliką przeznaczoną do odczytu. Dane są zwykle odświeżane kilka razy na godzinę, ale nie w czasie rzeczywistym. Między zarejestrowaniem transakcji w NetSuite a jej pojawieniem się w bazie Connect może upłynąć kilka godzin.
Przykładowe zapytanie sql
WITH Invoices AS (
SELECT
T.TRANSACTION_ID,
T.TRANID AS InvoiceNumber,
T.TRANDATE AS InvoiceDate,
T.DUEDATE AS DueDate,
T.FOREIGN_TOTAL AS InvoiceTotalAmount,
C.COMPANYNAME AS CustomerName,
BUILTIN.DF(C.LOCATION) AS Region,
T.CREATED_DATE AS InvoiceCreationDate,
CREATOR.FIRST_NAME || ' ' || CREATOR.LAST_NAME AS CreatorUser
FROM
TRANSACTIONS T
JOIN
CUSTOMERS C ON T.ENTITY_ID = C.CUSTOMER_ID
LEFT JOIN
EMPLOYEES CREATOR ON T.CREATED_BY_ID = CREATOR.EMPLOYEE_ID
WHERE
T.TRANSACTION_TYPE = 'Invoice'
AND T.TRANDATE BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-12-31', 'YYYY-MM-DD')
-- AND T.SUBSIDIARY_ID = [Your Subsidiary ID] -- Add your subsidiary filter if needed
)
-- 1. Invoice Created
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Created' AS "ActivityName",
I.InvoiceCreationDate AS "EventTimestamp",
I.InvoiceCreationDate AS "EventEndTime",
I.CreatorUser AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN I.CreatorUser LIKE '%System%' THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
UNION ALL
-- 2. Invoice Submitted for Approval & 3. Invoice Approved
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE WHEN SN.NEW_VALUE = 'Pending Approval' THEN 'Invoice Submitted for Approval' ELSE 'Invoice Approved' END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
SN.FIELD = 'TRANSACTION.APPROVALSTATUS' AND SN.NEW_VALUE IN ('Pending Approval', 'Approved')
UNION ALL
-- 4. Invoice Sent to Customer
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Invoice Sent to Customer' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' -- Indicates an outgoing message
UNION ALL
-- 5. Payment Due Date Reached
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Due Date Reached' AS "ActivityName",
I.DueDate AS "EventTimestamp",
I.DueDate AS "EventEndTime",
'System' AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
1 AS "IsAutomated"
FROM
Invoices I
WHERE
I.DueDate IS NOT NULL AND I.DueDate < SYSDATE
UNION ALL
-- 6. Payment Reminder Issued (based on Messages table, requires a specific subject line convention)
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Payment Reminder Issued' AS "ActivityName",
M.MESSAGE_DATE AS "EventTimestamp",
M.MESSAGE_DATE AS "EventEndTime",
MSG_AUTHOR.FIRST_NAME || ' ' || MSG_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN M.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
MESSAGES M ON I.TRANSACTION_ID = M.TRANSACTION_ID
LEFT JOIN
EMPLOYEES MSG_AUTHOR ON M.AUTHOR_ID = MSG_AUTHOR.EMPLOYEE_ID
WHERE
M.INCOMING = 'F' AND UPPER(M.SUBJECT) LIKE '%PAYMENT REMINDER%'
UNION ALL
-- 7. Credit Memo Created & Applied
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Credit Memo Created' AS "ActivityName",
CM.CREATED_DATE AS "EventTimestamp",
CM.CREATED_DATE AS "EventEndTime",
CM_CREATOR.FIRST_NAME || ' ' || CM_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS CM ON T_LINES.TRANSACTION_ID = CM.TRANSACTION_ID
LEFT JOIN
EMPLOYEES CM_CREATOR ON CM.CREATED_BY_ID = CM_CREATOR.EMPLOYEE_ID
WHERE
CM.TRANSACTION_TYPE = 'Credit Memo'
UNION ALL
-- 8. Customer Payment Received & 9. Payment Applied to Invoice
SELECT
I.InvoiceNumber AS "InvoiceNumber",
'Customer Payment Received' AS "ActivityName", -- Can also create a separate 'Payment Applied' event if needed
PAYMENT.CREATED_DATE AS "EventTimestamp",
PAYMENT.CREATED_DATE AS "EventEndTime",
PMT_CREATOR.FIRST_NAME || ' ' || PMT_CREATOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
0 AS "IsAutomated"
FROM
Invoices I
JOIN
TRANSACTION_LINES T_LINES ON I.TRANSACTION_ID = T_LINES.APPLIED_TO_TRANSACTION_ID
JOIN
TRANSACTIONS PAYMENT ON T_LINES.TRANSACTION_ID = PAYMENT.TRANSACTION_ID
LEFT JOIN
EMPLOYEES PMT_CREATOR ON PAYMENT.CREATED_BY_ID = PMT_CREATOR.EMPLOYEE_ID
WHERE
PAYMENT.TRANSACTION_TYPE = 'Customer Payment'
UNION ALL
-- 10. Invoice Paid In Full, 11. Invoice Voided, 12. Invoice Closed
SELECT
I.InvoiceNumber AS "InvoiceNumber",
CASE
WHEN SN.NEW_VALUE_ID = 'Invoice:B' THEN 'Invoice Paid In Full' -- 'B' is status 'Paid In Full'
WHEN SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Voided'
WHEN SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T' THEN 'Invoice Closed'
END AS "ActivityName",
SN.DATE_CREATED AS "EventTimestamp",
SN.DATE_CREATED AS "EventEndTime",
SN_AUTHOR.FIRST_NAME || ' ' || SN_AUTHOR.LAST_NAME AS "User",
'NetSuite' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
I.InvoiceDate AS "InvoiceDate",
I.DueDate AS "DueDate",
I.InvoiceTotalAmount AS "InvoiceTotalAmount",
I.CustomerName AS "CustomerName",
I.Region AS "Region",
CASE WHEN SN.AUTHOR_ID < 0 THEN 1 ELSE 0 END AS "IsAutomated"
FROM
Invoices I
JOIN
SYSTEM_NOTES SN ON I.TRANSACTION_ID = SN.TRANSACTION_ID
LEFT JOIN
EMPLOYEES SN_AUTHOR ON SN.AUTHOR_ID = SN_AUTHOR.EMPLOYEE_ID
WHERE
(SN.FIELD = 'TRANSACTION.STATUS' AND SN.NEW_VALUE_ID = 'Invoice:B')
OR (SN.FIELD = 'TRANSACTION.VOIDED' AND SN.NEW_VALUE = 'T')
OR (SN.FIELD = 'TRANSACTION.CLOSED' AND SN.NEW_VALUE = 'T'); Gotowi do rozpoczęcia?
Wykorzystaj ten szablon, aby rozpocząć inicjatywę process mining i uzyskać wgląd w operacje związane z fakturowaniem i rozliczeniami. Już dziś zacznij usprawniać proces od zamówienia do płatności.
Usprawnij fakturowanie i rozliczenia w NetSuite, aby szybciej odzyskiwać środki
Skróć cykl fakturowania w NetSuite o 30% i popraw przepływy pieniężne.
Karta kredytowa nie jest wymagana. Konfiguracja zajmuje kilka minut.