Szablon danych dla procesu Order to Cash, obsługi zamówień sprzedaży
Szablon danych dla procesu Order to Cash, obsługi zamówień sprzedaży
- Zalecane atrybuty do zebrania
- Najważniejsze aktywności do śledzenia
- Praktyczne wskazówki dotyczące pobierania danych
Atrybuty procesu Order to Cash, obsługi zamówień sprzedaży
| Nazwa | Opis | ||
|---|---|---|---|
| Zamówienie sprzedaży SalesOrder | Unikatowy identyfikator zamówienia sprzedaży, który pełni funkcję głównego case w procesie od zamówienia do otrzymania płatności. | ||
| Opis Numer zamówienia sprzedaży jednoznacznie identyfikuje każde zamówienie klienta przez cały cykl jego obsługi. Łączy wszystkie powiązane zdarzenia, od utworzenia i potwierdzenia zamówienia po jego realizację, fakturowanie i otrzymanie płatności. W process mining ten atrybut służy do grupowania powiązanych zdarzeń w jeden case. Analiza według numeru zamówienia sprzedaży daje pełny obraz procesu od początku do końca. Umożliwia obliczanie całkowitego czasu cyklu, identyfikowanie wariantów procesu dla poszczególnych zamówień i śledzenie ich obsługi w różnych działach i systemach. Dlaczego to ważne To identyfikator case. Łączy wszystkie zdarzenia procesu, dzięki czemu można prześledzić obsługę pojedynczego zamówienia klienta od początku do końca. Skąd pobrać Ten identyfikator znajduje się zwykle w tabeli nagłówków zamówień sprzedaży w Oracle Fusion, na przykład DOO_HEADERS_ALL. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady SO-100567SO-100568SO-100569 | |||
| Czas zdarzenia EventTime | Znacznik czasu określający, kiedy wystąpiło konkretne działanie lub zdarzenie związane z zamówieniem sprzedaży. | ||
| Opis Ten atrybut zawiera datę i godzinę każdego działania w procesie, dzięki czemu można ustalić chronologiczną kolejność zdarzeń. Stanowi podstawę czasowej analizy procesu i wskazuje dokładnie, kiedy wykonano każdy krok. W process mining atrybut EventTime jest niezbędny do obliczania czasu cyklu, czasu między działaniami i całkowitego czasu obsługi case. Umożliwia analizę wydajności, wykrywanie wąskich gardeł na podstawie czasu oczekiwania oraz monitorowanie zgodności z umowami SLA dotyczącymi terminowości. Dokładność tego atrybutu wpływa na wszystkie KPI i dashboardy oparte na czasie. Dlaczego to ważne Ten znacznik czasu jest niezbędny do chronologicznego uporządkowania zdarzeń i obliczania wszystkich miar czasu, takich jak czas cyklu i czas trwania. Skąd pobrać To atrybut pochodny, pobierany z różnych pól znaczników czasu w tabelach Oracle Fusion, takich jak data utworzenia zamówienia, wysyłki, faktury i płatności. Przykłady 2023-04-15T09:00:00Z2023-04-18T14:30:00Z2023-04-20T11:25:00Z | |||
| Nazwa działania ActivityName | Nazwa konkretnego zdarzenia biznesowego lub zadania, które wystąpiło w procesie obsługi zamówienia sprzedaży. | ||
| Opis Ten atrybut opisuje krok wykonany w określonym momencie obsługi zamówienia sprzedaży, na przykład „Utworzono zamówienie sprzedaży”, „Wysłano towary” lub „Otrzymano płatność”. Kolejność działań tworzy przebieg procesu dla każdego case. Analiza atrybutu ActivityName jest podstawą process mining. Umożliwia wizualizację mapy procesu, odkrywanie różnych wariantów procesu i wykrywanie wąskich gardeł, w których gromadzą się case. Pozwala obliczać czas między kolejnymi krokami i zrozumieć przebieg operacyjny procesu od zamówienia do otrzymania płatności. Dlaczego to ważne Ten atrybut określa kroki na mapie procesu i umożliwia wizualizację oraz analizę jego przebiegu. Skąd pobrać To atrybut pochodny. Powstaje przez przypisanie statusów transakcji lub typów zdarzeń z różnych tabel Oracle Fusion, na przykład statusu zamówienia, wysyłki lub faktury, do ustandaryzowanej listy nazw działań. Przykłady Utworzenie zamówienia sprzedażyWysłanie towarówUtworzenie fakturyOtrzymano płatność | |||
| Czy zautomatyzowano IsAutomated | Wskaźnik określający, czy działanie wykonał automatycznie system, czy ręcznie użytkownik. | ||
| Opis Ten atrybut logiczny odróżnia zdarzenia wywołane przez system, na przykład automatyczną kontrolę kredytową lub fakturę wygenerowaną przez system, od działań użytkownika. Zwykle ustala się go na podstawie nazwy użytkownika przypisanej do działania. Ogólny identyfikator systemowy oznacza automatyzację. Analiza tego atrybutu pozwala zmierzyć poziom automatyzacji procesu i stanowi bezpośrednią podstawę KPI „Odsetek zamówień wymagających ręcznych poprawek”. Może wskazać możliwości dalszej automatyzacji, pokazując, które ręczne kroki zajmują najwięcej czasu lub najczęściej prowadzą do błędów. Dlaczego to ważne Pomaga zmierzyć poziom automatyzacji procesu i wskazać możliwości ograniczenia kosztownych działań ręcznych. Skąd pobrać To pole pochodne, zwykle wyznaczane na podstawie reguły dotyczącej atrybutu UserName. Na przykład jeśli użytkownikiem jest „SYSTEM” lub „BATCH”, temu polu przypisuje się wartość true. Przykłady truefalse | |||
| Kanał sprzedaży SalesChannel | Kanał, którym wpłynęło zamówienie sprzedaży. | ||
| Opis Ten atrybut określa źródło zamówienia sprzedaży, na przykład „Sprzedaż internetowa”, „Sprzedaż bezpośrednia”, „Partner” lub „EDI”. Informuje, w jaki sposób zamówienie trafiło do organizacji. Podział procesu według kanału sprzedaży jest ważny dla dashboardu „Przegląd wyników kanałów sprzedaży”. Ułatwia porównanie wydajności, czasu cyklu i liczby błędów w poszczególnych kanałach oraz wskazanie tych, które działają najskuteczniej lub wymagają ulepszenia procesów albo dalszej automatyzacji. Dlaczego to ważne Umożliwia analizę wyników według kanału i wskazanie kanałów, w których obsługa zamówień jest najbardziej i najmniej wydajna. Skąd pobrać Informacja może być przechowywana w osobnym polu nagłówka zamówienia sprzedaży. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady Sprzedaż bezpośredniaPortal internetowyEDISprzedawca | |||
| Łączna wartość zamówienia sprzedaży SalesOrderTotalAmount | Łączna wartość pieniężna zamówienia sprzedaży. | ||
| Opis Ten atrybut określa łączną kwotę należną od klienta za całe zamówienie sprzedaży. Obejmuje sumę wszystkich pozycji, podatków i innych opłat przed uwzględnieniem rabatów. W analizie procesu atrybut ten umożliwia process mining według wartości zamówienia. Pozwala podzielić zamówienia na grupy, na przykład o wysokiej i niskiej wartości, i sprawdzić, czy przebiegają innymi ścieżkami lub mają różny czas cyklu. Pomaga też ustalać priorytety ulepszania procesów, koncentrując się na przypadkach o największym znaczeniu finansowym. Dlaczego to ważne Umożliwia analizę wpływu finansowego, ustalanie priorytetów ulepszania procesów dla zamówień o wysokiej wartości i rozpoznawanie czynników kosztowych. Skąd pobrać Dane znajdują się zwykle w tabelach nagłówków zamówień sprzedaży w Oracle Fusion. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady 5250.00125000.75980.50 | |||
| Nazwa klienta CustomerName | Nazwa klienta, który złożył zamówienie sprzedaży. | ||
| Opis Ten atrybut wskazuje nazwę prawną klienta powiązanego z zamówieniem sprzedaży. Umożliwia analizę procesu z perspektywy klienta i podział danych na grupy. Analiza według klienta pomaga ustalić, czy obsługa zamówień niektórych klientów trwa dłużej, wymaga częstszych poprawek lub odbiega od standardowego przebiegu. Te informacje można wykorzystać do poprawy obsługi klienta, dostosowania procesów do potrzeb najważniejszych klientów i zbadania problemów wpływających na ich zadowolenie. Dlaczego to ważne Umożliwia analizę procesu z perspektywy klienta, wykrywanie problemów dotyczących konkretnych klientów i poprawę ich zadowolenia. Skąd pobrać Dane pochodzą z tabel głównych danych klientów, na przykład HZ_PARTIES, i są łączone z zamówieniem sprzedaży za pomocą identyfikatora klienta. Przykłady Global Corp Inc.Innovate Solutions Ltd.Tech Services LLC | |||
| Nazwa użytkownika UserName | Nazwa lub identyfikator użytkownika, który wykonał działanie. | ||
| Opis Ten atrybut wskazuje pracownika lub użytkownika systemu odpowiedzialnego za wykonanie konkretnego kroku procesu. Można go wykorzystać do analizy wydajności poszczególnych użytkowników, rozkładu obciążenia pracą i przestrzegania standardowych procedur. Analiza według użytkownika pomaga rozpoznać potrzeby szkoleniowe, wskazać osoby lub zespoły osiągające dobre wyniki oraz zbadać odstępstwa związane z działaniami konkretnych użytkowników. Atrybut jest również przydatny przy kontroli zgodności i audycie, ponieważ pozwala ustalić, kto wykonał poszczególne działania. Dlaczego to ważne Umożliwia analizę wydajności użytkowników i rozkładu obciążenia pracą oraz wykrywanie powtarzających się ręcznych poprawek związanych z konkretnymi osobami. Skąd pobrać Dane pochodzą zwykle z pól takich jak CREATED_BY lub LAST_UPDATED_BY w tabelach transakcyjnych Oracle Fusion. Pola te są często powiązane z tabelą użytkowników, na przykład FND_USER. Przykłady john.smithjane.doesystem_batch_user | |||
| Oczekiwana data dostawy RequestedDeliveryDate | Data dostawy zamówienia wskazana przez klienta. | ||
| Opis Ten atrybut zawiera datę, w której klient chce otrzymać towary. Jest to ważny cel do pomiaru realizacji zamówienia w procesie od zamówienia do otrzymania płatności. Data ta jest niezbędna do obliczania KPI „Odsetek dostaw na czas” i obsługi dashboardu „Poziom usług dostawy (SLA)”. Porównanie jej z atrybutem ActualDeliveryDate pozwala ocenić, czy organizacja spełnia oczekiwania klientów, i ustalić przyczyny opóźnień. Dlaczego to ważne Stanowi punkt odniesienia przy pomiarze terminowości dostaw i zgodności z umową SLA dotyczącą poziomu obsługi klienta. Skąd pobrać Dane znajdują się zwykle w tabelach pozycji zamówień sprzedaży w Oracle Fusion. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady 2023-05-202023-06-012023-05-25 | |||
| Rzeczywista data dostawy ActualDeliveryDate | Data faktycznego dostarczenia towarów klientowi. | ||
| Opis Ten atrybut zapisuje końcową datę dostawy, która oznacza zakończenie realizacji zamówienia. Jest to rzeczywisty wynik, z którym porównuje się daty planowane lub wskazane przez klienta. Porównanie tej daty z RequestedDeliveryDate pozwala obliczyć terminowość dostaw. Atrybut jest niezbędny do obliczania KPI „Odsetek dostaw na czas” i obsługi dashboardu „SLA dostaw”. Umożliwia ocenę skuteczności logistyki i łańcucha dostaw. Dlaczego to ważne To rzeczywista data dostawy, używana do obliczania terminowości i oceny realizacji zamówienia względem oczekiwań klienta. Skąd pobrać Dane pochodzą z tabel transakcyjnych dotyczących wysyłki i dostawy w Oracle Fusion. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady 2023-05-202023-06-032023-05-25 | |||
| Termin płatności PaymentDueDate | Data, do której klient powinien opłacić fakturę. | ||
| Opis Termin płatności oblicza się na podstawie daty faktury i warunków płatności uzgodnionych z klientem. Wyznacza on datę, do której należy otrzymać płatność. Atrybut ten jest niezbędny do obliczania KPI „Odsetek płatności otrzymanych w terminie”. Porównanie PaymentDueDate z datą faktycznego otrzymania płatności pozwala ustalić, czy płatność wpłynęła na czas. Ułatwia to monitorowanie należności i zarządzanie przepływami pieniężnymi. Dlaczego to ważne Wyznacza termin używany do obliczania odsetka płatności otrzymanych na czas, który mierzy efektywność przepływów pieniężnych. Skąd pobrać Dane znajdują się w tabelach należności lub faktur w Oracle Fusion, na przykład AR_PAYMENT_SCHEDULES_ALL. Przykłady 2023-06-192023-07-012023-06-25 | |||
| Czy dostarczono na czas IsOnTimeDelivery | Obliczany wskaźnik przyjmujący wartość true, jeśli dostawa nastąpiła w dniu wskazanym przez klienta lub wcześniej. | ||
| Opis Ten atrybut logiczny jest wyznaczany przez porównanie ActualDeliveryDate z RequestedDeliveryDate. W prosty sposób wskazuje wynik dostawy dla danego case. Wskaźnik ten stanowi podstawę do obliczania zbiorczego KPI „Odsetek dostaw na czas”. Ułatwia filtrowanie i analizę, pozwalając szybko wyodrębnić wszystkie opóźnione zamówienia i zbadać przyczyny opóźnień. Dlaczego to ważne Bezpośrednio mierzy, czy realizacja zamówienia spełnia oczekiwania klienta, i ułatwia analizę opóźnionych zamówień. Skąd pobrać To pole obliczane według reguły: ActualDeliveryDate <= RequestedDeliveryDate. Przykłady truefalse | |||
| Czy faktura została skorygowana IsInvoiceCorrected | Flaga wskazująca, czy fakturę skorygowano lub zmieniono po jej utworzeniu. | ||
| Opis Ten atrybut logiczny ma wartość true, jeśli faktura przeszła pętlę korekty, co wskazuje obecność aktywności „Skorygowano fakturę”. Oznacza przypadki, w których na etapie fakturowania konieczne były dodatkowe prace. To ważna dana wejściowa dla dashboardu „Analiza poprawności faktur i dodatkowych prac” oraz KPI „Wskaźnik korekt faktur”. Pozwala określić skalę błędów w fakturowaniu i przeanalizować ich przyczyny, aby ograniczyć pracę ręczną i opóźnienia w płatnościach. Dlaczego to ważne Wykrywa dodatkowe prace związane z fakturami, które mogą wskazywać na nieefektywność procesu, problemy z jakością danych i ryzyko opóźnień w płatnościach. Skąd pobrać To pole obliczane. Zwykle ma wartość true dla danego przypadku, jeśli w jego dzienniku zdarzeń występuje aktywność „Skorygowano fakturę”. Przykłady falsetrue | |||
| Czy płatność była opóźniona IsLatePayment | Obliczany wskaźnik przyjmujący wartość true, jeśli płatność wpłynęła po terminie. | ||
| Opis Ten atrybut logiczny jest wyznaczany przez porównanie faktycznej daty otrzymania płatności z PaymentDueDate. Wskazuje, czy faktura została opłacona w terminie. Atrybut służy do obliczania KPI „Odsetek płatności otrzymanych w terminie”. Ułatwia podział płatności na terminowe i opóźnione oraz analizę cech klientów płacących po terminie, częstych przyczyn opóźnień i ich wpływu na kapitał obrotowy. Dlaczego to ważne Bezpośrednio mierzy skuteczność ściągania należności i ułatwia analizę płatności przeterminowanych. Skąd pobrać To pole obliczane. Zastosowana logika: PaymentReceivedDate > PaymentDueDate. Przykłady falsetrue | |||
| Jednostka biznesowa BusinessUnitName | Nazwa wewnętrznej jednostki biznesowej odpowiedzialnej za zamówienie sprzedaży. | ||
| Opis Ten atrybut wskazuje konkretny dział lub jednostkę operacyjną firmy odpowiedzialną za transakcję. Umożliwia porównywanie wyników różnych części organizacji. Podział procesu według jednostki biznesowej pomaga wykrywać różnice w wydajności, kosztach i zgodności w całej firmie. Analiza może wskazać dobre praktyki stosowane w jednostkach osiągających lepsze wyniki, które warto upowszechnić, oraz jednostki wymagające ukierunkowanego ulepszenia procesów. Dlaczego to ważne Umożliwia porównywanie wyników i analizę spójności procesów w różnych jednostkach organizacji. Skąd pobrać Informacja jest zwykle dostępna w nagłówku zamówienia sprzedaży i powiązana ze strukturą organizacyjną zdefiniowaną w Oracle Fusion. Przykłady Jednostka biznesowa, Ameryka PółnocnaJednostka biznesowa, EMEAUsługi globalne | |||
| Kraj klienta CustomerCountry | Kraj, w którym znajduje się klient. | ||
| Opis Ten atrybut określa kraj na podstawie adresu dostawy lub adresu rozliczeniowego klienta. Umożliwia analizę geograficzną. Podział procesu według kraju może ujawnić regionalne różnice w wynikach, czasie cyklu lub terminowości płatności. Pomaga zrozumieć, jak lokalne przepisy, wyzwania logistyczne i warunki rynkowe wpływają na proces od zamówienia do otrzymania płatności. Dlaczego to ważne Umożliwia analizę geograficzną i wykrywanie regionalnych różnic w wydajności procesu, zgodności i zachowaniach klientów. Skąd pobrać Dane pochodzą z tabel głównych danych klientów, takich jak HZ_LOCATIONS i HZ_PARTY_SITES, powiązanych z zamówieniem sprzedaży. Przykłady USANiemcyJaponia | |||
| Metoda wysyłki ShippingMethod | Metoda lub przewoźnik używany do wysyłki towarów do klienta. | ||
| Opis Ten atrybut określa przewoźnika lub poziom usługi dostawy, na przykład „Transport drogowy”, „Ekspres lotniczy” lub „Kurier lokalny”. Informacja ta jest niezbędna do obsługi dashboardu „Terminowość dostaw według metody wysyłki”. Umożliwia porównanie terminowości dostaw i kosztów wysyłki dla różnych metod i przewoźników, co pomaga optymalizować logistykę i wybór dostawców. Dlaczego to ważne Ułatwia analizę logistyki przez porównanie wyników różnych przewoźników i metod wysyłki. Skąd pobrać Dane są dostępne w tabelach wysyłki i realizacji w Oracle Fusion. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady FedEx, przesyłka naziemnaUPS, dostawa lotnicza następnego dniaDHL, przesyłka międzynarodowa | |||
| Nazwa produktu ProductName | Nazwa sprzedawanego produktu lub usługi. | ||
| Opis Ten atrybut określa produkt lub usługę w pozycji zamówienia sprzedaży. Jeśli zamówienie zawiera kilka pozycji, case można analizować na poziomie pozycji albo agregować ten atrybut na poziomie nagłówka. Analiza według produktu pomaga ustalić, czy niektóre produkty wiążą się z bardziej złożonym lub problematycznym przebiegiem procesu, na przykład częstymi opóźnieniami dostaw lub problemami z płatnościami. Te informacje mogą pomóc w zarządzaniu produktami i planowaniu łańcucha dostaw. Dlaczego to ważne Umożliwia analizę wyników procesu dla różnych produktów i wskazuje te, których realizacja lub fakturowanie może przebiegać bardziej złożoną ścieżką. Skąd pobrać Dane pochodzą z tabel pozycji zamówień sprzedaży połączonych z tabelą głównych danych produktów. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady Standardowy moduł X1Pakiet usług premiumKomponent Y2-B | |||
| Numer faktury InvoiceNumber | Unikatowy identyfikator faktury klienta. | ||
| Opis Ten atrybut to unikatowy numer nadany fakturze wystawionej na podstawie zamówienia sprzedaży. Łączy działania związane ze sprzedażą i realizacją z finansowym rozliczeniem transakcji. Głównym identyfikatorem case jest numer zamówienia sprzedaży, ale numer faktury jest niezbędny do analizy fakturowania i płatności. Ułatwia śledzenie korekt faktur, sporów i statusu płatności oraz obsługę dashboardów, takich jak „Dokładność faktur i analiza poprawek”. Dlaczego to ważne Łączy proces z obsługą należności i jest niezbędny do analizy poprawek faktur oraz cykli płatności. Skąd pobrać Dane są dostępne w tabelach transakcyjnych należności w Oracle Fusion, takich jak RA_CUSTOMER_TRX_ALL. Przykłady INV-93485INV-93486INV-93487 | |||
| Ostatnia aktualizacja danych LastUpdateDate | Znacznik czasu wskazujący, kiedy dane tego zdarzenia zostały ostatnio odświeżone z systemu źródłowego. | ||
| Opis Ten atrybut zapisuje, kiedy dane zostały ostatnio wyodrębnione lub zaktualizowane w zbiorze danych do process mining. Informuje, jak aktualne są analizowane dane. Dzięki tej informacji użytkownicy wiedzą, na jak świeżych danych opiera się analiza procesu. Ułatwia to określenie oczekiwań dotyczących aktualności danych oraz planowanie i monitorowanie harmonogramu ich odświeżania. Dlaczego to ważne Informuje o aktualności danych, dzięki czemu wiadomo, jak aktualna jest analiza procesu. Skąd pobrać Ta wartość jest generowana i zapisywana w zbiorze danych podczas każdego cyklu wyodrębniania i przekształcania danych. Przykłady 2023-10-27T02:00:00Z2023-10-28T02:00:00Z | |||
| System źródłowy SourceSystemIdentifier | Określa system źródłowy, z którego wyodrębniono dane o zdarzeniu. | ||
| Opis Ten atrybut wskazuje pochodzenie danych. Jest szczególnie przydatny, gdy w procesie od zamówienia do otrzymania płatności uczestniczy kilka systemów. Na przykład dane o zamówieniach mogą pochodzić z Oracle Fusion, a dane o wysyłce z systemu zewnętrznego operatora logistycznego. W analizie atrybut pomaga ustalić pochodzenie danych i filtrować widok procesu według zdarzeń z wybranych systemów. Jest też przydatny przy weryfikacji danych i wykrywaniu fragmentacji procesu między różnymi środowiskami IT. Dlaczego to ważne Informuje o pochodzeniu danych, co ułatwia zarządzanie danymi i rozwiązywanie problemów w środowiskach korzystających z wielu systemów. Skąd pobrać Zwykle jest to stała wartość dodawana podczas wyodrębniania i przekształcania danych, która oznacza źródło zbioru danych. Przykłady Oracle Fusion Cloud FinancialsOracle SCM CloudOracle ERP | |||
| Typ zamówienia OrderType | Klasyfikacja zamówienia sprzedaży, na przykład „Zamówienie standardowe” lub „Zamówienie zwrotu”. | ||
| Opis Typ zamówienia służy do klasyfikowania zamówień sprzedaży według ich celu biznesowego. Typowe kategorie to standardowa sprzedaż, zamówienia serwisowe, autoryzacje zwrotu materiałów (RMA) i zamówienia wewnętrzne. Analiza procesu według typu zamówienia jest ważna, ponieważ poszczególne typy często mają odrębny przebieg i cele dotyczące wyników. Podział ten pomaga rozpoznać zamierzone i oczekiwane różnice w procesie, aby nie uznać ich błędnie za odstępstwa. Dlaczego to ważne Umożliwia oddzielną analizę prawidłowych przebiegów procesu, na przykład zamówień standardowych i zwrotów, co pozwala rzetelnie porównywać wyniki. Skąd pobrać Informacja jest zwykle dostępna jako pole w tabeli nagłówków zamówień sprzedaży w Oracle Fusion. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady Standardowe zamówienie sprzedażyAutoryzacja zwrotuZamówienie serwisowe | |||
| Warunki płatności PaymentTerms | Uzgodnione warunki płatności klienta. | ||
| Opis Ten atrybut określa warunki, na jakich klient powinien opłacić fakturę, na przykład „30 dni” lub „60 dni”. Na ich podstawie oblicza się PaymentDueDate. Podział analizy według warunków płatności pomaga wyjaśnić różnice w czasie od faktury do płatności. Dostarcza kontekstu dla KPI „Odsetek płatności otrzymanych w terminie”, ponieważ różne warunki naturalnie wiążą się z innymi zachowaniami płatniczymi. Informacje te mogą pomóc w ustalaniu polityki kredytowej i prognozowaniu przepływów pieniężnych. Dlaczego to ważne Dostarcza kontekstu do analizy zachowań płatniczych i pomaga wyjaśnić różnice w czasie od wystawienia faktury do otrzymania płatności. Skąd pobrać Dane są dostępne na poziomie zamówienia sprzedaży lub konta klienta w Oracle Fusion. Więcej informacji można znaleźć w dokumentacji Oracle Fusion Financials. Przykłady 30 dni60 dniPłatność przy odbiorze | |||
Aktywności w procesie Order to Cash, obsłudze zamówień sprzedaży
| Działanie | Opis | ||
|---|---|---|---|
| Otrzymano płatność | To zdarzenie oznacza, że płatność klienta wpłynęła i została rozliczona z fakturą w module należności. Rejestruje się je po zaksięgowaniu rozliczenia wpływu środków. | ||
| Dlaczego to ważne To ważny punkt pomiaru KPI „Całkowity czas cyklu od zamówienia do otrzymania płatności” oraz „Odsetek płatności otrzymanych w terminie”. Oznacza zamianę sprzedaży na środki pieniężne. Skąd pobrać W Oracle Accounts Receivable jest to jawnie rejestrowane zdarzenie. Zapis trafia do tabel wpływów środków, takich jak AR_RECEIVABLE_APPLICATIONS_ALL, gdy wpływ zostaje rozliczony z fakturą. Rejestrowanie Dane pochodzą ze znacznika czasu pola „apply date” rekordu rozliczenia wpływu środków w module AR. Typ zdarzenia explicit | |||
| Potwierdzenie zamówienia | Ten ważny etap oznacza, że zamówienie sprzedaży przeszło wszystkie wstępne kontrole, w tym kontrolę kredytową, i może zostać przekazane do realizacji. Zdarzenie można zwykle wywnioskować, gdy status zamówienia zmienia się na przykład na „Awaiting Shipping” lub „Scheduled”. | ||
| Dlaczego to ważne Ta aktywność jest ważnym etapem przy obliczaniu „Average Order Confirmation Time”. Oznacza przekazanie zamówienia z etapu wprowadzania do realizacji. Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu nagłówka lub pozycji zamówienia sprzedaży na wartość oznaczającą gotowość do realizacji, na przykład „Awaiting Shipping”. Należy sprawdzić kolumny statusu w tabelach DOO_HEADERS_ALL lub DOO_FULFILL_LINES_ALL. Rejestrowanie Wartość jest wyznaczana na podstawie znacznika czasu zmiany statusu zamówienia na potwierdzone lub zaplanowane. Typ zdarzenia inferred | |||
| Utworzenie faktury | Ta aktywność oznacza utworzenie faktury dla klienta w module Accounts Receivable. Zwykle uruchamia ją zdarzenie potwierdzenia wysyłki. Powstaje rekord faktury z unikalnym numerem i datą utworzenia. | ||
| Dlaczego to ważne Oznacza oficjalny początek cyklu ściągania należności. Stanowi podstawę do pomiaru „Invoice to Payment Time” i ogólnej sprawności przepływów pieniężnych. Skąd pobrać To jawne zdarzenie w Oracle Accounts Receivable (AR). Rekord faktury jest tworzony w tabeli RA_CUSTOMER_TRX_ALL i zawiera datę transakcji. Rejestrowanie Dane pochodzą z daty utworzenia transakcji faktury w module AR. Typ zdarzenia explicit | |||
| Utworzenie zamówienia sprzedaży | Ta aktywność rozpoczyna proces obsługi zamówienia sprzedaży. Oznacza moment wprowadzenia nowego zamówienia do Oracle Fusion. Zdarzenie jest zwykle rejestrowane, gdy użytkownik zapisuje nowy rekord zamówienia w module Order Management. | ||
| Dlaczego to ważne Jako początek procesu ta aktywność jest niezbędna do pomiaru całkowitego czasu cyklu Order to Cash i analizy liczby przyjmowanych zamówień. Skąd pobrać Zdarzenie jest rejestrowane podczas tworzenia rekordu zamówienia sprzedaży w Order Management Cloud. Znaczników czasu utworzenia należy szukać w tabeli DOO_HEADERS_ALL. Rejestrowanie Dane pochodzą ze znacznika czasu utworzenia rekordu nagłówka zamówienia sprzedaży. Typ zdarzenia explicit | |||
| Wysłanie towarów | Ta aktywność oznacza, że towary opuściły magazyn i są w drodze do klienta. Jest rejestrowana po przetworzeniu transakcji potwierdzenia wysyłki w Oracle Shipping. | ||
| Dlaczego to ważne To ważny etap, który oznacza zakończenie realizacji zamówienia i uruchamia fakturowanie. Jest niezbędny do pomiaru terminowości wysyłek i czasu dostawy. Skąd pobrać To jawne zdarzenie rejestrowane w Oracle Shipping Execution. Transakcja potwierdzenia wysyłki tworzy rekord w tabelach wysyłkowych, takich jak WSH_DELIVERY_DETAILS, zawierający datę wysyłki. Rejestrowanie Dane pochodzą ze znacznika czasu „actual ship date” w rekordzie szczegółów dostawy powiązanym z pozycją zamówienia. Typ zdarzenia explicit | |||
| Zamknięto zamówienie | Ostatnie zdarzenie w procesie. Oznacza, że wszystkie pozycje zamówienia sprzedaży zostały zrealizowane, zafakturowane i zamknięte. Status nagłówka zamówienia zmienia się na „Closed”. | ||
| Dlaczego to ważne To zdarzenie oznacza pomyślne zakończenie cyklu życia zamówienia sprzedaży. Jest potrzebne do obliczania czasu trwania procesu od początku do końca oraz wykrywania zamówień, które nigdy nie zostają zamknięte. Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu nagłówka zamówienia sprzedaży na „Closed” w tabeli DOO_HEADERS_ALL. Znacznik czasu tej ostatniej zmiany statusu wyznacza moment zdarzenia. Rejestrowanie Ustalane na podstawie znacznika czasu zmiany statusu nagłówka zamówienia sprzedaży na „Closed”. Typ zdarzenia inferred | |||
| Anulowano zamówienie | Oznacza anulowanie zamówienia sprzedaży przed wysłaniem wszystkich towarów. Może do niego dojść z różnych przyczyn, a końcowy status zamówienia to „Cancelled”. | ||
| Dlaczego to ważne To istotna ścieżka wyjątkowa. Analiza anulowanych zamówień pomaga ustalić przyczyny, takie jak brak towaru, problemy z ceną lub zmiana decyzji klienta, i wskazać możliwości ulepszenia procesów. Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu nagłówka lub pozycji zamówienia sprzedaży na „Cancelled”. Moment zdarzenia określa znacznik czasu tej zmiany. Rejestrowanie Ustalane na podstawie znacznika czasu zmiany statusu nagłówka lub pozycji zamówienia na „Cancelled”. Typ zdarzenia inferred | |||
| Dostarczenie towarów | Oznacza, że klient otrzymał przesyłkę. Informacje te często pochodzą od zewnętrznego przewoźnika i są przekazywane do Oracle Fusion. Zdarzenie można też wywnioskować na podstawie standardowego czasu transportu liczonego od daty wysyłki. | ||
| Dlaczego to ważne Ta aktywność jest niezbędna do obliczenia KPI „On-Time Delivery Rate” i rzetelnego pomiaru poziomu obsługi klienta. Skąd pobrać Zdarzenie często nie jest dostępne natywnie w Oracle. Można je rejestrować, jeśli skonfigurowano integrację z przewoźnikiem, albo obliczyć, dodając standardowy czas transportu do daty „Goods Shipped”. Wymaga to analizy systemu. Rejestrowanie Zdarzenie można wywnioskować z danych przekazywanych przez przewoźnika lub obliczyć na podstawie daty wysyłki i średniego czasu transportu. Typ zdarzenia inferred | |||
| Kompletacja towarów | Oznacza fizyczne pobranie towarów z magazynu w celu realizacji zamówienia. To ważny etap logistyki, zwykle rejestrowany w module zarządzania magazynem lub wysyłką. | ||
| Dlaczego to ważne Ta aktywność zapewnia wgląd w operacje magazynowe. Opóźnienia między rezerwacją zapasów a kompletacją mogą wskazywać na problemy z zasobami lub wąskie gardła w procesie magazynowym. Skąd pobrać Zdarzenie jest rejestrowane w modułach Oracle Fusion Cloud SCM (Supply Chain Management). Można je wywnioskować ze zmiany statusu fali kompletacyjnej lub listy kompletacyjnej powiązanej z pozycją zamówienia sprzedaży. Rejestrowanie Zdarzenie można wywnioskować ze znacznika czasu zakończenia transakcji kompletacji w modułach SCM. Typ zdarzenia inferred | |||
| Korekta faktury | Występuje, gdy wcześniej wystawiona faktura zostaje zmieniona, wystawiona ponownie lub skorygowana z powodu błędów albo sporu z klientem. Zwykle rejestruje się to przez wystawienie faktury korygującej lub nowej wersji faktury. | ||
| Dlaczego to ważne Śledzenie korekt faktur jest ważne przy obliczaniu KPI „Odsetek faktur wymagających ponownej obsługi”. Wskaźnik ten pokazuje problemy w procesie fakturowania, które mogą opóźniać płatności i zwiększać koszty administracyjne. Skąd pobrać Zdarzenie można wywnioskować z wystawienia faktury korygującej powiązanej z fakturą pierwotną albo kolejnej wersji tej samej faktury w tabeli RA_CUSTOMER_TRX_ALL. Rejestrowanie Ustalane przez identyfikację faktur korygujących lub faktur odwołujących się do wcześniejszej transakcji fakturowej. Typ zdarzenia inferred | |||
| Nałożenie blokady kredytowej | Ta aktywność występuje, gdy zamówienie sprzedaży zostaje automatycznie lub ręcznie zablokowane z powodu niezaliczonej kontroli kredytowej lub innego problemu związanego z kredytem. Zdarzenie jest zwykle rejestrowane jako zmiana statusu blokady zamówienia w systemie. | ||
| Dlaczego to ważne Śledzenie blokad kredytowych pomaga ustalić przyczyny opóźnień w obsłudze zamówień i zmierzyć sprawność procesu ich zwalniania. Skąd pobrać Zdarzenie można wywnioskować z nałożenia blokady na zamówienie sprzedaży. Zwykle jest ono rejestrowane w tabelach dotyczących blokad, takich jak DOO_HOLDS_ALL, powiązanych z zamówieniem. Rejestrowanie Zdarzenie można wywnioskować z utworzenia rekordu w tabeli blokad zamówień z typem blokady „Credit”. Typ zdarzenia inferred | |||
| Przeprowadzenie kontroli kredytowej | Oznacza sprawdzenie zdolności kredytowej klienta. W workflow obsługi zamówienia może to być etap automatyczny lub ręczny. Jego zakończenie jest zwykle rejestrowane jako zmiana statusu lub ukończone zadanie. | ||
| Dlaczego to ważne Analiza czasu kontroli kredytowej pomaga wykryć wąskie gardła w zatwierdzaniu zamówień. Jest niezbędna do obliczenia KPI „Credit Check to Confirmed Time”. Skąd pobrać Zdarzenie można wywnioskować ze zmian statusu zamówienia sprzedaży, na przykład przejścia do statusu „Pending Credit Approval”, albo odczytać z jawnego wpisu w dzienniku zdarzeń funkcji zarządzania kredytowego. Rejestrowanie Zdarzenie można wywnioskować ze zmian statusu zamówienia lub znaczników czasu powiązanych z zadaniami kontroli kredytowej. Typ zdarzenia inferred | |||
| Rezerwacja zapasów | Ta aktywność oznacza przydzielenie lub zarezerwowanie zapasów fizycznych na potrzeby realizacji pozycji zamówienia sprzedaży. System rezerwuje określone towary, aby były dostępne, gdy zamówienie będzie gotowe do kompletacji. | ||
| Dlaczego to ważne Śledzenie tej aktywności pomaga analizować KPI „Inventory Allocation Lead Time” i wykrywać opóźnienia między potwierdzeniem zamówienia a zabezpieczeniem towarów. Skąd pobrać Zdarzenie jest często rejestrowane w modułach zarządzania zapasami lub realizacji łańcucha dostaw. Można je wywnioskować ze zmian statusu pozycji realizacji, które wskazują, że zapasy zostały określone lub zarezerwowane. Rejestrowanie Zdarzenie można wywnioskować ze zmian statusu pozycji realizacji związanych z rezerwacją zapasów lub planowaniem. Typ zdarzenia inferred | |||
| Zamknięto pozycję zamówienia | Oznacza ostateczne zamknięcie pojedynczej pozycji zamówienia sprzedaży. Pozycja została w pełni wysłana i zafakturowana, a dalsze transakcje nie są już oczekiwane. System zmienia jej status na „Closed”. | ||
| Dlaczego to ważne Zamknięcie pozycji zamówienia oznacza wypełnienie wszystkich zobowiązań umownych dotyczących danego towaru. Analiza pozwala wykryć zamówienia, które pozostają otwarte długo po realizacji i otrzymaniu płatności. Skąd pobrać Zdarzenie można wywnioskować ze zmiany statusu pozycji realizacji na „Closed” w tabeli DOO_FULFILL_LINES_ALL. Znacznik czasu tej zmiany wyznacza moment zdarzenia. Rejestrowanie Ustalane na podstawie znacznika czasu zmiany statusu pozycji realizacji na „Closed”. Typ zdarzenia inferred | |||
Instrukcje pobierania danych
Kroki
- Otwórz Oracle BI Publisher: Zaloguj się do środowiska Oracle Fusion jako użytkownik z uprawnieniami BI Administrator lub BI Author. W menu Navigator przejdź do Tools > Reports and Analytics. Kliknij przycisk „Browse Catalog”, aby otworzyć katalog Business Intelligence.
- Utwórz model danych: W katalogu BI przejdź do odpowiedniego folderu, na przykład Shared Folders > Custom. Kliknij menu „New” i wybierz „Data Model”.
- Skonfiguruj zbiór danych z zapytania SQL: W edytorze Data Model kliknij ikonę „+”, aby utworzyć nowy zbiór danych, i wybierz „SQL Query”. W oknie dialogowym podaj nazwę zbioru, na przykład „OrderToCash_EventLog”, wybierz „Oracle BI EE” jako źródło danych i „Standard SQL” jako typ SQL.
- Wprowadź zapytanie SQL: Skopiuj całe zapytanie SQL z sekcji „query” tego dokumentu i wklej je w polu tekstowym SQL Query. Zapytanie zawiera parametry daty początkowej i końcowej (:p_start_date i :p_end_date), które BI Publisher rozpozna automatycznie.
- Skonfiguruj właściwości modelu danych: Po wklejeniu zapytania kliknij „OK”. W lewym panelu edytora modelu danych przejdź do sekcji „Properties”. Zaznacz opcję „Include Parameter Tags”. W razie potrzeby można też ustawić domyślne wartości parametrów daty.
- Wyświetl i zapisz model danych: Kliknij kartę „Data”. Może pojawić się prośba o podanie wartości parametrów daty. Wprowadź krótki zakres dat do testu. Kliknij „View”, aby wyświetlić przykładowe dane. Jeśli dane są poprawne, zapisz model, klikając ikonę zapisu, i nadaj mu opisową nazwę, na przykład „OrderToCash_EventLog_DM”.
- Utwórz raport na podstawie modelu danych: Po zapisaniu modelu kliknij przycisk „Create Report” w prawym górnym rogu. Otworzy się kreator tworzenia raportu.
- Skonfiguruj raport: W kreatorze wybierz opcję „Use Data Model”. Kreator przeprowadzi Państwa przez ustawienia układu. W przypadku prostego eksportu CSV można wybrać układ „Table”. Przeciągnij wszystkie kolumny do tabeli. Kliknij „Next”, a następnie odznacz „Show Grand Totals Row”. Kliknij „Finish”, aby zapisać raport. Nadaj mu nazwę, na przykład „OrderToCash_EventLog_Report”.
- Uruchom raport: Otwórz utworzony raport. Pojawi się prośba o podanie daty początkowej i końcowej pobierania danych. Wprowadź wybrany zakres dat.
- Wyeksportuj dane: Po wygenerowaniu raportu kliknij menu „View” i wybierz inną opcję widoku, na przykład „View Report”. Następnie znajdź odnośnik lub ikonę „Export” i wybierz format „CSV”. Spowoduje to pobranie pliku dziennika zdarzeń.
- Przygotuj plik do przesłania: Otwórz pobrany plik CSV. Sprawdź, czy nagłówki kolumn odpowiadają wymaganym atrybutom: SalesOrder, ActivityName, EventTime, UserName, SalesOrderTotalAmount, CustomerName, SalesChannel, RequestedDeliveryDate, ActualDeliveryDate, PaymentDueDate i IsAutomated. Plik jest gotowy do przesłania do narzędzia process mining.
Konfiguracja
- Uprawnienia użytkownika: Wymagana jest rola z uprawnieniami do tworzenia modeli danych i raportów BI Publisher, na przykład „BI Administrator” lub „BI Author”.
- Źródło danych: Zapytanie jest przeznaczone dla standardowego źródła danych aplikacji „Oracle BI EE”, które łączy się z transakcyjną bazą danych (Fusion Apps). Zwykle nie wymaga ono specjalnej konfiguracji.
- Parametry zakresu dat: Zapytanie używa dwóch parametrów, :p_start_date i :p_end_date, do filtrowania danych. Zaleca się pobieranie danych w partiach o możliwej do obsłużenia wielkości, na przykład z 3 do 6 miesięcy, aby uniknąć przekroczenia limitu czasu raportu i problemów z wydajnością.
- Filtrowanie według jednostki biznesowej: Aby ograniczyć zakres pobierania, można dodać do klauzuli WHERE w CTE BaseOrders zapytania filtr według identyfikatora jednostki biznesowej, na przykład AND dhead.SUBMITTING_BU_ID IN ([Your Business Unit ID]).
- Filtrowanie według typu zamówienia: Można też filtrować według określonych typów zamówień sprzedaży, dodając warunek dotyczący dhead.SOURCE_ORDER_TYPE_CODE w CTE BaseOrders.
- Wydajność: W przypadku bardzo dużych zbiorów danych obejmujących kilka lat ta metoda z jednym zapytaniem może działać wolno. Warto uruchamiać ją poza godzinami szczytu lub podzielić pobieranie na mniejsze, miesięczne partie. W modelu danych nie należy zaznaczać właściwości „Enable SQL Pruning”, ponieważ może ona zakłócać działanie złożonych zapytań UNION.
Przykładowe zapytanie sql
WITH BaseOrders AS (
SELECT
dhead.HEADER_ID,
dhead.ORDER_NUMBER AS SalesOrder,
dhead.CREATION_DATE,
dhead.CREATED_BY,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dhead.CREATED_BY AND ROWNUM = 1) AS UserName,
dhead.SUBMITTING_BU_ID,
dhead.AMOUNT AS SalesOrderTotalAmount,
hp_sold.PARTY_NAME AS CustomerName,
dhead.SALES_CHANNEL_CODE AS SalesChannel,
dfl.REQUEST_SHIP_DATE AS RequestedDeliveryDate
FROM
DOO_HEADERS_ALL dhead
JOIN
DOO_FULFILL_LINES_ALL dfl ON dhead.HEADER_ID = dfl.HEADER_ID
JOIN
HZ_CUST_ACCOUNTS hc_sold ON dhead.SOLD_TO_CUSTOMER_ID = hc_sold.CUST_ACCOUNT_ID
JOIN
HZ_PARTIES hp_sold ON hc_sold.PARTY_ID = hp_sold.PARTY_ID
WHERE
dhead.OBJECT_VERSION_NUMBER = 1
AND dfl.LINE_NUMBER = 1 -- To avoid duplicating header-level events for each line
AND dhead.CREATION_DATE BETWEEN TO_DATE(:p_start_date, 'YYYY-MM-DD') AND TO_DATE(:p_end_date, 'YYYY-MM-DD')
)
-- 1. Sales Order Created
SELECT
bo.SalesOrder,
'Sales Order Created' AS ActivityName,
bo.CREATION_DATE AS EventTime,
bo.UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN bo.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM BaseOrders bo
UNION ALL
-- 2. Credit Check Performed (inferred from Credit Hold Release)
SELECT
bo.SalesOrder,
'Credit Check Performed' AS ActivityName,
dha.RELEASED_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dha.RELEASED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dha.RELEASED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HOLDS_ALL dha
JOIN BaseOrders bo ON dha.HEADER_ID = bo.HEADER_ID
WHERE dha.HOLD_CODE = '[Your Credit Check Hold Code]' AND dha.RELEASED_FLAG = 'Y' AND dha.RELEASED_DATE IS NOT NULL
UNION ALL
-- 3. Credit Hold Applied
SELECT
bo.SalesOrder,
'Credit Hold Applied' AS ActivityName,
dha.APPLIED_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dha.APPLIED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dha.APPLIED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HOLDS_ALL dha
JOIN BaseOrders bo ON dha.HEADER_ID = bo.HEADER_ID
WHERE dha.HOLD_CODE = '[Your Credit Check Hold Code]' AND dha.APPLIED_DATE IS NOT NULL
UNION ALL
-- 4. Order Confirmed (inferred from status 'Awaiting Shipping')
SELECT
bo.SalesOrder,
'Order Confirmed' AS ActivityName,
dfl.STATUS_CHANGE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dfl.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dfl.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_FULFILL_LINES_ALL dfl
JOIN BaseOrders bo ON dfl.HEADER_ID = bo.HEADER_ID
WHERE dfl.STATUS_CODE = 'AWAIT_SHIP'
UNION ALL
-- 5. Inventory Reserved
SELECT
bo.SalesOrder,
'Inventory Reserved' AS ActivityName,
irl.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = irl.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN irl.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM INV_RESERVATIONS irl
JOIN DOO_FULFILL_LINES_ALL dfl ON irl.DEMAND_SOURCE_LINE_ID = dfl.FULFILL_LINE_ID
JOIN BaseOrders bo ON dfl.HEADER_ID = bo.HEADER_ID
WHERE irl.DEMAND_SOURCE_TYPE_ID = 2 -- Order Entry
UNION ALL
-- 6. Goods Picked (inferred from delivery detail status 'Staged')
SELECT
bo.SalesOrder,
'Goods Picked' AS ActivityName,
wdd.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = wdd.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN wdd.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM WSH_DELIVERY_DETAILS wdd
JOIN BaseOrders bo ON wdd.SOURCE_HEADER_NUMBER = bo.SalesOrder
WHERE wdd.RELEASED_STATUS = 'S' -- 'S' typically means Staged/Picked
UNION ALL
-- 7. Goods Shipped
SELECT
bo.SalesOrder,
'Goods Shipped' AS ActivityName,
wnd.INITIAL_PICKUP_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = wnd.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN wnd.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM WSH_NEW_DELIVERIES wnd
JOIN WSH_DELIVERY_ASSIGNMENTS wda ON wnd.DELIVERY_ID = wda.DELIVERY_ID
JOIN WSH_DELIVERY_DETAILS wdd ON wda.DELIVERY_DETAIL_ID = wdd.DELIVERY_DETAIL_ID
JOIN BaseOrders bo ON wdd.SOURCE_HEADER_NUMBER = bo.SalesOrder
WHERE wnd.STATUS_CODE = 'CL' -- Closed/Shipped
UNION ALL
-- 8. Goods Delivered
SELECT
bo.SalesOrder,
'Goods Delivered' AS ActivityName,
wnd.ULTIMATE_DROPOFF_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = wnd.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
wnd.ULTIMATE_DROPOFF_DATE AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN wnd.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM WSH_NEW_DELIVERIES wnd
JOIN WSH_DELIVERY_ASSIGNMENTS wda ON wnd.DELIVERY_ID = wda.DELIVERY_ID
JOIN WSH_DELIVERY_DETAILS wdd ON wda.DELIVERY_DETAIL_ID = wdd.DELIVERY_DETAIL_ID
JOIN BaseOrders bo ON wdd.SOURCE_HEADER_NUMBER = bo.SalesOrder
WHERE wnd.ULTIMATE_DROPOFF_DATE IS NOT NULL
UNION ALL
-- 9. Invoice Created
SELECT
bo.SalesOrder,
'Invoice Created' AS ActivityName,
rct.TRX_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = rct.CREATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
aps.DUE_DATE AS PaymentDueDate,
CASE WHEN rct.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM RA_CUSTOMER_TRX_ALL rct
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl ON rct.CUSTOMER_TRX_ID = rctl.CUSTOMER_TRX_ID
JOIN AR_PAYMENT_SCHEDULES_ALL aps ON rct.CUSTOMER_TRX_ID = aps.CUSTOMER_TRX_ID
JOIN BaseOrders bo ON rctl.INTERFACE_LINE_ATTRIBUTE1 = bo.SalesOrder
WHERE rctl.INTERFACE_LINE_CONTEXT = 'ORDER ENTRY' AND rctl.LINE_TYPE = 'LINE'
UNION ALL
-- 10. Invoice Corrected (Credit Memo)
SELECT
bo.SalesOrder,
'Invoice Corrected' AS ActivityName,
rct_cm.TRX_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = rct_cm.CREATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN rct_cm.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM RA_CUSTOMER_TRX_ALL rct_cm
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl_cm ON rct_cm.CUSTOMER_TRX_ID = rctl_cm.CUSTOMER_TRX_ID
JOIN RA_CUSTOMER_TRX_ALL rct_orig ON rct_cm.PREVIOUS_CUSTOMER_TRX_ID = rct_orig.CUSTOMER_TRX_ID
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl_orig ON rct_orig.CUSTOMER_TRX_ID = rctl_orig.CUSTOMER_TRX_ID
JOIN BaseOrders bo ON rctl_orig.INTERFACE_LINE_ATTRIBUTE1 = bo.SalesOrder
WHERE rctl_orig.INTERFACE_LINE_CONTEXT = 'ORDER ENTRY' AND rctl_cm.LINE_TYPE = 'LINE'
UNION ALL
-- 11. Payment Received
SELECT
bo.SalesOrder,
'Payment Received' AS ActivityName,
araa.APPLY_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = araa.CREATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN araa.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM AR_RECEIVABLE_APPLICATIONS_ALL araa
JOIN RA_CUSTOMER_TRX_ALL rct ON araa.APPLIED_CUSTOMER_TRX_ID = rct.CUSTOMER_TRX_ID
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl ON rct.CUSTOMER_TRX_ID = rctl.CUSTOMER_TRX_ID
JOIN BaseOrders bo ON rctl.INTERFACE_LINE_ATTRIBUTE1 = bo.SalesOrder
WHERE araa.STATUS = 'APP' AND rctl.INTERFACE_LINE_CONTEXT = 'ORDER ENTRY' AND rctl.LINE_TYPE = 'LINE'
UNION ALL
-- 12. Order Line Closed
SELECT
bo.SalesOrder,
'Order Line Closed' AS ActivityName,
dfl.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dfl.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dfl.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_FULFILL_LINES_ALL dfl
JOIN BaseOrders bo ON dfl.HEADER_ID = bo.HEADER_ID
WHERE dfl.STATUS_CODE = 'CLOSED'
UNION ALL
-- 13. Order Closed
SELECT
bo.SalesOrder,
'Order Closed' AS ActivityName,
dhead.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dhead.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dhead.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HEADERS_ALL dhead
JOIN BaseOrders bo ON dhead.HEADER_ID = bo.HEADER_ID
WHERE dhead.STATUS_CODE = 'CLOSED'
UNION ALL
-- 14. Order Cancelled
SELECT
bo.SalesOrder,
'Order Cancelled' AS ActivityName,
dhead.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dhead.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dhead.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HEADERS_ALL dhead
JOIN BaseOrders bo ON dhead.HEADER_ID = bo.HEADER_ID
WHERE dhead.STATUS_CODE = 'CANCELED' Kroki
- Otwórz konsolę BICC: Zaloguj się do instancji Oracle Fusion Applications jako użytkownik z rolą BICC_ADMINISTRATOR. Przejdź do Tools i wybierz z menu Business Intelligence Cloud Connector.
- Skonfiguruj miejsce docelowe: W konsoli BICC kliknij „Configure External Storage”, aby skonfigurować miejsce docelowe: Oracle Universal Content Management (UCM) lub zasobnik OCI Object Storage. Sprawdź, czy dane połączenia i dane uwierzytelniające są poprawne.
- Utwórz zadanie pobierania danych: Przejdź do sekcji „Manage Extract Jobs”. Kliknij ikonę „+”, aby utworzyć zadanie. Nadaj mu opisową nazwę, na przykład ProcessMind_O2C_SalesOrder_Extract.
- Wybierz magazyny danych (PVO): W konfiguracji zadania wyszukaj i dodaj obiekty Public View Objects (PVO) potrzebne do rejestrowania cyklu życia zamówienia sprzedaży. Należy dodać kilka PVO, w tym FscmTopModelAM.DooTopAM.Header, FscmTopModelAM.DooTopAM.FulfillLine, FscmTopModelAM.DooTopAM.HoldInstance, FscmTopModelAM.ScmTopAM.ShipmentLine, FscmTopModelAM.ArTopAM.ReceivableInvoice i FscmTopModelAM.ArTopAM.CashReceiptApplication.
- Skonfiguruj kolumny dla każdego PVO: Dla każdego wybranego PVO kliknij menu „Actions” i wybierz „Select Columns”. Wybierz kolumny potrzebne do utworzenia dziennika zdarzeń, takie jak HeaderId, CreationDate, ShippedDate, TrxDate, ApplyDate i identyfikatory użytkowników. Szczegółową listę wymaganych kolumn z każdego PVO można znaleźć w specyfikacji zapytania.
- Ustaw filtry dla pobierania przyrostowego: Aby kontrolować ilość danych, ustaw dla każdego PVO filtr na podstawie kolumny LastUpdateDate. Przy pierwszym uruchomieniu można wybrać szeroki zakres dat. Przy kolejnych zaplanowanych uruchomieniach filtr powinien obejmować tylko rekordy zmienione od poprzedniego wykonania zadania.
- Zaplanuj pobieranie danych: Przejdź do sekcji „Manage Schedule” i utwórz harmonogram zadania. Zaleca się uruchamianie go poza godzinami szczytu, na przykład codziennie w nocy, aby ograniczyć wpływ na wydajność systemu.
- Prześlij zadanie i monitoruj jego przebieg: Po skonfigurowaniu prześlij zadanie. Jego postęp można śledzić na ekranie „Manage Extract Jobs”. Po pomyślnym zakończeniu pliki danych będą dostępne w skonfigurowanej lokalizacji w chmurze jako skompresowane pliki CSV.
- Przekształć surowe dane w dziennik zdarzeń: Pobierz wyeksportowane pliki CSV. BICC udostępnia surowe dane z tabel, a nie gotowy dziennik zdarzeń. Do przetworzenia plików potrzebne będzie zewnętrzne narzędzie, na przykład Python, skrypt bazodanowy lub platforma ETL. Obejmuje to:
- Łączenie danych z różnych plików, na przykład powiązanie danych faktury z nagłówkiem zamówienia sprzedaży.
- Przekształcenie kolumn z datami w osobne wiersze aktywności. Na przykład z pliku FscmTopModelAM.DooTopAM.Header należy utworzyć jeden wiersz „Utworzono zamówienie sprzedaży” na podstawie CreationDate i drugi „Zamknięto zamówienie” na podstawie ClosedDate.
- Mapowanie kodów statusu lub flag na konkretne aktywności, takie jak „Potwierdzono zamówienie” lub „Anulowano zamówienie”.
- Połączenie wszystkich przekształconych danych w jednym pliku z wymaganymi kolumnami: SalesOrder, ActivityName i EventTime.
- Przygotuj plik do przesłania: Zapisz końcowy plik jako pojedynczy CSV z kolumnami odpowiadającymi wymaganym i zalecanym atrybutom. Plik jest gotowy do przesłania do ProcessMind.
Konfiguracja
- Wybór PVO: Poprawność dziennika zdarzeń zależy od wyboru właściwych PVO. Do najważniejszych należą FscmTopModelAM.DooTopAM.Header (utworzenie i zamknięcie zamówienia), FscmTopModelAM.ScmTopAM.ShipmentLine (zdarzenia wysyłki) oraz FscmTopModelAM.ArTopAM.ReceivableInvoice (fakturowanie).
- Pobieranie przyrostowe: Przy cyklicznym pobieraniu danych zawsze stosuj filtr LastUpdateDate. Ma to duże znaczenie dla wydajności i zapobiega wielokrotnemu pobieraniu tego samego zbioru danych o rozmiarze wielu gigabajtów. Pierwsze pełne pobranie stanowi punkt odniesienia, a kolejne obejmują tylko zmiany.
- Zakres dat: Przy pierwszym pobieraniu danych historycznych wybierz reprezentatywny okres, na przykład ostatnie 3 do 6 miesięcy. Pozwoli to zachować odpowiedni zakres danych i kontrolować ich ilość. Kolejne pobrania będą przyrostowe.
- Konfiguracja miejsca przechowywania: BICC może eksportować dane do Oracle UCM lub OCI Object Storage. W przypadku dużych zbiorów danych zwykle zaleca się OCI Object Storage, które łatwiej zintegrować z dalszymi narzędziami ETL.
- Harmonogram zadań: Zaplanuj pobieranie danych poza godzinami pracy, aby uniknąć ewentualnego spadku wydajności transakcyjnego systemu Oracle Fusion Financials.
- Wymagania wstępne: Osoby konfigurujące zadanie muszą mieć rolę BICC_ADMINISTRATOR. Należy wcześniej skonfigurować dane uwierzytelniające do magazynu w chmurze i określić sposób przekształcania danych po ich pobraniu.
Przykładowe zapytanie config
# BICC Data Store (PVO) and Column Selection Manifest
# This manifest outlines the PVOs and columns to select in the BICC UI for the extract job.
# PVO for Sales Order Header information (Created, Confirmed, Closed, Cancelled events)
PVO: FscmTopModelAM.DooTopAM.Header
Columns:
- HeaderId -> SalesOrder
- CreationDate -> EventTime (for 'Sales Order Created')
- CreatedBy -> UserName (for 'Sales Order Created')
- LastUpdateDate # For incremental filtering
- StatusCode
- SubmittedDate -> EventTime (for 'Order Confirmed')
- SubmittedBy -> UserName (for 'Order Confirmed')
- OrderedTotal -> SalesOrderTotalAmount
- SoldToPartyName -> CustomerName
- SourceSalesChannelCode -> SalesChannel
- RequestShipDate -> RequestedDeliveryDate
- ClosedDate -> EventTime (for 'Order Closed')
- CanceledFlag
- CanceledDate -> EventTime (for 'Order Cancelled')
# PVO for Sales Order Lines (Line Closed event)
PVO: FscmTopModelAM.DooTopAM.FulfillLine
Columns:
- HeaderId -> SalesOrder
- ActualCompletionDate -> EventTime (for 'Order Line Closed')
- LastUpdateDate # For incremental filtering
- LastUpdatedBy -> UserName
- StatusName # To confirm closed status
# PVO for Holds (Credit Hold Applied event)
PVO: FscmTopModelAM.DooTopAM.HoldInstance
Columns:
- SourceHeaderId -> SalesOrder
- CreationDate -> EventTime (for 'Credit Hold Applied')
- CreatedBy -> UserName
- HoldName # To filter for credit-related holds
# PVO for Shipments (Picked, Shipped, Delivered events)
PVO: FscmTopModelAM.ScmTopAM.ShipmentLine
Columns:
- SourceHeaderNumber -> SalesOrder
- PickedDate -> EventTime (for 'Goods Picked')
- ShippedDate -> EventTime (for 'Goods Shipped')
- ActualDeliveryDate -> ActualDeliveryDate & EventTime (for 'Goods Delivered')
- LastUpdateDate # For incremental filtering
- LastUpdatedBy -> UserName
# PVO for Invoices (Invoice Created, Invoice Corrected events)
PVO: FscmTopModelAM.ArTopAM.ReceivableInvoice
Columns:
- InterfaceHeaderAttribute1 -> SalesOrder # Link to SO via reference field
- TrxDate -> EventTime (for 'Invoice Created')
- CreatedBy -> UserName
- DueDate -> PaymentDueDate
- PreviousTrxNumber # If populated, indicates a correction
- CreationDate # Can be used for 'Invoice Corrected' if a new record is made
- LastUpdateDate # For incremental filtering
# PVO for Payments (Payment Received event)
PVO: FscmTopModelAM.ArTopAM.CashReceiptApplication
Columns:
- AppliedCustomerTrxId # ID to link back to the invoice
- ApplyDate -> EventTime (for 'Payment Received')
- CreatedBy -> UserName
- LastUpdateDate # For incremental filtering Gotowi do rozpoczęcia?
Skorzystaj z tego szablonu, aby usprawnić zbieranie danych i rozpocząć pracę z process mining. Już dziś zacznij optymalizować proces Order to Cash, obsługę zamówień sprzedaży.
Już dziś usprawnij proces Order to Cash, obsługę zamówień sprzedaży
Łatwo wykryj wąskie gardła i skróć czas cyklu Order to Cash o 30%.
Nie trzeba podawać danych karty płatniczej. Okres próbny trwa 14 dni.