Szablon danych do planowania produkcji
Szablon danych do planowania produkcji
- Zalecane atrybuty do zebrania
- Działania do śledzenia
- Wskazówki dotyczące pobierania danych z Microsoft Dynamics 365 Manufacturing
Atrybuty planowania produkcji
| Nazwa | Opis | ||
|---|---|---|---|
| Zlecenie produkcyjne ProductionOrderNumber | Unikalny identyfikator zlecenia produkcyjnego, używany jako główny identyfikator case do śledzenia powiązanych czynności planowania i realizacji. | ||
| Opis Numer zlecenia produkcyjnego, często określany w Microsoft Dynamics 365 jako ProdId, to główny identyfikator łączący wszystkie zdarzenia, materiały, zasoby i koszty związane z konkretnym zleceniem produkcyjnym. Umożliwia pełną analizę cyklu planowania i realizacji pojedynczego zlecenia, od początku do końca. W process mining ten atrybut jest niezbędny do grupowania powiązanych zdarzeń w jeden case. Analiza według numeru zlecenia produkcyjnego pomaga wykrywać wąskie gardła, opóźnienia i odstępstwa od standardowego przebiegu produkcji, od utworzenia i zaplanowania zlecenia po jego zakończenie i rozliczenie kosztów. Dlaczego to ważne To podstawowy identyfikator case, niezbędny do grupowania powiązanych zdarzeń i odtworzenia całego procesu planowania produkcji na potrzeby analizy. Skąd pobrać To pole „ProdId” w tabeli „ProdTable” w Microsoft Dynamics 365 Manufacturing. Przykłady WO-000456WO-000457WO-000458 | |||
| Czas zdarzenia EventTime | Dokładny znacznik czasu wskazujący, kiedy wystąpiła dana czynność. | ||
| Opis Czas zdarzenia, czyli znacznik czasu, zapisuje dokładną datę i godzinę wykonania danej czynności. Te dane są podstawą analiz process mining opartych na czasie, takich jak obliczanie cyklu, wykrywanie opóźnień między etapami i ocena zmian wyników procesu w czasie. W planowaniu produkcji ten atrybut służy do mierzenia takich okresów jak czas planowania, opóźnienie rozpoczęcia produkcji i łączny czas realizacji zlecenia. Dokładne znaczniki czasu w prawidłowej kolejności są niezbędne do zbudowania poprawnego i użytecznego modelu procesu. Dlaczego to ważne Ten znacznik czasu jest niezbędny do ustalenia kolejności zdarzeń, obliczania czasu między czynnościami i prowadzenia analiz opartych na czasie, takich jak pomiar cyklu i wykrywanie wąskich gardeł. Skąd pobrać Dane znajdują się w różnych tabelach transakcyjnych, na przykład w polu „createdDateTime” tabeli „ProdTable” lub w polach daty transakcji tabel „ProdRouteTrans”, „ProdJournalRoute” i „ProdJournalBOM”. Przykłady 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Data ostatniej aktualizacji danych LastDataUpdate | Znacznik czasu wskazujący, kiedy dane dotyczące tego zdarzenia zostały ostatnio odświeżone lub wyodrębnione z systemu źródłowego. | ||
| Opis Ten atrybut zawiera datę i godzinę ostatniego pobrania danych z systemu źródłowego. To pole metadanych pomaga ocenić aktualność analizy. Informacja o dacie ostatniej aktualizacji pozwala analitykom i użytkownikom biznesowym ocenić, na ile można polegać na wnioskach z narzędzia process mining. Pokazuje, czy dashboardy przedstawiają informacje bieżące, czy dane z wcześniejszego okresu, co ma znaczenie przy podejmowaniu decyzji operacyjnych. Dlaczego to ważne Ten atrybut wspiera zarządzanie danymi. Użytkownicy mogą sprawdzić, jak aktualne są dane, i ocenić, czy informacje o procesie odzwierciedlają właściwy okres. Skąd pobrać Ten znacznik czasu jest generowany i dodawany do każdego rekordu podczas procesu wyodrębniania, przekształcania i ładowania danych (ETL). Przykłady 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Nazwa czynności ActivityName | Nazwa konkretnego zdarzenia biznesowego lub etapu, który wystąpił w procesie planowania produkcji. | ||
| Opis Nazwa czynności opisuje pojedynczy etap cyklu planowania produkcji, na przykład „Utworzono zlecenie produkcyjne”, „Pobrano materiały do produkcji” lub „Rozpoczęto produkcję”. Czynności te składają się na mapę procesu. Analiza ich kolejności i czasu trwania pozwala zobrazować przebieg procesu, wskazać typowe ścieżki, wykryć pętle ponownej pracy i zmierzyć czas spędzony na poszczególnych etapach. Ten atrybut pomaga zrozumieć, co dzieje się w każdym punkcie procesu. Dlaczego to ważne Ten atrybut określa etapy procesu. Umożliwia utworzenie mapy procesu oraz analizę jego przebiegu, wariantów i wąskich gardeł. Skąd pobrać Wartość pochodzi zwykle z dzienników zdarzeń lub jest ustalana przez mapowanie zmian statusu i typów transakcji w tabelach takich jak „ProdRouteTrans” i „ProdJournalBOM” oraz zmian pól statusu w tabeli „ProdTable”. Przykłady Utworzono zlecenie produkcyjneZwolniono zlecenie produkcyjneRozpoczęto produkcjęZgłoszono zakończenie produkcji | |||
| System źródłowy SourceSystem | System, z którego wyodrębniono dane. | ||
| Opis Ten atrybut wskazuje źródłowy system informatyczny, z którego pochodzą dane o zdarzeniach. W tym widoku procesu jego wartością będzie zawsze „Microsoft Dynamics 365 Manufacturing”. W środowiskach z wieloma zintegrowanymi systemami pole to pomaga śledzić pochodzenie danych, rozwiązywać problemy z ich jakością i ustalić, jak poszczególne systemy wpływają na cały proces. Pozwala jednoznacznie określić źródło analizowanych danych. Dlaczego to ważne Informacja o pochodzeniu danych jest niezbędna do zarządzania nimi i ich weryfikacji, a także do obsługi potoków danych z wielu systemów przedsiębiorstwa. Skąd pobrać To stała wartość, którą należy dodać podczas wyodrębniania i przekształcania danych, aby oznaczyć ich źródło. Przykłady Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Numer produktu ProductNumber | Unikalny identyfikator wytwarzanego produktu. | ||
| Opis Numer produktu, czyli identyfikator pozycji, określa wyrób gotowy, który ma powstać w ramach zlecenia produkcyjnego. Łączy proces produkcji z konkretnym wyrobem, jego zestawieniem materiałowym i instrukcjami technologicznymi. Analiza procesu według numeru produktu pozwala wykryć różnice w przebiegu produkcji poszczególnych wyrobów. Może pokazać, że wytwarzanie niektórych produktów trwa dłużej, wymaga więcej poprawek lub częściej się opóźnia. Takie informacje są przydatne dla inżynierów produktu i procesu. Dlaczego to ważne Pozwala analizować różnice w przebiegu procesu zależnie od wytwarzanego produktu oraz wskazywać wąskie gardła i problemy jakościowe dotyczące konkretnych wyrobów. Skąd pobrać To pole „ItemId” w tabeli „ProdTable”. Przykłady FG-1001FG-2050ASSY-500B | |||
| Planowana data rozpoczęcia PlannedStartDate | Data i godzina, na które zaplanowano rozpoczęcie zlecenia produkcyjnego. | ||
| Opis Planowana data rozpoczęcia to jeden z wyników harmonogramowania. Określa docelowy termin rozpoczęcia produkcji dla danego zlecenia. Przy jej ustalaniu uwzględnia się dostępność materiałów, zdolności produkcyjne zasobów i terminy zapotrzebowania. Atrybut ten służy do analizy realizacji harmonogramu. Porównując planowaną datę rozpoczęcia z faktycznym rozpoczęciem produkcji (znacznikiem czasu aktywności „Production Started”), można mierzyć terminowość, ustalać przyczyny opóźnień i obliczać KPI, takie jak wskaźnik realizacji harmonogramu produkcji. Dlaczego to ważne Stanowi punkt odniesienia przy ocenie realizacji harmonogramu i ustalaniu opóźnień między planowanym a faktycznym rozpoczęciem produkcji. Skąd pobrać To pole „SchedStart” w tabeli „ProdTable”. Przykłady 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Planowana data zakończenia PlannedEndDate | Data i godzina, na które zaplanowano zakończenie zlecenia produkcyjnego. | ||
| Opis Planowana data zakończenia to termin, w którym zlecenie produkcyjne ma zostać zrealizowane zgodnie z harmonogramem. Przy jej ustalaniu system uwzględnia czas operacji, kalendarze zasobów i czasy realizacji, aby oszacować, kiedy gotowe wyroby będą dostępne. W analizie procesów atrybut ten służy do oceny terminowości realizacji. Porównanie planowanej daty zakończenia z faktycznym znacznikiem czasu zakończenia (aktywności „Production Reported As Finished” lub „Production Order Ended”) pozwala obliczyć KPI terminowości zakończenia produkcji i ustalić systemowe przyczyny opóźnień dostaw. Dlaczego to ważne Atrybut ten stanowi punkt odniesienia przy pomiarze terminowości realizacji i ocenie dokładności harmonogramowania produkcji. Skąd pobrać To pole „SchedEnd” w tabeli „ProdTable”. Przykłady 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Priorytet produkcji ProductionPriority | Ocena określająca pilność lub priorytet zlecenia produkcyjnego. | ||
| Opis Priorytet produkcji to pole, którego planiści i osoby harmonogramujące używają do ustalania kolejności prac na hali produkcyjnej. Zlecenia o wyższym priorytecie mogą być realizowane w trybie przyspieszonym, co może zakłócić harmonogram pozostałych zleceń. Analiza tego atrybutu pomaga ustalić, jak często plany produkcji zmieniają się z powodu zleceń o wysokim priorytecie lub realizowanych w trybie przyspieszonym. Śledzenie zmian priorytetu w trakcie realizacji zlecenia może ujawnić niestabilność popytu lub planowania. Atrybut ten jest wykorzystywany w dashboardzie „Trendy w przyspieszonej produkcji” i KPI „Udział przyspieszonych zleceń produkcyjnych”. Dlaczego to ważne Pomaga określić częstotliwość i wpływ zleceń realizowanych w trybie przyspieszonym, co może wskazywać na niestabilność planowania lub reaktywne zarządzanie operacyjne. Skąd pobrać Może to być standardowe lub niestandardowe pole w tabeli „ProdTable”. Konfiguracja często zależy od firmy. Przykłady NormalnyWysokiPilny | |||
| Rzeczywista ilość ActualQuantity | Liczba wyrobów wyprodukowanych i zgłoszonych jako gotowe w ramach zlecenia. | ||
| Opis Rzeczywista ilość oznacza liczbę sztuk ukończonych i pozytywnie przechodzących kontrolę jakości w ramach danego zlecenia produkcyjnego. Wartość jest zapisywana po zgłoszeniu produkcji jako „Reported as finished”. Atrybut ten służy do analizy uzysku produkcji i wydajności. Porównanie rzeczywistej ilości z ilością planowaną pozwala obliczyć poziom braków i ocenić straty produkcyjne. Wartość ta jest również wykorzystywana w analizie przepustowości i dashboardach dotyczących wykorzystania zdolności produkcyjnych. Dlaczego to ważne Atrybut ten służy do obliczania uzysku produkcji, poziomu braków i rzeczywistej przepustowości, a tym samym do oceny wydajności i wyników produkcji. Skąd pobrać Wartość często pochodzi z pola „QtyGood” w tabeli „ProdTable” lub powiązanych tabelach księgowań dziennika, gdy zlecenie zostaje zgłoszone jako zakończone. Przykłady 100985000 | |||
| Status zlecenia produkcyjnego ProductionOrderStatus | Bieżący status zlecenia produkcyjnego w jego cyklu życia. | ||
| Opis Status zlecenia produkcyjnego pokazuje postęp zlecenia w cyklu produkcyjnym. Typowe statusy w Dynamics 365 to: Utworzone, Oszacowane, Zaplanowane, Zwolnione, Rozpoczęte, Zgłoszono zakończenie produkcji i Zakończone. Atrybut ten pokazuje, na jakim etapie znajduje się każde zlecenie. W process mining analiza zmian statusu jest podstawowym sposobem definiowania czynności i poznawania przebiegu procesu. Można filtrować zlecenia według statusu, mierzyć czas spędzony w każdym z nich oraz wykrywać zlecenia, które utknęły lub są opóźnione. Dlaczego to ważne Ten atrybut daje ogólny obraz postępu zlecenia. Pomaga filtrować dane, sprawdzać zgodność procesu i analizować czas spędzony na poszczególnych etapach produkcji. Skąd pobrać To pole „ProdStatus” w tabeli „ProdTable”. Przykłady ZaplanowaneZwolnioneRozpoczęteZakończone | |||
| Typ produkcji ProductionType | Klasyfikacja zlecenia produkcyjnego, na przykład produkcja standardowa, poprawki lub produkcja na potrzeby projektu. | ||
| Opis Typ produkcji określa cel zlecenia. Na przykład zlecenie „Standard” dotyczy zwykłej produkcji na zapas, zlecenie „Rework” służy do usunięcia wad wcześniej wytworzonego produktu, a zlecenie „Project” jest powiązane z konkretnym projektem klienta. Atrybut ten pozwala tworzyć porównywalne widoki analizy. Proces realizacji zlecenia na poprawki z natury różni się od procesu standardowego. Podział analizy według typu produkcji pozwala rzetelnie porównywać wyniki i lepiej zrozumieć specyfikę każdego typu zlecenia. Dlaczego to ważne Atrybut ten pozwala dzielić wyniki analizy na segmenty. Różne typy zleceń, takie jak „Standard” i „Rework”, przebiegają innymi ścieżkami i mają inne oczekiwane wyniki. Skąd pobrać To pole „ProdType” w tabeli „ProdTable”. Przykłady StandardowePoprawkiProjektowe | |||
| Użytkownik UserId | Identyfikator użytkownika, który wykonał daną aktywność lub odpowiada za jej wykonanie. | ||
| Opis Identyfikator użytkownika wskazuje pracownika lub konto systemowe, które wykonało dany krok procesu, na przykład zwolniło zlecenie albo zgłosiło jego zakończenie. Dzięki tej informacji wiadomo, kto wykonuje pracę w ramach procesu. Analiza procesu według użytkownika pomaga ocenić rozkład obciążenia, wskazać potrzeby szkoleniowe, porównać wyniki poszczególnych osób lub zespołów oraz zbadać odstępstwa związane z działaniami konkretnych użytkowników. Informacja ta jest również istotna z punktu widzenia zgodności i ścieżki audytowej. Dlaczego to ważne Pozwala analizować wyniki procesu według użytkownika lub zespołu, wskazywać możliwości automatyzacji i prowadzić ścieżkę audytową najważniejszych aktywności. Skąd pobrać Dane te znajdują się między innymi w polach „modifiedBy” lub „createdBy” w różnych tabelach oraz w polach użytkownika w tabelach dzienników transakcji, takich jak „ProdJournalTable”. Przykłady j.smithm.jonesAX_BATCH_SVC | |||
| Zakład produkcyjny ProductionPlant | Zakład lub lokalizacja, w której realizowane jest zlecenie produkcyjne. | ||
| Opis Zakład produkcyjny wskazuje fizyczną lokalizację lub obiekt odpowiedzialny za realizację procesu produkcyjnego. To ważny wymiar organizacyjny, który pozwala dzielić wyniki produkcji na segmenty i porównywać je między zakładami. W process mining atrybut ten umożliwia porównywanie wyników różnych zakładów. Analitycy mogą zestawiać czasy cyklu, wykorzystanie zasobów i zgodność ze standardowymi procesami, aby wskazać dobre praktyki lub zakłady wymagające usprawnień operacyjnych. Atrybut jest też niezbędny do analizy wykorzystania zdolności produkcyjnych. Dlaczego to ważne Umożliwia porównywanie wyników i analizę porównawczą zakładów produkcyjnych, co pomaga wskazać dobre praktyki i problemy występujące w konkretnych lokalizacjach. Skąd pobrać To pole „InventSiteId” w tabeli „ProdTable”. Przykłady SITE-ASITE-BMain-WH | |||
| Czas zakończenia EndTime | Dokładny znacznik czasu wskazujący, kiedy aktywność została zakończona. | ||
| Opis Czas zakończenia wskazuje, kiedy dana aktywność dobiegła końca. Czas rozpoczęcia określa jej początek, a czas zakończenia pozwala ustalić rzeczywisty czas trwania lub przetwarzania pojedynczego kroku. W process mining znaczniki czasu rozpoczęcia i zakończenia aktywności umożliwiają dokładniejszą analizę czasu oczekiwania i czasu przetwarzania. Pozwalają odróżnić czas aktywnej pracy nad zadaniem od czasu oczekiwania na rozpoczęcie kolejnego kroku, co jest istotne przy szczegółowej analizie wąskich gardeł. Dlaczego to ważne Pozwala obliczyć czas przetwarzania aktywności i odróżnić go od czasu oczekiwania, co umożliwia dokładniejszą analizę wąskich gardeł. Skąd pobrać Często jest wyliczany. Na przykład czas zakończenia aktywności „Production Started” może odpowiadać czasowi rozpoczęcia aktywności „Operation Completed”. W niektórych dziennikach znacznik czasu zakończenia jest zapisywany bezpośrednio. Przykłady 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Dostępność materiałów MaterialAvailabilityStatus | Informuje, czy materiały potrzebne do realizacji zlecenia produkcyjnego są dostępne. | ||
| Opis Atrybut ten określa, czy komponenty potrzebne do produkcji są gotowe. Może przyjmować wartości takie jak „Available”, „On Order” lub „Shortage”. Informacja ta pomaga osobom harmonogramującym ocenić, czy zlecenie może rzeczywiście rozpocząć się zgodnie z planem. W process mining atrybut ten pomaga ustalić przyczyny opóźnień rozpoczęcia produkcji. Łącząc jego wartość z czasem między aktywnościami „Production Order Released” i „Production Started”, analitycy mogą zmierzyć wpływ braków materiałowych na realizację harmonogramu i całkowity czas cyklu. Informacja ta zasila dashboard „Wpływ opóźnień na dostępność materiałów”. Dlaczego to ważne Pomaga zrozumieć i zmierzyć opóźnienia rozpoczęcia produkcji spowodowane brakami materiałowymi oraz powiązać wyniki łańcucha dostaw z wydajnością produkcji. Skąd pobrać Status ten często nie jest zapisany w jednym polu. Można go wyliczyć, sprawdzając w tabeli „InventSum” stan magazynowy wszystkich pozycji z zestawienia materiałowego (BOM) zlecenia produkcyjnego. Przykłady W pełni dostępneCzęściowy brakNiedostępne | |||
| Liczba zmian planu ProductionOrderRevisionNumber | Liczba korekt planu produkcji wprowadzonych po jego pierwszym utworzeniu. | ||
| Opis Atrybut ten zlicza zmiany wprowadzone do zlecenia produkcyjnego po jego zaplanowaniu lub zwolnieniu, na przykład korekty ilości, terminów lub marszruty. Większa liczba zmian wskazuje na mniejszą stabilność planu. Wartość ta bezpośrednio służy do obliczania KPI „Wskaźnik zmian planu produkcji”. Analiza pomaga ustalić źródła niestabilności planowania, takie jak częste zmiany popytu lub niedokładne planowanie początkowe. Pozwala zmierzyć nakład pracy związany z poprawkami i ponownym harmonogramowaniem, które często obniżają wydajność. Dlaczego to ważne Bezpośrednio mierzy stabilność planowania i zasila KPI „Wskaźnik zmian planu produkcji”, wskazując procesy wymagające nadmiernych korekt i poprawek. Skąd pobrać To atrybut wyliczany przez zliczenie aktywności „Production Order Adjusted” dla każdego przypadku. Przykłady 012 | |||
| Linia produkcyjna ProductionLine | Konkretna linia produkcyjna, gniazdo robocze lub grupa zasobów przypisana do zlecenia produkcyjnego. | ||
| Opis Linia produkcyjna wskazuje konkretną maszynę, gniazdo lub grupę zasobów, które realizują operacje produkcyjne. Zapewnia dokładniejszy poziom szczegółowości niż zakład produkcyjny. Analiza procesu według linii produkcyjnej jest niezbędna do szczegółowej oceny zdolności produkcyjnych i wykorzystania zasobów. Pomaga wskazać przeciążone gniazda robocze, porównać wydajność linii wytwarzających ten sam produkt i znaleźć wąskie gardła związane z konkretnymi zasobami, których nie widać na poziomie zakładu. Dlaczego to ważne Umożliwia szczegółową analizę wykorzystania zasobów i wyników, pomagając wskazać przeciążone gniazda robocze lub nieefektywne linie. Skąd pobrać Informacje te często znajdują się w polu „WrkCtrId” w transakcjach marszruty produkcyjnej (tabele „ProdRoute” lub „ProdRouteTrans”). Przykłady LINE-01LINE-02CNC-A | |||
| Numer zlecenia kontroli jakości QualityOrderNumber | Identyfikator zlecenia kontroli jakości powiązanego ze zleceniem produkcyjnym. | ||
| Opis Gdy wymagana jest kontrola jakości, w Dynamics 365 często tworzone jest zlecenie kontroli jakości. Atrybut ten łączy proces produkcji z procesem zapewnienia jakości i zawiera identyfikator powiązanego zlecenia. Dzięki temu można analizować cały proces, uwzględniając również działania związane z zarządzaniem jakością. Pozwala to ocenić wpływ kontroli jakości na czas realizacji produkcji, wskazać opóźnienia w procesie kontroli i sprawdzić, jak często kontrolowane są poszczególne produkty lub linie produkcyjne. Dlaczego to ważne Łączy proces produkcji z procesem zapewnienia jakości, umożliwiając analizę wpływu kontroli jakości na całkowity czas realizacji. Skąd pobrać Informacje te są przechowywane w tabelach zarządzania jakością, na przykład „InventQualityOrderTable”, i trzeba je powiązać ze zleceniem produkcyjnym. Przykłady QO-00123QO-00124QO-00125 | |||
| Opóźnienie rozpoczęcia produkcji ProductionStartDelay | Czas, jaki upływa od zwolnienia zlecenia do faktycznego rozpoczęcia produkcji. | ||
| Opis Ten wyliczany czas określa czas oczekiwania lub kolejki na hali produkcyjnej. Jest to różnica między aktywnościami „Production Order Released” i „Production Started”. KPI ten jest istotny dla dashboardu „Analiza opóźnień w przydziale zasobów”, ponieważ wskazuje opóźnienia powstające po zakończeniu planowania, gdy zlecenie jest już gotowe do realizacji. Wysokie wartości mogą świadczyć o problemach z dostępnością zasobów, przygotowaniem materiałów lub przepływem informacji na halę produkcyjną. Dzięki temu łatwiej wskazać obszary wymagające usprawnień operacyjnych. Dlaczego to ważne Dokładnie mierzy opóźnienie między gotowością zlecenia a rozpoczęciem produkcji, pomagając wskazać wąskie gardła związane z dostępnością zasobów lub gotowością hali. Skąd pobrać To miara wyliczana według wzoru: znacznik czasu „Production Started” - znacznik czasu „Production Order Released”. Przykłady 0 dni 4 godz. 15 min1 dzień 2 godz. 0 min0 dni 1 godz. 30 min | |||
| Planowana ilość PlannedQuantity | Liczba sztuk, których produkcję zaplanowano. | ||
| Opis Planowana ilość to docelowa liczba sztuk do wyprodukowania w ramach danego zlecenia. Zwykle wynika z zapotrzebowania z zamówień sprzedaży, wymaganego zapasu bezpieczeństwa lub planowania głównego. Atrybut ten stanowi punkt odniesienia przy obliczaniu wskaźników uzysku i braków. Porównując planowaną ilość z rzeczywistą liczbą wyprodukowanych sztuk, planiści mogą monitorować wydajność produkcji i odchylenia zużycia materiałów. To podstawowa dana przy planowaniu zdolności produkcyjnych i zapotrzebowania na materiały. Dlaczego to ważne To ilość bazowa używana do pomiaru uzysku produkcji i poziomu braków przez porównanie jej z rzeczywistą liczbą wyprodukowanych sztuk. Skąd pobrać To pole „QtySched” w tabeli „ProdTable”. Przykłady 1005000250 | |||
| Rozpoczęcie na czas ProductionScheduleAdherence | Wartość logiczna true, jeśli zlecenie produkcyjne rozpoczęło się w planowanym terminie lub wcześniej. | ||
| Opis Ten wyliczany atrybut w prosty, binarny sposób wskazuje, czy produkcja rozpoczęła się zgodnie z harmonogramem. Porównuje faktyczny znacznik czasu rozpoczęcia (zdarzenie „Production Started”) z atrybutem „PlannedStartDate”. Wskaźnik ten ułatwia tworzenie czytelnych dashboardów i KPI, takich jak „Wskaźnik realizacji harmonogramu produkcji”. Pozwala łatwo filtrować i agregować dane, aby sprawdzić, jaki odsetek zleceń rozpoczyna się na czas, oraz analizować cechy zleceń opóźnionych. Nie trzeba przy tym bezpośrednio porównywać dat w narzędziu analitycznym. Dlaczego to ważne Ułatwia raportowanie i obliczanie KPI dotyczących realizacji harmonogramu. Pozwala łatwo filtrować i agregować zlecenia rozpoczęte na czas oraz opóźnione. Skąd pobrać To miara wyliczana według reguły: czas zdarzenia „Production Started” <= PlannedStartDate. Przykłady truefalse | |||
Działania w procesie planowania produkcji
| Działanie | Opis | ||
|---|---|---|---|
| Rozpoczęto produkcję | Oznacza rozpoczęcie fizycznej realizacji zlecenia na hali produkcyjnej. Zdarzenie jest często rejestrowane, gdy rozpoczyna się pierwsza operacja lub zadanie, na przykład za pośrednictwem terminala hali produkcyjnej lub zaksięgowania dziennika. | ||
| Dlaczego to ważne To zdarzenie wskazuje rzeczywisty czas rozpoczęcia produkcji. Jest potrzebne do obliczania opóźnień rozpoczęcia, zgodności z harmonogramem i rzeczywistego czasu realizacji. Skąd pobrać Zdarzenie jest rejestrowane, gdy status zlecenia produkcyjnego w tabeli ProdTable zmienia się na „Rozpoczęte”. Często wywołuje je zaksięgowanie karty pracy lub dziennika karty marszruty dla pierwszej operacji. Rejestrowanie Wykryj znacznik czasu zmiany wartości pola ProdStatus w tabeli ProdTable na „Rozpoczęte”. Typ zdarzenia inferred | |||
| Utworzono zlecenie produkcyjne | To zdarzenie oznacza utworzenie zlecenia produkcyjnego, które formalizuje zapotrzebowanie na określoną ilość produktu. Zwykle jest rejestrowane w chwili zatwierdzenia planowanego zlecenia produkcyjnego, gdy w systemie powstaje oficjalny rekord z unikalnym identyfikatorem. | ||
| Dlaczego to ważne To główne zdarzenie rozpoczynające proces produkcji. Analiza czasu od utworzenia zlecenia do kolejnych etapów pozwala mierzyć łączny czas i sprawność planowania. Skąd pobrać Zdarzenie jest ustalane na podstawie znacznika czasu utworzenia rekordu zlecenia produkcyjnego w tabeli ProdTable. Początkowy status to zwykle „Utworzone”. Rejestrowanie Zarejestruj znacznik czasu utworzenia nowego wpisu w tabeli ProdTable, w którym ProdStatus ma wartość „Utworzone”. Typ zdarzenia inferred | |||
| Zakończono zlecenie produkcyjne | To ostatnia czynność, która oznacza finansowe zamknięcie zlecenia produkcyjnego. Wszystkie koszty zostały obliczone i zaksięgowane, a do zlecenia nie można już przypisać kolejnych transakcji. | ||
| Dlaczego to ważne To oznacza faktyczne zakończenie zlecenia zarówno pod względem fizycznym, jak i finansowym. Opóźnienie między zgłoszeniem zakończenia produkcji a zamknięciem zlecenia może wskazywać na problemy z rozliczaniem kosztów lub zamknięciem finansowym. Skąd pobrać To ostatnia zmiana statusu, rejestrowana, gdy pole „ProdStatus” w tabeli „ProdTable” przyjmuje wartość „Zakończone”. Zmianę wywołuje obliczenie kosztów i zamknięcie zlecenia. Rejestrowanie Wykryj znacznik czasu zmiany wartości pola ProdStatus w tabeli ProdTable na „Zakończone”. Typ zdarzenia inferred | |||
| Zaplanowano zlecenie produkcyjne | To zdarzenie oznacza zaplanowanie zlecenia produkcyjnego, czyli przydzielenie konkretnych zasobów, dat i godzin dla jego operacji. Może obejmować harmonogramowanie operacji lub bardziej szczegółowe planowanie zadań. | ||
| Dlaczego to ważne Harmonogramowanie ma zasadnicze znaczenie dla planowania mocy produkcyjnych i zarządzania zasobami. Analiza czasu potrzebnego na zaplanowanie zleceń oraz przerwy przed ich zwolnieniem ujawnia ograniczenia w planowaniu i dostępnych mocach. Skąd pobrać Zdarzenie jest rejestrowane, gdy status zlecenia produkcyjnego w tabeli ProdTable zmienia się na „Zaplanowane”. Zmianę wywołuje użytkownik, uruchamiając funkcję harmonogramowania. Rejestrowanie Wykryj znacznik czasu zmiany wartości pola ProdStatus w tabeli ProdTable na „Zaplanowane”. Typ zdarzenia inferred | |||
| Zgłoszono zakończenie produkcji | Oznacza, że produkcja określonej ilości produktu została fizycznie zakończona, a wyroby gotowe znajdują się już w zapasach. Ta ważna zmiana statusu uruchamia transakcje magazynowe. | ||
| Dlaczego to ważne To zdarzenie oznacza koniec fizycznej produkcji. Jest niezbędne do obliczania terminowości realizacji, rzeczywistego czasu produkcji i przepustowości. Skąd pobrać Zdarzenie jest rejestrowane, gdy status zlecenia produkcyjnego w tabeli ProdTable zmienia się na „Zgłoszono zakończenie produkcji”. Zmianę wywołuje zaksięgowanie dziennika zgłoszenia zakończenia produkcji. Rejestrowanie Wykryj znacznik czasu zmiany wartości pola ProdStatus w tabeli ProdTable na „Zgłoszono zakończenie produkcji”. Typ zdarzenia inferred | |||
| Zwolniono zlecenie produkcyjne | To zdarzenie oznacza, że zlecenie produkcyjne zostało zatwierdzone i dopuszczone do realizacji na hali produkcyjnej. Jest to ważny etap, po którym udostępniane są między innymi karty pracy i karty marszruty. | ||
| Dlaczego to ważne To formalne przekazanie zlecenia z planowania do realizacji. Czas między statusem „Zaplanowane” a „Zwolnione” może wskazywać na opóźnienia w zatwierdzaniu lub kontrolach końcowych. Czas od „Zwolnione” do „Rozpoczęte” pokazuje gotowość hali produkcyjnej. Skąd pobrać Zdarzenie jest rejestrowane, gdy status zlecenia produkcyjnego w tabeli ProdTable zmienia się na „Zwolnione”. Zmianę wywołuje użytkownik ręcznie lub automatycznie. Rejestrowanie Wykryj znacznik czasu zmiany wartości pola ProdStatus w tabeli ProdTable na „Zwolnione”. Typ zdarzenia inferred | |||
| Anulowano zlecenie produkcyjne | Oznacza anulowanie zlecenia produkcyjnego przed jego zakończeniem. Jest to alternatywne, niepowodzeniem zakończone wyjście z procesu. | ||
| Dlaczego to ważne Śledzenie anulowań pomaga ustalić przyczyny niepowodzeń procesu, takie jak zmiany popytu lub błędy w planowaniu. Wysoki odsetek anulowań może wskazywać na problemy systemowe. Skąd pobrać To alternatywny stan końcowy, który można ustalić na podstawie zmiany statusu. Dokładny status może się różnić, ale często polega na przywróceniu wcześniejszego statusu zlecenia i oznaczeniu go jako anulowanego. Rejestrowanie Wykryj zmianę statusu wskazującą na anulowanie. Jej identyfikacja może wymagać szczegółowej analizy systemu. Typ zdarzenia inferred | |||
| Oszacowano zlecenie produkcyjne | To zdarzenie oznacza obliczenie szacowanego zużycia materiałów i kosztów dla zlecenia produkcyjnego. Jest to ważny etap planowania, który pozwala określić wymagania finansowe i materiałowe przed dalszą realizacją. | ||
| Dlaczego to ważne Opóźnienia w szacowaniu mogą tworzyć istotne wąskie gardło na etapie planowania. Śledzenie tej czynności pomaga wykryć nieefektywności w planowaniu kosztów i materiałów. Skąd pobrać Zdarzenie jest rejestrowane, gdy status zlecenia produkcyjnego w tabeli ProdTable zmienia się na „Oszacowane”. Zmianę wywołuje użytkownik, uruchamiając dla zlecenia funkcję „Szacuj”. Rejestrowanie Wykryj znacznik czasu zmiany wartości pola ProdStatus w tabeli ProdTable na „Oszacowane”. Typ zdarzenia inferred | |||
| Pobrano materiały do produkcji | Oznacza, że surowce potrzebne do realizacji zlecenia produkcyjnego zostały pobrane z magazynu i są gotowe do zużycia. Zdarzenie jest rejestrowane po zakończeniu pracy związanej z pobraniem surowców lub zaksięgowaniu dziennika listy pobrania. | ||
| Dlaczego to ważne To ważny warunek rozpoczęcia produkcji. Opóźnienia między zaplanowaniem zlecenia a pobraniem materiałów wskazują na problemy w operacjach magazynowych lub z dostępnością materiałów. Skąd pobrać Zdarzenie jest zwykle rejestrowane w tabelach zarządzania magazynem (WHSWorkTable) lub dziennikach zapasów (InventJournalTrans) powiązanych ze zleceniem produkcyjnym. Rejestrowanie Zarejestruj znacznik czasu zaksięgowania dziennika listy pobrania powiązanego ze zleceniem produkcyjnym. Typ zdarzenia explicit | |||
| Utworzono zlecenie kontroli jakości | Utworzono zlecenie kontroli jakości, aby sprawdzić wynik zlecenia produkcyjnego. To zdarzenie oznacza rozpoczęcie kontroli jakości wyprodukowanych towarów. | ||
| Dlaczego to ważne Śledzenie kontroli jakości pomaga zrozumieć łączny czas realizacji. Opóźnienia kontroli mogą uniemożliwić wysyłkę towarów lub ich wykorzystanie w kolejnych procesach. Skąd pobrać Zdarzenie jest rejestrowane po utworzeniu rekordu w tabeli InventQualityOrderTable, który wskazuje źródłowe zlecenie produkcyjne. Rejestrowanie Zarejestruj znacznik czasu utworzenia zlecenia kontroli jakości w tabeli InventQualityOrderTable powiązanego z identyfikatorem zlecenia produkcyjnego. Typ zdarzenia explicit | |||
| Zakończono kontrolę jakości z wynikiem pozytywnym | Oznacza pomyślne zakończenie i zatwierdzenie kontroli jakości powiązanej z daną serią produkcyjną. Potwierdza, że wyprodukowane elementy spełniają wymagane normy jakości. | ||
| Dlaczego to ważne To ważny etap kontroli jakości. Czas od utworzenia zlecenia kontroli do pozytywnego wyniku pokazuje sprawność zespołu kontroli jakości. Skąd pobrać Zdarzenie można ustalić na podstawie zmiany statusu rekordu w tabeli InventQualityOrderTable na „Zaliczono”. Konkretna wartość statusu może się różnić. Rejestrowanie Wykryj znacznik czasu zmiany statusu powiązanego rekordu w tabeli InventQualityOrderTable na „Zaliczono”. Typ zdarzenia inferred | |||
| Zakończono operację | To zdarzenie oznacza zakończenie pojedynczej operacji produkcyjnej lub etapu marszruty. Jedno zlecenie produkcyjne zwykle obejmuje kilka takich zdarzeń. | ||
| Dlaczego to ważne Analiza czasu między operacjami pomaga wykrywać wąskie gardła w samym procesie produkcji. Daje też bardziej szczegółowy obraz przebiegu pracy na hali. Skąd pobrać Zdarzenie jest rejestrowane podczas księgowania dzienników kart marszruty (ProdJournalRoute) dla poszczególnych operacji i oznacza zakończenie danego etapu. Rejestrowanie Zarejestruj znacznik czasu zaksięgowania każdego rekordu ProdJournalRoute powiązanego ze zleceniem produkcyjnym. Typ zdarzenia explicit | |||
| Zmieniono zlecenie produkcyjne | Oznacza istotną zmianę zlecenia produkcyjnego po jego zwolnieniu, na przykład zmianę ilości lub terminu. Zdarzenie można ustalić, porównując ważne pola przed zmianą i po niej. | ||
| Dlaczego to ważne Częste zmiany wskazują na niestabilne planowanie lub zmienny popyt, co prowadzi do nieefektywności i ponownej pracy. Analiza pozwala określić częstotliwość i wpływ takich zmian. Skąd pobrać Zdarzenie można ustalić na podstawie dzienników zmian lub porównania migawek rekordu ProdTable, na przykład pól „QtySched” lub „SchedEnd”, po zmianie statusu zlecenia na „Zwolnione”. Rejestrowanie Wykryj zmiany ważnych pól, takich jak ilość i daty, w tabeli ProdTable po znaczniku czasu zdarzenia „Zwolnione”. Typ zdarzenia calculated | |||
Instrukcje pobierania danych
Kroki
- Otwórz obszar roboczy Data Management: Zaloguj się do Microsoft Dynamics 365 Finance and Operations. Wyszukaj obszar roboczy
Data managementi przejdź do niego. - Utwórz projekt eksportu: W obszarze roboczym wybierz kafelek
Export, aby utworzyć projekt eksportu danych. Nadaj mu opisową nazwę, na przykładProcessMind_Production_Orders. - Wybierz format pliku eksportu: W konfiguracji projektu wybierz format danych, na przykład CSV lub Excel. Ustaw opcję
Entityi określ szczegóły formatu. Ze względu na wydajność i zgodność zalecany jest format CSV. - Dodaj wymagane jednostki danych: Dodaj do projektu jednostki danych potrzebne do zarejestrowania wszystkich zdarzeń dotyczących zleceń produkcyjnych. Dodaj każdą z następujących jednostek:
Production orders,Production order route transactions,Inventory quality ordersorazProduction picking list journal lines. Dla każdej jednostki wybierz wszystkie odpowiednie pola wymienione w sekcji zapytania. - Ustaw filtry danych: Dla każdej jednostki użyj opcji
Filter, aby ograniczyć eksportowane dane. Co najmniej ustaw filtrCompany, aby wybrać właściwą jednostkę prawną. Zaleca się również ograniczyć zakres dat na podstawie ważnego pola, na przykładCreation datew jednostceProduction orders. Pozwoli to wybrać możliwy do przetworzenia okres, na przykład ostatnie 6 miesięcy. - Skonfiguruj eksport przyrostowy (opcjonalnie): Jeśli analiza ma być prowadzona na bieżąco, skonfiguruj eksport przyrostowy. Można śledzić zmiany w jednostkach źródłowych i pobierać tylko nowe lub zmodyfikowane rekordy od ostatniego eksportu, co znacznie skraca czas eksportu.
- Uruchom zadanie eksportu: Po skonfigurowaniu projektu rozpocznij eksport, klikając
Exportw panelu akcji. Można uruchomić go od razu lub zaplanować jako cykliczne zadanie wsadowe. - Pobierz wyeksportowane pliki: Po pomyślnym zakończeniu zadania przejdź do historii zadań. Pobierz pakiet ZIP zawierający osobne pliki danych dla każdej uwzględnionej jednostki.
- Przekształć dane w dziennik zdarzeń: Wyeksportowane pliki zawierają surowe dane z tabel, a nie gotowy dziennik zdarzeń. Do przetworzenia i połączenia danych z tych plików potrzebne jest zewnętrzne narzędzie, na przykład skrypt Python, Power Query w Excelu lub Power BI albo narzędzie ETL. Zastosuj logikę przekształceń opisaną w sekcji zapytania, aby przekształcić pola dat i statusów z różnych jednostek w jeden plik dziennika zdarzeń, z jednym wierszem na każde działanie.
- Przygotuj końcowy dziennik zdarzeń: Upewnij się, że końcowy plik CSV zawiera wymagane kolumny:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemiLastDataUpdate, a także zalecane atrybuty. Plik powinien mieć wiersz nagłówka i być gotowy do przesłania do ProcessMind.
Konfiguracja
- Najważniejsze jednostki danych: Eksport obejmuje kilka jednostek, które należy później połączyć. Główne jednostki to
Production orders(ProdTable),Production order route transactions(ProdRouteTrans) iInventory quality orders(InventQualityOrderTable). - Filtrowanie zakresu dat: Aby ograniczyć ilość danych, zawsze stosuj filtr dat. Zaleca się filtrować jednostkę
Production orderswedług polaCreation date(CREATEDDATETIME), wybierając ostatnie 3–6 miesięcy. Dzięki temu można pobrać pełne i aktualne dane o procesach bez nadmiernego obciążania systemu. - Filtr firmy: Ustaw filtr dla konkretnej firmy lub jednostki prawnej, którą ma obejmować analiza. W projekcie eksportu filtr ustawia się za pomocą opcji
Filterdla każdej jednostki. - Pełny czy przyrostowy eksport: Przy pierwszym pobraniu danych wymagany jest pełny eksport. Przy kolejnych aktualizacjach zaleca się skonfigurować śledzenie zmian w jednostkach i wykonywać eksporty przyrostowe, aby poprawić wydajność i ograniczyć ilość przetwarzanych danych.
- Wymagania wstępne: Użytkownik uruchamiający eksport musi mieć odpowiednie role zabezpieczeń, zwykle
Data management administratorlub rolę z uprawnieniami dostępu do wymaganych jednostek danych.
Przykładowe zapytanie sql
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system Kroki
- Skonfiguruj BYOD w Dynamics 365: Sprawdź, czy funkcja „Bring your own database” jest skonfigurowana w środowisku Dynamics 365 Finance and Operations. Wymaga to utworzenia Azure SQL Database i skonfigurowania eksportu danych z Dynamics 365.
- Opublikuj wymagane jednostki: W obszarze roboczym „Data management” przejdź do „Data entities”. Wyszukaj i opublikuj w bazie BYOD następujące jednostki: ProdTable, ProdRouteTrans, InventPickingListJour i InventQualityOrderTable. Skonfiguruj je do eksportu cyklicznego.
- Sprawdź synchronizację danych: Upewnij się, że dane z opublikowanych jednostek są prawidłowo i regularnie synchronizowane z docelową Azure SQL Database. Sprawdź historię zadań eksportu pod kątem błędów.
- Połącz się z bazą BYOD: Użyj klienta SQL, na przykład SQL Server Management Studio (SSMS) lub Azure Data Studio, aby połączyć się z Azure SQL Database, w której znajdują się dane Dynamics 365.
- Przygotuj zapytanie SQL: Otwórz nowe okno zapytania i skopiuj pełne zapytanie SQL z tego dokumentu.
- Ustaw parametry zapytania: Znajdź w zapytaniu zmienne zastępcze. Zastąp
{StartDate},{EndDate}i{CompanyCode}wybranym zakresem dat oraz identyfikatorem DataAreaId firmy, którą ma objąć analiza. - Uruchom zapytanie: Wykonaj zmodyfikowane zapytanie SQL w bazie BYOD. Czas wykonania zależy od ilości danych i wybranego zakresu dat.
- Sprawdź wyniki: Po zakończeniu zapytania sprawdź, czy wynik zawiera oczekiwane kolumny i dane dotyczące wszystkich pobranych działań. Zestaw wyników stanowi dziennik zdarzeń.
- Wyeksportuj dziennik zdarzeń: Zapisz wyniki zapytania w pliku CSV. Większość klientów SQL ma wbudowaną funkcję bezpośredniego zapisywania wyników do pliku.
- Przygotuj plik dla ProcessMind: Upewnij się, że wyeksportowany plik CSV jest zapisany w kodowaniu UTF-8, a nagłówki kolumn odpowiadają nazwom atrybutów wymaganym przez ProcessMind, na przykład CaseId, Activity i Timestamp. W zapytaniu zastosowano już prawidłowe aliasy.
Konfiguracja
- Najważniejsze jednostki danych: Zapytanie wymaga wyeksportowania do instancji BYOD następujących jednostek:
PRODTABLE: zawiera główne informacje nagłówka zlecenia produkcyjnego i jego status.PRODROUTETRANS: zawiera szczegóły poszczególnych operacji produkcyjnych i ich zakończenia.INVENTPICKINGLISTJOUR: rejestruje pobranie materiałów na potrzeby zleceń produkcyjnych.INVENTQUALITYORDERTABLE: śledzi zlecenia kontroli jakości powiązane z produkcją.
- Zakres dat: Na początek zaleca się wybrać ograniczony zakres, na przykład dane z 3–6 miesięcy, aby zapytanie działało sprawnie. Do filtrowania zapytanie wykorzystuje datę utworzenia zlecenia produkcyjnego (
CREATEDDATETIMEzPRODTABLE). - Filtr kodu firmy: Pole
DATAREAIDsłuży do filtrowania danych dla konkretnej jednostki prawnej lub firmy. Zastąp wartość zastępczą'{CompanyCode}'odpowiednim identyfikatorem, na przykład 'usmf'. - Wymagania wstępne: Ta metoda wymaga uprawnień administratora systemu w Dynamics 365 Finance and Operations do skonfigurowania BYOD oraz uprawnień Contributor w Azure SQL Database do wykonywania zapytań.
- Wydajność: W przypadku bardzo dużych zbiorów danych obejmujących kilka lat lub firm warto uruchamiać zapytanie poza godzinami szczytu. Można też podzielić pobieranie na krótsze okresy i później połączyć wyniki.
Przykładowe zapytanie sql
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
p.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity, -- Using calculated quantity at creation
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
p.COSTCALCDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.COSTCALCDATETIME IS NOT NULL AND p.PRODSTATUS >= 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
p.SCHEDDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.SCHEDDATE IS NOT NULL AND p.PRODSTATUS >= 3 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
pl.LEDGERVOUCHERPOSTEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
pl.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTPICKINGLISTJOUR pl
JOIN PRODTABLE p ON pl.INVENTREFID = p.PRODID AND pl.DATAREAID = p.DATAREAID
WHERE pl.LEDGERVOUCHERPOSTEDDATETIME IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
p.RELEASEDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.PRODSTATUS >= 4 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.MODIFIEDDATETIME > p.RELEASEDATE AND p.PRODSTATUS IN (4, 5) AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
p.STARTEDUPDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.STARTEDUPDATETIME IS NOT NULL AND p.PRODSTATUS >= 5 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
prt.PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
prt.TRANSDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
prt.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODROUTETRANS prt
JOIN PRODTABLE p ON prt.PRODID = p.PRODID AND prt.DATAREAID = p.DATAREAID
WHERE prt.POSTINGTYPE = 8 AND prt.TRANSDATE IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 6 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
qo.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
qo.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND qo.STATUS = 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 7 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 0 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'; Kroki
- Upewnij się, że dostępny jest Power BI Desktop lub inne zatwierdzone narzędzie z Power Query oraz że użytkownik ma uprawnienia do odczytu wymaganych jednostek danych Microsoft Dynamics 365 Manufacturing. Sprawdź adres URL środowiska, zakres jednostki prawnej lub firmy oraz zatwierdzoną metodę uwierzytelniania.
- W Power BI Desktop wybierz opcję pobierania danych i zatwierdzony konektor Dynamics 365 albo połączenie OData lub Dataverse właściwe dla organizacji. Użyj ustawień [Your Dynamics 365 environment connection] i [Your credentials] skonfigurowanych przez administratora. Nie zakładaj, że konkretna jednostka, punkt końcowy lub ścieżka w menu są dostępne w każdym wdrożeniu.
- Wybierz jednostkę nagłówków zleceń produkcyjnych, jednostkę operacji lub marszrut zleceń, jednostkę pobrania materiałów lub list pobrania, jednostki księgowań produkcyjnych, jednostkę zleceń kontroli jakości oraz zatwierdzone jednostki audytu, historii lub śledzenia zmian potrzebne do wykrywania zmian statusu. W zapytaniu zastąp każde odwołanie do źródła odpowiednią jednostką lub zapytaniem dostępnym w danym środowisku.
- Określ zakres pobierania danych. Ustaw [Start date parameter], [End date parameter] i [Your company or legal entity filter]. Ogranicz zapytanie do zleceń produkcyjnych z wymaganych zakładów, dla wskazanych produktów, typów zleceń i statusów. Zachowaj znaczniki czasu ze źródła, które pozwalają rozróżnić utworzenie, kalkulację, harmonogramowanie, pobranie materiałów, zwolnienie, korektę, rozpoczęcie, zakończenie operacji, zgłoszenie zakończenia produkcji, kontrolę jakości, zamknięcie i anulowanie.
- W Power Query ujednolić nazwy kolumn źródłowych i typy danych. Ustaw spójny typ daty i czasu dla znaczników czasu oraz ujednolić identyfikatory, statusy, wartości firmy i zakładu, numery produktów, użytkowników, ilości i priorytety. Jeśli pole źródłowe jest niedostępne, zwróć wartość null zamiast ją wymyślać. Jako identyfikatora case użyj numeru zlecenia produkcyjnego.
- Utwórz osobną tabelę zdarzeń dla każdego działania. Każda tabela musi zawierać kolumny ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity i ProductionPriority. Nazwa działania musi być stałą wartością zgodną z jedną z 13 wymaganych nazw.
- Zdarzenie Production Order Adjusted identyfikuj wyłącznie na podstawie zatwierdzonego źródła historii zmian, audytu lub śledzenia zmian, które zawiera stan przed zmianą i po niej. Porównuj odpowiednie pola, takie jak ilość, planowane daty, status, zakład, produkt i priorytet. Dla każdej kwalifikującej się zmiany dodaj wiersz korekty z zarejestrowanym znacznikiem czasu. Nie wnioskuj o korekcie wyłącznie na podstawie bieżącego obrazu zlecenia produkcyjnego.
- Połącz wszystkie 13 tabel zdarzeń za pomocą UNION ALL. Usuń wiersze bez numeru zlecenia produkcyjnego lub znacznika czasu zdarzenia, ale nie usuwaj powtarzających się, prawidłowych zdarzeń zakończenia operacji, korekt ani kontroli jakości. Posortuj dane według ProductionOrderNumber i EventTime, a tam, gdzie to możliwe, zastosuj dodatkowe, deterministyczne kryterium sortowania.
- Załaduj wynikową tabelę do Power BI albo wyeksportuj ją jako CSV lub inny format dziennika zdarzeń obsługiwany przez ProcessMind. Upewnij się, że nagłówki eksportowanego pliku to dokładnie: ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity i ProductionPriority.
- Przed przesłaniem danych do ProcessMind sprawdź, czy każde wymagane działanie jest osobnym wierszem dziennika zdarzeń, znaczniki czasu używają tej samej strefy czasowej, pole ProductionOrderNumber jest wypełnione, a LastDataUpdate wskazuje moment odświeżenia danych. ProcessMind odczytuje dziennik zdarzeń w przekazanej postaci i nie uzupełnia brakujących zdarzeń.
Konfiguracja
- Połączenie: Użyj zatwierdzonego konektora Power Query i metody uwierzytelniania dla środowiska Dynamics 365. Zastąp [Your Dynamics 365 environment connection] i [Your credentials] wartościami zatwierdzonymi przez organizację.
- Jednostki źródłowe: Wybierz dostępne w środowisku jednostki nagłówków zleceń produkcyjnych, operacji lub marszrut, pobrania materiałów lub list pobrania, księgowań produkcyjnych, zleceń kontroli jakości oraz zatwierdzone jednostki audytu lub śledzenia zmian. Nazwy i dostępność jednostek zależą od wdrożenia. Sprawdź je w przeglądarce metadanych.
- Zakres dat: Zacznij od okresu 3–6 miesięcy. Jeśli to możliwe, filtruj dane źródłowe według EventTime. Rozszerz zakres podczas weryfikacji długo trwających zleceń produkcyjnych lub historycznych zmian statusu.
- Filtry firmy i zakładu: Zastosuj [Your company or legal entity filter] oraz, jeśli dotyczy, filtr wymaganego zakładu produkcyjnego. Nie używaj ogólnego filtra firmy, jeśli środowisko obejmuje kilka jednostek prawnych z nakładającymi się numerami zleceń.
- Filtry zleceń produkcyjnych: Filtruj według wymaganych typów zleceń produkcyjnych, produktów, zakładów, statusów i zakresów numerów zleceń. Nie wykluczaj zleceń anulowanych ani zamkniętych, jeśli te wyniki są potrzebne do analizy procesu.
- Uwzględnianie zdarzeń: Zachowaj powtarzające się zdarzenia zakończenia operacji, pobrania materiałów, kontroli jakości i korekt. Nie ograniczaj dziennika do jednego wiersza na zlecenie produkcyjne.
- Strefa czasowa: Przekształć wszystkie źródłowe znaczniki czasu do jednej udokumentowanej strefy czasowej. Zachowaj źródłowy znacznik czasu lub przesunięcie strefy, jeśli są dostępne.
- Metadane odświeżenia: W każdym wierszu wypełnij LastDataUpdate znacznikiem czasu odświeżenia lub pobrania danych. Jeśli cały zbiór jest pobierany podczas jednego odświeżenia, można użyć jednego znacznika czasu dla wszystkich wierszy.
- Wydajność: Przekaż filtry dat, firmy, zakładu i zleceń do źródła. Wybieraj tylko wymagane kolumny, unikaj niepotrzebnego łączenia tabel, przygotuj zapytania źródłowe do ponownego użycia i rozważ odświeżanie przyrostowe w przypadku dużych zbiorów danych.
- Wymagania wstępne: Power BI Desktop lub zatwierdzone środowisko Power Query, dostęp sieciowy do Dynamics 365, prawidłowe uprawnienia do odczytu wszystkich wybranych jednostek oraz wymagany dostęp do Dynamics 365 Manufacturing, magazynu, kontroli jakości, audytu lub śledzenia zmian.
- Dane zależne od konfiguracji: Jeśli wymagane źródło zdarzeń nie jest włączone, użyj [Configure based on your system] i udokumentuj brakujące źródło. Nie zastępuj zdarzeń historycznych bieżącym obrazem statusu.
Przykładowe zapytanie sql
let
StartDate = #datetime(2026, 1, 1, 0, 0, 0),
EndDate = #datetime(2026, 6, 30, 23, 59, 59),
CompanyFilter = "[Your company or legal entity filter]",
SourceSystemValue = "Microsoft Dynamics 365 Manufacturing",
RefreshTime = DateTimeZone.RemoveZone(DateTimeZone.UtcNow()),
ProductionOrderHeader = [Your production order header query],
ProductionOrderOperation = [Your production order operation or route query],
MaterialPicking = [Your material picking or picking list query],
ProductionPosting = [Your production posting query],
QualityOrder = [Your quality order query],
ProductionOrderHistory = [Your approved production order audit or change tracking query],
Header = Table.SelectRows(ProductionOrderHeader, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Operations = Table.SelectRows(ProductionOrderOperation, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Picking = Table.SelectRows(MaterialPicking, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Posting = Table.SelectRows(ProductionPosting, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Quality = Table.SelectRows(QualityOrder, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
History = Table.SelectRows(ProductionOrderHistory, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Created = Table.SelectRows(Header, each [EventType] = "Created" or [EventType] = "Firmed"),
Estimated = Table.SelectRows(Header, each [EventType] = "Estimated"),
Scheduled = Table.SelectRows(Operations, each [EventType] = "Scheduled"),
Picked = Table.SelectRows(Picking, each [EventType] = "Picked" or [EventType] = "Posted"),
Released = Table.SelectRows(Header, each [EventType] = "Released"),
Adjusted = Table.SelectRows(History, each [ChangedField] = "Quantity" or [ChangedField] = "PlannedStartDate" or [ChangedField] = "PlannedEndDate" or [ChangedField] = "Status" or [ChangedField] = "ProductionPlant" or [ChangedField] = "ProductNumber" or [ChangedField] = "ProductionPriority"),
Started = Table.SelectRows(Posting, each [EventType] = "Started"),
OperationCompleted = Table.SelectRows(Operations, each [EventType] = "Completed"),
ReportedFinished = Table.SelectRows(Posting, each [EventType] = "Reported as finished" or [EventType] = "Finished"),
QualityGenerated = Table.SelectRows(Quality, each [EventType] = "Generated" or [EventType] = "Created"),
QualityPassed = Table.SelectRows(Quality, each [EventType] = "Passed" or [EventType] = "Validated"),
Ended = Table.SelectRows(Header, each [EventType] = "Ended"),
Cancelled = Table.SelectRows(Header, each [EventType] = "Cancelled"),
ToEvent = (InputTable as table, Activity as text) as table =>
let
Selected = Table.SelectColumns(InputTable, {"ProductionOrderNumber", "EventTime", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}, MissingField.UseNull),
Named = Table.AddColumn(Selected, "ActivityName", each Activity, type text),
Source = Table.AddColumn(Named, "SourceSystem", each SourceSystemValue, type text),
Updated = Table.AddColumn(Source, "LastDataUpdate", each RefreshTime, type datetime),
Ordered = Table.ReorderColumns(Updated, {"ProductionOrderNumber", "ActivityName", "EventTime", "SourceSystem", "LastDataUpdate", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}),
Valid = Table.SelectRows(Ordered, each [ProductionOrderNumber] <> null and [ProductionOrderNumber] <> "" and [EventTime] <> null)
in
Valid,
EventsCreated = ToEvent(Created, "Production Order Created"),
EventsEstimated = ToEvent(Estimated, "Production Order Estimated"),
EventsScheduled = ToEvent(Scheduled, "Production Order Scheduled"),
EventsPicked = ToEvent(Picked, "Materials Picked For Production"),
EventsReleased = ToEvent(Released, "Production Order Released"),
EventsAdjusted = ToEvent(Adjusted, "Production Order Adjusted"),
EventsStarted = ToEvent(Started, "Production Started"),
EventsOperationCompleted = ToEvent(OperationCompleted, "Operation Completed"),
EventsReportedFinished = ToEvent(ReportedFinished, "Production Reported As Finished"),
EventsQualityGenerated = ToEvent(QualityGenerated, "Quality Order Generated"),
EventsQualityPassed = ToEvent(QualityPassed, "Quality Inspection Passed"),
EventsEnded = ToEvent(Ended, "Production Order Ended"),
EventsCancelled = ToEvent(Cancelled, "Production Order Cancelled"),
EventLog = Table.Combine({EventsCreated, EventsEstimated, EventsScheduled, EventsPicked, EventsReleased, EventsAdjusted, EventsStarted, EventsOperationCompleted, EventsReportedFinished, EventsQualityGenerated, EventsQualityPassed, EventsEnded, EventsCancelled}),
Typed = Table.TransformColumnTypes(EventLog, {{"ProductionOrderNumber", type text}, {"ActivityName", type text}, {"EventTime", type datetime}, {"SourceSystem", type text}, {"LastDataUpdate", type datetime}, {"ProductionOrderStatus", type text}, {"PlannedStartDate", type datetime}, {"PlannedEndDate", type datetime}, {"UserId", type text}, {"ProductionPlant", type text}, {"ProductNumber", type text}, {"ProductionType", type text}, {"ActualQuantity", type number}, {"ProductionPriority", type text}}),
Sorted = Table.Sort(Typed, {{"ProductionOrderNumber", Order.Ascending}, {"EventTime", Order.Ascending}, {"ActivityName", Order.Ascending}})
in
Sorted Gotowi do rozpoczęcia?
Ten szablon zawiera informacje potrzebne do rozpoczęcia pobierania i analizy danych dotyczących planowania produkcji. Już dziś zacznij usprawniać operacje i poprawiać ich efektywność.
Zwiększ efektywność i usprawnij planowanie produkcji
Wskaż wąskie gardła i skróć cykl produkcyjny o 30% lub więcej.
Karta kredytowa nie jest wymagana. Konfiguracja zajmuje kilka minut.