Varlık bakımı Veri Templateiniz
Varlık bakımı Veri Templateiniz
- Toplanması önerilen öznitelikler
- İzlenecek önemli bakım etkinlikleri
- SAP PM için teknik veri çıkarma yönergeleri
Varlık bakımı öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Bakım iş emri MaintenanceWorkOrder | Bakım iş emrinin benzersiz tanımlayıcısı. | ||
| Açıklama Bakım İş Emri, SAP Plant Maintenance içindeki temel belgedir (AUFK tablosu, AUFNR alanı). Bakım gereksinimini (Bildirim), uygulama kaynaklarına, malzemelere ve maliyetlere bağlar. Process Mining analizinde vaka kimliği olarak kullanılır ve bakım işinin oluşturulmasından teknik ve idari tamamlanmasına kadar tüm yaşam döngüsünün yeniden oluşturulmasını sağlar. Neden önemli? Tüm etkinlikleri, maliyetleri ve zaman damgalarını birbirine bağlayan benzersiz anahtardır; süreç akışının görselleştirilmesini sağlar. Nereden alınır? SAP AUFK tablosu, AUFNR alanı Örnekler 00004001234540012345000040098765 | |||
| Etkinlik 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ı, örneğin 'Bakım emri oluşturuldu', 'Mal çıkışı kaydedildi' veya 'Emir operasyonu onaylandı' etkinliklerini ifade eder. Durum değişiklikleri için genellikle durum yönetimi tablolarından (JEST), onaylar için işlem tablolarından (AFRU), malzeme hareketleri içinse MKPF tablosundan elde edilir. Bu öznitelik, süreç haritasındaki düğümleri belirler. Neden önemli? Sürecin 'ne' olduğunu tanımlar; süreç akışını ve varyantlarını keşfetmek için gereklidir. Nereden alınır? JEST (Durum), AFRU (Onaylar), QMEL (Bildirimler) tablolarından elde edilir Örnekler Bakım emri oluşturulduEmir serbest bırakıldıTeknik olarak tamamlandı | |||
| Kaynak sistem SourceSystem | Verinin geldiği sistem. | ||
| Açıklama Belirli SAP istemcisini veya örneğini (ör. 'SAP_PM_PROD') tanımlar. Birden fazla ERP sisteminin bulunduğu ortamlarda bu öznitelik, aynı kimliğe sahip olsa da farklı tüzel kişiliklere veya sistem ortamlarına ait kayıtları ayırt etmeye yardımcı olur. Neden önemli? Birden fazla sistemin bulunduğu ortamlarda verilerin benzersizliğini ve kaynağının izlenebilirliğini sağlar. Nereden alınır? Sistem yapılandırması / veri çıkarma günlüğü Ö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 anı kaydeder. Durum değişikliklerinde sistem durumu güncelleme saati, operasyonlarda ise onay saati kullanılır. 'Planlama' ve 'Uygulama' gibi süreç adımları arasındaki çevrim sürelerini ve bekleme sürelerini hesaplamak, darboğazları belirlemek için doğru zaman damgaları gerekir. Neden önemli? Olayları doğru sıraya koymak ve süreye dayalı tüm 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 çıkarma işleminin zaman damgası. | ||
| Açıklama Process Mining veri modelindeki verilerin en son ne zaman yenilendiğini gösterir. Analistler bu bilgiyle içgörülerin ne kadar güncel olduğunu anlayabilir ve gerçek zamanlı iş birikimini veya SLA uyumluluğunu izleyen Dashboardlardaki verilerin güncelliğini doğrulayabilir. Neden önemli? Veri yönetişimi ve Dashboardlara duyulan güven açısından önemlidir. Nereden alınır? ETL zaman damgası Örnekler 2023-11-01T12:00:00Z | |||
| Ana iş merkezi MainWorkCenter | Emri uygulamakla görevlendirilen ana iş merkezi veya ekip. | ||
| Açıklama Ana iş merkezi (VAPLZ), fiziksel işi yapacak teknisyen veya makine grubunu belirtir. 'Ekip' ile eşleştirilen bu öznitelik, ekip başına 'Ortalama Onarım Süresi' gibi uygulama verimliliği ölçümlerini analiz etmek için önemlidir. Kurum içi iş gücüyle harici yüklenicileri ayırt etmeye yardımcı olur. Neden önemli? Kaynak düzeyinde performans analizine imkân verir. Nereden alınır? SAP AFKO tablosu, VAPLZ alanı (yapılandırmaya bağlı olarak AUFK-VAPLZ) Örnekler MEKANİK_01ELEKTRİK_EKİBİHARİCİ_YÜKLENİCİ | |||
| Bakım emri türü MaintenanceOrderType | İş emrini türüne göre sınıflandırır (ör. önleyici, düzeltici). | ||
| Açıklama SAP PM’deki emir türü (AUART), bakım işinin niteliğini belirtir. Yaygın türler arasında PM01 (Düzeltici), PM02 (Önleyici) ve PM03 (Yenileme) bulunur. Önleyici iş akışları tepkisel iş akışlarından önemli ölçüde farklı olduğundan, bu öznitelik Acil İş Emri Etki İzleyicisi ve süreç varyantlarını gruplandırmak için gereklidir. Neden önemli? Planlı ve plansız işleri ayrı ayrı analiz etmek için temel bir özniteliktir. Nereden alınır? SAP AUFK tablosu, AUART alanı Örnekler PM01PM02PM03 | |||
| Bakım önceliği MaintenancePriority | İş emrine atanan aciliyet düzeyi. | ||
| Açıklama Bakım görevinin önceliğini (PRIOK), örneğin '1-Çok yüksek', '2-Yüksek' veya '3-Orta' olarak gösterir. Bu alan, 'Acil İş Emri Oranı' KPI’ının doğrudan girdisidir. Akışı önceliğe göre analiz etmek, yüksek öncelikli emirlerin rutin işlere kıyasla gerçekten daha hızlı ilerleyip ilerlemediğini belirlemeye yardımcı olur. Neden önemli? SLA analizi ve acil işlerin belirlenmesi için temel bir etkendir. Nereden alınır? SAP AFKO tablosu, PRIOK alanı (veya görünüm üzerinden AUFK) Örnekler 1-Acil2-Yüksek3-Orta4-Düşük | |||
| Bakım tesisi MaintenancePlant | Bakım işinden sorumlu lojistik tesisi. | ||
| Açıklama Tesis (WERKS), lojistikteki temel kuruluş birimidir. Verileri fiziksel tesislere göre ayırır. Bu öznitelik, farklı tesislerin performansını karşılaştırmak için gereklidir ve Dashboardlarda üst düzey kuruluş filtrelemesini desteklemek üzere 'İş Birimi' ile eşleştirilir. Neden önemli? Tesisleri karşılaştırmak için kullanılan temel kuruluş filtresidir. Nereden alınır? SAP AUFK tablosu, WERKS alanı Örnekler 100020003000 | |||
| Bildirim numarası NotificationNumber | Bu emri başlatan bakım bildirimi. | ||
| Açıklama Bildirim numarası (QMNUM), iş emrini ilk talebe (Bildirime) bağlar. 'Bakım talebinin alınması' ile tamamlanma arasındaki toplam süreyi hesaplamak için bu bağlantı gerekir. Bu bağlantı olmadan analiz, bakım yaşam döngüsünün ilk tespit ve bildirim aşamasını kapsamaz. Neden önemli? Yürütme aşamasını yeniden talep veya tespit aşamasına bağlar. Nereden alınır? SAP tablosu AUFK, alan QMNUM Örnekler 1000050010000501 | |||
| Ekipman numarası EquipmentNumber | Bakımı yapılan fiziksel varlığın benzersiz tanımlayıcısı. | ||
| Açıklama Ekipman numarası (EQUNR), tekil makineyi veya varlık nesnesini tanımlar. Analistler bu alana göre verileri bir araya getirerek sık ve maliyetli onarım gerektiren sorunlu ekipmanları belirlemek için 'Varlık Bakım Maliyeti ve İşlem Hacmi' Dashboardunu oluşturabilir. Bu öznitelik, güvenilirlik odaklı bakım analizine imkân verir. Neden önemli? Süreç performansını belirli fiziksel varlıklarla ilişkilendirir. Nereden alınır? SAP AUFK tablosu, EQUNR alanı Örnekler 10004567POMPA-001HVAC-202 | |||
| Hedef bitiş tarihi TargetFinishDate | Bakım işinin planlanan tamamlanma tarihi. | ||
| Açıklama Bu tarih (genellikle temel bitiş tarihi, GLTRP), iş emrinin son tarihini belirtir. SLA uyum oranı KPI’ını hesaplamak için gerçek tamamlanma zaman damgasıyla karşılaştırılır. İş emrinin zamanında mı yoksa geç mi tamamlandığını belirlemek için referans alınır. Neden önemli? Zamanında teslimat (OTD) hesaplamalarının tamamında referans alınır. Nereden alınır? SAP tablosu AFKO, alan GLTRP Örnekler 2023-12-012023-12-15 | |||
| Oluşturan kullanıcı CreatedByUser | Siparişi oluşturan kişinin kullanıcı adı. | ||
| Açıklama İş emrini başlatan kullanıcıyı (ERNAM) belirler. Genel modelde Kullanıcı alanıyla eşleştirilir. Manuel ve otomatik oluşturma süreçlerini karşılaştırmanıza ve Bakım emri oluşturuldu etkinliğini denetlemenize yardımcı olur. Neden önemli? Kullanıcı davranışlarını analiz etmenizi ve denetlemenizi sağlar. Nereden alınır? SAP tablosu AUFK, alan ERNAM Örnekler JSMITHBSERVICEDDAVIS | |||
| Planlama grubu ResponsiblePlannerGroup | Emri işlemekten sorumlu planlamacılar grubu. | ||
| Açıklama Planlama grubu (INGRP), bakım işini planlamaktan sorumlu ekibi veya bölümü tanımlar. 'Departman' ile eşleştirilir ve hazırlık aşamasında hangi planlama ekiplerinin darboğaz oluşturduğunu belirlemek için Kaynak Kullanımı ve Planlama Dashboardunda önemli rol oynar. Neden önemli? Planlama sürecinden sorumlu idari ekibi tanımlar. Nereden alınır? SAP AUFK tablosu, INGRP alanı Örnekler M01ELEMEC | |||
| Sistem durumu SystemStatus | Siparişin mevcut teknik durumu (ör. REL, TECO). | ||
| Açıklama Siparişe şu anda atanmış etkin sistem durumlarının (JEST tablosundan) birleştirilmiş metni veya listesi. Yaygın değerler arasında CRTD (Oluşturuldu), REL (Serbest bırakıldı), TECO (Teknik olarak tamamlandı) ve CLSD (Kapatıldı) bulunur. Bu bilgiler, İş Listesi ve Devam Eden İşler İzleyicisi içinde açık ve kapalı vakaları filtrelemenize yardımcı olur. Neden önemli? Siparişin yaşam döngüsündeki aşamasını gösteren temel göstergedir. Nereden alınır? SAP işlev modülü STATUS_TEXT_EDIT veya JEST tablosu Örnekler REL CNFTECOCRTD MACM | |||
| Teknik konum FunctionalLocation | Varlığın kurulu olduğu hiyerarşik konum. | ||
| Açıklama Bakım görevinin gerçekleştirildiği teknik yapıdaki yeri (TPLNR) belirtir. Taşınabilen ekipmanın aksine teknik konum sabittir. Bu öznitelik, tesisin farklı alanlarındaki performansı (ör. kazan dairesi ve paketleme hattı) karşılaştırarak Teknik İnceleme Çevrim Süreleri Dashboardunu destekler. Neden önemli? Bakım performansının konuma ve hiyerarşiye göre analiz edilmesini sağlar. Nereden alınır? SAP IFLOT tablosu, TPLNR alanı (veya AUFK-TPLNR üzerinden) Örnekler TESİS1-BİNA2-HAT01ABD-TX-DAL-01 | |||
| Acil iş mi IsEmergencyWork | İş emrinin acil olup olmadığını gösteren işaret. | ||
| Açıklama Bakım önceliğine göre hesaplanan mantıksal bir özniteliktir. Öncelik 1 ise (veya yapılandırmada acil işler için kullanılan kod buysa) bu işaret doğru değerini alır. Böylece Dashboard katmanında karmaşık kurallar yazmadan filtreleme yapabilir ve Acil iş emri oranı KPI’ını oluşturabilirsiniz. Neden önemli? Kritik arıza bakımını analiz etmek için filtreleme işlemini kolaylaştırır. Nereden alınır? MaintenancePriority alanından hesaplanır Örnekler truefalse | |||
| Planlanan işçilik saati PlannedLaborHours | Sipariş için tahmin edilen işçilik saati. | ||
| Açıklama Sipariş operasyonlarında planlanan toplam iş (ARBEI). Planlama ve tahmin performansı Dashboardunda bakım planlamasının doğruluğunu değerlendirmek için bu değer, gerçekleşen etkinlik süresiyle karşılaştırılır. Neden önemli? Planlama doğruluğu analizinin temel metriği. Nereden alınır? SAP tablosu AFKO (planlanan operasyon işlerinin toplamı) Örnekler 4.08.512.0 | |||
| Toplam gerçekleşen maliyet TotalActualCost | İş emrine kaydedilen toplam gerçekleşen maliyet. | ||
| Açıklama İşçilik, malzeme ve hizmet maliyetlerinin toplamı (PMCO tablosundan). Bu öznitelik, yöneticilerin bakım faaliyetlerinin mali etkisini görmesini sağlayan Varlık Bakım Maliyeti ve İşlem Hacmi Dashboardunu destekler. Varlıkları onarmanın mı yoksa değiştirmenin mi daha uygun maliyetli olduğunu belirlemek için gereklidir. Neden önemli? Operasyonel süreç verilerine finansal boyut kazandırır. Nereden alınır? SAP tablosu PMCO (04 değer türündeki gerçekleşen tutarların toplamı) Örnekler 150.002500.500.00 | |||
| Yeniden çalışma var mı IsRework | Siparişte yeniden çalışma yapılıp yapılmadığını gösteren işaret. | ||
| Açıklama Süreçte bir döngü oluşup oluşmadığını belirleyen mantıksal bir değerdir. Bakım görevi yürütüldü etkinliğinin birden fazla kez gerçekleşmesi veya durumun Teknik olarak tamamlandı aşamasından İşlemde aşamasına dönmesi bu duruma örnektir. Bakımda yeniden çalışma oranı KPI’ını destekler ve kalite sorunlarını belirlemenize 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ı etkinlikleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Bakım emri oluşturuldu | Bakım iş emri nesnesinin sistemde oluşturulduğunu gösterir. Emir Ana Verileri tablosundaki oluşturulma zaman damgasından doğrudan alınır. | ||
| Neden önemli? Bu, vaka için temel olaydır ve talepten planlama ve uygulamaya geçişi gösterir. Nereden alınır? AUFK tablosu, ERDAT (Tarih) ve ERFZEIT (Saat) alanları. Kaydedin IW31 işlemi yürütüldüğünde kaydedilir Olay türü explicit | |||
| Bakım emri serbest bırakıldı | Planlamanın tamamlandığını ve emrin uygulama için serbest bırakıldığını gösterir. Sistem durumu günlüklerinde REL durumuna geçiş izlenerek kaydedilir. | ||
| Neden önemli? Bu kilometre taşı, planlama aşamasını uygulama aşamasından ayırır ve Planlama ve Tahmin Süresini ölçmek için önemlidir. Nereden alınır? JCDS tablosu (Durum Değişikliği Belgeleri), I0002 durumu (REL). Kaydedin JCDS’de durum REL olarak güncellendiğinde kaydedilir Olay türü explicit | |||
| Emir operasyonu onaylandı | Bir teknisyenin belirli bir operasyonda harcadığı fiilî sürenin kaydedilmesini ifade eder. Varlık üzerindeki gerçek uygulama çalışmasını gösterir. | ||
| Neden önemli? Bu etkinlik, Ortalama Onarım Süresi ve işçilik maliyeti hesaplamalarının temel veri kaynağıdır. Nereden alınır? AFRU tablosu (Emir onayları). Kaydedin IW41 işlemi yürütüldüğünde kaydedilir Olay türü explicit | |||
| İş tamamlandı durumu verildi | İş emrinin son idari kapanışını gösterir ve başka maliyet kaydı yapılmasını önler. CLSD (Kapalı) durumuna geçişle kaydedilir. | ||
| Neden önemli? Emir yaşam döngüsünün kesin bitişini gösterir; veri doğruluğu ve kayıt uyumluluğu açısından önemlidir. Nereden alınır? JCDS tablosu, I0046 durumu (CLSD). Kaydedin JCDS’de durum CLSD olarak güncellendiğinde kaydedilir Olay türü explicit | |||
| Mal çıkışı kaydedildi | İş emri kapsamında yedek parça veya malzemelerin fiilen tüketilmesini kaydeder. Emre bağlı malzeme belgesi başlıklarından alınır. | ||
| Neden önemli? Parçaların hazır olduğunu ve depodan alındığını doğrular; Parça Hazırlığı Bekleme Süresi Analizini doğrudan etkiler. Nereden alınır? MSEG/MKPF tablosu, hareket türü 261 (Emir için mal çıkışı). Kaydedin MIGO/MB1A işlemi yürütüldüğünde kaydedilir Olay türü explicit | |||
| Teknik tamamlanma durumu verildi | Bakım işinin fiziksel ve teknik olarak tamamlandığını gösterir. TECO (Teknik olarak tamamlandı) durumuna geçişle kaydedilir. | ||
| Neden önemli? Operasyonel analiz açısından en önemli bitiş noktasıdır; varlığın yeniden çalışır duruma geldiğini ve bakımın tamamlandığını gösterir. Nereden alınır? JCDS tablosu, I0045 durumu (TECO). Kaydedin JCDS’de durum TECO olarak güncellendiğinde kaydedilir Olay türü explicit | |||
| Bakım bildirimi oluşturuldu | Bakım bildiriminin ilk oluşturulma kaydını tutar. Bu bildirim çoğu zaman iş emrini başlatır. QMEL tablosundaki oluşturulma zaman damgasından alınan bu etkinlik, ilk talebi uygulama emrine bağlar. | ||
| Neden önemli? Bu etkinlik, uçtan uca bakım sürecinin başlangıcını belirler ve arızanın tespit edilmesiyle emrin oluşturulması arasındaki tepki süresinin hesaplanmasını sağlar. Nereden alınır? QMEL tablosu, ERDAT (Oluşturulma tarihi) ve MZEIT (Saat) alanları. QMEL-AUFNR üzerinden emre bağlanır. Kaydedin QMEL tablosunda kayıt oluşturulduğunda kaydedilir Olay türü explicit | |||
| Bakım önceliği değiştirildi | İş emrinin öncelik düzeyindeki güncellemeleri, örneğin Acil düzeye yükseltilmesini kaydeder. Emir ana verileriyle ilişkili değişiklik belgelerinden elde edilir. | ||
| Neden önemli? Öncelik değişikliklerini izlemek, süreç sapmalarını açıklamaya yardımcı olur ve tepkisel öncelik artışlarını belirleyerek Acil İş Emri Etki İzleyicisini destekler. Nereden alınır? AUFTRAG nesne sınıfı ve PRIOK alanı için CDPOS/CDHDR tabloları. Kaydedin Değişiklik belgelerine (CDPOS) kaydedilir Olay türü explicit | |||
| Emir maliyetleri mahsuplaştırıldı | Emirde biriken maliyetlerin masraf yeri gibi bir kontrol nesnesine aktarıldığını gösterir. Kontrol belgesinden alınır. | ||
| Neden önemli? Mali kapanışı izler ve Mali Mahsuplaşma Süresi KPI’ını destekler. Nereden alınır? Emre bağlı COBK tablosu (CO nesnesi: Belge başlığı). Kaydedin Mahsuplaşma işlemi KO88 yürütüldüğünde kaydedilir Olay türü explicit | |||
| İş emri planlandı | Operasyonların belirli bir kapasiteye veya tarihe göre planlandığını gösterir. Operasyonlara Sevk durumunun atanmasından çıkarılır. | ||
| Neden önemli? Kaynak dağıtımının verimliliğini ölçer ve Kaynak Kullanımı ve Planlama Dashboardunu destekler. Nereden alınır? Operasyonlar için JCDS tablosu (Durum Değişikliği Belgeleri), nesne türü OV, I0009 durumu (DSPT). Kaydedin Durum alanını önceki ve sonraki değerleriyle karşılaştırın Olay türü inferred | |||
| Malzeme bileşeni eklendi | İş emrinin bileşen listesine yedek parça veya malzeme eklenmesini kaydeder. Rezervasyon kaleminin oluşturulmasından alınır. | ||
| Neden önemli? Gerekli parçalar için tedarik döngüsünün başlangıcını belirler ve Yedek Parça Tedarik Süreleri Dashboardunu destekler. Nereden alınır? RESB tablosu, BDTER (İhtiyaç tarihi) alanı veya oluşturulma zaman damgası. Kaydedin RESB’ye kalem eklendiğinde kaydedilir Olay türü explicit | |||
| Ölçüm değeri kaydedildi | Sayaç değeri veya durum değerlendirmesi gibi bir ölçüm belgesinin girilmesini kaydeder. Çoğu zaman Teknik İnceleme olayını temsil eder. | ||
| Neden önemli? Duruma Dayalı Bakım ve Teknik İnceleme Çevrim Sürelerinin takibi için gereklidir. Nereden alınır? Ekipmana veya teknik konuma bağlı IMRG tablosu (Ölçüm Belgesi). Kaydedin Ölçüm belgesi oluşturulduğunda kaydedilir Olay türü explicit | |||
| Satın alma talebi oluşturuldu | Harici tedarik veya hizmet talebinin oluşturulduğunu gösterir. Kurum içindeki bakım emrini harici tedarik zincirine bağlar. | ||
| Neden önemli? Harici tedarikçilerden veya stokta bulunmayan malzemelerin tedarikinden kaynaklanan gecikmeleri analiz etmek için önemlidir. Nereden alınır? AUFK-AUFNR’ye hesap tayini üzerinden bağlanan EBAN tablosu. Kaydedin EBAN kaydı oluşturulduğunda kaydedilir Olay türü explicit | |||
| Teknik tamamlanma geri alındı | Teknik tamamlanma durumunun geri alındığını ve emrin yeniden açıldığını kaydeder. Bu durum, süreç modelinde bir yeniden çalışma döngüsü oluşturur. | ||
| Neden önemli? Bakımda Yeniden Çalışma Oranı KPI’ının temel göstergesidir; erken kapatılan emirleri veya kalite sorunlarını ortaya çıkarır. Nereden alınır? JCDS tablosunda I0045 durumu (TECO) değişikliği: Etkin değil. Kaydedin TECO durumu devre dışı bırakıldığında kaydedilir Olay türü explicit | |||
Veri çıkarma rehberleri
Adımlar
Veri kaynağı arayüzünü belirleyin: SAP S/4HANA SQL arayüzüne nasıl erişeceğinizi belirleyin. Bu işlem genellikle SAP HANA Studio, Eclipse içindeki ABAP Development Tools (ADT) veya HANA veritabanı analiz katmanınıza açıksa DBaaS bağlantı dizesi üzerinden yapılır.
CDS görünümlerinin kullanılabilirliğini doğrulayın: Standart Core Data Services (CDS) görünümlerinin S/4HANA sisteminizde etkin olduğundan emin olun. Gerekli temel görünümler I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation ve I_MeasurementDocument’tir. Tam olay geçmişini yeniden oluşturmak için sistem durumu geçmişi tablosu JCDS’ye ve değişiklik belgesi tablolarına (CDHDR/CDPOS) da erişmeniz gerekir; standart CDS görünümleri çoğu zaman 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 artefaktlara ait DDL SQL görünümlerinde (genellikle SAPABAP1 veya benzeri bir şemada) SELECT izni olduğundan emin olun.
Veri çıkarma sorgusunu çalıştırın: Sağlanan SQL betiğini düzenleyicinize kopyalayın. [Your Client Number] yer tutucusunu kendi SAP istemci kimliğinizle (ör. 100) değiştirin. Belirli bir tarih aralığına göre filtreleme yapıyorsanız WHERE koşullarındaki EventTimestamp filtrelerini güncelleyin.
Veri dönüşümü: Sorgu, zaman damgalarını dönüştürme ve durum kodlarını okunabilir metinlerle eşleştirme gibi işlemlerin çoğunu yapar. Ancak hedef sisteminiz gerektiriyorsa dışa aktarma sırasında EventTimestamp sütununun ISO 8601 (YYYY-MM-DDTHH:MM:SS) biçiminde olduğundan emin olun.
Sonucu dışa aktarın: Sorguyu çalıştırın ve sonuçları CSV veya Parquet dosyasına aktarın. Kullanıcı adları veya açıklamalardaki özel karakterlerin korunması için UTF-8 kodlamasını seçin.
Sütun haritalamasını doğrulayın: Dışa aktarılan dosyadan bir örnek açın ve MaintenanceWorkOrder, Activity ve EventTimestamp sütunlarının eksiksiz doldurulduğunu kontrol edin. Activity sütununda gereksinimlerde listelenen belirli metinlerin (ör. Maintenance Order Created, Goods Issue Posted) bulunduğundan emin olun.
ProcessMind’e yükleyin: Doğruladığınız düz dosyayı ProcessMind’e aktarın. Activity sütununu Activity ID alanıyla, MaintenanceWorkOrder sütununu Case ID alanıyla ve EventTimestamp sütununu Timestamp alanıyla eşleştirin.
Yapılandırma
- İstemci filtresi: SAP sistemleri birden fazla istemciyi destekler. Yinelenen verileri veya istemciler arası veri sızıntısını önlemek için her zaman
MANDTveyaClient(ör. '100') alanına göre filtre uygulayın. - Tarih aralığı: Bakım siparişinin
CreationDatealanını son 6 ila 12 ayla sınırlamanız önerilir.JCDS(Durum) veyaCDPOS(Değişiklik belgeleri) tablolarının tüm geçmişini tarih filtresi olmadan sorgulamak, performans zaman aşımına yol açabilir. - Dil anahtarı: Sorgu varsayılan olarak İngilizceyi ('E') kullanır. Kuruluşunuz açıklamalar için başka bir birincil dil kullanıyorsa dil filtresini değiştirin.
- Sistem erişimi: ABAP Core Data Services şemasına veya temel HANA tablolarına erişim gerekir. CDS görünümleri çoğu zaman yalnızca anlık durumu gösterdiğinden, geçmiş durum analizinde JCDS ve CDHDR ham tablolarına erişim önemlidir.
- Sipariş türleri: Sorgu tüm sipariş türlerini çıkarır. Yalnızca belirli bakım senaryolarını analiz etmek istiyorsanız
MaintenanceOrderTypealanına göre filtre uygulayabilirsiniz (ör. yalnızca PM01 ve PM02).
Ö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
- AUFK, AFVC, JEST, QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG tablolarına ve ilgili değişiklik belgesi ile kontrol belgesi tablolarına doğrudan okuma erişiminiz olduğunu doğrulayın. Alanların kullanılabilirliği ve çoğaltılan tablo yapıları dağıtıma göre değiştiğinden, SAP veritabanınızdaki fiziksel adları ve alan eşleştirmelerini kontrol edin.
- Veri çıkarma bağlantısını, kimlik bilgilerini, başlangıç ve bitiş tarihlerini ve şirketle ilgili filtreleri yapılandırın. İlk doğrulama için üç ila altı aylık bir dönem kullanın; performans ve eksiksizlik kontrolleri başarılı olduktan sonra dönemi genişletin.
- Sipariş başlık özniteliklerini AUFK’den, operasyon özniteliklerini AFVC’den ve durum kayıtlarını JEST’ten çıkarın. Siparişle ilgili kayıtları SAP şemanızda kullanılan sipariş numarası alanı üzerinden birleştirin. Birçok SAP kurulumunda JEST mevcut durum tablosudur; geçmiş durum zaman damgaları için durum geçmişi veya değişiklik belgesi kaynağı gerekir. JEST durum değişikliği geçmişini tutmuyorsa [Your status history table] ve ilgili zaman damgası alanlarını yapılandırın.
- Bildirim oluşturma bilgilerini QMEL’den, bileşen oluşturma bilgilerini RESB’den, satın alma talebi oluşturma bilgilerini EBAN’dan, mal çıkış bilgilerini MSEG ve MKPF’den, teyitleri AFRU’dan, ölçüm değerlerini IMRG’den ve kontrol mutabakat kayıtlarını [Your controlling document table] tablosundan çıkarın. Öncelik değişikliklerini [Your order change document table] ve [Your change document item table] tablolarından alın. AUFK, AFVC ve JEST tek başına istenen 14 etkinliğin tamamını sağlayamayacağından bu kaynaklar gereklidir.
- Tüm kaynak zaman damgalarını tek bir saat dilimine ve zaman damgası veri türüne dönüştürün. SAP tarih ve saat alanlarını veya veritabanı zaman damgası alanlarını EventTimestamp biçimine çevirin. Sistemdeki kaynak zaman damgası hassasiyetini koruyun. Yapılandırılmış veri çıkarma aralığını yalnızca sipariş oluşturma tarihine değil, EventTimestamp alanına uygulayın.
- Her kaynak kaydı için bir olay satırı oluşturun. ProcessMind’in olayları kendiliğinden çıkarsayacağını varsaymayın. Sorguda belirtilen Activity değerini aynen atayın; MaintenanceWorkOrder, EventTimestamp, SourceSystem, LastDataUpdate ve mevcut önerilen öznitelikleri doldurun. Yinelenen kayıtları araştırırken işe yarayacak kaynak kimliklerini koruyun.
- Yalnızca kararlı kaynak anahtarlarını kullanarak aynı kaynak olaylarını tekilleştirin. Farklı zamanlarda gerçekleşen ayrı durum değişikliklerini, teyitleri, malzeme hareketlerini, ölçüm kayıtlarını veya mutabakat belgelerini birleştirmeyin. Birden fazla kaynak kaydı tek bir iş olayını temsil ediyorsa, veri çıkarma tanımında hangi kaynağın öncelikli olduğunu belgeleyin.
- 14 etkinlik değerinin tamamının ayrı satırlar olarak bulunduğunu, her satırda vaka kimliği ve zaman damgası olduğunu ve zaman damgalarının istenen veri çıkarma aralığına uyduğunu doğrulayın. Aynı filtreleri kullanarak sonuç sayılarını SAP raporları veya kaynak tablo sayımlarıyla karşılaştırın.
- Sonucu UTF-8 CSV veya ProcessMind’in desteklediği başka bir olay günlüğü biçiminde dışa aktarın. Her olay için bir satır kullanın, gerekli sütunları yapılandırılmış adlarıyla ekleyin, destekleniyorsa ISO 8601 zaman damgalarını koruyun ve dosyayı yükleyin ya da ProcessMind’de veritabanı bağlantısını yapılandırın. MaintenanceWorkOrder alanını vaka kimliği, Activity alanını etkinlik sütunu ve EventTimestamp alanını zaman damgası sütunu olarak ayarlayın.
Yapılandırma
- Kaynak tablolar ve eşleştirmeler: AUFK sipariş başlığı verilerini, AFVC operasyon verilerini, JEST ise sistem durumu verilerini sağlar. 14 etkinliğin tamamını oluşturmak için QMEL, RESB, EBAN, MSEG, MKPF, AFRU, IMRG, değişiklik belgesi kaynakları ve kontrol belgesi kaynakları da gerekir. Sorguyu çalıştırmadan önce SAP veritabanınızdaki alan adlarını doğrulayın.
- Gerekli çıktı sütunları: Her olay satırında MaintenanceWorkOrder, Activity, EventTimestamp, SourceSystem ve LastDataUpdate bulunmalıdır.
- Önerilen çıktı sütunları: Varsa MaintenanceOrderType, MaintenancePriority, EquipmentNumber, FunctionalLocation, MaintenancePlant, ResponsiblePlannerGroup, MainWorkCenter, NotificationNumber, TargetFinishDate, CreatedByUser ve SystemStatus alanlarını doldurun.
- Tarih aralığı: Üç ila altı ayla başlayın. Artımlı çalıştırmalar arasında yinelenen olayları önlemek için başlangıç sınırını dahil, bitiş sınırını hariç tutun. Geçmiş verileri toplu olarak yüklerken veri çıkarma işlemini aylara veya veritabanının desteklediği başka dönemlere bölün.
- Filtreler: Raporlama kapsamınıza göre [Company Code filter], [Order Type filter], [Maintenance Plant filter], [Notification Type filter] ve [Document Type filter] alanlarını yapılandırın. Bildirimi, operasyonu, bileşeni, talebi, teyidi, ölçümü veya mutabakat belgesi olmayan siparişleri dışarıda bırakacak filtreler uygulamayın.
- Durum geçmişi: JEST genellikle durum atamalarını gösterir; geçmiş durum değişiklikleri için [Your status history table] veya değişiklik belgeleri gerekebilir. Durum değişikliği zaman damgasını ve geçiş geçmişini içeren kaynağı yapılandırın.
- Öncelik geçmişi: Öncelik değişiklikleri için ilgili nesne kimliği, alan adı, eski değer, yeni değer ve değişiklik zaman damgasını içeren [Your order change document table] ve [Your change document item table] gerekir.
- Kaynak sistem değeri: [Your SAP system identifier] yer tutucusunu kuruluşunuzun kullandığı sabit kaynak sistem adıyla değiştirin.
- Son veri güncellemesi: [Your extraction timestamp] yer tutucusunu veri çıkarma işleminin başlangıcında veya sonunda oluşturulan zaman damgasıyla değiştirin ve aynı çalıştırmadaki tüm satırlarda bu değeri kullanın.
- Performans: İzin veriliyorsa birleştirme ve filtre sütunlarını dizinleyin veya bölümlere ayırın, veri çıkarma aralığını sınırlayın, yalnızca gerekli sütunları seçin, uzun dönemleri gruplar halinde işleyin ve şemalar arası doğrudan birleştirmeler yavaşsa ara kaynak verilerini geçici tablolara alın.
- Ön koşullar: Veritabanı bağlantısı, yapılandırılan tüm kaynak tablolar için okuma yetkisi, ilgili tesis bakımı, malzeme yönetimi, kontrol ve ölçüm verilerine erişim ve operasyonel verileri çıkarma onayı gerekir. Veritabanı platformuna ilişkin çoğaltma veya lisans kısıtlamalarını doğrulayın.
Örnek sorgu sql
WITH
params AS (
SELECT
CAST('[Start date and time]' AS TIMESTAMP) AS start_ts,
CAST('[End date and time]' AS TIMESTAMP) AS end_ts,
CAST('[Your SAP system identifier]' AS VARCHAR(100)) AS source_system,
CAST('[Your extraction timestamp]' AS TIMESTAMP) AS last_data_update
),
order_base AS (
SELECT
a.[Order number field] AS MaintenanceWorkOrder,
a.[Order type field] AS MaintenanceOrderType,
a.[Priority field] AS MaintenancePriority,
a.[Equipment field] AS EquipmentNumber,
a.[Functional location field] AS FunctionalLocation,
a.[Maintenance plant field] AS MaintenancePlant,
a.[Planner group field] AS ResponsiblePlannerGroup,
a.[Main work center field] AS MainWorkCenter,
a.[Notification number field] AS NotificationNumber,
a.[Target finish date field] AS TargetFinishDate,
a.[Created by field] AS CreatedByUser,
a.[System status field] AS SystemStatus,
a.[Creation date field] AS OrderCreationDate,
a.[Creation time field] AS OrderCreationTime
FROM AUFK a
WHERE a.[Order number field] IS NOT NULL
AND a.[Company code field] = '[Your company code filter]'
),
base_events AS (
SELECT
o.MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
CAST(q.[Notification creation timestamp field] AS TIMESTAMP) AS EventTimestamp,
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN QMEL q ON q.[Notification number field] = o.NotificationNumber
CROSS JOIN params p
WHERE q.[Notification creation timestamp field] >= p.start_ts
AND q.[Notification creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Created',
CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o CROSS JOIN params p
WHERE CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) >= p.start_ts
AND CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Priority Changed',
CAST(c.[Change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, c.[New priority value field], o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your order change document table] h ON h.[Order object identifier field] = o.MaintenanceWorkOrder
JOIN [Your change document item table] c ON c.[Change document number field] = h.[Change document number field]
CROSS JOIN params p
WHERE c.[Changed field name field] = '[Your priority field name]'
AND CAST(c.[Change timestamp field] AS TIMESTAMP) >= p.start_ts
AND CAST(c.[Change timestamp field] AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Released',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'REL'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'REL'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Material Component Added',
CAST(r.[Reservation creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN RESB r ON r.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE r.[Reservation line creation timestamp field] >= p.start_ts
AND r.[Reservation line creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Purchase Requisition Created',
CAST(e.[Purchase requisition creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN EBAN e ON e.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE e.[Purchase requisition creation timestamp field] >= p.start_ts
AND e.[Purchase requisition creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Goods Issue Posted',
CAST(m.[Material document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN MSEG m ON m.[Order number field] = o.MaintenanceWorkOrder
JOIN MKPF k ON k.[Material document number field] = m.[Material document number field]
AND k.[Material document year field] = m.[Material document year field]
CROSS JOIN params p
WHERE m.[Movement type field] IN ('201', '261')
AND k.[Material document timestamp field] >= p.start_ts
AND k.[Material document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Work Order Scheduled',
CAST(v.[Dispatch status timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFVC v ON v.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE v.[Dispatch status field] = '[Your dispatch status value]'
AND v.[Dispatch status timestamp field] >= p.start_ts
AND v.[Dispatch status timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Operation Confirmed',
CAST(f.[Confirmation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFRU f ON f.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE f.[Confirmation timestamp field] >= p.start_ts
AND f.[Confirmation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Measurement Reading Recorded',
CAST(i.[Measurement document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN IMRG i ON i.[Equipment field] = o.EquipmentNumber
CROSS JOIN params p
WHERE i.[Measurement document timestamp field] >= p.start_ts
AND i.[Measurement document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'TECO'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Reversed',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, s.[Resulting system status field]
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Previous status code field] = 'TECO'
AND s.[Status code field] <> 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Cost Settled',
CAST(c.[Controlling document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your controlling document table] c ON c.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE c.[Controlling document timestamp field] >= p.start_ts
AND c.[Controlling document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Business Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'CLSD'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'CLSD'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
)
SELECT
e.MaintenanceWorkOrder,
e.Activity,
e.EventTimestamp,
p.source_system AS SourceSystem,
p.last_data_update AS LastDataUpdate,
e.MaintenanceOrderType,
e.MaintenancePriority,
e.EquipmentNumber,
e.FunctionalLocation,
e.MaintenancePlant,
e.ResponsiblePlannerGroup,
e.MainWorkCenter,
e.NotificationNumber,
e.TargetFinishDate,
e.CreatedByUser,
e.SystemStatus
FROM base_events e
CROSS JOIN params p
WHERE e.MaintenanceWorkOrder IS NOT NULL
AND e.EventTimestamp IS NOT NULL
AND e.EventTimestamp >= p.start_ts
AND e.EventTimestamp < p.end_ts
ORDER BY e.MaintenanceWorkOrder, e.EventTimestamp, e.Activity; Başlamaya hazır mısınız?
Bakım iş akışlarınızı haritalamaya ve maliyet tasarrufu fırsatlarını belirlemeye başlamak için bu kaynaklardan yararlanın. Çerçevemiz, operasyonlarınızı tüm yönleriyle görebilmeniz için doğru veri yapısını oluşturmanıza yardımcı olur.
SAP’te varlık bakımı darboğazlarını bugün giderin
Bakım çevrim sürenizi hemen yüzde 30 azaltın
Kredi kartı gerekmez... Kurulum 5 dakika sürer