Szablon danych dotyczących utrzymania majątku
Szablon danych dotyczących utrzymania majątku
- Najważniejsze pola danych w dziennikach prac konserwacyjnych
- Standardowe etapy procesu i realizacji zleceń pracy
- Techniczne wskazówki dotyczące ekstrakcji danych z Hexagon EAM
Atrybuty utrzymania majątku
| Nazwa | Opis | ||
|---|---|---|---|
| Czynność ActivityName | Konkretne zadanie lub zdarzenie polegające na zmianie statusu. | ||
| Opis Ten atrybut określa wykonywany etap procesu, na przykład „Utworzenie zlecenia” lub „Wydanie materiałów”. Jest wyznaczany na podstawie historii zmian statusu lub konkretnych zdarzeń transakcyjnych zapisanych dla zlecenia. Dlaczego to ważne Określa kolejność zdarzeń w dzienniku zdarzeń, co pozwala odtworzyć przebieg procesu i analizować wąskie gardła. Skąd pobrać Tabela Hexagon EAM R5EVENTHISTORY, pole EVH_STATUS (powiązane z opisami) lub dzienniki audytu Przykłady Utworzenie zleceniaZaplanowanie zleceniaZakończenie prac objętych zleceniemWydanie materiałów | |||
| Ostatnia aktualizacja danych LastDataUpdate | Znacznik czasu ostatniego wyodrębnienia lub odświeżenia rekordu. | ||
| Opis Ten atrybut wskazuje, kiedy dane zostały ostatnio pobrane z systemu źródłowego. Pomaga analitykom ocenić ich aktualność i wykryć ewentualne opóźnienia w procesie raportowania. Dlaczego to ważne Pozwala ocenić aktualność analizy i ułatwia diagnozowanie problemów z synchronizacją danych. Skąd pobrać Czas systemowy w chwili wyodrębnienia danych Przykłady 2023-10-25T12:00:00Z2023-10-26T00:00:00Z | |||
| System źródłowy SourceSystem | Nazwa systemu, z którego pochodzą dane. | ||
| Opis Ten atrybut wskazuje system, w którym zapisano dane źródłowe. W tym przypadku nazwa konkretnego systemu EAM jest wpisana na stałe, aby odróżnić jego dane od danych ze starszych systemów lub systemów zewnętrznych wykonawców. Dlaczego to ważne Pozwala jasno określić pochodzenie danych, zwłaszcza przy łączeniu danych z wielu instancji systemów konserwacyjnych. Skąd pobrać Wartość wpisana na stałe Przykłady Hexagon EAMInfor EAMDatastream 7i | |||
| Zlecenie konserwacyjne WorkOrderNumber | Unikalny identyfikator zlecenia konserwacyjnego. | ||
| Opis Ten atrybut jest unikalnym kluczem głównym sprawy konserwacyjnej. Pozwala śledzić zlecenie od początkowego zgłoszenia przez planowanie i realizację aż po końcowe rozliczenie finansowe. Służy jako główny identyfikator sprawy, który łączy dzienniki czynności, godziny pracy i zużycie materiałów. Dlaczego to ważne Identyfikuje konkretną instancję procesu konserwacji, umożliwiając śledzenie czasu realizacji od początku do końca oraz analizę wariantów procesu. Skąd pobrać Tabela Hexagon EAM R5EVENTS, pole EVT_CODE Przykłady WO-100234WO-100235WO-100236104592 | |||
| Znacznik czasu EventTimestamp | Data i godzina wykonania czynności. | ||
| Opis Ten atrybut zapisuje dokładny moment zatwierdzenia zdarzenia lub zmiany statusu w systemie. Umożliwia obliczenie czasu między czynnościami oraz całkowitego czasu realizacji zlecenia. Dlaczego to ważne Dokładne znaczniki czasu są niezbędne do analizy czasu realizacji, wykrywania opóźnień i obliczania zgodności z SLA. Skąd pobrać Tabela Hexagon EAM R5EVENTHISTORY, pole EVH_DATE Przykłady 2023-10-12T08:30:00Z2023-10-12T14:15:00Z2023-10-13T09:00:00Z | |||
| Dział MaintenanceDepartment | Dział lub centrum robocze odpowiedzialne za wykonanie pracy. | ||
| Opis Ten atrybut wskazuje zespół lub warsztat utrzymania ruchu przypisany do zlecenia, na przykład elektryczny, mechaniczny lub obsługi obiektów. Umożliwia porównywanie wyników różnych zespołów technicznych. Dlaczego to ważne Wspiera dashboard produktywności pracy techników i pomaga efektywnie przydzielać zasoby w różnych specjalizacjach. Skąd pobrać Tabela R5EVENTS w Hexagon EAM, pole EVT_MRC Przykłady Warsztat elektrycznyUtrzymanie ruchu, mechanikaObsługa obiektówSerwis floty | |||
| Planowany termin zakończenia TargetCompletionDate | Zaplanowany termin wykonania zlecenia. | ||
| Opis Ten atrybut określa datę, do której należy zakończyć prace konserwacyjne. Porównanie jej z faktyczną datą zakończenia pozwala ocenić dotrzymanie SLA i terminowość realizacji. Dlaczego to ważne Jest potrzebny do monitorowania dotrzymywania SLA przez wykonawców i oceny dokładności planowania. Skąd pobrać Tabela R5EVENTS w Hexagon EAM, pole EVT_TARGET Przykłady 2023-11-012023-11-152023-12-01 | |||
| Priorytet PriorityCode | Poziom pilności przypisany do zlecenia. | ||
| Opis Ten atrybut określa ważność zlecenia, od rutynowego po awaryjne. Wpływa na planowanie zasobów i ma zasadnicze znaczenie przy monitorowaniu zgodności z SLA oraz wykrywaniu nieuzasadnionych zmian priorytetów. Dlaczego to ważne Dashboard eskalacji priorytetów i audytu zasobów pomaga prawidłowo ustalać priorytety zadań krytycznych. Skąd pobrać Tabela R5EVENTS w Hexagon EAM, pole EVT_PRIORITY Przykłady KrytycznyWysokiŚredniNiski | |||
| Rzeczywista liczba godzin pracy ActualLaborHours | Łączna liczba godzin zarejestrowanych dla zlecenia. | ||
| Opis Ten atrybut sumuje czas pracy techników zarejestrowany dla zlecenia. Służy do pomiaru produktywności, obliczania kosztów pracy i porównywania rzeczywistego czasu z szacunkami. Dlaczego to ważne To podstawowe źródło danych dla dashboardu produktywności pracy techników i KPI odchylenia liczby godzin pracy. Skąd pobrać Tabela R5BOOKEDHOURS w Hexagon EAM, pole BOO_HOURS (suma dla zlecenia) Przykłady 2.54.012.00.5 | |||
| Typ zlecenia WorkOrderType | Określa, czy zlecenie dotyczy konserwacji zapobiegawczej, naprawy korygującej czy interwencji awaryjnej. | ||
| Opis Ten atrybut klasyfikuje rodzaj prac konserwacyjnych. Służy do analizy proporcji między planowaną konserwacją zapobiegawczą a naprawami awaryjnymi. Jest to ważny wskaźnik stanu zasobów i dojrzałości zarządzania. Dlaczego to ważne Obsługuje dashboard analizy udziału konserwacji zapobiegawczej i pomaga wskazać możliwości ograniczenia prac reaktywnych. Skąd pobrać Tabela Hexagon EAM R5EVENTS, pole EVT_TYPE Przykłady PPMCOREMGPRJ | |||
| Użytkownik UpdatedBy | Identyfikator użytkownika, który wykonał daną czynność. | ||
| Opis Ten atrybut zawiera identyfikator logowania osoby, która zmieniła status lub zaktualizowała dane. Służy do analizy obciążenia zespołów, określania potrzeb szkoleniowych i audytu zgodności procesu. Dlaczego to ważne Umożliwia analizę zachowań użytkowników i wykorzystania zasobów na poszczególnych etapach utrzymania ruchu. Skąd pobrać Tabela R5EVENTHISTORY w Hexagon EAM, pole EVH_USER Przykłady JSMITHADAVISSYSTEMMGR_USR | |||
| Zasób AssetCode | Unikalny identyfikator konserwowanego urządzenia lub obiektu. | ||
| Opis Ten atrybut łączy zlecenie z konkretnym urządzeniem lub lokalizacją. Umożliwia analizę częstotliwości awarii poszczególnych zasobów oraz wskazanie urządzeń sprawiających najwięcej problemów lub wymagających wymiany. Dlaczego to ważne Pozwala obliczać wskaźniki niezawodności zasobów i sprawdzać, na co przeznaczane są prace konserwacyjne. Skąd pobrać Tabela R5EVENTS w Hexagon EAM, pole EVT_OBJECT Przykłady PUMP-001HVAC-204FLEET-99CONVEYOR-A | |||
| Data utworzenia DateCreated | Data pierwotnego utworzenia zlecenia. | ||
| Opis Ten atrybut wyznacza początek cyklu życia zlecenia. Stanowi punkt odniesienia przy obliczaniu średniego czasu planowania i wieku zaległych zleceń. Dlaczego to ważne Jest potrzebny do dashboardu tempa planowania prac konserwacyjnych i KPI wieku zaległości. Skąd pobrać Tabela R5EVENTS w Hexagon EAM, pole EVT_CREATED Przykłady 2023-09-012023-09-15 | |||
| Data zapotrzebowania na materiały MaterialRequisitionDate | Data zgłoszenia zapotrzebowania na części zamienne. | ||
| Opis Ten atrybut zapisuje datę i godzinę przekazania zapotrzebowania na materiały do magazynu lub działu zakupów. Czas od tej daty do wydania materiałów pokazuje sprawność łańcucha dostaw. Dlaczego to ważne Jest potrzebny do dashboardu czasu realizacji zakupów części zamiennych. Skąd pobrać Tabela R5REQUISITIONS w Hexagon EAM lub powiązana tabela transakcji Przykłady 2023-10-012023-10-05 | |||
| Eskalacja do trybu awaryjnego EmergencyEscalationFlag | Flaga wskazująca, czy po utworzeniu zlecenia podniesiono jego priorytet do awaryjnego. | ||
| Opis Ten atrybut logiczny wskazuje zlecenia, które początkowo miały niższy priorytet, a później otrzymały status awaryjny. Częste przypadki mogą świadczyć o błędnej wstępnej ocenie lub zawyżaniu priorytetu, aby przyspieszyć obsługę. Dlaczego to ważne Wspiera dashboard eskalacji priorytetów i audytu zasobów oraz KPI wskaźnika eskalacji do trybu awaryjnego. Skąd pobrać Wyznaczane na podstawie historii zmian pola Priority Przykłady truefalse | |||
| Konserwacja zapobiegawcza IsPreventive | Flaga wskazująca, czy zlecenie dotyczy konserwacji zapobiegawczej. | ||
| Opis Ten atrybut logiczny ułatwia filtrowanie i kategoryzowanie zleceń. Pozwala obliczyć KPI udziału konserwacji zapobiegawczej, oddzielając prace planowane od napraw reaktywnych. Dlaczego to ważne To podstawowy podział danych w dashboardzie analizy udziału konserwacji zapobiegawczej. Skąd pobrać Wyznaczane na podstawie WorkOrderType Przykłady truefalse | |||
| Krytyczność zasobu AssetCriticality | Ocena znaczenia zasobu dla działalności operacyjnej. | ||
| Opis Ten atrybut określa, jak ważny jest dany zasób dla działalności firmy. Pozwala sprawdzić, czy zlecenia o wysokim priorytecie rzeczywiście dotyczą krytycznych urządzeń, i wykryć potencjalne nadużycia w procesie. Dlaczego to ważne Wspiera dashboard eskalacji priorytetów i audytu zasobów, zestawiając priorytet z wartością zasobu. Skąd pobrać Tabela R5OBJECTS w Hexagon EAM, pole OBJ_CRITICALITY (wymaga połączenia po EVT_OBJECT) Przykłady A - NiezbędnyB - KrytycznyC - DrugorzędnyD - Niski | |||
| Łączny koszt rzeczywisty TotalActualCost | Łączny koszt finansowy zarejestrowany dla zlecenia. | ||
| Opis Ten atrybut obejmuje łączne koszty pracy, materiałów i usług. Pomaga analizować rozliczenia finansowe oraz porównywać koszty konserwacji awaryjnej i zapobiegawczej. Dlaczego to ważne Wspiera dashboard rozliczeń finansowych i szybkości zamykania zleceń oraz podejmowanie decyzji na podstawie kosztów. Skąd pobrać Tabela R5EVENTS w Hexagon EAM, pole EVT_ACTCOST (lub podobna kolumna podsumowująca) Przykłady 150.002500.5075.25 | |||
| Opis zlecenia WorkOrderDescription | Krótki opis prac konserwacyjnych. | ||
| Opis Ten atrybut zawiera temat lub krótki opis problemu. Dostarcza analitykom kontekstu podczas analizy konkretnych problematycznych przypadków lub wyszukiwania wzorców w tekście nieustrukturyzowanym. Dlaczego to ważne Dostarcza kontekstu potrzebnego do ręcznej weryfikacji danych o procesie. Skąd pobrać Tabela R5EVENTS w Hexagon EAM, pole EVT_DESC Przykłady Naprawa nieszczelnego uszczelnienia pompyComiesięczny przegląd HVACWymiana taśmy przenośnika | |||
| Poprawka IsRework | Flaga wskazująca, czy zlecenie obejmowało ponowne wykonanie prac technicznych. | ||
| Opis Ten obliczany atrybut wskazuje przypadki, w których po kontroli jakości lub oznaczeniu zakończenia proces wraca do aktywnego statusu pracy. Pomaga wykrywać problemy z jakością i braki szkoleniowe. Dlaczego to ważne Jest wykorzystywany w dashboardzie poprawek technicznych i kontroli jakości oraz w KPI wskaźnika ponownych prac konserwacyjnych. Skąd pobrać Obliczane na podstawie powtórzeń czynności Przykłady truefalse | |||
| Pozytywny wynik kontroli jakości QualityControlPassed | Flaga wskazująca, czy udokumentowano etap kontroli jakości. | ||
| Opis Ten atrybut logiczny sprawdza, czy określoną czynność kontroli jakości lub pozycję listy kontrolnej oznaczono jako wykonaną. Pomaga zapewnić zgodność z przepisami BHP i normami wewnętrznymi. Dlaczego to ważne Jest wykorzystywany do obliczania KPI wskaźnika zgodności kontroli jakości i wspiera dashboard zgodności oraz kompletności dokumentacji. Skąd pobrać Wyznaczane na podstawie tabel list kontrolnych lub historii czynności Przykłady truefalse | |||
| Status SLA SLAState | Informuje, czy zlecenie zostało zrealizowane zgodnie z umową SLA. | ||
| Opis Ten obliczany atrybut porównuje faktyczną datę zakończenia z planowanym terminem zakończenia. Klasyfikuje sprawę jako zrealizowaną w terminie SLA lub z przekroczonym terminem, co ułatwia raportowanie wyników wykonawców i zespołów wewnętrznych. Dlaczego to ważne To bezpośrednie źródło danych dla KPI wskaźnika dotrzymywania SLA. Skąd pobrać Obliczane: faktyczna data zakończenia <= termin docelowy Przykłady W terminie SLAPo terminie SLAOtwarte | |||
Działania związane z utrzymaniem majątku
| Działanie | Opis | ||
|---|---|---|---|
| Rozpoczęcie zlecenia | Technicy rozpoczęli fizyczne prace przy zasobie. Zdarzenie jest zwykle oznaczane zmianą statusu na In Progress lub pierwszym wpisem czasu pracy. | ||
| Dlaczego to ważne Wyznacza koniec okresu uwzględnianego przy obliczaniu zaległości i początek czasu pracy przy urządzeniu. Jest niezbędne do obliczania wskaźnika dotrzymania SLA. Skąd pobrać Hexagon EAM r5statuslog. Zmiana statusu na „In Progress”, często oznaczona kodem „I” lub „IP”. Rejestrowanie Rejestrowane po wykonaniu transakcji w tabeli r5statuslog Typ zdarzenia explicit | |||
| Utworzenie zlecenia | Utworzenie w systemie rekordu zlecenia konserwacyjnego. To zdarzenie rozpoczyna sprawę i zapisuje początkowy znacznik czasu dla całego cyklu prac. | ||
| Dlaczego to ważne Wyznacza początek instancji procesu i punkt odniesienia do pomiaru całkowitego czasu realizacji. Jest niezbędne do obliczania wieku zaległych zleceń. Skąd pobrać Tabela Hexagon EAM r5events. Zdarzenie jest rejestrowane po dodaniu nowego rekordu z wartością evt_code. Rejestrowanie Rejestrowane po wykonaniu transakcji INSERT w tabeli r5events Typ zdarzenia explicit | |||
| Wydanie materiałów | Części zamienne zostały fizycznie wydane z magazynu i przypisane do zlecenia. Zdarzenie oznacza zużycie materiałów. | ||
| Dlaczego to ważne Wyznacza koniec czasu oczekiwania na dostępność materiałów. Pozwala wykryć opóźnienia, gdy prace się rozpoczęły, ale zostały wstrzymane z powodu braku części. Skąd pobrać Tabela Hexagon EAM r5translines. Transakcja typu „I” (Issue) powiązana ze zleceniem. Rejestrowanie Rejestrowane po wykonaniu transakcji INSERT w tabeli r5translines Typ zdarzenia explicit | |||
| Zakończenie prac objętych zleceniem | Prace techniczne zostały zakończone, a technik oznaczył zlecenie jako wykonane. Zasób wraca do eksploatacji. | ||
| Dlaczego to ważne Ważny etap przy pomiarze całkowitego czasu realizacji i średniego czasu naprawy. Zatrzymuje pomiar czasu przestoju. Skąd pobrać Hexagon EAM r5statuslog. Zmiana statusu na „C” (Completed) lub „F” (Finished). Rejestrowanie Rejestrowane po wykonaniu transakcji w tabeli r5statuslog Typ zdarzenia explicit | |||
| Zamknięcie zlecenia | Zlecenie zostaje zamknięte finansowo i zarchiwizowane. Nie można już przypisywać do niego kosztów ani godzin pracy. | ||
| Dlaczego to ważne Koniec procesu. Niezbędny do analizy rozliczenia finansowego i zatwierdzenia ostatecznych kosztów. Skąd pobrać Hexagon EAM r5statuslog. Zmiana statusu na „C” (Closed) lub „L” (Locked/Closed). Rejestrowanie Rejestrowane po wykonaniu transakcji w tabeli r5statuslog Typ zdarzenia explicit | |||
| Zarejestrowanie godzin pracy | Technik zapisuje liczbę godzin przepracowanych przy zleceniu. Ta czynność może wystąpić wielokrotnie w ramach jednej sprawy. | ||
| Dlaczego to ważne Podstawa dashboardów analizy różnicy w liczbie godzin pracy i wydajności techników. Pokazuje rzeczywisty nakład pracy w porównaniu z planem. Skąd pobrać Tabela Hexagon EAM r5booklabor. Każdy wiersz odpowiada wpisowi czasu pracy dla zlecenia (WO). Rejestrowanie Rejestrowane po wykonaniu transakcji INSERT w tabeli r5booklabor Typ zdarzenia explicit | |||
| Zatwierdzenie zlecenia | Zmiana statusu oznaczająca, że zlecenie przeszło weryfikację planowania i szacowania. Potwierdza zgodę na rozpoczęcie prac. | ||
| Dlaczego to ważne Umożliwia analizę tempa planowania konserwacji, wyznaczając koniec etapu planowania. Pozwala też sprawdzić zgodność z zasadą rozdziału obowiązków. Skąd pobrać Tabela Hexagon EAM r5statuslog. Należy szukać zmiany statusu na „A” (Approved) lub jego odpowiednik w systemie. Rejestrowanie Rejestrowane po wykonaniu transakcji w tabeli r5statuslog Typ zdarzenia explicit | |||
| Pozytywny wynik kontroli jakości | Kierownik lub inspektor sprawdza wykonane prace i zatwierdza ich jakość. Ten etap potwierdza poprawność naprawy przed zamknięciem zlecenia. | ||
| Dlaczego to ważne Umożliwia obliczanie wskaźnika KPI zgodności kontroli jakości. Powroty do wcześniejszych etapów wskazują na konieczność ponownego wykonania prac technicznych. Skąd pobrać Hexagon EAM r5statuslog (zmiana statusu na „Review” lub „QC”) albo r5audittrail dla walidacji konkretnego pola UDF. Rejestrowanie Porównanie pola statusu przed zmianą i po niej Typ zdarzenia inferred | |||
| Utworzenie zapotrzebowania na materiały | Do zlecenia przypisano zapotrzebowanie na części zamienne lub materiały. Rozpoczyna to podproces zaopatrzenia. | ||
| Dlaczego to ważne Punkt początkowy do pomiaru czasu realizacji zakupu części zamiennych. Duża liczba takich zdarzeń wskazuje na zależność od dostępności zapasów. Skąd pobrać Tabela Hexagon EAM r5requisitions. Powiązanie przez req_evt (kod zlecenia). Rejestrowanie Rejestrowane po wykonaniu transakcji INSERT w tabeli r5requisitions Typ zdarzenia explicit | |||
| Weryfikacja punktu listy kontrolnej | Konkretne zadanie lub etap kontroli w ramach zlecenia oznaczono jako ukończone. Zdarzenie pokazuje postęp prac na szczegółowym poziomie. | ||
| Dlaczego to ważne Niezbędne do zapewnienia zgodności i kompletności dokumentacji. Potwierdza, że kontrole bezpieczeństwa zostały odnotowane w systemie. Skąd pobrać Tabela Hexagon EAM r5checklist lub r5activities. Zmiana statusu konkretnej czynności lub pozycji zadania. Rejestrowanie Rejestrowane po wykonaniu transakcji UPDATE w tabeli r5checklist Typ zdarzenia explicit | |||
| Zaplanowanie zlecenia | Do zlecenia przypisano planowaną datę rozpoczęcia lub konkretny zasób. Zlecenie przechodzi z zaległości do aktywnego harmonogramu. | ||
| Dlaczego to ważne Niezbędne do analizy wydajności pracy techników i efektywności przydzielania zasobów. Skąd pobrać Tabela Hexagon EAM r5events (aktualizacja evt_schedstart) lub r5statuslog (zmiana statusu na „S”, Scheduled). Rejestrowanie Porównanie pola statusu przed zmianą i po niej lub sprawdzenie aktualizacji evt_schedstart Typ zdarzenia inferred | |||
| Zatwierdzenie zlecenia | Końcowe zatwierdzenie administracyjne, zwykle wymagane ze względu na zgodność lub płatność dla wykonawcy. Potwierdza poprawność wszystkich danych. | ||
| Dlaczego to ważne Monitorowanie cyklu zatwierdzania zleceń. Opóźnienia na tym etapie wydłużają rozliczenie finansowe. Skąd pobrać Hexagon EAM r5statuslog (zmiana statusu na „Signed Off”) lub dziennik rejestrujący podpis elektroniczny. Rejestrowanie Porównanie pola statusu przed zmianą i po niej Typ zdarzenia inferred | |||
| Zmiana priorytetu | Po utworzeniu zlecenia zmieniono jego priorytet. Zdarzenie zapisuje znacznik czasu i nową wartość priorytetu. | ||
| Dlaczego to ważne Niezbędne w dashboardzie analizy eskalacji priorytetów i kontroli zasobów, który pomaga wykrywać nieuzasadnione zmiany priorytetów i rozszerzanie zakresu prac. Skąd pobrać Hexagon EAM r5audittrail, jeśli włączono audyt, lub dane odtworzone z migawek. Często na podstawie dziennika audytu pola evt_priority. Rejestrowanie Rejestrowane po wykonaniu transakcji UPDATE dla pola evt_priority Typ zdarzenia explicit | |||
Instrukcje ekstrakcji danych
Kroki
- Zaloguj się do aplikacji Hexagon EAM na konto użytkownika z uprawnieniami do tworzenia raportów zaawansowanych.
- Przejdź do modułu Reports, zwykle dostępnego w menu Administration lub Reports, i uruchom interfejs Advanced Reporting, często Cognos lub wbudowany kreator raportów SQL.
- Uruchom kreator nowego raportu i jako typ źródła danych wybierz „SQL” lub „Free-hand SQL”. Pozwala to odpytywać bazę danych bezpośrednio, zamiast korzystać ze standardowego modelu obiektów biznesowych.
- Skopiuj skrypt SQL z sekcji Query poniżej i wklej go w oknie definicji zbioru danych.
- Zastąp wartości zastępcze, takie jak [Your Organization Code] i zakresy dat, wartościami właściwymi dla Państwa środowiska.
- Sprawdź składnię zapytania w edytorze i upewnij się, że platforma bazodanowa (Oracle lub SQL Server) akceptuje instrukcje UNION.
- Przypisz wynikowe kolumny do listy pól raportu. Upewnij się, że WorkOrderNumber, ActivityName i EventTimestamp są widoczne.
- Skonfiguruj eksport raportu do formatu CSV lub Excel, aby uzyskać dane tabelaryczne bez scalonych komórek i nagłówków formatowania.
- Uruchom raport dla okresu testowego, na przykład dla 100 ostatnich zleceń pracy, i sprawdź strukturę danych.
- Po weryfikacji zaplanuj cykliczne uruchamianie raportu lub wykonaj go dla całego okresu ekstrakcji.
- Pobierz plik wynikowy i sprawdź format dat. Jeśli to możliwe, upewnij się, że znaczniki czasu zawierają sekundy, co pozwoli precyzyjnie ustalić kolejność zdarzeń.
- Zaimportuj plik CSV do ProcessMind. Przypisz kolumnę SourceSystem jako atrybut case, a ActivityName jako klasyfikator działań.
Konfiguracja
- Zakres dat: Aby zachować wydajność zapytania, zaleca się filtrowanie według EVT_DATE (daty utworzenia) dla ruchomego okresu od 6 do 12 miesięcy.
- Filtr organizacji: Hexagon EAM często obsługuje wiele organizacji. Dodaj filtr dla właściwego kodu organizacji, aby nie pobierać danych z innych jednostek.
- Składnia bazy danych: Poniższe zapytanie korzysta, w miarę możliwości, ze standardu ANSI SQL, ale Hexagon EAM zwykle działa na Oracle lub SQL Server. Może być konieczne dostosowanie funkcji daty, na przykład SYSDATE lub GETDATE.
- Konfiguracja statusów: Mapowanie kodów statusu, takich jak „A”, „C” i „R”, na nazwy działań, na przykład „Zlecenie pracy zatwierdzone”, musi odpowiadać konfiguracji statusów w Państwa systemie.
- Uprawnienia: Konto użytkownika uruchamiającego raport musi mieć dostęp do odczytu tabel R5EVENTS, R5EVENTSTATUS, R5BOOKEDHOURS, R5TRANSACTIONS i R5AUDITVALUES.
Przykładowe zapytanie sql
/* 1. Work Order Created */
SELECT
evt_code AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
evt_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
evt_type AS WorkOrderType,
evt_priority AS PriorityCode,
evt_mrc AS MaintenanceDepartment,
evt_updatedby AS UpdatedBy,
evt_target AS TargetCompletionDate,
evt_object AS AssetCode,
NULL AS ActualLaborHours
FROM r5events
WHERE evt_type IN ('JOB', 'PPM') -- Filter for relevant WO types
AND evt_created >= '2023-01-01' -- [Set Start Date]
AND evt_org = 'YOUR_ORG' -- [Set Organization]
UNION ALL
/* 2. Priority Updated (Requires Audit Log) */
SELECT
aud_code AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
aud_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
aud_value AS PriorityCode,
NULL AS MaintenanceDepartment,
aud_user AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5auditvalues
WHERE aud_table = 'R5EVENTS'
AND aud_field = 'EVT_PRIORITY'
AND aud_org = 'YOUR_ORG'
UNION ALL
/* 3. Status Changes (Approved, Scheduled, Started, Completed, Signed Off, Closed) */
/* This block maps generic status codes to specific ProcessMind activities */
SELECT
est_event AS WorkOrderNumber,
CASE est_status
WHEN 'A' THEN 'Work Order Approved'
WHEN 'S' THEN 'Work Order Scheduled'
WHEN 'IP' THEN 'Work Order Started'
WHEN 'C' THEN 'Work Order Completed'
WHEN 'QC' THEN 'Quality Control Passed'
WHEN 'SO' THEN 'Work Order Signed Off'
WHEN 'CL' THEN 'Work Order Closed'
ELSE 'Status Change: ' + est_status
END AS ActivityName,
est_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
est_auth AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5eventstatus
WHERE est_status IN ('A', 'S', 'IP', 'C', 'QC', 'SO', 'CL')
AND est_org = 'YOUR_ORG'
UNION ALL
/* 4. Material Requisition Created */
SELECT
req_event AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
req_created AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
req_createdby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5requisitions
WHERE req_event IS NOT NULL
AND req_org = 'YOUR_ORG'
UNION ALL
/* 5. Material Issued */
SELECT
trl_event AS WorkOrderNumber,
'Material Issued' AS ActivityName,
trl_date AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
trl_user AS UpdatedBy,
NULL AS TargetCompletionDate,
trl_part AS AssetCode, -- Storing Part ID in Asset column for context
NULL AS ActualLaborHours
FROM r5translines
WHERE trl_type = 'I' -- I = Issue
AND trl_event IS NOT NULL
AND trl_org = 'YOUR_ORG'
UNION ALL
/* 6. Labor Hours Recorded */
SELECT
boo_event AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
boo_entered AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
boo_mrc AS MaintenanceDepartment,
boo_person AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
boo_hours AS ActualLaborHours
FROM r5bookedhours
WHERE boo_event IS NOT NULL
AND boo_org = 'YOUR_ORG'
UNION ALL
/* 7. Checklist Item Verified */
SELECT
ckv_event AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
ckv_entrydate AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
NULL AS WorkOrderType,
NULL AS PriorityCode,
NULL AS MaintenanceDepartment,
ckv_enteredby AS UpdatedBy,
NULL AS TargetCompletionDate,
NULL AS AssetCode,
NULL AS ActualLaborHours
FROM r5checklistvalues
WHERE ckv_completed = '+' -- Logic for completed item depends on config
AND ckv_event IS NOT NULL
AND ckv_org = 'YOUR_ORG' Kroki
- Sprawdź połączenie z bazą danych: Upewnij się, że mają Państwo dane logowania z dostępem do odczytu, zwykle konto serwisowe, do bazy Hexagon EAM Oracle lub SQL Server.
- Zlokalizuj podstawowe tabele: Potwierdź dostęp do R5EVENTS (nagłówki zleceń pracy), R5STATUS (historia statusów), R5BOOKEDHOURS (robocizna), R5TRANSACTIONS (materiały) i R5AUDITVALUES (dziennik audytu).
- Zmapuj kody statusów: Hexagon EAM korzysta z konfigurowalnych kodów statusu, takich jak A, C, O i R. Sprawdź konfigurację systemu (ekran: Administration -> Codes) i przypisz używane kody jedno- lub dwuznakowe do działań: zatwierdzenie, zaplanowanie, rozpoczęcie, zakończenie, pozytywny wynik kontroli jakości, podpisanie i zamknięcie.
- Skonfiguruj zapytanie: Otwórz poniższy skrypt SQL. Zastąp przykładowe kody statusów, takie jak „APPR”, „SCHD” i „COMP”, kodami używanymi w Państwa systemie.
- Ustaw zakres dat: Zaktualizuj klauzule WHERE, aby filtrować według EVT_DATE lub TRN_DATE i wybrać konkretny okres, zwykle ostatnie 12 miesięcy. Pozwoli to zachować wydajność zapytania.
- Uruchom ekstrakcję: Wykonaj zapytanie w kliencie SQL, takim jak SQL Developer, SSMS lub Toad.
- Sprawdź dane audytowe: Jeśli działanie „Priorytet zaktualizowany” nie zwraca wierszy, sprawdź, czy w ustawieniach EAM włączono audyt tabeli R5EVENTS.
- Sprawdź dane listy kontrolnej: Upewnij się, że w używanej wersji właściwą tabelą jest R5CHECKLISTVALUES. W starszych wersjach do rejestrowania wykonania zadań może służyć R5ACTIVITIES.
- Wyeksportuj dane: Zapisz wynik jako plik CSV lub Parquet. Ustaw format kolumny Timestamp na ISO 8601 (YYYY-MM-DD HH:MM:SS), aby uniknąć błędów odczytu.
- Zaimportuj dane do ProcessMind: Prześlij plik płaski do interfejsu ProcessMind i przypisz WorkOrderNumber do Case ID, ActivityName do Activity, a EventTimestamp do Timestamp.
Konfiguracja
- Filtr zakresu czasu: Obecnie zapytanie pobiera wszystkie dane. Zdecydowanie zaleca się dodanie filtra, takiego jak WHERE EVT_DATE >= SYSDATE - 365 (Oracle) lub GetDate() - 365 (SQL Server), w podstawowym CTE lub w każdym bloku SELECT.
- Mapowanie kodów statusów: Należy zastąpić literały tekstowe w SQL, takie jak „APPR”, „COMP” i „QC”, rzeczywistymi kodami z zestawu R5STATUS.
- Konfiguracja audytu: Pobranie działania „Priorytet zaktualizowany” wymaga tabeli R5AUDITVALUES. Jeśli audyt kolumny EVT_PRIORITY jest wyłączony, to działanie nie pojawi się w danych.
- Organizacja/tenant: Jeśli instancja EAM obsługuje wiele organizacji, dodaj filtr EVT_ORG lub EVT_MRC (dział), aby nie łączyć danych z różnych jednostek.
- Język: Zapytanie zakłada standardowe angielskie nazwy kolumn. Jeśli baza danych używa nazw zlokalizowanych, należy je odpowiednio zmienić.
Przykładowe zapytanie sql
/* 1. Work Order Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Created' AS ActivityName,
E.EVT_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
E.EVT_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
WHERE E.EVT_TYPE IN ('JOB', 'PPM') -- Filter for Standard and Preventive WOs
UNION ALL
/* 2. Priority Updated (From Audit Log) */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Priority Updated' AS ActivityName,
A.AUD_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
A.AUD_VALUE AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
A.AUD_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5AUDITVALUES A ON E.EVT_CODE = A.AUD_KEY1
WHERE A.AUD_TABLE = 'R5EVENTS'
AND A.AUD_FIELD = 'EVT_PRIORITY'
UNION ALL
/* 3. Work Order Approved */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Approved' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'APPR' -- Replace with your Approved status code
UNION ALL
/* 4. Material Requisition Created */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Requisition Created' AS ActivityName,
R.REQ_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
R.REQ_CREATEDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5REQUISITIONS R ON E.EVT_CODE = R.REQ_EVENT
UNION ALL
/* 5. Work Order Scheduled */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Scheduled' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SCHD' -- Replace with your Scheduled status code
UNION ALL
/* 6. Work Order Started */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Started' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS IN ('STRT', 'INPRG') -- Replace with your Started/In Progress status codes
UNION ALL
/* 7. Material Issued */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Material Issued' AS ActivityName,
T.TRN_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
T.TRN_USER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5TRANSACTIONS T ON E.EVT_CODE = T.TRN_EVENT
WHERE T.TRN_TYPE = 'ISSUE' -- Indicates material issue from store
UNION ALL
/* 8. Labor Hours Recorded */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Labor Hours Recorded' AS ActivityName,
B.BOO_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
B.BOO_PERSON AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
B.BOO_HOURS AS ActualLaborHours
FROM R5EVENTS E
JOIN R5BOOKEDHOURS B ON E.EVT_CODE = B.BOO_EVENT
UNION ALL
/* 9. Checklist Item Verified */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Checklist Item Verified' AS ActivityName,
C.CKV_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
C.CKV_ENTEREDBY AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5CHECKLISTVALUES C ON E.EVT_CODE = C.CKV_EVENT
WHERE C.CKV_COMPLETED = '+' -- Assuming '+' indicates checked/complete
UNION ALL
/* 10. Work Order Completed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Completed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'COMP' -- Replace with your Completed status code
UNION ALL
/* 11. Quality Control Passed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Quality Control Passed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'QC' -- Replace with your QC Passed status code
UNION ALL
/* 12. Work Order Signed Off */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Signed Off' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'SIGNOFF' -- Replace with your Sign Off status code
UNION ALL
/* 13. Work Order Closed */
SELECT
E.EVT_CODE AS WorkOrderNumber,
'Work Order Closed' AS ActivityName,
S.STA_DATE AS EventTimestamp,
'Hexagon EAM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
E.EVT_TYPE AS WorkOrderType,
E.EVT_PRIORITY AS PriorityCode,
E.EVT_MRC AS MaintenanceDepartment,
S.STA_UPDATEUSER AS UpdatedBy,
E.EVT_TARGET AS TargetCompletionDate,
E.EVT_OBJECT AS AssetCode,
NULL AS ActualLaborHours
FROM R5EVENTS E
JOIN R5STATUS S ON E.EVT_CODE = S.STA_EVENT
WHERE S.STA_STATUS = 'CLOS' -- Replace with your Closed status code Kroki
- Potwierdź, że Hexagon EAM Databridge Outbound jest zainstalowany, objęty licencją i skonfigurowany do odczytu danych zleceń pracy wymaganych w tej ekstrakcji. Sprawdź konfigurację transakcji wychodzącej, miejsce docelowe, możliwość harmonogramowania oraz dostęp do tabel lub widoków źródłowych. Użyj [Configure based on your system], aby wskazać właściwą ścieżkę w menu administracyjnym, ponieważ nazwy menu i identyfikatory transakcji różnią się między wersjami EAM.
- Ustal, które tabele lub widoki Hexagon EAM są źródłem danych o nagłówkach zleceń pracy, historii statusów, historii priorytetów, zapotrzebowaniach materiałowych, wydaniach materiałów, transakcjach robocizny, wynikach list kontrolnych lub inspekcji, przydziałach harmonogramu, zatwierdzeniach jakości, podpisach i zamknięciach. Zastąp każdy symbol zastępczy [Your ... table name] w zapytaniu odpowiednim obiektem w Państwa środowisku. Nie zakładaj, że bieżący nagłówek zlecenia zawiera historię zmian.
- Skonfiguruj Databridge Outbound tak, aby publikował transakcję XML lub CSV przy każdej zapisanej zmianie zlecenia pracy. Uwzględnij numer zlecenia, typ zdarzenia, znacznik czasu zdarzenia, użytkownika źródłowego, priorytet, typ zlecenia, dział, planowaną datę zakończenia, majątek, rzeczywistą liczbę godzin pracy oraz znacznik czasu odświeżenia lub ekstrakcji. Jeśli struktury transakcji źródłowych różnią się dla statusów, robocizny, materiałów, list kontrolnych, harmonogramowania, jakości, podpisów lub zamknięć, skonfiguruj osobne mapowania danych wychodzących.
- Skonfiguruj ładunek danych wychodzących tak, aby każde zdarzenie biznesowe było osobnym rekordem. Nie wysyłaj wyłącznie bieżącego statusu zlecenia pracy. W przypadku powtarzających się wpisów robocizny, wydań materiałów, pozycji listy kontrolnej, zmian priorytetu i innych powtarzalnych zdarzeń utwórz osobny rekord dla każdego wystąpienia. Przypisz typ zdarzenia Databridge do jednej z 13 wymaganych wartości ActivityName.
- Zapisz pliki XML lub CSV z Databridge w kontrolowanej lokalizacji pośredniej, a następnie załaduj je do obiektów bazy danych wskazanych w zapytaniu albo zmień źródła zapytania na tabele pośrednie. Zachowaj oryginalny identyfikator zdarzenia, numer zlecenia pracy, znacznik czasu zdarzenia, użytkownika źródłowego i LastDataUpdate. Jeśli Databridge wysyła XML, przed mapowaniem działań przekształć powtarzające się węzły zdarzeń w wiersze. Jeśli wysyła CSV, sprawdź separatory, cudzysłowy, kodowanie i formaty znaczników czasu.
- Zastąp symbole zastępcze w zapytaniu obiektami właściwymi dla połączenia, parametrami dat i filtrami firmy. Zapytanie korzysta ze znormalizowanego źródła zdarzeń dla każdego działania i łączy wyniki za pomocą UNION ALL. Upewnij się, że kolumny źródłowe w każdym bloku mają zgodne typy danych. Jeśli źródło nie zawiera zalecanego atrybutu, zwróć dla niego NULL zamiast wpisywać zmyśloną wartość.
- Uruchom zapytanie dla początkowego okresu około trzech do sześciu miesięcy. Sprawdź, czy wynik zawiera wymagane kolumny WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem i LastDataUpdate oraz dostępne zalecane atrybuty. Posortuj dane według WorkOrderNumber, EventTimestamp i ActivityName, zachowując duplikaty, jeśli odpowiadają odrębnym zdarzeniom źródłowym.
- Porównaj liczbę wyodrębnionych wierszy z liczbą dostaw Databridge, transakcji źródłowych i próbką zleceń pracy w Hexagon EAM. Sprawdź brakującą historię statusów, powtórne dostawy, nieprawidłowe znaczniki czasu i zdarzenia spoza wybranego zakresu dat. Stosuj stabilną regułę usuwania duplikatów tylko wtedy, gdy to samo zdarzenie źródłowe dostarczono więcej niż raz.
- Wyeksportuj końcowy wynik jako plik CSV w kodowaniu UTF-8 lub innym formacie dziennika zdarzeń obsługiwanym przez ProcessMind. Umieść jedno zdarzenie w każdym wierszu, stosuj spójny format znaczników czasu i obsługuj strefy czasowe. Przypisz WorkOrderNumber jako identyfikator case, ActivityName jako działanie, a EventTimestamp jako znacznik czasu zdarzenia. Prześlij plik do ProcessMind i sprawdź, czy wszystkie 13 nazw działań jest dostępnych w modelu procesu.
Konfiguracja
- Skonfiguruj Hexagon EAM Databridge Outbound do wysyłania danych o poszczególnych zdarzeniach w formacie XML lub CSV. Konkretne nazwy transakcji, ekrany administracyjne i ścieżki menu zależą od zainstalowanej wersji Hexagon EAM. Zamiast zakładać konkretną ścieżkę, użyj [Configure based on your system].
- Ustaw WorkOrderNumber jako identyfikator case w ProcessMind, ActivityName jako pole działania, a EventTimestamp jako znacznik czasu zdarzenia. W polu SourceSystem wpisz Hexagon EAM, a LastDataUpdate powinno wskazywać czas ekstrakcji lub odświeżenia.
- Skonfiguruj mapowania danych wychodzących dla wszystkich 13 działań: Work Order Created, Priority Updated, Work Order Approved, Material Requisition Created, Work Order Scheduled, Work Order Started, Material Issued, Labor Hours Recorded, Checklist Item Verified, Work Order Completed, Quality Control Passed, Work Order Signed Off i Work Order Closed.
- Zachowaj historię zdarzeń. Samo bieżące pole statusu nie pozwala odtworzyć wszystkich zmian statusu i priorytetu, wpisów robocizny, wydań materiałów, weryfikacji list kontrolnych, zatwierdzeń ani podpisów.
- Przy pierwszej ekstrakcji wybierz zakres od trzech do sześciu miesięcy. Przy kolejnych przyrostowych załadunkach korzystaj ze znacznika dostawy Databridge lub LastDataUpdate i uwzględnij niewielki nakładający się okres, aby nie pominąć opóźnionych transakcji.
- Stosuj filtry firmy, lokalizacji, organizacji, typu zlecenia pracy, działu i statusu tylko wtedy, gdy wymaga ich analiza. W przypadku ograniczeń właściwych dla organizacji użyj [Your company filter] lub [Configure based on your system].
- Uwzględnij zamknięte zlecenia pracy, jeśli analiza obejmuje cały cykl życia. Filtrowanie wyłącznie otwartych zleceń pominie działania związane z zakończeniem, kontrolą jakości, podpisaniem i zamknięciem.
- Jawnie skonfiguruj obsługę stref czasowych. Przed przesłaniem danych do ProcessMind przelicz wszystkie źródłowe znaczniki czasu na jedną uzgodnioną strefę i zachowaj pierwotną strefę lub przesunięcie, jeśli są dostępne.
- W przypadku dużych zbiorów filtruj dane u źródła, ogranicz okres ekstrakcji, indeksuj lub partycjonuj według znacznika czasu zdarzenia i numeru zlecenia pracy oraz zapisuj pliki Databridge w lokalizacji pośredniej przed przekształceniem. Unikaj wielokrotnego przetwarzania całej historycznej zawartości XML.
- Wymagania wstępne obejmują dostępność Databridge Outbound, uprawnienia do odczytu odpowiednich danych EAM, dostęp do miejsca docelowego danych wychodzących lub pośredniej bazy danych oraz dostęp do danych o zleceniach pracy, statusach, materiałach, robociźnie, listach kontrolnych, harmonogramowaniu, zatwierdzeniach, jakości, podpisach i zamknięciach.
- Jeśli wymagane zdarzenie biznesowe nie jest dostępne jako natywna transakcja Databridge, skonfiguruj widok źródłowy lub przekształcenie pośrednie, które utworzy osobny wiersz dla tego zdarzenia. ProcessMind nie odtwarza brakujących działań na podstawie innych wierszy.
Przykładowe zapytanie sql
WITH
created_events AS (
SELECT
CAST(c.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Created' AS VARCHAR(100)) AS ActivityName,
CAST(c.[CreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(c.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(c.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(c.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(c.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(c.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(c.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(c.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(c.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order creation table or view] c
WHERE c.[CreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND c.[CreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
priority_events AS (
SELECT
CAST(p.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Priority Updated' AS VARCHAR(100)) AS ActivityName,
CAST(p.[PriorityChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(p.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(p.[NewPriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(p.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your priority history table or view] p
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = p.[WorkOrderNumber]
WHERE p.[PriorityChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND p.[PriorityChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
approved_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Approved' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your approved status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
requisition_events AS (
SELECT
CAST(r.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Requisition Created' AS VARCHAR(100)) AS ActivityName,
CAST(r.[RequisitionCreatedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(r.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(r.[CreatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material requisition table or view] r
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = r.[WorkOrderNumber]
WHERE r.[RequisitionCreatedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND r.[RequisitionCreatedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
scheduled_events AS (
SELECT
CAST(a.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Scheduled' AS VARCHAR(100)) AS ActivityName,
CAST(a.[ScheduledTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(a.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(a.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(a.[ScheduledStartDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order scheduling table or view] a
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = a.[WorkOrderNumber]
WHERE a.[ScheduledTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND a.[ScheduledTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
started_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Started' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] IN ('[Your in progress status value]', '[Your started status value]')
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
issued_events AS (
SELECT
CAST(i.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Material Issued' AS VARCHAR(100)) AS ActivityName,
CAST(i.[IssueTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(i.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(i.[IssuedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your material issue table or view] i
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = i.[WorkOrderNumber]
WHERE i.[IssueTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND i.[IssueTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
labor_events AS (
SELECT
CAST(l.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Labor Hours Recorded' AS VARCHAR(100)) AS ActivityName,
CAST(l.[LaborEntryTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(l.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(l.[RecordedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(l.[LaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your labor transaction table or view] l
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = l.[WorkOrderNumber]
WHERE l.[LaborEntryTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND l.[LaborEntryTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
checklist_events AS (
SELECT
CAST(k.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Checklist Item Verified' AS VARCHAR(100)) AS ActivityName,
CAST(k.[VerifiedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(k.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(k.[VerifiedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your checklist verification table or view] k
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = k.[WorkOrderNumber]
WHERE k.[VerifiedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND k.[VerifiedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
completed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Completed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your completed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
quality_events AS (
SELECT
CAST(q.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Quality Control Passed' AS VARCHAR(100)) AS ActivityName,
CAST(q.[QualityApprovalTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(q.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(q.[ApprovedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your quality approval table or view] q
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = q.[WorkOrderNumber]
WHERE q.[QualityResult] = '[Your quality passed value]'
AND q.[QualityApprovalTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND q.[QualityApprovalTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
signoff_events AS (
SELECT
CAST(f.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Signed Off' AS VARCHAR(100)) AS ActivityName,
CAST(f.[SignOffTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(f.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(f.[SignedOffBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order sign-off table or view] f
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = f.[WorkOrderNumber]
WHERE f.[SignOffTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND f.[SignOffTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
),
closed_events AS (
SELECT
CAST(s.[WorkOrderNumber] AS VARCHAR(100)) AS WorkOrderNumber,
CAST('Work Order Closed' AS VARCHAR(100)) AS ActivityName,
CAST(s.[StatusChangedTimestamp] AS TIMESTAMP) AS EventTimestamp,
CAST('Hexagon EAM' AS VARCHAR(100)) AS SourceSystem,
CAST(s.[LastDataUpdate] AS TIMESTAMP) AS LastDataUpdate,
CAST(w.[WorkOrderType] AS VARCHAR(100)) AS WorkOrderType,
CAST(w.[PriorityCode] AS VARCHAR(100)) AS PriorityCode,
CAST(w.[MaintenanceDepartment] AS VARCHAR(100)) AS MaintenanceDepartment,
CAST(s.[UpdatedBy] AS VARCHAR(100)) AS UpdatedBy,
CAST(w.[TargetCompletionDate] AS TIMESTAMP) AS TargetCompletionDate,
CAST(w.[AssetCode] AS VARCHAR(100)) AS AssetCode,
CAST(w.[ActualLaborHours] AS DECIMAL(18,2)) AS ActualLaborHours
FROM [Your work order status history table or view] s
LEFT JOIN [Your work order current or history table or view] w ON w.[WorkOrderNumber] = s.[WorkOrderNumber]
WHERE s.[NewStatus] = '[Your closed status value]'
AND s.[StatusChangedTimestamp] >= CAST('[Start date parameter]' AS TIMESTAMP)
AND s.[StatusChangedTimestamp] < CAST('[End date parameter]' AS TIMESTAMP)
AND [Your company filter]
)
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM created_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM priority_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM approved_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM requisition_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM scheduled_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM started_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM issued_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM labor_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM checklist_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM completed_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM quality_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM signoff_events
UNION ALL
SELECT WorkOrderNumber, ActivityName, EventTimestamp, SourceSystem, LastDataUpdate, WorkOrderType, PriorityCode, MaintenanceDepartment, UpdatedBy, TargetCompletionDate, AssetCode, ActualLaborHours FROM closed_events
ORDER BY WorkOrderNumber, EventTimestamp, ActivityName; Gotowi do rozpoczęcia?
Skorzystaj z tego szablonu, aby przekształcić dane dotyczące konserwacji w informacje przydatne w działaniu. Nasz zespół może pomóc w kwestiach technicznych na etapie przygotowania danych.
Ogranicz opóźnienia w utrzymaniu majątku i popraw wyniki
Skróć czas cyklu o 30 procent i wyeliminuj ukryte wąskie gardła.
Karta kredytowa nie jest wymagana. Konfiguracja zajmuje kilka minut.