Varlık Bakımı Veri Template'iniz
Varlık Bakımı Veri Template'iniz
- Toplama için önerilen nitelikler
- İzlenmesi gereken kritik bakım faaliyetleri
- SAP PM için teknik çıkarma rehberliği
Varlık Bakım Nitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Bakım İş Emri MaintenanceWorkOrder | Bakım iş emri için benzersiz tanımlayıcı. | ||
| Açıklama Bakım İş Emri, SAP Plant Maintenance'daki (AUFK tablosu, AUFNR alanı) merkezi belgedir. Bakım gereksinimini (Bildirim) yürütme kaynaklarına, malzemelere ve maliyetlere bağlar. Process mining analizinde bu, bir bakım işinin oluşturulmasından teknik ve ticari tamamlanmasına kadar uçtan uca yaşam döngüsünün yeniden yapılandırılmasına olanak tanıyan Vaka Kimliği olarak işlev görür. Neden önemli Tüm faaliyetleri, maliyetleri ve zaman damgalarını bir araya getiren, süreç akışının görselleştirilmesini sağlayan benzersiz anahtardır. Nereden alınır SAP Tablosu AUFK, Alan AUFNR Örnekler 00004001234540012345000040098765 | |||
| Faaliyet Adı Activity | Gerçekleşen belirli görev veya durum değişikliği. | ||
| Açıklama Bakım sürecinde gerçekleştirilen adımı temsil eder; örneğin 'Bakım Siparişi Oluşturuldu', 'Malzeme Çıkışı Yapıldı' veya 'Sipariş Operasyonu Onaylandı'. Bunlar genellikle durum değişiklikleri için durum yönetim tablolarından (JEST) veya işlem tablolarından (onaylar için AFRU, malzeme hareketleri için MKPF) türetilir. Bu nitelik, süreç haritasındaki düğümleri belirler. Neden önemli Sürecin 'ne'sini tanımlar, süreç akışını ve varyantlarını keşfetmek için elzemdir. Nereden alınır JEST (Durum), AFRU (Onaylar), QMEL (Bildirimler) kaynaklıdır Örnekler Bakım Siparişi OluşturulduSipariş Serbest BırakıldıTeknik Olarak Tamamlandı | |||
| Kaynak Sistem SourceSystem | Verilerin kaynaklandığı sistem. | ||
| Açıklama Belirli SAP istemcisini veya örneğini (örn. 'SAP_PM_PROD') tanımlar. Birden fazla ERP sisteminin bulunduğu bir ortamda, bu öznitelik aynı kimlikleri paylaşabilecek ancak farklı tüzel kişiliklere veya sistem ortamlarına ait kayıtları ayırt etmeye yardımcı olur. Neden önemli Çok sistemli ortamlarda veri benzersizliğini ve soy ağacını sağlar. Nereden alınır Sistem Yapılandırması / Çıkarma Kaydı Örnekler SAP_ECC_P01SAP_S4H_100 | |||
| Olay Zaman Damgası EventTimestamp | Etkinliğin gerçekleştiği kesin tarih ve saat. | ||
| Açıklama Bir olayın gerçekleştiği belirli anı kaydeder. Durum değişiklikleri için bu, sistem durumu güncelleme süresinden; işlemler içinse onay süresinden gelir. Doğru zaman damgaları, döngü sürelerini, teslim sürelerini hesaplamak ve 'Planlama' ve 'Yürütme' gibi süreç adımları arasındaki darboğazları belirlemek için kritik öneme sahiptir. Neden önemli Olayları doğru sıralamak ve tüm süreye dayalı KPI'ları hesaplamak için gereklidir. Nereden alınır JEST (UDATE/UTIME), AFRU (ISDD/ISDZ), MKPF (CPUDT/CPUTM) Örnekler 2023-10-15T08:30:00Z2023-10-15T14:45:12Z | |||
| Son Veri Güncellemesi LastDataUpdate | En son veri çıkarımının zaman damgası. | ||
| Açıklama Process mining veri modelinde verilerin en son ne zaman yenilendiğini gösterir. Bu, analistlerin içgörülerin ne kadar güncel olduğunu anlamalarını sağlar ve gerçek zamanlı birikimi veya SLA uyumluluğunu izleyen panolar için veri tazeliğini doğrulamaya yardımcı olur. Neden önemli Veri yönetişimi ve panolara güven tesis etmek için kritik. Nereden alınır ETL Zaman Damgası Örnekler 2023-11-01T12:00:00Z | |||
| Ana İş Merkezi MainWorkCenter | Siparişi yürütmek üzere atanan birincil iş merkezi veya ekip. | ||
| Açıklama Ana İş Merkezi (VAPLZ), fiziksel işi gerçekleştirecek teknisyen veya makine grubunu temsil eder. Bu nitelik 'Ekip'e eşlenir ve ekip başına 'Ortalama Onarım Süresi' gibi yürütme verimliliğini analiz etmek için hayati öneme sahiptir. Dahili iş gücü ile harici yükleniciler arasında ayrım yapmaya yardımcı olur. Neden önemli Kaynak düzeyinde performans analizini sağlar. Nereden alınır SAP Tablosu AFKO, Alan VAPLZ (veya yapılandırmaya göre AUFK-VAPLZ) Örnekler MECH_01ELEC_TEAMEXT_CONT | |||
| Bakım Önceliği MaintenancePriority | İş emrine atanan aciliyet düzeyi. | ||
| Açıklama Bakım görevinin önceliğini (PRIOK) gösterir, örneğin '1-Çok Yüksek', '2-Yüksek' veya '3-Orta'. Bu alan, 'Acil Durum İş Emri Oranı' KPI'ı için doğrudan girdidir. Akışı önceliğe göre analiz etmek, yüksek öncelikli siparişlerin rutin işlere kıyasla sistem aracılığıyla gerçekten hızlandırılıp hızlandırılmadığını belirlemeye yardımcı olur. Neden önemli SLA analizi ve acil durum işi tespiti için temel itici güç. Nereden alınır SAP Tablosu AFKO, Alan PRIOK (veya görünüm aracılığıyla AUFK) Örnekler 1-Acil Durum2-Yüksek3-Orta4-Düşük | |||
| Bakım Siparişi Türü MaintenanceOrderType | İş emrini kategorize eder (örn. Önleyici, Düzeltici). | ||
| Açıklama SAP PM'deki Sipariş Tipi (AUART), bakım işinin doğasını ayırt eder. Yaygın tipler arasında PM01 (Düzeltici), PM02 (Önleyici) ve PM03 (Yenileme) bulunur. Bu nitelik, 'Acil İş Emri Etki Monitörü' ve süreç varyantlarını segmentlere ayırmak için elzemdir, çünkü önleyici iş akışları reaktif olanlardan önemli ölçüde farklıdır. Neden önemli Planlı ve plansız işler arasındaki analizi segmentlere ayırmak için temeldir. Nereden alınır SAP Tablosu AUFK, Alan AUART Örnekler PM01PM02PM03 | |||
| Bakım Tesisi MaintenancePlant | Bakımdan sorumlu lojistik tesisi. | ||
| Açıklama Tesis (WERKS), lojistikte birincil organizasyonel birimdir. Verileri fiziksel tesise göre ayırır. Bu nitelik, farklı sahalardaki performansın kıyaslanması için elzemdir ve Dashboard'larda üst düzey organizasyonel filtrelemeyi desteklemek için 'İş Birimi'ne eşlenir. Neden önemli Tesisleri kıyaslamak için birincil organizasyonel filtredir. Nereden alınır SAP Tablosu AUFK, Alan WERKS Örnekler 100020003000 | |||
| Bildirim Numarası NotificationNumber | Bu siparişi tetikleyen bakım bildirimi. | ||
| Açıklama Bildirim Numarası (QMNUM), İş Emrini ilk talebe (Bildirim) geri bağlar. Bu bağlantı, 'Bakım Talebi Alındı'dan tamamlanmaya kadar tam teslim süresini hesaplamak için gereklidir. Bu olmadan, analiz bakım yaşam döngüsünün ilk tespit ve raporlama aşamasını kaçırır. Neden önemli Yürütme aşamasını talep/tespit aşamasına geri bağlar. Nereden alınır SAP Tablosu AUFK, Alan QMNUM Örnekler 1000050010000501 | |||
| Ekipman Numarası EquipmentNumber | Bakımı yapılan belirli fiziksel varlık için tanımlayıcı. | ||
| Açıklama Ekipman Numarası (EQUNR), bireysel makine veya varlık nesnesini tanımlar. Bu alandaki verileri bir araya getirerek, analistler 'Varlık Bakım Maliyeti ve Verimliliği' Dashboard'unu hesaplayabilir ve sık, maliyetli onarımlar gerektiren 'sorunlu' ekipmanları bulabilir. Güvenilirlik odaklı bakım analizini mümkün kılar. Neden önemli Süreç performansını belirli fiziksel varlıklara bağlar. Nereden alınır SAP Tablosu AUFK, Alan EQUNR Örnekler 10004567PUMP-001HVAC-202 | |||
| Fonksiyonel Konum FunctionalLocation | Varlığın kurulu olduğu hiyerarşik konum. | ||
| Açıklama Bakım görevinin yapıldığı teknik yapıdaki yeri (TPLNR) temsil eder. Hareketli olan Ekipmanın aksine, Fonksiyonel Konum statiktir. Bu nitelik, tesisin farklı alanlarında (örneğin, Kazan Dairesi'ne karşı Paketleme Hattı) performans karşılaştırmalarına izin vererek 'Teknik Denetim Döngü Süreleri' Dashboard'unu destekler. Neden önemli Bakım performansının mekansal ve hiyerarşik analizine olanak tanır. Nereden alınır SAP Tablosu IFLOT, Alan TPLNR (veya AUFK-TPLNR aracılığıyla) Örnekler PLANT1-BLD2-LN01US-TX-DAL-01 | |||
| Hedef Bitiş Tarihi TargetFinishDate | Bakım işi için planlanan tamamlama tarihi. | ||
| Açıklama Bu tarih (genellikle Temel Bitiş Tarihi - GLTRP), iş emri için son tarihi temsil eder. 'SLA Uyumluluk Oranı' KPI'ını hesaplamak için gerçek tamamlama zaman damgasıyla karşılaştırılır. Bir iş emrinin zamanında mı yoksa gecikmeli mi olduğunu belirlemek için temel oluşturur. Neden önemli Tüm Zamanında Teslimat (OTD) hesaplamaları için referans noktası. Nereden alınır SAP Tablosu AFKO, Alan GLTRP Örnekler 2023-12-012023-12-15 | |||
| Kullanıcı Tarafından Oluşturuldu CreatedByUser | Siparişi oluşturan kişinin kullanıcı adı. | ||
| Açıklama İş emrini başlatan kullanıcıyı (ERNAM) tanımlar. Bu, genel modelde 'Kullanıcı' ile eşlenir. Manuel ve otomatik oluşturmanın analizine olanak tanır ve 'Bakım Siparişi Oluşturuldu' etkinliğinin denetlenmesine yardımcı olur. Neden önemli Kullanıcı davranış analizi ve denetimini sağlar. Nereden alınır SAP Tablosu AUFK, Alan ERNAM Örnekler JSMITHBSERVICEDDAVIS | |||
| Planlama Grubu ResponsiblePlannerGroup | Siparişi işlemekten sorumlu planlayıcı grubu. | ||
| Açıklama Planlayıcı Grubu (INGRP), bakım işini planlamaktan sorumlu belirli ekibi veya departmanı tanımlar. Bu, 'Departman'a eşlenir ve hazırlık aşamasında hangi planlama ekiplerinin darboğaz olduğunu belirlemek için 'Kaynak Kullanımı ve Planlama' Dashboard'u için çok önemlidir. Neden önemli Planlama sürecine sahip olan idari ekibi tanımlar. Nereden alınır SAP Tablosu AUFK, Alan INGRP Örnekler M01ELEMEC | |||
| Sistem Durumu SystemStatus | Siparişin mevcut teknik durumu (örn. REL, TECO). | ||
| Açıklama Şu anda siparişe uygulanan aktif sistem durumlarının (JEST'ten) birleştirilmiş bir dizesi veya listesi. Yaygın değerler arasında CRTD (Oluşturuldu), REL (Serbest Bırakıldı), TECO (Teknik Olarak Tamamlandı) ve CLSD (Kapandı) bulunur. Bu, 'Bekleyen ve Devam Eden İşler Monitörü'nde açık ve kapalı vakaları filtrelemeye yardımcı olur. Neden önemli Siparişin yaşam döngüsü aşamasının birincil göstergesi. Nereden alınır SAP Fonksiyon Modülü STATUS_TEXT_EDIT veya JEST Tablosu Örnekler REL CNFTECOCRTD MACM | |||
| Acil İş mi IsEmergencyWork | İş emrinin acil durum olup olmadığını gösteren bayrak. | ||
| Açıklama Bakım Önceliği'ne göre hesaplanan bir boolean öznitelik. Eğer Öncelik '1' ise (veya yapılandırmadaki Acil Durum için belirli kod ise), bu bayrak doğrudur. Bu, pano katmanında karmaşık bir mantık olmadan 'Acil Durum İş Emri Oranı' KPI'ını filtrelemeyi ve oluşturmayı basitleştirir. Neden önemli Kritik reaktif bakım analizi için filtrelemeyi basitleştirir. Nereden alınır Bakım Önceliği'nden hesaplanır Örnekler truefalse | |||
| Etkinlik Süresi ActivityDuration | Belirli etkinliği tamamlamak için harcanan süre. | ||
| Açıklama Belirli adımın süresi, özellikle işçilik saatlerinin kaydedildiği 'Operasyon Onaylandı' etkinlikleri için kullanışlıdır. Bu, genel modeldeki 'ProcessingTime'a eşlenir ve verimlilik ile işçilik kullanımını hesaplamak için kullanılır. Neden önemli Görevlere harcanan gerçek çabayı ölçer. Nereden alınır SAP Tablosu AFRU, Alan ISDD/ISDZ ile IEDD/IEDZ Karşılaştırması Örnekler 2.5 saat45 minutes | |||
| Planlanan İşçilik Saatleri PlannedLaborHours | Sipariş için tahmini işçilik saatleri. | ||
| Açıklama Sipariş işlemlerinden gelen toplam planlanan iş (ARBEI). Bunu gerçek Etkinlik Süresi ile karşılaştırmak, 'Planlama ve Tahmin Performansı' Dashboard'unda bakım planlamasının doğruluğunu değerlendirmeye yardımcı olur. Neden önemli Planlama doğruluğu analizi için temel metrik. Nereden alınır SAP Tablosu AFKO (Operasyon Planlanan İş Toplamı) Örnekler 4.08.512.0 | |||
| Toplam Gerçek Maliyet TotalActualCost | İş emrine kaydedilen toplam fiili maliyet. | ||
| Açıklama İşçilik, malzeme ve hizmetlerden gelen toplam maliyetler (PMCO tablosundan). Bu öznitelik, yöneticilerin bakım faaliyetlerinin finansal etkisini görmelerini sağlayan 'Varlık Bakım Maliyeti ve Verimi' panosunu destekler. Varlıkları onarmanın mı yoksa değiştirmenin mi maliyet etkinliğini belirlemek için esastır. Neden önemli Operasyonel süreç verilerine finansal boyut sağlar. Nereden alınır SAP Tablosu PMCO (değer tipi 04 - Gerçek - toplamı) Örnekler 150.002500.500.00 | |||
| Yeniden İşleme mi? IsRework | Siparişin yeniden işleme faaliyetlerini içerip içermediğini gösteren bayrak. | ||
| Açıklama Bir süreç döngüsü olup olmadığını belirleyen hesaplanmış bir boolean; özellikle 'Bakım Görevi Yürütüldü' etkinliği birden fazla kez gerçekleştiyse veya durum 'Teknik Tamamlandı'dan 'Devam Ediyor'a geri döndüyse. Bu, 'Bakım Yeniden İşleme Oranı' KPI'ını destekler ve kalite sorunlarını belirlemeye yardımcı olur. Neden önemli Kalite kontrol analizini doğrudan destekler. Nereden alınır Süreç Akışı'ndan hesaplanır Örnekler truefalse | |||
Varlık Bakım Faaliyetleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Bakım Siparişi Oluşturuldu | Sistemde bakım iş emri nesnesinin oluşturulmasını işaretler. Açıkça Sipariş Ana Verileri tablosunun oluşturulma zaman damgasından yakalanır. | ||
| Neden önemli Bu, talepten planlama ve yürütmeye geçişi işaretleyen, vaka için merkezi ana olaydır. Nereden alınır AUFK Tablosu, ERDAT alanı (Tarih) ve ERFZEIT alanı (Saat). Yakala IW31 işlemi yürütüldüğünde kaydedildi Event tipi explicit | |||
| Bakım Siparişi Serbest Bırakıldı | Planlamanın tamamlandığını ve siparişin yürütme için serbest bırakıldığını gösterir. Sistem durum günlüklerinde REL durum değişikliği izlenerek yakalanır. | ||
| Neden önemli Bu kilometre taşı, planlama aşamasını yürütme aşamasından ayırır ve Planlama ve Tahmin Süresini ölçmek için kritik öneme sahiptir. Nereden alınır JCDS Tablosu (Durum Değişiklik Belgeleri), Durum I0002 (REL). Yakala JCDS'de durum REL olarak güncellendiğinde kaydedildi Event tipi explicit | |||
| İş Tamamlama Ayarlandı | İş emrinin son idari kapanışını işaretler, daha fazla maliyet girişini engeller. CLSD (Kapalı) durum değişikliği ile yakalanır. | ||
| Neden önemli Sipariş yaşam döngüsünün mutlak sonunu temsil eder, Veri Doğruluğu ve Kayıt Uyumluluğu için kritiktir. Nereden alınır JCDS Tablosu, Durum I0046 (CLSD). Yakala JCDS'de durum CLSD olarak güncellendiğinde kaydedildi Event tipi explicit | |||
| Mal Çıkışı Yapıldı | Yedek parça veya malzemelerin iş emrine karşı fiziksel tüketimini kaydeder. Siparişe bağlı malzeme belgesi başlıklarından alınmıştır. | ||
| Neden önemli Parçaların mevcut olduğunu ve seçildiğini onaylar, bu da Parça Kullanılabilirliği Bekleme Süresi analizini doğrudan etkiler. Nereden alınır MSEG/MKPF Tablosu, Hareket Tipi 261 (Sipariş için Mal Çıkışı). Yakala MIGO/MB1A işlemi yürütüldüğünde kaydedildi Event tipi explicit | |||
| Sipariş Operasyonu Onaylandı | Bir teknisyenin belirli bir operasyonda harcadığı fiili sürenin kaydını temsil eder. Bu, varlık üzerindeki gerçek yürütme işini yakalar. | ||
| Neden önemli Bu etkinlik, Ortalama Onarım Süresi ve işçilik maliyeti hesaplamaları için birincil veri kaynağıdır. Nereden alınır AFRU Tablosu (Sipariş Onayları). Yakala IW41 işlemi yürütüldüğünde kaydedildi Event tipi explicit | |||
| Teknik Tamamlama Ayarlandı | Bakım işini fiziksel ve teknik olarak bitmiş olarak işaretler. TECO (Teknik Olarak Tamamlandı) durum değişikliği ile yakalanır. | ||
| Neden önemli Operasyonel analiz için en kritik bitiş noktasıdır, varlığın restore edildiğini ve bakımın tamamlandığını gösterir. Nereden alınır JCDS Tablosu, Durum I0045 (TECO). Yakala JCDS'de durum TECO olarak güncellendiğinde kaydedildi Event tipi explicit | |||
| Bakım Bildirimi Oluşturuldu | Genellikle bir iş emri için tetikleyici olan bir bakım bildiriminin ilk oluşturulmasını kaydeder. QMEL tablosunun oluşturma zaman damgasından alınan bu etkinlik, üst akış talebini uygulama siparişine bağlar. | ||
| Neden önemli Bu etkinlik, uçtan uca bakım sürecinin başlangıcını belirler ve hata tespiti ile sipariş oluşturma arasındaki reaksiyon sürelerinin hesaplanmasına olanak tanır. Nereden alınır QMEL Tablosu, ERDAT alanı (Oluşturma Tarihi) ve MZEIT alanı (Saat). QMEL-AUFNR aracılığıyla siparişe bağlı. Yakala QMEL tablosunda kayıt oluşturulduğunda kaydedildi Event tipi explicit | |||
| Bakım Önceliği Değiştirildi | İş emrinin öncelik seviyesindeki bir güncellemeyi, örneğin Acil Durum'a yükseltmeyi kaydeder. Sipariş ana verileriyle ilişkili Değişiklik Belgelerinden türetilmiştir. | ||
| Neden önemli Öncelik değişikliklerini takip etmek, süreç sapmalarını açıklar ve reaktif yükseltmeleri belirleyerek Acil İş Emri Etki Monitörünü destekler. Nereden alınır AUFTRAG Nesne Sınıfı için CDPOS/CDHDR Tablosu, PRIOK Alanı. Yakala Değişiklik Belgelerinde (CDPOS) Kaydedildi Event tipi explicit | |||
| İş Emri Planlandı | Operasyonların belirli bir kapasiteye veya tarihe göre zamanlamasını gösterir. Operasyonlara Sevkiyat durumunun atanmasından çıkarılır. | ||
| Neden önemli Kaynak tahsisinin verimliliğini ölçer ve Kaynak Kullanımı ve Zamanlama panosunu destekler. Nereden alınır İşlemler (ObjType OV) için JCDS Tablosu (Durum Değişiklik Belgeleri), Durum I0009 (DSPT). Yakala Durum alanını öncesi/sonrası ile karşılaştır Event tipi inferred | |||
| Malzeme Bileşeni Eklendi | Yedek parça veya malzemelerin iş emri bileşen listesine eklenmesini kaydeder. Bir rezervasyon kaleminin oluşturulmasından alınmıştır. | ||
| Neden önemli Gerekli parçalar için tedarik döngüsünün başlangıcını belirler, Yedek Parça Tedarik Teslim Süreleri panosunu destekler. Nereden alınır RESB Tablosu, BDTER alanı (Gereksinim Tarihi) veya oluşturma zaman damgası. Yakala RESB'ye satır öğesi eklendiğinde kaydedildi Event tipi explicit | |||
| Ölçüm Okuması Kaydedildi | Sayaç okuması veya durum değerlendirmesi gibi bir ölçüm belgesinin girişini kaydeder. Genellikle Teknik Denetim olayı olarak hizmet eder. | ||
| Neden önemli Durum Tabanlı Bakım ve Teknik Muayene Döngü Sürelerini izlemek için esastır. Nereden alınır IMRG Tablosu (Ölçüm Belgesi), Ekipman veya Fonksiyonel Konuma bağlı. Yakala Ölçüm belgesi oluşturulduğunda kaydedildi Event tipi explicit | |||
| Satın Alma İsteği Oluşturuldu | Harici tedarik veya hizmetler için bir talebin oluşturulduğunu gösterir. Bu, dahili bakım siparişini harici tedarik zincirine bağlar. | ||
| Neden önemli Harici satıcılar veya stok dışı malzeme tedarikinden kaynaklanan gecikmeleri analiz etmek için hayati. Nereden alınır EBAN Tablosu, Hesap Ataması aracılığıyla AUFK-AUFNR'ye bağlı. Yakala EBAN kaydı oluşturulduğunda kaydedildi Event tipi explicit | |||
| Sipariş Maliyeti Uzlaştırıldı | Sipariş üzerinde toplanan maliyetlerin kontrol nesnesine (örn. Maliyet Merkezi) aktarıldığını gösterir. Kontrol belgesinden yakalanır. | ||
| Neden önemli Finansal kapanış boyutunu izler ve Finansal Ödeme Süresi KPI'sını destekler. Nereden alınır COBK Tablosu (CO Nesnesi: Belge Başlığı), Siparişe bağlı. Yakala Mutabakat işlemi KO88 yürütüldüğünde kaydedildi Event tipi explicit | |||
| Teknik Tamamlama Tersine Çevrildi | Teknik Tamamlama durumunun iptalini kaydeder, siparişin yeniden açıldığını gösterir. Bu, süreç modelinde bir yeniden işleme döngüsü oluşturur. | ||
| Neden önemli Bakım Yeniden İşleme Oranı KPI'ı için birincil göstergedir, erken kapanmaları veya kalite sorunlarını vurgular. Nereden alınır JCDS Tablosu, Durum I0045 (TECO) -> Etkin Değil değişikliği. Yakala TECO durumu devre dışı bırakıldığında kaydedildi Event tipi explicit | |||
Veri Çekim Kılavuzları
Adımlar
Veri Kaynağı Arayüzünü Belirleyin: SAP S/4HANA SQL arayüzüne nasıl erişeceğinizi belirleyin. Bu genellikle SAP HANA Studio, Eclipse'deki ABAP Development Tools (ADT) veya HANA veritabanı analiz katmanınıza açık ise bir DBaaS bağlantı dizesi aracılığıyla yapılır.
CDS Görünümünün Mevcut Olduğunu Doğrulayın: Standart Çekirdek Veri Hizmetleri (CDS) görünümlerinin S/4HANA sisteminizde aktif olduğundan emin olun. Gerekli birincil görünümler I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation ve I_MeasurementDocument'tır. Tam olay geçmişini yeniden oluşturmak için sistem durumu geçmiş tablosu JCDS'ye ve değişiklik belgesi tablolarına (CDHDR/CDPOS) da erişmeniz gerekecektir, çünkü standart CDS görünümleri genellikle yalnızca mevcut durumu gösterir.
SQL Ortamını Hazırlayın: SQL düzenleyicinizi açın. Kullanıcınızın yukarıda listelenen yapıtlar için DDL SQL görünümlerinde (genellikle SAPABAP1 şeması veya benzeri) SELECT izinlerine sahip olduğundan emin olun.
Çıkarma Sorgusunu Yürütün: Sağlanan SQL betiğini düzenleyicinize kopyalayın. Yer tutucu [Your Client Number] değerini kendi SAP istemci kimliğinizle (örn. 100) değiştirin. Belirli bir tarih aralığına göre filtreleme yapıyorsanız, WHERE yan tümcelerindeki EventTimestamp filtrelerini güncelleyin.
Veri Dönüşümü: Sorgu, zaman damgalarını dönüştürme ve durum kodlarını okunabilir metne eşleme gibi çoğu dönüşümü halleder. Ancak, hedef sisteminiz gerektiriyorsa, dışa aktarma sırasında EventTimestamp sütununun ISO 8601 (YYYY-MM-DDTHH:MM:SS) formatında olduğundan emin olun.
Sonucu Dışa Aktarın: Sorguyu yürütün ve sonuçları bir CSV veya Parquet dosyasına dışa aktarın. Kullanıcı adlarındaki veya açıklamalardaki özel karakterleri işlemek için kodlamanın UTF-8 olarak ayarlandığından emin olun.
Sütun Eşlemesini Doğrulayın: Dışa aktarılan bir örneği açın ve MaintenanceWorkOrder, Activity ve EventTimestamp sütunlarının tamamen doldurulduğundan emin olun. Activity sütununun gereksinimlerde listelenen belirli dizeleri (örn. Maintenance Order Created, Goods Issue Posted) içerdiğini kontrol edin.
ProcessMind'e Yükleyin: Doğrulanmış düz dosyayı ProcessMind'e aktarın. Activity sütununu Activity ID alanına, MaintenanceWorkOrder'ı Case ID alanına ve EventTimestamp'ı Timestamp alanına eşleyin.
Konfigürasyon
- İstemci Filtresi: SAP sistemleri çoklu istemcilidir. Yinelenen verileri veya istemciler arası sızıntıyı önlemek için her zaman
MANDTveyaClient(örn. '100') ile filtreleyin. - Tarih Aralığı: Bakım Siparişinin
CreationDate'ini son 6 ila 12 ay için filtrelemeniz önerilir.JCDS(Durum) veyaCDPOS(Değişiklik Belgeleri) tam geçmişini tarih filtresi olmadan sorgulamak performans zaman aşımlarına neden olabilir. - Dil Anahtarı: Sorgu varsayılan olarak İngilizce ('E') olarak ayarlanmıştır. Kuruluşunuz metin açıklamaları için farklı bir birincil dil kullanıyorsa, dil filtresini ayarlayın.
- Sistem Erişimi: ABAP Çekirdek Veri Hizmetleri şemasına veya temel HANA tablolarına erişim gerektirir. Saf CDS görünümleri genellikle anlık görüntü tabanlı olduğundan, geçmiş durum analizi için ham JCDS ve CDHDR tablolarına erişim çok önemlidir.
- Sipariş Türleri: Sorgu tüm sipariş türlerini çıkarır. Yalnızca belirli bakım senaryolarını analiz etmek istiyorsanız
MaintenanceOrderType'ı (örn. sadece PM01, PM02) filtrelemek isteyebilirsiniz.
a Örnek Sorgu sql
/* Activity 1: Maintenance Notification Created */
SELECT
CAST(N.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(N.CreationDate, ' '), N.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
N.MaintenanceOrderType,
N.MaintenancePriority,
N.Equipment AS EquipmentNumber,
N.FunctionalLocation,
N.MaintenancePlant,
N.MaintenancePlannerGroup AS ResponsiblePlannerGroup,
N.MainWorkCenter,
N.MaintenanceNotification AS NotificationNumber,
CAST(NULL AS DATE) AS TargetFinishDate,
N.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceNotification N
JOIN I_MaintenanceOrder O ON N.MaintenanceOrder = O.MaintenanceOrder
WHERE N.MaintenanceOrder IS NOT NULL AND N.MaintenanceOrder <> ''
UNION ALL
/* Activity 2: Maintenance Order Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Created' AS Activity,
O.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrder O
UNION ALL
/* Activity 3: Maintenance Priority Changed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Priority Changed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(H.UDATE, ' '), H.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
H.USERNAME AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM CDHDR H
JOIN CDPOS P ON H.OBJECTCLAS = P.OBJECTCLAS AND H.OBJECTID = P.OBJECTID AND H.CHANGENR = P.CHANGENR
JOIN I_MaintenanceOrder O ON O.MaintenanceOrder = H.OBJECTID
WHERE H.OBJECTCLAS = 'ORDER'
AND P.TABNAME = 'AFKO'
AND P.FNAME = 'PRIOK'
UNION ALL
/* Activity 4: Maintenance Order Released */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Released' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0002' /* REL Status */
AND J.INACT = ' '
UNION ALL
/* Activity 5: Material Component Added */
SELECT
CAST(C.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Material Component Added' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(C.CreationDate, ' '), COALESCE(C.CreationTime, '000000')), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrderComponent C
JOIN I_MaintenanceOrder O ON C.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 6: Purchase Requisition Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Purchase Requisition Created' AS Activity,
PR.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
PR.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_PurchasingDocumentItem PR
JOIN I_MaintenanceOrder O ON PR.ServiceMaintenanceOrder = O.MaintenanceOrder
WHERE PR.PurchasingDocumentCategory = 'B' /* Requisition */
UNION ALL
/* Activity 7: Goods Issue Posted */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Goods Issue Posted' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(MD.CreationDate, ' '), MD.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
MD.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaterialDocumentItem MD
JOIN I_MaintenanceOrder O ON MD.MaintenanceOrder = O.MaintenanceOrder
WHERE MD.GoodsMovementType = '261'
UNION ALL
/* Activity 8: Work Order Scheduled (Operation Dispatched) */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Work Order Scheduled' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrderOperation OP ON J.OBJNR = OP.MaintenanceOrderOperationInternalID
JOIN I_MaintenanceOrder O ON OP.MaintenanceOrder = O.MaintenanceOrder
WHERE J.STAT = 'I0019' /* DSP Dispatched Status */
AND J.INACT = ' '
UNION ALL
/* Activity 9: Order Operation Confirmed */
SELECT
CAST(CNF.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Operation Confirmed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(CNF.CreationDate, ' '), CNF.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
CNF.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintOrderConfirmation CNF
JOIN I_MaintenanceOrder O ON CNF.MaintenanceOrder = O.MaintenanceOrder
WHERE CNF.IsReversed = ' '
UNION ALL
/* Activity 10: Measurement Reading Recorded */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Measurement Reading Recorded' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(M.CreationDate, ' '), M.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
M.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MeasurementDocument M
JOIN I_MaintenanceOrder O ON M.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 11: Technical Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = ' '
UNION ALL
/* Activity 12: Technical Completion Reversed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Reversed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = 'X' /* Inactive indicates it was removed/reversed */
AND J.CHIND = 'U' /* Update indicator */
UNION ALL
/* Activity 13: Order Cost Settled */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Cost Settled' AS Activity,
JE.CreationDateTime AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
JE.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_ActualPlanJrnlEntryItem JE
JOIN I_MaintenanceOrder O ON JE.OrderID = O.MaintenanceOrder
WHERE JE.BusinessTransactionType = 'KOAO' /* Settlement */
UNION ALL
/* Activity 14: Business Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Business Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0046' /* CLSD Status */
AND J.INACT = ' ' Adımlar
Veri Kaynağı Arayüzünü Belirleyin: SAP S/4HANA SQL arayüzüne nasıl erişeceğinizi belirleyin. Bu genellikle SAP HANA Studio, Eclipse'deki ABAP Development Tools (ADT) veya HANA veritabanı analiz katmanınıza açık ise bir DBaaS bağlantı dizesi aracılığıyla yapılır.
CDS Görünümünün Mevcut Olduğunu Doğrulayın: Standart Çekirdek Veri Hizmetleri (CDS) görünümlerinin S/4HANA sisteminizde aktif olduğundan emin olun. Gerekli birincil görünümler I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation ve I_MeasurementDocument'tır. Tam olay geçmişini yeniden oluşturmak için sistem durumu geçmiş tablosu JCDS'ye ve değişiklik belgesi tablolarına (CDHDR/CDPOS) da erişmeniz gerekecektir, çünkü standart CDS görünümleri genellikle yalnızca mevcut durumu gösterir.
SQL Ortamını Hazırlayın: SQL düzenleyicinizi açın. Kullanıcınızın yukarıda listelenen yapıtlar için DDL SQL görünümlerinde (genellikle SAPABAP1 şeması veya benzeri) SELECT izinlerine sahip olduğundan emin olun.
Çıkarma Sorgusunu Yürütün: Sağlanan SQL betiğini düzenleyicinize kopyalayın. Yer tutucu [Your Client Number] değerini kendi SAP istemci kimliğinizle (örn. 100) değiştirin. Belirli bir tarih aralığına göre filtreleme yapıyorsanız, WHERE yan tümcelerindeki EventTimestamp filtrelerini güncelleyin.
Veri Dönüşümü: Sorgu, zaman damgalarını dönüştürme ve durum kodlarını okunabilir metne eşleme gibi çoğu dönüşümü halleder. Ancak, hedef sisteminiz gerektiriyorsa, dışa aktarma sırasında EventTimestamp sütununun ISO 8601 (YYYY-MM-DDTHH:MM:SS) formatında olduğundan emin olun.
Sonucu Dışa Aktarın: Sorguyu yürütün ve sonuçları bir CSV veya Parquet dosyasına dışa aktarın. Kullanıcı adlarındaki veya açıklamalardaki özel karakterleri işlemek için kodlamanın UTF-8 olarak ayarlandığından emin olun.
Sütun Eşlemesini Doğrulayın: Dışa aktarılan bir örneği açın ve MaintenanceWorkOrder, Activity ve EventTimestamp sütunlarının tamamen doldurulduğundan emin olun. Activity sütununun gereksinimlerde listelenen belirli dizeleri (örn. Maintenance Order Created, Goods Issue Posted) içerdiğini kontrol edin.
ProcessMind'e Yükleyin: Doğrulanmış düz dosyayı ProcessMind'e aktarın. Activity sütununu Activity ID alanına, MaintenanceWorkOrder'ı Case ID alanına ve EventTimestamp'ı Timestamp alanına eşleyin.
Konfigürasyon
- İstemci Filtresi: SAP sistemleri çoklu istemcilidir. Yinelenen verileri veya istemciler arası sızıntıyı önlemek için her zaman
MANDTveyaClient(örn. '100') ile filtreleyin. - Tarih Aralığı: Bakım Siparişinin
CreationDate'ini son 6 ila 12 ay için filtrelemeniz önerilir.JCDS(Durum) veyaCDPOS(Değişiklik Belgeleri) tam geçmişini tarih filtresi olmadan sorgulamak performans zaman aşımlarına neden olabilir. - Dil Anahtarı: Sorgu varsayılan olarak İngilizce ('E') olarak ayarlanmıştır. Kuruluşunuz metin açıklamaları için farklı bir birincil dil kullanıyorsa, dil filtresini ayarlayın.
- Sistem Erişimi: ABAP Çekirdek Veri Hizmetleri şemasına veya temel HANA tablolarına erişim gerektirir. Saf CDS görünümleri genellikle anlık görüntü tabanlı olduğundan, geçmiş durum analizi için ham JCDS ve CDHDR tablolarına erişim çok önemlidir.
- Sipariş Türleri: Sorgu tüm sipariş türlerini çıkarır. Yalnızca belirli bakım senaryolarını analiz etmek istiyorsanız
MaintenanceOrderType'ı (örn. sadece PM01, PM02) filtrelemek isteyebilirsiniz.
a Örnek Sorgu sql
/* Activity 1: Maintenance Notification Created */
SELECT
CAST(N.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(N.CreationDate, ' '), N.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
N.MaintenanceOrderType,
N.MaintenancePriority,
N.Equipment AS EquipmentNumber,
N.FunctionalLocation,
N.MaintenancePlant,
N.MaintenancePlannerGroup AS ResponsiblePlannerGroup,
N.MainWorkCenter,
N.MaintenanceNotification AS NotificationNumber,
CAST(NULL AS DATE) AS TargetFinishDate,
N.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceNotification N
JOIN I_MaintenanceOrder O ON N.MaintenanceOrder = O.MaintenanceOrder
WHERE N.MaintenanceOrder IS NOT NULL AND N.MaintenanceOrder <> ''
UNION ALL
/* Activity 2: Maintenance Order Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Created' AS Activity,
O.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrder O
UNION ALL
/* Activity 3: Maintenance Priority Changed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Priority Changed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(H.UDATE, ' '), H.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
H.USERNAME AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM CDHDR H
JOIN CDPOS P ON H.OBJECTCLAS = P.OBJECTCLAS AND H.OBJECTID = P.OBJECTID AND H.CHANGENR = P.CHANGENR
JOIN I_MaintenanceOrder O ON O.MaintenanceOrder = H.OBJECTID
WHERE H.OBJECTCLAS = 'ORDER'
AND P.TABNAME = 'AFKO'
AND P.FNAME = 'PRIOK'
UNION ALL
/* Activity 4: Maintenance Order Released */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Released' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0002' /* REL Status */
AND J.INACT = ' '
UNION ALL
/* Activity 5: Material Component Added */
SELECT
CAST(C.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Material Component Added' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(C.CreationDate, ' '), COALESCE(C.CreationTime, '000000')), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrderComponent C
JOIN I_MaintenanceOrder O ON C.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 6: Purchase Requisition Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Purchase Requisition Created' AS Activity,
PR.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
PR.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_PurchasingDocumentItem PR
JOIN I_MaintenanceOrder O ON PR.ServiceMaintenanceOrder = O.MaintenanceOrder
WHERE PR.PurchasingDocumentCategory = 'B' /* Requisition */
UNION ALL
/* Activity 7: Goods Issue Posted */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Goods Issue Posted' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(MD.CreationDate, ' '), MD.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
MD.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaterialDocumentItem MD
JOIN I_MaintenanceOrder O ON MD.MaintenanceOrder = O.MaintenanceOrder
WHERE MD.GoodsMovementType = '261'
UNION ALL
/* Activity 8: Work Order Scheduled (Operation Dispatched) */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Work Order Scheduled' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrderOperation OP ON J.OBJNR = OP.MaintenanceOrderOperationInternalID
JOIN I_MaintenanceOrder O ON OP.MaintenanceOrder = O.MaintenanceOrder
WHERE J.STAT = 'I0019' /* DSP Dispatched Status */
AND J.INACT = ' '
UNION ALL
/* Activity 9: Order Operation Confirmed */
SELECT
CAST(CNF.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Operation Confirmed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(CNF.CreationDate, ' '), CNF.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
CNF.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintOrderConfirmation CNF
JOIN I_MaintenanceOrder O ON CNF.MaintenanceOrder = O.MaintenanceOrder
WHERE CNF.IsReversed = ' '
UNION ALL
/* Activity 10: Measurement Reading Recorded */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Measurement Reading Recorded' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(M.CreationDate, ' '), M.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
M.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MeasurementDocument M
JOIN I_MaintenanceOrder O ON M.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 11: Technical Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = ' '
UNION ALL
/* Activity 12: Technical Completion Reversed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Reversed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = 'X' /* Inactive indicates it was removed/reversed */
AND J.CHIND = 'U' /* Update indicator */
UNION ALL
/* Activity 13: Order Cost Settled */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Cost Settled' AS Activity,
JE.CreationDateTime AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
JE.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_ActualPlanJrnlEntryItem JE
JOIN I_MaintenanceOrder O ON JE.OrderID = O.MaintenanceOrder
WHERE JE.BusinessTransactionType = 'KOAO' /* Settlement */
UNION ALL
/* Activity 14: Business Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Business Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0046' /* CLSD Status */
AND J.INACT = ' '