Üretim Planlama Veri Template'iniz
Üretim Planlama Veri Template'iniz
- Toplanması Önerilen Nitelikler
- Takip Edilmesi Gereken Temel Aktiviteler
- Pratik veri çekme rehberliği
Üretim Planlama Öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Faaliyet Adı ActivityName | Belirli bir zamanda bir üretim siparişi için meydana gelen iş veya sistem olayının adı. | ||
| Açıklama Faaliyet Adı, üretim planlama sürecindeki belirli bir adımı veya durum değişikliğini açıklar. Bu olaylar, SAP ECC PP içindeki değişiklik günlüklerinden, durum güncellemelerinden ve işlem kayıtlarından elde edilir ve 'Üretim Siparişi Oluşturuldu', 'Malzeme Mevcudiyeti Kontrol Edildi' veya 'Mal Girişi Kaydedildi' gibi önemli kilometre taşlarını temsil eder. Bu öznitelik, süreç haritasının omurgasını oluşturarak analistlerin olay dizisini görselleştirmesine, süreç varyantlarını keşfetmesine ve darboğazları veya tekrar işleme döngülerini belirlemesine olanak tanır. Faaliyet adlarının netliği ve ayrıntı düzeyi, operasyonların gerçekliğini yansıtan doğru ve içgörülü bir süreç modeli oluşturmak için kritik öneme sahiptir. Neden önemli Süreç haritasındaki adımları tanımlar, üretim iş akışını görselleştirmeyi, analiz etmeyi ve anlamayı mümkün kılar. Nereden alınır JEST/JSTO tablolarındaki durum değişiklikleri, işlem günlükleri ve CDHDR/CDPOS'taki değişiklik belgeleri dahil olmak üzere çeşitli kaynaklardan oluşturulmuştur. Örnekler Üretim Siparişi Serbest BırakıldıMal Çıkışı YapıldıSon Onay KaydedildiSipariş Teknik Olarak Tamamlandı | |||
| Olay Zamanı EventTime | `Aktivite`nin ne zaman gerçekleştiğini gösteren kesin `zaman damgasıdır`. | ||
| Açıklama Olay Zamanı, belirli bir faaliyetin ne zaman yürütüldüğünü veya bir durumun sisteme ne zaman kaydedildiğini gösteren tarih ve saati kaydeder. Bu zaman damgası, döngü süreleri, bekleme süreleri ve genel süreç süresi hesaplamaları dahil olmak üzere tüm zamana dayalı süreç analizleri için temeldir. Doğru zaman damgaları, olayları doğru sıralamak ve performans analizi için hayati öneme sahiptir. Analistlerin faaliyetler arasındaki süreyi ölçmelerine, gecikmeleri belirlemelerine ve programlara veya hizmet seviyesi anlaşmalarına karşı performansı değerlendirmelerine olanak tanır. Üretim planlaması bağlamında, bu, planlama ve yürütmenin her aşamasının ne kadar sürdüğünü anlamaya yardımcı olur. Neden önemli Bu öznitelik, süreleri hesaplamak, performansı analiz etmek ve darboğazları belirlemek için gerekli olan olayların kronolojik sırasını sağlar. Nereden alınır İşlemler ve durum değişiklikleriyle ilişkili çeşitli tarih ve saat alanlarından, örneğin malzeme belgelerinden BUDAT (Defter Kayıt Tarihi) veya CDHDR'dan değişiklik zaman damgalarından türetilir. Örnekler 2023-04-15T10:05:30Z2023-04-15T14:22:00Z2023-04-18T08:59:11Z2023-04-20T16:45:00Z | |||
| Üretim Siparişi ProductionOrder | Üretim planlama ve yürütme süreci için birincil durum tanımlayıcısı olarak hizmet veren üretim siparişinin benzersiz tanımlayıcısı. | ||
| Açıklama Üretim Sipariş numarası, SAP ECC PP'deki her bir üretim siparişine atanan benzersiz bir alfasayısal anahtardır. Oluşturma ve planlamadan yürütmeye ve nihai mutabakata kadar tüm ilgili faaliyetleri birbirine bağlayan merkezi bir nesne görevi görür. Süreç madenciliğinde, bu öznitelik, tek bir üretim çalışmasına ait tüm olayları gruplamak için esastır. Bu, bir üretim siparişinin ilerlemesini izlemek, döngü sürelerini ölçmek ve standart süreçten herhangi bir sapmayı belirlemek de dahil olmak üzere tüm yaşam döngüsünün baştan sona analizine olanak tanır. Süreçleri Üretim Siparişine göre analiz etmek, bireysel üretim taleplerinin nasıl karşılandığına dair net bir görünüm sağlar. Neden önemli Bu, ilgili tüm süreç olaylarını birbirine bağlayan, her bir üretim yolculuğunun baştan sona yeniden yapılandırılmasını ve analizini sağlayan temel tanımlayıcıdır. Nereden alınır Bu öznitelik, SAP tablosu AUFK'de, AUFNR alanında bulunabilir. Örnekler 1000345100034610003471000348 | |||
| Kaynak Sistem SourceSystem | Verinin çıkarıldığı belirli sistemi tanımlar. | ||
| Açıklama Bu öznitelik, kaydın kaynak sistemini, örneğin belirli SAP ECC örnek adını veya kimliğini belirtir. Birden çok ERP sistemi veya eski ve modern platformların bir karışımı olan kuruluşlarda, bu alan veri soyu ve bağlam için çok önemlidir. Analiz için, süreçlerin kaynak sistemlerine göre filtrelenmesine olanak tanır. Bu, farklı sistemler arasında süreç performansını karşılaştırmak veya çoklu sistem veri konsolidasyon projeleri sırasında verileri izole etmek için yararlı olabilir. Neden önemli Özellikle birden fazla SAP örneği veya entegre sistemlerin bulunduğu ortamlarda, veri kaynağı hakkında kritik bağlam sağlar. Nereden alınır Genellikle veri çıkarma süreci sırasında eklenir, sıklıkla SAP sistem kimliğinden (SY-SYSID) türetilir. Örnekler ECC_PROD_100S4H_FIN_200ECC_DE | |||
| Son Veri Güncellemesi LastDataUpdate | Bu olaya ilişkin verilerin en son ne zaman yenilendiğini veya çıkarıldığını gösteren zaman damgası. | ||
| Açıklama Bu öznitelik, verilerin kaynak sistemden süreç madenciliği aracına çekildiği tarih ve saati kaydeder. Bir iş olayını temsil etmez, ancak veri yönetimi amaçları için teknik bir zaman damgasıdır. Temel kullanımı, veri güncelliğini sağlamak ve yöneticilerin ve analistlerin analiz ettikleri verilerin güncelliğini anlamalarına yardımcı olmaktır. Özellikle devam eden operasyonları izlerken süreç analizinin güncel bilgilere dayandığını doğrulamak için kritik öneme sahiptir. Neden önemli Verilerin güncelliğini doğrular, böylece analizlerin mevcut en güncel bilgilere dayandığından emin olunur. Nereden alınır Bu değer genellikle, veri alımı (ingestion) süreci sırasında veri çıkarma, dönüştürme ve yükleme (ETL) aracı veya betiği tarafından oluşturulur ve işaretlenir. Örnekler 2023-10-27T02:00:00Z2023-10-28T02:00:00Z2023-10-29T02:00:00Z | |||
| Fiili Başlangıç Tarihi ActualStartDate | Gerçek yürütmenin başlangıcını işaretleyen, kaydedilen ilk üretim faaliyetinin zaman damgası. | ||
| Açıklama Gerçek Başlangıç Tarihi, fiziksel üretim işinin başlangıcını belirten ilk olayın zaman damgasıdır. Bu genellikle ilk üretim onay olayından veya siparişe ilk hammadde çıkışından türetilir. Bu türetilmiş öznitelik, çizelgeye uyum analizi için çok önemlidir. 'Planlanan Başlangıç Tarihi'ne karşılaştırmak için gerçek başlangıç noktasını sağlayarak, başlangıç zamanı varyanslarının kesin olarak hesaplanmasını sağlar. Planlanan ve gerçek başlangıç tarihleri arasındaki boşluğu anlamak, malzeme hazırlama, makine kurulumu veya kaynak mevcudiyeti ile ilgili üretim öncesi gecikmeleri belirlemeye yardımcı olur. Neden önemli Üretim yürütmesinin gerçek başlangıç noktasını sağlar, başlangıç gecikmelerinin ve genel üretim teslim süresinin doğru hesaplanmasını mümkün kılar. Nereden alınır Olay günlüğünden, her bir üretim siparişi için 'İlk Onay Kaydedildi' veya 'Malzeme Çıkışı Kaydedildi' gibi belirli yürütme aktivitelerinin minimum zaman damgası bulunarak türetilir. Örnekler 2023-05-11T08:30:00Z2023-06-22T14:00:00Z2023-07-02T09:15:00Z | |||
| Fiili Bitiş Tarihi ActualEndDate | Siparişin gerçek tamamlanmasını işaretleyen son üretim faaliyetinin zaman damgası. | ||
| Açıklama Gerçek Bitiş Tarihi, bir sipariş için tüm üretim faaliyetlerinin tamamlandığını belirten olayın zaman damgasıdır. Bu, genellikle 'Nihai Onay Kaydedildi' veya son 'Mal Girişi Kaydedildi' olayının zaman damgasından türetilir. Bu öznitelik, toplam üretim döngü süresini ve çizelgeye uyum analizini ölçmek için esastır. 'Gerçek Bitiş Tarihi'nin 'Planlanan Bitiş Tarihi' ile karşılaştırılması, bir siparişin zamanında tamamlanıp tamamlanmadığını belirler. 'Gerçek Başlangıç Tarihi' ile 'Gerçek Bitiş Tarihi' arasındaki sürenin analizi, gerçek üretim verim süresini verir. Neden önemli Üretimin tamamlandığını işaret eder, zamanında teslimat performansının ve toplam yürütme süresinin doğru ölçülmesini sağlar. Nereden alınır Olay günlüğünden, 'Son Onay Kaydedildi' veya 'Malzeme Girişi Kaydedildi' gibi temel tamamlama aktivitelerinin maksimum zaman damgası bulunarak türetilir. Örnekler 2023-05-14T16:00:00Z2023-06-29T11:30:00Z2023-07-05T17:00:00Z | |||
| Planlanan Miktar PlannedQuantity | Sipariş kapsamında üretilmesi planlanan ürünün toplam miktarı. | ||
| Açıklama Planlanan Miktar, üretim planlama aşamasında belirlenen bir üretim siparişinin hedeflenen çıktısını temsil eder. Bu değer, gerçek üretim çıktısının ölçüldüğü temel noktadır. Bu öznitelik, üretim performansı ve zaman çizelgesine uyum ile ilgili KPI'lar için ('Planlanan vs. Gerçekleşen Miktar Farkı' gibi) temeldir. Üretim planlamasının doğruluğunu değerlendirmeye ve fazla üretim veya eksik üretimle ilgili sistemik sorunları belirlemeye yardımcı olur. Bu değeri analiz etmek, üretim yürütmesinin başlangıç planlarıyla ne kadar uyumlu olduğunu anlamak için anahtardır. Neden önemli Bu öznitelik, üretim çıktısı varyansını ölçmek ve planlama doğruluğunu değerlendirmek için temel noktadır. Nereden alınır Bu değer, SAP AFKO tablosunda, GAMNG (Toplam Sipariş Miktarı) alanında mevcuttur. Örnekler 1005000751250 | |||
| Teslim Edilen Miktar DeliveredQuantity | Üretilen ve envantere alınan ürünün gerçek miktarı. | ||
| Açıklama Teslim Edilen Miktar, aynı zamanda Mal Giriş Miktarı olarak da bilinir, belirli bir üretim siparişi için üretildiği onaylanmış bitmiş ürünün toplam miktarıdır. Bu değer, 'Malzeme Girişi Kaydedildi' olayları meydana geldiğinde güncellenir. Bu öznitelik, 'Planlanan Miktar'ın karşıtıdır ve 'Planlanan vs. Fiili Miktar Farkı' KPI'ını hesaplamak için elzemdir. Üretim çıktısının kesin bir ölçüsünü sağlar, analistlerin hurda, verim kaybı veya diğer üretim sorunlarından kaynaklanabilecek tutarsızlıkları belirlemesine olanak tanır. Teslim edilen miktarları tesisler, ürünler veya zaman dilimleri arasında karşılaştırmak, verimlilik sorunları olan alanları vurgular. Neden önemli Üretim sürecinin fiili çıktısını ölçer, performansı değerlendirmek için planlanan hedeflerle doğrudan karşılaştırma yapılmasını sağlar. Nereden alınır SAP tablosu AFPO'da, WEMNG (Teslim Alınan Mal Miktarı) alanında bulunur. Örnekler 984950751255 | |||
| Üretim Tesisi ProductionPlant | Üretim siparişinin yürütüldüğü üretim tesisi veya konum. | ||
| Açıklama Üretim Tesisi, SAP'de bir üretim tesisini temsil eden önemli bir organizasyonel birimdir. Her üretim siparişine atanır ve üretim faaliyetlerinin fiziksel olarak nerede gerçekleşeceğini belirler. Süreci Üretim Tesisine göre analiz etmek, farklı konumlar arasında performans karşılaştırmaları yapılmasına olanak tanır. Bu, hangi tesislerin daha verimli olduğunu, hangilerinin daha fazla gecikme veya malzeme kıtlığıyla karşılaştığını ve en iyi uygulamaların nerede paylaşılabileceğini belirlemeye yardımcı olur. Verim ve kaynak kullanımıyla ilgili Dashboard'larda kök neden analizi için temel bir boyuttur. Neden önemli Farklı üretim konumları arasında performans karşılaştırması yapılmasını sağlayarak, tesise özgü sorunları veya en iyi uygulamaları belirlemeye yardımcı olur. Nereden alınır Bu öznitelik, SAP tablosu AUFK'de, WERKS alanında saklanır. Örnekler 100017102000DE01 | |||
| Ürün Kodu ProductCode | Üretilmekte olan malzeme veya ürünün benzersiz tanımlayıcısı. | ||
| Açıklama Ürün Kodu veya Malzeme Numarası, üretim siparişinin üretmeyi amaçladığı öğeyi tanımlar. Bu, üretim planlamasını envanter yönetimi, satış ve maliyetlendirme ile bağlayan merkezi bir ana veri öğesidir. Süreç madenciliğinde, ürün koduna göre filtreleme veya segmentasyon, ürüne özgü üretim süreçlerini anlamak için kritik öneme sahiptir. 'Hangi ürünler en uzun döngü sürelerine sahip?' veya 'Belirli ürünler kalite sorunlarına veya malzeme gecikmelerine daha mı yatkın?' gibi soruları yanıtlamaya yardımcı olur. Bu analiz, ürün portföy yönetimi ve belirli malzeme türleri için süreç standardizasyonu veya optimizasyonu fırsatlarını belirlemek için hayati öneme sahiptir. Neden önemli Ürüne özel süreç analizi yaparak, hangi malzemelerin süreç verimsizlikleri, gecikmeler veya yüksek maliyetlerle ilişkili olduğunu ortaya çıkarır. Nereden alınır Bu, SAP tablosu AFPO'da, MATNR alanında bulunabilir. Örnekler FG-123RM-45AHALB-7890CHEM-22 | |||
| Çizelgeye Uyum Durumu ScheduleAdherenceStatus | Üretim siparişinin planlanan bitiş tarihine kadar tamamlanıp tamamlanmadığını gösteren bir işaret. | ||
| Açıklama Çizelgeye Uyum Durumu, zamanında performansın basit ve hızlı bir görünümünü sağlayan hesaplanmış bir boolean veya kategorik özniteliktir. 'Gerçek Bitiş Tarihi'nin 'Planlanan Bitiş Tarihi' ile karşılaştırılmasıyla türetilir. Eğer gerçek bitiş planlanan bitiş tarihinde veya öncesinde ise durum 'Zamanında'; aksi takdirde 'Gecikmeli'dir. Bu öznitelik, Dashboard'larda analiz ve görselleştirmeyi basitleştirir. 'Çizelgeye Uyum Oranı' KPI'ını hesaplamak ve belirli ürünler, tesisler veya malzeme kıtlıkları gibi gecikmiş siparişlerin ana nedenlerini belirlemek için kolay filtreleme ve toplama imkanı sunar. Neden önemli Siparişleri 'Zamanında' veya 'Gecikmeli' olarak kategorize ederek performans analizini basitleştirir, program güvenilirliğini ölçmeyi ve raporlamayı kolaylaştırır. Nereden alınır Hesaplanan alan: EĞER('ActualEndDate' <= 'PlannedEndDate', 'Zamanında', 'Gecikmeli'). Örnekler ZamanındaGecikmiş | |||
| Döngü Süresi CycleTime | Üretim siparişinin serbest bırakılmasından nihai tamamlanmasına kadar geçen toplam süre. | ||
| Açıklama Döngü Süresi, üretim yürütme aşamasının süresini ölçen temel bir performans göstergesidir. 'Üretim Siparişi Serbest Bırakıldı' olayı ile 'Son Onay Kaydedildi' veya 'Malzeme Girişi Kaydedildi' gibi bir tamamlama olayı arasındaki zaman farkı olarak hesaplanır. Bu hesaplanan metrik, üretim verimliliğini değerlendirmek için temeldir. Döngü süresi eğilimlerini analiz etmek ve bunları ürünler, tesisler veya zaman dilimleri arasında karşılaştırmak, teslim sürelerini azaltma, verimi artırma ve genel üretim kapasitesini yükseltme fırsatlarını belirlemeye yardımcı olur. Gerekli birçok dashboard ve KPI için temel bir metriktir. Neden önemli Üretim yürütme sürecinin verimliliğini ve hızını doğrudan ölçer, teslim süresi azaltma fırsatlarını vurgular. Nereden alınır Hesaplanan alan: 'Üretim Siparişi Tamamlandı' zaman damgası eksi 'Üretim Siparişi Serbest Bırakıldı' zaman damgası. Örnekler 3 gün 4 saat10 saat 15 dakika7 gün 0 saat1 gün 12 saat | |||
| Malzeme Stok Durumu MaterialAvailabilityStatus | Üretim siparişi için gerekli tüm bileşenlerin mevcut olup olmadığını gösterir. | ||
| Açıklama Malzeme Stok Durumu, üretim hazırlığının kritik bir göstergesidir. Sistem tarafından sipariş için gerekli tüm bileşen malzemelerinin mevcudiyetinin kontrol edilmesiyle belirlenir. 'Mevcut' durumu, üretimin malzeme ile ilgili gecikmeler olmadan devam edebileceği anlamına gelirken, 'Eksiklik' bir sorunu işaret eder. Bu öznitelik, 'Malzeme Eksikliği Etki Analizi' dashboard'u için temeldir. Siparişlerin malzeme eksikliği ile beklemede geçirdiği süreyi analiz ederek, işletmeler tedarik zinciri sorunlarının üretim programları üzerindeki etkisini nicelendirebilir. Bu, sık sık gecikmelere neden olan güvenilmez tedarikçileri veya sorunlu bileşenleri belirlemeye yardımcı olur. Neden önemli Üretim planı sapmalarının yaygın ve önemli bir temel nedeni olan malzeme eksikliklerinden kaynaklanan gecikmeleri doğrudan vurgular. Nereden alınır Bu, tek bir depolanmış alan değildir. Bir kullanılabilirlik kontrolünün (ATP kontrolü) sonucudur. Sonuçlar genellikle CO02 işleminde veya toplu kullanılabilirlik kontrolü COHV'de görünür. Durumun kendisi (örn. MACM - Malzeme taahhüt edildi) günlüğe kaydedilebilir. SAP ECC PP dokümantasyonuna başvurun. Örnekler AvailableKıtlıkKısmen MevcutKontrol Edilmedi | |||
| Miktar Farkı QuantityVariance | Planlanan üretim miktarı ile gerçek teslim edilen miktar arasındaki fark. | ||
| Açıklama Miktar Farkı, üretim çıktısının başlangıç planından sapmasını ölçen hesaplanmış bir metriktir. 'Teslim Edilen Miktar' eksi 'Planlanan Miktar' olarak hesaplanır. Pozitif bir fark, fazla üretimi; negatif bir fark ise eksik üretimi veya verim kaybını gösterir. Bu öznitelik, 'Planlanan vs. Gerçek Üretim Çıktısı' Dashboard'u ve ilgili KPI için esastır. Farkı analiz etmek, üretim verimi, fire oranları veya veri girişi hatalarıyla ilgili sorunları belirlemeye yardımcı olur. Üretim sürecinin çıktı hedeflerini karşılama güvenilirliğinin doğrudan bir ölçüsünü sunar. Neden önemli Üretim çıktısının planlara karşı doğruluğunu nicelleştirir, verim, hurda veya süreç kontrolü ile ilgili potansiyel sorunları vurgular. Nereden alınır Hesaplanan alan: 'DeliveredQuantity' - 'PlannedQuantity'. Örnekler -2-5005 | |||
| Planlama Grubu PlannerGroup | Siparişten sorumlu MRP sorumluları veya üretim planlamacılarının grubu. | ||
| Açıklama Planlayıcı Grubu, belirli bir malzeme setini veya üretim siparişlerini planlamaktan ve yönetmekten sorumlu bir grup bireyi temsil eden bir organizasyonel unsurdur. Siparişlerin planlayıcı gruplarına atanması, iş yükünün dağıtılmasına ve net sahipliğin oluşturulmasına yardımcı olur. Süreç madenciliğinde bu öznitelik, sorumlu planlama ekibine dayalı performans analizine olanak tanır. 'Hangi planlayıcı grubu en çok çizelge sapması yaşıyor?' veya 'Farklı gruplar tarafından yönetilen siparişler için döngü sürelerinde bir fark var mı?' gibi soruları yanıtlamaya yardımcı olabilir. Bu, iş yükü dengeleme ve eğitim ihtiyaçlarını belirleme konusunda içgörüler sağlar. Neden önemli Performans analizinin sorumlu ekibe göre bölümlere ayrılmasını sağlayarak, planlama etkinliği ve iş yükündeki farklılıkların belirlenmesine yardımcı olur. Nereden alınır Bu, SAP tablosu AFKO'da, DISPO alanında bulunan MRP Sorumlusudur. Örnekler 001002P01P02 | |||
| Planlanan Başlangıç Tarihi PlannedStartDate | Sipariş için üretimin başlamasının planlandığı çizelgelenmiş tarih. | ||
| Açıklama Planlanan Başlangıç Tarihi, üretim planlama ve çizelgeleme aşamasında belirlenen önemli bir çizelgeleme parametresidir. Bir sipariş için üretim faaliyetlerinin başlaması için hedeflenen başlangıç tarihini temsil eder. Bu öznitelik, çizelgeye uyumu ölçmek için çok önemlidir. 'Planlanan Başlangıç Tarihi'nin üretimin gerçek başlangıç zamanı ile (örneğin, 'İlk Onay Kaydedildi' faaliyetinin zaman damgası) karşılaştırılmasıyla, kuruluşlar üretime başlama gecikmelerini belirleyebilir. Bu gecikmelerin nedenlerini analiz etmek, bu alanda süreç madenciliğinin birincil kullanım durumudur. Neden önemli Planlara uyumu ölçmek ve üretim yürütmesinin başlangıcındaki gecikmeleri belirlemek için bir temel görevi görür. Nereden alınır Bu, SAP tablosu AFKO'da, GSTRP alanında bulunan Temel başlangıç tarihidir. Örnekler 2023-05-102023-06-222023-07-01 | |||
| Planlanan Bitiş Tarihi PlannedEndDate | Sipariş için üretimin tamamlanmasının planlandığı çizelgelenmiş tarih. | ||
| Açıklama Planlanan Bitiş Tarihi, çizelgeleme sürecinde belirlenen bir üretim siparişinin hedeflenen tamamlanma tarihidir. Nihai onaylar ve mal girişi dahil olmak üzere tüm üretim faaliyetlerinin tamamlanması için beklenen zaman çerçevesini tanımlar. Bu tarih, 'Çizelgeye Uyum Oranı' KPI'ını hesaplamak için esastır. 'Planlanan Bitiş Tarihi'nin gerçek tamamlanma zamanı ile (örneğin, 'Mal Girişi Kaydedildi' veya 'Nihai Onay Kaydedildi' faaliyetinin zaman damgası) karşılaştırılması, siparişlerin zamanında tamamlanıp tamamlanmadığını ortaya koyar. Bu analiz, üretim çizelgelerinin güvenilirliğini değerlendirmeye ve geç teslimatların temel nedenlerini belirlemeye yardımcı olur. Neden önemli Üretim siparişlerinin zamanında tamamlanıp tamamlanmadığını belirlemek için kullanılan kıyaslama noktasıdır, müşteri memnuniyetini ve planlama güvenilirliğini doğrudan etkiler. Nereden alınır Bu, SAP tablosu AFKO'da, GLTRP alanında bulunan Temel bitiş tarihidir. Örnekler 2023-05-152023-06-282023-07-05 | |||
| Sorumlu Kullanıcı ResponsibleUser | Üretim siparişini oluşturan veya son değiştiren kişinin kullanıcı kimliği. | ||
| Açıklama Sorumlu Kullanıcı, üretim siparişi yaşam döngüsündeki oluşturma veya serbest bırakma gibi önemli olaylarla ilişkili SAP kullanıcı hesabını tanımlar. Bu, sistem içinde gerçekleştirilen eylemler için hesap verebilirlik ve izlenebilirlik sağlar. Süreç madenciliğinde bu öznitelik, kullanıcı davranışına dayalı süreç varyasyonlarını analiz etmek için kullanılır. Ek eğitim gerektirebilecek veya standart olmayan prosedürleri takip eden kullanıcıları belirlemeye yardımcı olabilir. Ayrıca, işin farklı kullanıcılar arasında nasıl dağıtıldığını göstererek kaynak analizini de destekler. Neden önemli Süreç faaliyetlerini belirli kişilere bağlayarak, kullanıcı düzeyinde performans analizini mümkün kılar ve hesap verebilirliği teşvik eder. Nereden alınır Siparişi oluşturan kullanıcı AUFK-ERNAM'da bulunur. Son değiştiren kullanıcı AUFK-AENAM'dadır. Değişiklik belgeleri (CDHDR-USERNAME), belirli değişiklikler için kullanıcıların geçmişini sağlar. Örnekler JSMITHPROD_PLANNER1BATCH_USERAMILLER | |||
| Üretim Önceliği ProductionPriority | Üretim siparişinin aciliyetini veya önceliğini gösteren bir sınıflandırma. | ||
| Açıklama Üretim Önceliği, bir üretim siparişinin göreceli önemini belirtmek için kullanılan bir alandır. Bu, üretim planlayıcılarının ve fabrika katı personelinin işlerini önceliklendirmelerine olanak tanır, böylece kritik siparişlerin süreç boyunca hızla ilerlemesi sağlanır. Bu özniteliğin analizi, öncelik sisteminin etkinliğini değerlendirmeye yardımcı olur. Yüksek öncelikli siparişlerin döngü sürelerini düşük öncelikli olanlarla karşılaştırarak, bir işletme acil siparişlerin gerçekten daha hızlı işlenip işlenmediğini belirleyebilir. Eğer öyle değilse, bu durum iletişim, kaynak tahsisi veya genel yürütme sürecinde sorunlar olduğunu gösterebilir. Neden önemli Öncelik yönetim sisteminin etkili olup olmadığını değerlendirmeye yardımcı olur, yüksek aciliyetli siparişlerin standart siparişlerden daha hızlı tamamlanmasını sağlar. Nereden alınır Bu, genellikle üretim siparişi başlığında standart bir alan değildir. Özel bir alan olabilir, satış siparişi önceliğinden türetilmiş olabilir veya bir sınıflandırma sisteminin bir parçası olabilir. SAP ECC PP dokümantasyonuna veya sistem yapılandırmasına başvurun. Örnekler YüksekOrtaDüşükAcil | |||
| Üretim Sipariş Durumu ProductionOrderStatus | Üretim siparişinin mevcut işleme durumu; örneğin Oluşturuldu, Serbest Bırakıldı veya Teknik Olarak Tamamlandı. | ||
| Açıklama Üretim Sipariş Durumu, siparişin yaşam döngüsündeki mevcut aşamasını gösterir. SAP, siparişin ilerlemesini yönetmek için CRTD (Oluşturuldu), REL (Serbest Bırakıldı), CNF (Onaylandı), DLV (Teslim Edildi) ve TECO (Teknik Olarak Tamamlandı) gibi durum kodları sistemi kullanır. Farklı durumlarda geçirilen süreyi analiz etmek, üretim için süreç madenciliğinin temel bir parçasıdır. Siparişlerin oluşturulduktan sonra serbest bırakılmayı ne kadar beklediğini veya kısmen teslim edilmiş durumda ne kadar kaldığını belirlemeye yardımcı olur. Durum değişikliklerini faaliyetler olarak izlemek, süreç akışına üst düzey bir bakış sağlar. Neden önemli Bir siparişin ilerlemesinin anlık görüntüsünü sağlar ve siparişlerin uzun süre takılı kaldığı darboğazları belirlemeye yardımcı olur. Nereden alınır Durum bilgileri, siparişin nesne numarasına (AUFK-OBJNR) bağlı olarak JEST ve JSTO tablolarında saklanır. Durum metni TJ02T'dedir. Durum okuma genellikle STATUS_TEXT_EDIT gibi fonksiyon modülleri aracılığıyla yapılır. Örnekler CRTD (Oluşturuldu)REL (Serbest Bırakıldı)DLV (Teslim Edildi)TECO (Teknik Olarak Tamamlandı) | |||
Üretim Planlama Faaliyetleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| İlk Onay Kaydedildi | Bu olay, sipariş üzerindeki gerçek üretim işinin başlangıcını ifade eder. Üretim siparişindeki herhangi bir operasyon için ilk zaman onayı sisteme girildiğinde yakalanır. | ||
| Neden önemli Bu faaliyet, çizelgeye uyumu ölçmek ve kaynak tahsisi ile iş başlangıcı arasındaki gecikmeleri belirlemek için gerekli olan üretimin gerçek başlangıç zamanını sağlar. Nereden alınır Bu, AFRU tablosundaki sipariş için kaydedilen tüm onaylar arasında en erken kayıt tarihi (AFRU-BUDAT) bulunarak çıkarılır. İlk giriş, fiziksel üretimin başlangıcını işaret eder. Yakala Sipariş için ilk onay kaydını AFRU tablosundaki defter kayıt tarihine göre belirleyin. Event tipi inferred | |||
| Mal Kabul Kaydı Yapıldı | Bu olay, bitmiş ürünün üretim siparişinden envantere girişini kaydeder. Üretilen malların artık sevkiyat veya daha fazla işleme için mevcut olduğunu belirtir. | ||
| Neden önemli Bu, üretim sürecinin nihai çıktısını temsil eden önemli bir tamamlama kilometre taşıdır. Serbest bırakmadan mal girişine kadar geçen süre, toplam üretim teslim süresidir. Nereden alınır Tipik olarak '101' hareket türüyle MKPF/MSEG tablolarında, üretim siparişini referans alarak bir malzeme belgesi olarak kaydedilir. Sipariş üzerinde 'DLV' (I0012, Teslim Edildi) sistem durumu da ayarlanır. Yakala '101' hareket tipine sahip malzeme belgesinden defter kayıt tarihini veya 'DLV' durum değişikliğinin zaman damgasını yakalayın. Event tipi explicit | |||
| Sipariş Teknik Olarak Tamamlandı | Bu, bir üretim siparişini lojistik açıdan kesinleştiren idari bir kapatma adımıdır. Daha fazla malzeme hareketini veya onayını engeller ve finansal mutabakata olanak tanır. | ||
| Neden önemli Bu, siparişin lojistikteki yaşam döngüsü için kesin bitiş noktasıdır. Bu olayı analiz etmek, üretim sonrası idari görevler de dahil olmak üzere toplam süreç süresini anlamaya yardımcı olur. Nereden alınır Sistem durumu 'TECO' (I0045, Teknik Olarak Tamamlandı) siparişe atandığında açıkça yakalanır. Değişiklik, JCDS tablosunda bir zaman damgasıyla günlüğe kaydedilir. Yakala JCDS'de sipariş için 'TECO' durumunun aktif hale geldiği zaman damgasını belirleyin. Event tipi explicit | |||
| Son Onay Kaydedildi | Bu faaliyet, üretim siparişi için tüm operasyonların atölye açısından tamamlandığını gösterir. Son operasyon için nihai onay girişi ile işaretlenir. | ||
| Neden önemli Bu kilometre taşı, fiziksel üretim faaliyetlerinin sonunu işaret eder. İlk onaydan nihai onaya kadar geçen süre, gerçek üretim yürütme zamanını temsil eder. Nereden alınır Bu, 'CNF' (I0009, Onaylandı) sistem durumu ayarlandığında yakalanır. Bu genellikle AFRU tablosundaki nihai onay girişi (AFRU-AUERU = 'X') tarafından tetiklenir. Durum değişikliği JCDS'de günlüğe kaydedilir. Yakala 'CNF' durumunun ayarlandığı zaman damgasını belirleyin veya AFRU'daki son onay kaydını bulun. Event tipi explicit | |||
| Üretim Siparişi Oluşturuldu | Bu olay, tipik olarak bir planlama çalışmasından veya manuel girişten başlatılan yeni bir üretim siparişinin oluşturulmasını işaret eder. Yeni bir sipariş kaydı sisteme kaydedildiğinde, 'CRTD' (Oluşturuldu) durumunu alarak açıkça yakalanır. | ||
| Neden önemli Bu, her üretim siparişi durumu için başlangıç noktasıdır. Bu olaydan serbest bırakmaya kadar geçen süreyi analiz etmek, üretim öncesi planlama ve idari kurulumdaki gecikmeleri belirlemeye yardımcı olur. Nereden alınır Bu olay, üretim siparişinin oluşturulma tarihi (AUFK-ERDAT) ve saati (AUFK-ERZET) üzerinden yakalanır. 'CRTD' (I0001) sistem durumu atanır ve sipariş nesne numarasına (AUFK-OBJNR) bağlı JEST ve JCDS tablolarında günlüğe kaydedilir. Yakala Oluşturma zaman damgasını ve 'CRTD' durumunun atanmasını takip edin. Event tipi explicit | |||
| Üretim Siparişi Serbest Bırakıldı | Bu faaliyet, üretim siparişinin yürütme için resmi onayını ve serbest bırakılmasını ifade eder. Serbest bırakıldıktan sonra, malzeme rezervasyonları aktif hale gelir ve mal çıkışı ve onaylar gibi üretim faaliyetleri başlayabilir. | ||
| Neden önemli Bu, planlamadan yürütmeye devri temsil eden kritik bir kilometre taşıdır. Oluşturma ve serbest bırakma arasındaki süre, planlama verimliliğinin temel bir göstergesidir. Nereden alınır Sistem durumu 'REL' (I0002) üretim siparişine atandığında açıkça yakalanır. Değişiklik, siparişin nesne numarasına (AUFK-OBJNR) bağlı olarak JCDS tablosunda bir zaman damgasıyla günlüğe kaydedilir. Yakala Sipariş için 'REL' durumunun aktif hale geldiği zaman damgasını belirleyin. Event tipi explicit | |||
| Ara Onay Kaydedildi | Bir operasyonun kısmi onayı aracılığıyla bir üretim siparişindeki ilerleme güncellemesini temsil eder. Bu, nihai tamamlanmadan önce ilerlemenin izlenmesinin gerekli olduğu uzun süreli siparişler için yaygındır. | ||
| Neden önemli Ara onayları analiz etmek, uzun üretim döngülerinin ilerlemesini izlemeye ve sadece başlangıçta veya sonda değil, üretim sürecinin kendisindeki darboğazları belirlemeye yardımcı olur. Nereden alınır AFRU tablosundaki son onay olarak işaretlenmemiş onay kayıtlarından alınır. Her girişte bir kayıt tarihi (AFRU-BUDAT) ve saati bulunur. Yakala AFRU'dan, bir operasyon için son onay olarak işaretlenmemiş tüm onay kayıtlarını çıkarın. Event tipi explicit | |||
| Mal Çıkışı Yapıldı | Bu faaliyet, üretim siparişinde kullanılmak üzere envanterden bileşen malzemelerin çekilmesini temsil eder. Gerekli hammaddelerin veya yarı mamul ürünlerin üretime hazır hale getirildiğini doğrular. | ||
| Neden önemli Bu olay, malzeme tüketiminin başlangıcını işaret eder. Sipariş serbest bırakma ve mal çıkışı arasındaki gecikmeler, depo lojistiği, malzeme hazırlama veya envanter doğruluğu sorunlarını vurgulayabilir. Nereden alınır Tipik olarak '261' hareket türüyle MKPF (başlık) ve MSEG (kalem) tablolarında, üretim sipariş numarasını (MSEG-AUFNR) referans alarak malzeme belgeleri olarak kaydedilir. Yakala Siparişe bağlı '261' hareket tipine sahip malzeme belgelerinin defter kayıt tarihini (MKPF-BUDAT) yakalayın. Event tipi explicit | |||
| Malzeme Stok Durumu Kontrol Edildi | Üretim siparişi için gerekli tüm bileşenlerin mevcut olup olmadığını belirlemek amacıyla yapılan bir kontrolün yürütülmesini temsil eder. Bu, sipariş oluşturulduğunda veya serbest bırakıldığında otomatik bir kontrol ya da manuel olarak tetiklenen bir eylem olabilir. | ||
| Neden önemli Bu faaliyet, malzeme kıtlığından kaynaklanan gecikmeleri anlamak için çok önemlidir. Sık kontroller veya malzeme mevcudiyetine kadar geçen uzun süreler, tedarik zinciri veya envanter yönetimi sorunlarını gösterebilir. Nereden alınır Sistem 'MACM' (malzeme taahhüt edildi) veya 'MSPT' (malzeme kıtlığı) gibi bir durum ayarlar. Yürütme, JEST/JCDS tablolarındaki bu durum değişikliğinin zaman damgasından çıkarılabilir. Sonuçlar sipariş başlığında görülebilir. Yakala Malzeme stok durumu ile ilgili durum değişikliklerinin zaman damgasından, örneğin 'MACM' veya 'MSPT'den çıkarım yapın. Event tipi inferred | |||
| Sipariş İptali Ayarlandı | Bu olay, bir üretim siparişinin tamamlanmadan önce iptal edildiğini gösterir. Bu, genellikle belirli bir durum veya silme işareti ayarlanarak yapılır ve daha fazla işlemin önlenmesini sağlar. | ||
| Neden önemli Bu, izlenmesi önemli olan olumsuz bir sonuçtur. İptal edilen siparişleri analiz etmek, talep tahmini, planlama doğruluğu veya ana veri yönetimi ile ilgili sorunları ortaya çıkarabilir. Nereden alınır Bu, 'DLFL' (I0076, Silme işareti) durumunun veya yapılandırılmışsa belirli bir 'İptal Edildi' durumunun atanmasından çıkarılabilir. Değişiklik, JCDS tablosunda bir zaman damgası ile kaydedilir. Yakala Sipariş için silme işareti ('DLFL') veya bir iptal durumunun ayarlandığı zaman damgasını belirleyin. Event tipi inferred | |||
| Sipariş Mutabakatı Çalıştırıldı | Üretim siparişinin finansal mutabakatını temsil eder; burada toplanan maliyetler uygun maliyet nesnelerine tahsis edilir. Bu, bir siparişin kontrol perspektifinden yaşam döngüsündeki son adımdır. | ||
| Neden önemli Mali bir faaliyet olmasına rağmen, ödemedeki gecikmeler maliyet raporlaması veya sipariş veri doğruluğu ile ilgili sorunlara işaret edebilir. Bu, üretim sürecinin gerçek finansal kapanışını gösterir. Nereden alınır Bu, sipariş bakiyesi sıfır olduğunda veya 'SETC' (I0076, Mutabakat kuralı oluşturuldu) sistem durumunu mutabakat çalıştırma günlüklerinin takip etmesi durumunda çıkarılabilir. Gerçek mutabakat, COSP ve COSS gibi kontrol tablolarında kaydedilir. Yakala CO tablolarında siparişe bağlı mutabakat belgelerinden veya 'SETC' durumunun etkinleştirilmesinden çıkarım yapın. Event tipi inferred | |||
| Sipariş Verileri Değiştirildi | Bu olay, bir üretim siparişinde ilk oluşturulmasından sonra yapılan planlanan miktar, tarihler veya BOM değişiklikleri gibi önemli değişiklikleri yakalar. Bu değişiklikler, denetim amaçları için sistem tarafından günlüğe kaydedilir. | ||
| Neden önemli Bu değişiklikleri izlemek, süreç istikrarsızlığını ve sık tekrar planlamaları tespit etmeye yardımcı olur. Sık değişiklikler, yetersiz ilk planlama, talep oynaklığı veya veri yanlışlıklarına işaret edebilir. Nereden alınır AFKO (sipariş başlığı) ve AFPO (sipariş kalemi) gibi tablolardaki ana alanlardaki değişiklikler, değişiklik belgesi tabloları CDHDR (başlık) ve CDPOS (kalem) içinde günlüğe kaydedilir. Her ilgili değişiklik bir faaliyet olarak çıkarılabilir. Yakala Üretim siparişi nesne sınıfı için CDHDR ve CDPOS tablolarından değişiklik günlüğü girişlerini çıkarın. Event tipi explicit | |||
Veri Çekim Kılavuzları
Adımlar
- SAP Sorgusunda Bir InfoSet Oluşturun:
SQ02işlem kodunu kullanın. Örneğin,ZPP_EVENTLOGadında yeni bir InfoSet oluşturun. 'Temel tablo kullanarak tablo birleştirme' veri kaynağı seçeneğini seçin. İlk temel tablo olarakAUFK(Sipariş ana verileri) kullanın. - Gerekli Tabloları Birleştirin: Aşağıdaki tabloları InfoSet birleştirmesine ekleyin. Sistem birleştirmeler önerebilir, ancak bunların doğru olduğunu doğrulayın:
AUFKileAFKO(Sipariş başlık verileri PP siparişleri):AUFK-AUFNR = AFKO-AUFNRAUFKileJEST(Bireysel Nesne Durumu):AUFK-OBJNR = JEST-OBJNRJESTileJCDS(Sistem/Kullanıcı Durumları için Değişiklik Belgeleri):JEST-OBJNR = JCDS-OBJNRVEJEST-STAT = JCDS-STAT. Not: Bu birleştirme durum değişikliği geçmişini okumak içindir.AUFKileAFRU(Sipariş tamamlama onayları):AUFK-AUFNR = AFRU-AUFNRAUFKileMSEG(Belge Kesiti: Malzeme):AUFK-AUFNR = MSEG-AUFNRMSEGileMKPF(Başlık: Malzeme Belgesi):MSEG-MBLNR = MKPF-MBLNRVEMSEG-MJAHR = MKPF-MJAHR
- Alan Gruplarını Tanımlayın: Gerekli alanları kaynak tablolardan alan gruplarına sürükleyin.
AUFK-AUFNR,AUFK-WERKS,AFKO-GAMNG,AFKO-GASMG,JCDS-UDATE,MKPF-BUDATgibi nihai sorgu için gerekli tüm alanların dahil edildiğinden emin olun. - Özel Alanlar ve Kod Ekleyin: InfoSet'te 'Ekstralar' sekmesine gidin.
ActivityName,EventTime,SourceSystemveLastDataUpdateiçin özel alanlar tanımlamanız ve sorgu bölümünde tanımlanan mantığa göre bunları doldurmak için ABAP kodu yazmanız gerekecektir. Mantık, her iş olayı için ayrı bir kayıt oluşturmak üzere durum değişiklikleri, onaylar ve malzeme belgeleri arasında yineleme yapmayı içerecektir. Bu, sekmeli verileri InfoSet'in kod bölümlerinde bir olay günlüğü formatına dönüştürdüğünüz için en karmaşık adımdır. - InfoSet'i Oluşturun ve Kaydedin: Tüm birleştirmeler, alanlar ve özel kod yerleştirildikten sonra InfoSet'i kaydedin ve oluşturun.
- Bir SAP Sorgusu Oluşturun:
SQ01işlem kodunu kullanın. Önceki adımlarda oluşturulan InfoSet'e dayalı olarak, örneğinZPP_EVENTSadında yeni bir sorgu oluşturun. - Sorgu Düzenini Tasarlayın: Sorgu tasarımcısında, seçim ekranı alanlarını tanımlayın. İyi seçimler arasında Üretim Siparişi
AUFNR, TesisWERKS, Sipariş TipiAUARTve sipariş oluşturma için bir tarih aralığıAUFK-ERDATbulunur. - Çıkış Listesini Tanımlayın: Rapor çıktısında görüntülenecek alanları seçin. Bu liste,
ActivityNameveEventTimegibi özel alanlar dahil olmak üzere olay günlüğü için gerekli sütunlarla tam olarak eşleşmelidir. - Sorguyu Çalıştırın: Sorguyu istediğiniz seçim kriterleriyle çalıştırın, örneğin son 3 ila 6 aylık üretim siparişleri için.
- Verileri Dışa Aktarın: Sorgu sonuçları görüntüledikten sonra, listeyi dışa aktarın. Bunun için en yaygın ve güvenilir format 'Hesap Tablosu' veya 'Yerel Dosya'dır ve sekmeyle ayrılmış veya CSV formatında olmalıdır.
- ProcessMind için Biçimlendirin: Dışa aktarılan dosyayı bir hesap tablosu programında açın. Sütun başlıklarının gerekli özniteliklerle (
ProductionOrder,ActivityName,EventTimevb.) eşleştiğini doğrulayın veEventTimeiçin tarih ve saat formatının tutarlı olduğunu ve gerekli standardı (örn. YYYY-MM-DD HH:MI:SS) karşıladığından emin olun. Dosyayı yüklemek için CSV olarak kaydedin.
Konfigürasyon
- InfoSet Birleştirmeleri: Bu yöntemin temelinde, başlık, durum, onay ve malzeme hareketi tablolarını birleştiren karmaşık bir InfoSet bulunmaktadır. Birincil birleştirmeler
AUFK->AFKO,AUFK->JEST->JCDS,AUFK->AFRUveAUFK->MSEG->MKPFşeklindedir. Yanlış veya verimsiz birleştirmeler düşük performansa veya hatalı verilere yol açabilir. - Seçim Kriterleri: Sistem performansı sorunlarını önlemek için yönetilebilir bir seçim aralığı tanımlamak kritik öneme sahiptir. Sorgunun başlangıç ekranındaki temel seçim alanları şunları içermelidir:
- Üretim Tesisi (
AUFK-WERKS) - Üretim Siparişi Tipi (
AUFK-AUART) - Sipariş Oluşturma Tarihi (
AUFK-ERDAT): Veri kümesi boyutunu yönetilebilir tutmak için 3-6 aylık bir dönem için veri çıkarmanızı öneririz.
- Üretim Tesisi (
- Sistem Durumları: 'Oluşturuldu', 'Serbest Bırakıldı', 'Teknik Olarak Tamamlandı' ve 'İptal Edildi' gibi olayları tanımlama mantığı, belirli sistem durum kodlarına (örneğin, I0001, I0002, I0045, I0047) bağlıdır. Bunlar genellikle SAP sistemlerinde standarttır ancak doğrulanmalıdır.
- Hareket Türleri: 'Malzeme Çıkışı' ve 'Malzeme Girişi' gibi olaylar, genellikle '261' ve '101' olan belirli Hareket Türleri (
MSEG-BWART) ile tanımlanır. Bu değerlerin kuruluşunuzun konfigürasyonuyla uyumlu olduğunu doğrulayın. - Yetkilendirmeler: Sorguyu çalıştıran kullanıcının
SQ01,SQ02veSQ03işlemlerine erişim yetkisine, ayrıca tüm temel tablolara (AUFK, AFKO, JEST, JCDS, AFRU, MSEG, MKPF) görüntüleme erişimine sahip olması gerekir.
a Örnek Sorgu abap
/*
The following ABAP-style SQL script represents the complete logic required to build the event log.
This logic must be implemented within the code sections of the SQ02 InfoSet, as a direct SQL query of this nature is not run.
Each SELECT block corresponds to a specific business activity.
*/
-- 1. Production Order Created
SELECT
AUFK.AUFNR AS ProductionOrder,
'Production Order Created' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0001' AND JCDS.INACT = ''
UNION ALL
-- 2. Material Availability Checked (using 'Material shortage' status as an indicator)
SELECT
AUFK.AUFNR AS ProductionOrder,
'Material Availability Checked' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0033' AND JCDS.INACT = '' -- I0033 is MSPT (Material Shortage)
UNION ALL
-- 3. Production Order Released
SELECT
AUFK.AUFNR AS ProductionOrder,
'Production Order Released' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0002' AND JCDS.INACT = ''
UNION ALL
-- 4. Order Data Changed (using last change date as a proxy)
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Data Changed' AS ActivityName,
CAST(AUFK.AEDAT AS VARCHAR(8)) || ' 000000' AS EventTime, -- Time is not available in AUFK
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
WHERE AUFK.AEDAT IS NOT NULL AND AUFK.AEDAT > AUFK.ERDAT
UNION ALL
-- 5. Goods Issue Posted
SELECT
AUFK.AUFNR AS ProductionOrder,
'Goods Issue Posted' AS ActivityName,
CAST(MKPF.BUDAT AS VARCHAR(8)) || ' ' || CAST(MKPF.CPUTM AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN MSEG ON AUFK.AUFNR = MSEG.AUFNR
JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR AND MSEG.MJAHR = MKPF.MJAHR
WHERE MSEG.BWART = '261'
UNION ALL
-- 6. First Confirmation Recorded
SELECT
CONF.ProductionOrder,
'First Confirmation Recorded' AS ActivityName,
CONF.EventTime,
CONF.ProductionPlant,
CONF.ProductCode,
CONF.PlannedQuantity,
CONF.DeliveredQuantity,
CONF.ActualStartDate,
CONF.ActualEndDate,
CONF.SourceSystem,
CONF.LastDataUpdate
FROM (
SELECT
AUFK.AUFNR AS ProductionOrder,
CAST(AFRU.BUDAT AS VARCHAR(8)) || ' ' || CAST(AFRU.ERFZEIT AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
ROW_NUMBER() OVER(PARTITION BY AUFK.AUFNR ORDER BY AFRU.BUDAT, AFRU.ERFZEIT) as rn
FROM AUFK
JOIN AFRU ON AUFK.AUFNR = AFRU.AUFNR
) AS CONF
WHERE CONF.rn = 1
UNION ALL
-- 7. Intermediate Confirmation Recorded
SELECT
AUFK.AUFNR AS ProductionOrder,
'Intermediate Confirmation Recorded' AS ActivityName,
CAST(AFRU.BUDAT AS VARCHAR(8)) || ' ' || CAST(AFRU.ERFZEIT AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN AFRU ON AUFK.AUFNR = AFRU.AUFNR
WHERE AFRU.AUERU = 'T' -- T = Partial Confirmation
UNION ALL
-- 8. Final Confirmation Recorded
SELECT
AUFK.AUFNR AS ProductionOrder,
'Final Confirmation Recorded' AS ActivityName,
CAST(AFRU.BUDAT AS VARCHAR(8)) || ' ' || CAST(AFRU.ERFZEIT AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN AFRU ON AUFK.AUFNR = AFRU.AUFNR
WHERE AFRU.AUERU = 'E' -- E = Final Confirmation
UNION ALL
-- 9. Goods Receipt Posted
SELECT
AUFK.AUFNR AS ProductionOrder,
'Goods Receipt Posted' AS ActivityName,
CAST(MKPF.BUDAT AS VARCHAR(8)) || ' ' || CAST(MKPF.CPUTM AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN MSEG ON AUFK.AUFNR = MSEG.AUFNR
JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR AND MSEG.MJAHR = MKPF.MJAHR
WHERE MSEG.BWART = '101'
UNION ALL
-- 10. Order Technically Completed
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Technically Completed' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0045' AND JCDS.INACT = ''
UNION ALL
-- 11. Order Settlement Ran (using 'Closed' status as proxy)
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Settlement Ran' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0046' AND JCDS.INACT = '' -- I0046 is CLSD (Closed)
UNION ALL
-- 12. Order Cancellation Set
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Cancellation Set' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0047' AND JCDS.INACT = '' -- I0047 is CNF (Confirmed), use I0076 for Canceled. Recorrecting. Use Deletion Flag instead.
-- Corrected Logic for Cancellation:
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Cancellation Set' AS ActivityName,
CAST(AUFK.AEDAT AS VARCHAR(8)) || ' 000000' AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
WHERE AUFK.LOEKZ = 'X'; Adımlar
- Veritabanı Erişimini Kurun: Temel SAP ECC veritabanı için salt okunur kimlik bilgilerini edinin. Sunucu adresi, bağlantı noktası, veritabanı adı, kullanıcı adı ve parolaya ihtiyacınız olacaktır. Bu erişim temeldir ve SAP Basis ve veritabanı yönetimi ekiplerinizle koordine edilmelidir.
- SAP Şemasını Belirleyin: SAP tablolarının depolandığı doğru veritabanı şemasını belirleyin. Bu genellikle
SAPSR3veya benzer bir sisteme özgü addır. Sorgudaki[Your SAP Schema]yer tutucusunu bu değerle değiştirmeniz gerekecektir. - SQL Sorgusunu Hazırlayın:
querybölümünde sağlanan tam SQL sorgusunu kopyalayın. Bu sorgu, belirtilen tüm aktiviteleri tek bir olay günlüğü formatına çıkarmak için tasarlanmıştır. - Sorgu Parametrelerini Yapılandırın: Çalıştırmadan önce, sorgu içindeki yer tutucuları değiştirmeniz gerekir. Çıkarma için zaman penceresini tanımlamak üzere
[Start Date]ve[End Date]değerlerini ayarlayın. Veri hacmini sınırlamak için üretim tesisi (WERKS) veya sipariş tipine (AUART) göre filtreleme yapılması da şiddetle tavsiye edilir. - Bağlanın ve Çalıştırın: 1. adımdaki kimlik bilgilerini kullanarak SAP veritabanına bağlanmak için DBeaver, SAP HANA Studio gibi standart bir SQL istemcisi veya özel bir komut dosyası (Python, Java), kullanın.
- Sorguyu Çalıştırın: Yapılandırılmış SQL sorgusunu istemcinize yapıştırın ve çalıştırın. Tarih aralığına ve sistem boyutuna bağlı olarak bu işlem birkaç dakika sürebilir.
- Ön Sonuçları İnceleyin: Sorgu bittikten sonra,
ProductionOrder,ActivityNameveEventTimegibi sütunların doğru şekilde doldurulduğundan ve anlamlı olduğundan emin olmak için ilk birkaç yüz satırı kısaca inceleyin. - CSV'ye Dışa Aktarın: Tüm sonuç kümesini SQL istemcinizden bir CSV dosyasına dışa aktarın. Karakter sorunlarını önlemek için dosyanın UTF-8 kodlamasını kullandığından emin olun.
- Yükleme için CSV'yi Sonlandırın: CSV dosyasını açın ve sütun başlıklarının gerekli özniteliklerle (
ProductionOrder,ActivityName,EventTime,SourceSystem,LastDataUpdatevb.) eşleştiğini doğrulayın.EventTimesütununun tutarlı bir şekilde, örneğinYYYY-MM-DD HH:MI:SSolarak biçimlendirildiğinden emin olun. - ProcessMind'e Yükleyin: Hazırlanan CSV dosyası artık analiz için ProcessMind platformuna yüklenmeye hazırdır.
Konfigürasyon
- Veritabanı Şeması: Üretim planlama tablolarınızın bulunduğu SAP şemasını belirtmelisiniz. Sorgudaki
[Your SAP Schema]yer tutucusunu, ortamınız için doğru adla, örneğinSAPSR3ile değiştirin. - Tarih Aralığı: Performans için belirli bir tarih aralığına göre filtreleme yapmak kritik öneme sahiptir. Sorgu, sipariş oluşturma tarihine (
AUFK.ERDAT) göre filtreleme yapar. Yönetilebilir bir veri hacmi sağlamak için 3 ila 6 aylık güncel bir dönemle başlamanızı öneririz. - Üretim Sipariş Tipi: Analizi odaklamak için sorguyu üretim sipariş tipi alanına (
AUFK.AUART) göre filtreleyin. Bu, standart üretim siparişleri, proses siparişleri veya yeniden işleme siparişleri gibi belirli tipleri dahil etmenize veya hariç tutmanıza olanak tanır. - Üretim Tesisi: Bir veya daha fazla üretim tesisine (
AFKO.WERKS) göre filtreleme yapmanız şiddetle tavsiye edilir. Tüm tesisler için veriyi aynı anda çıkarmak çok kaynak yoğun olabilir. - Veritabanı Erişimi: Bu yöntem, en azından aşağıdaki tablolarda okuma iznine sahip bir veritabanı kullanıcısı gerektirir:
AUFK,AFKO,JCDS,JEST,AFRU,MSEG,MKPF. Doğrudan veritabanı erişimi tüm SAP kullanıcıları için standart değildir ve özel yetkilendirme gerektirir.
a Örnek Sorgu sql
WITH Orders AS (
SELECT
aufk.AUFNR AS ProductionOrder,
afko.WERKS AS ProductionPlant,
afko.PLNBEZ AS ProductCode,
afko.GAMNG AS PlannedQuantity,
afko.GMEIN AS PlannedUnit,
afko.GEMNG AS DeliveredQuantity,
CASE
WHEN afko.GSTRI = '00000000' THEN NULL
ELSE TO_TIMESTAMP(afko.GSTRI || afko.GSUZI, 'YYYYMMDDHH24MISS')
END AS ActualStartDate,
CASE
WHEN afko.GETRI = '00000000' THEN NULL
ELSE TO_TIMESTAMP(afko.GETRI || afko.GEUZI, 'YYYYMMDDHH24MISS')
END AS ActualEndDate,
aufk.OBJNR,
aufk.ERDAT AS CreationDate,
aufk.ERFAS AS CreationTime
FROM
"[Your SAP Schema]".AUFK aufk
JOIN
"[Your SAP Schema]".AFKO afko ON aufk.AUFNR = afko.AUFNR
WHERE
aufk.AUTYP = '10' -- Filter for Production Orders
AND aufk.ERDAT BETWEEN '[Start Date]' AND '[End Date]'
-- AND afko.WERKS IN ('[Your Plant]', '[Another Plant]') -- Optional: Filter by Plant
-- AND aufk.AUART IN ('[Your Order Type]') -- Optional: Filter by Order Type
),
Confirmations AS (
SELECT
o.ProductionOrder,
a.RUECK AS ConfirmationNumber,
a.RMZHL AS ConfirmationCounter,
TO_TIMESTAMP(a.BUDAT || a.UZEIT, 'YYYYMMDDHH24MISS') AS EventTime,
a.AUERU AS IsFinalConfirmation,
ROW_NUMBER() OVER(PARTITION BY o.ProductionOrder ORDER BY TO_TIMESTAMP(a.BUDAT || a.UZEIT, 'YYYYMMDDHH24MISS') ASC) as rn_asc,
ROW_NUMBER() OVER(PARTITION BY o.ProductionOrder ORDER BY TO_TIMESTAMP(a.BUDAT || a.UZEIT, 'YYYYMMDDHH24MISS') DESC) as rn_desc
FROM
Orders o
JOIN
"[Your SAP Schema]".AFRU a ON o.ProductionOrder = a.AUFNR
)
-- 1. Production Order Created
SELECT
o.ProductionOrder,
'Production Order Created' AS ActivityName,
TO_TIMESTAMP(o.CreationDate || o.CreationTime, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
UNION ALL
-- 2. Material Availability Checked (using 'Material Committed' status as proxy)
SELECT
o.ProductionOrder,
'Material Availability Checked' AS ActivityName,
TO_TIMESTAMP(jcds.UDATE || jcds.UTIME, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".JCDS jcds ON o.OBJNR = jcds.OBJNR
WHERE jcds.STAT = 'I0006' AND jcds.INACT != 'X'
UNION ALL
-- 3. Production Order Released
SELECT
o.ProductionOrder,
'Production Order Released' AS ActivityName,
TO_TIMESTAMP(jcds.UDATE || jcds.UTIME, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".JCDS jcds ON o.OBJNR = jcds.OBJNR
WHERE jcds.STAT = 'I0002' AND jcds.INACT != 'X'
UNION ALL
-- 4. Order Data Changed
SELECT
o.ProductionOrder,
'Order Data Changed' AS ActivityName,
TO_TIMESTAMP(aufk.AEDAT || aufk.AEZEIT, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".AUFK aufk ON o.ProductionOrder = aufk.AUFNR
WHERE aufk.AEDAT > o.CreationDate
UNION ALL
-- 5. Goods Issue Posted
SELECT
o.ProductionOrder,
'Goods Issue Posted' AS ActivityName,
TO_TIMESTAMP(mkpf.CPUDT || mkpf.CPUTM, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".MSEG mseg ON o.ProductionOrder = mseg.AUFNR
JOIN "[Your SAP Schema]".MKPF mkpf ON mseg.MBLNR = mkpf.MBLNR AND mseg.MJAHR = mkpf.MJAHR
WHERE mseg.BWART = '261'
UNION ALL
-- 6. First Confirmation Recorded
SELECT
c.ProductionOrder,
'First Confirmation Recorded' AS ActivityName,
c.EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Confirmations c
JOIN Orders o ON c.ProductionOrder = o.ProductionOrder
WHERE c.rn_asc = 1
UNION ALL
-- 7. Intermediate Confirmation Recorded
SELECT
c.ProductionOrder,
'Intermediate Confirmation Recorded' AS ActivityName,
c.EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Confirmations c
JOIN Orders o ON c.ProductionOrder = o.ProductionOrder
WHERE c.rn_asc > 1 AND c.IsFinalConfirmation IS NULL
UNION ALL
-- 8. Final Confirmation Recorded
SELECT
c.ProductionOrder,
'Final Confirmation Recorded' AS ActivityName,
c.EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Confirmations c
JOIN Orders o ON c.ProductionOrder = o.ProductionOrder
WHERE c.IsFinalConfirmation = 'X'
UNION ALL
-- 9. Goods Receipt Posted
SELECT
o.ProductionOrder,
'Goods Receipt Posted' AS ActivityName,
TO_TIMESTAMP(mkpf.CPUDT || mkpf.CPUTM, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".MSEG mseg ON o.ProductionOrder = mseg.AUFNR
JOIN "[Your SAP Schema]".MKPF mkpf ON mseg.MBLNR = mkpf.MBLNR AND mseg.MJAHR = mkpf.MJAHR
WHERE mseg.BWART = '101'
UNION ALL
-- 10. Order Technically Completed
SELECT
o.ProductionOrder,
'Order Technically Completed' AS ActivityName,
TO_TIMESTAMP(jcds.UDATE || jcds.UTIME, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".JCDS jcds ON o.OBJNR = jcds.OBJNR
WHERE jcds.STAT = 'I0045' AND jcds.INACT != 'X'
UNION ALL
-- 11. Order Settlement Ran
SELECT
o.ProductionOrder,
'Order Settlement Ran' AS ActivityName,
TO_TIMESTAMP(jcds.UDATE || jcds.UTIME, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".JCDS jcds ON o.OBJNR = jcds.OBJNR
WHERE jcds.STAT = 'I0046' AND jcds.INACT != 'X'
UNION ALL
-- 12. Order Cancellation Set
SELECT
o.ProductionOrder,
'Order Cancellation Set' AS ActivityName,
TO_TIMESTAMP(jcds.UDATE || jcds.UTime, 'YYYYMMDDHH24MISS') AS EventTime,
'[Your Source System]' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
o.ProductionPlant,
o.ProductCode,
o.PlannedQuantity,
o.DeliveredQuantity,
o.ActualStartDate,
o.ActualEndDate
FROM Orders o
JOIN "[Your SAP Schema]".JCDS jcds ON o.OBJNR = jcds.OBJNR
WHERE jcds.STAT = 'I0076' AND jcds.INACT != 'X'; Adımlar
- SAP Sorgusunda Bir InfoSet Oluşturun:
SQ02işlem kodunu kullanın. Örneğin,ZPP_EVENTLOGadında yeni bir InfoSet oluşturun. 'Temel tablo kullanarak tablo birleştirme' veri kaynağı seçeneğini seçin. İlk temel tablo olarakAUFK(Sipariş ana verileri) kullanın. - Gerekli Tabloları Birleştirin: Aşağıdaki tabloları InfoSet birleştirmesine ekleyin. Sistem birleştirmeler önerebilir, ancak bunların doğru olduğunu doğrulayın:
AUFKileAFKO(Sipariş başlık verileri PP siparişleri):AUFK-AUFNR = AFKO-AUFNRAUFKileJEST(Bireysel Nesne Durumu):AUFK-OBJNR = JEST-OBJNRJESTileJCDS(Sistem/Kullanıcı Durumları için Değişiklik Belgeleri):JEST-OBJNR = JCDS-OBJNRVEJEST-STAT = JCDS-STAT. Not: Bu birleştirme durum değişikliği geçmişini okumak içindir.AUFKileAFRU(Sipariş tamamlama onayları):AUFK-AUFNR = AFRU-AUFNRAUFKileMSEG(Belge Kesiti: Malzeme):AUFK-AUFNR = MSEG-AUFNRMSEGileMKPF(Başlık: Malzeme Belgesi):MSEG-MBLNR = MKPF-MBLNRVEMSEG-MJAHR = MKPF-MJAHR
- Alan Gruplarını Tanımlayın: Gerekli alanları kaynak tablolardan alan gruplarına sürükleyin.
AUFK-AUFNR,AUFK-WERKS,AFKO-GAMNG,AFKO-GASMG,JCDS-UDATE,MKPF-BUDATgibi nihai sorgu için gerekli tüm alanların dahil edildiğinden emin olun. - Özel Alanlar ve Kod Ekleyin: InfoSet'te 'Ekstralar' sekmesine gidin.
ActivityName,EventTime,SourceSystemveLastDataUpdateiçin özel alanlar tanımlamanız ve sorgu bölümünde tanımlanan mantığa göre bunları doldurmak için ABAP kodu yazmanız gerekecektir. Mantık, her iş olayı için ayrı bir kayıt oluşturmak üzere durum değişiklikleri, onaylar ve malzeme belgeleri arasında yineleme yapmayı içerecektir. Bu, sekmeli verileri InfoSet'in kod bölümlerinde bir olay günlüğü formatına dönüştürdüğünüz için en karmaşık adımdır. - InfoSet'i Oluşturun ve Kaydedin: Tüm birleştirmeler, alanlar ve özel kod yerleştirildikten sonra InfoSet'i kaydedin ve oluşturun.
- Bir SAP Sorgusu Oluşturun:
SQ01işlem kodunu kullanın. Önceki adımlarda oluşturulan InfoSet'e dayalı olarak, örneğinZPP_EVENTSadında yeni bir sorgu oluşturun. - Sorgu Düzenini Tasarlayın: Sorgu tasarımcısında, seçim ekranı alanlarını tanımlayın. İyi seçimler arasında Üretim Siparişi
AUFNR, TesisWERKS, Sipariş TipiAUARTve sipariş oluşturma için bir tarih aralığıAUFK-ERDATbulunur. - Çıkış Listesini Tanımlayın: Rapor çıktısında görüntülenecek alanları seçin. Bu liste,
ActivityNameveEventTimegibi özel alanlar dahil olmak üzere olay günlüğü için gerekli sütunlarla tam olarak eşleşmelidir. - Sorguyu Çalıştırın: Sorguyu istediğiniz seçim kriterleriyle çalıştırın, örneğin son 3 ila 6 aylık üretim siparişleri için.
- Verileri Dışa Aktarın: Sorgu sonuçları görüntüledikten sonra, listeyi dışa aktarın. Bunun için en yaygın ve güvenilir format 'Hesap Tablosu' veya 'Yerel Dosya'dır ve sekmeyle ayrılmış veya CSV formatında olmalıdır.
- ProcessMind için Biçimlendirin: Dışa aktarılan dosyayı bir hesap tablosu programında açın. Sütun başlıklarının gerekli özniteliklerle (
ProductionOrder,ActivityName,EventTimevb.) eşleştiğini doğrulayın veEventTimeiçin tarih ve saat formatının tutarlı olduğunu ve gerekli standardı (örn. YYYY-MM-DD HH:MI:SS) karşıladığından emin olun. Dosyayı yüklemek için CSV olarak kaydedin.
Konfigürasyon
- InfoSet Birleştirmeleri: Bu yöntemin temelinde, başlık, durum, onay ve malzeme hareketi tablolarını birleştiren karmaşık bir InfoSet bulunmaktadır. Birincil birleştirmeler
AUFK->AFKO,AUFK->JEST->JCDS,AUFK->AFRUveAUFK->MSEG->MKPFşeklindedir. Yanlış veya verimsiz birleştirmeler düşük performansa veya hatalı verilere yol açabilir. - Seçim Kriterleri: Sistem performansı sorunlarını önlemek için yönetilebilir bir seçim aralığı tanımlamak kritik öneme sahiptir. Sorgunun başlangıç ekranındaki temel seçim alanları şunları içermelidir:
- Üretim Tesisi (
AUFK-WERKS) - Üretim Siparişi Tipi (
AUFK-AUART) - Sipariş Oluşturma Tarihi (
AUFK-ERDAT): Veri kümesi boyutunu yönetilebilir tutmak için 3-6 aylık bir dönem için veri çıkarmanızı öneririz.
- Üretim Tesisi (
- Sistem Durumları: 'Oluşturuldu', 'Serbest Bırakıldı', 'Teknik Olarak Tamamlandı' ve 'İptal Edildi' gibi olayları tanımlama mantığı, belirli sistem durum kodlarına (örneğin, I0001, I0002, I0045, I0047) bağlıdır. Bunlar genellikle SAP sistemlerinde standarttır ancak doğrulanmalıdır.
- Hareket Türleri: 'Malzeme Çıkışı' ve 'Malzeme Girişi' gibi olaylar, genellikle '261' ve '101' olan belirli Hareket Türleri (
MSEG-BWART) ile tanımlanır. Bu değerlerin kuruluşunuzun konfigürasyonuyla uyumlu olduğunu doğrulayın. - Yetkilendirmeler: Sorguyu çalıştıran kullanıcının
SQ01,SQ02veSQ03işlemlerine erişim yetkisine, ayrıca tüm temel tablolara (AUFK, AFKO, JEST, JCDS, AFRU, MSEG, MKPF) görüntüleme erişimine sahip olması gerekir.
a Örnek Sorgu abap
/*
The following ABAP-style SQL script represents the complete logic required to build the event log.
This logic must be implemented within the code sections of the SQ02 InfoSet, as a direct SQL query of this nature is not run.
Each SELECT block corresponds to a specific business activity.
*/
-- 1. Production Order Created
SELECT
AUFK.AUFNR AS ProductionOrder,
'Production Order Created' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0001' AND JCDS.INACT = ''
UNION ALL
-- 2. Material Availability Checked (using 'Material shortage' status as an indicator)
SELECT
AUFK.AUFNR AS ProductionOrder,
'Material Availability Checked' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0033' AND JCDS.INACT = '' -- I0033 is MSPT (Material Shortage)
UNION ALL
-- 3. Production Order Released
SELECT
AUFK.AUFNR AS ProductionOrder,
'Production Order Released' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0002' AND JCDS.INACT = ''
UNION ALL
-- 4. Order Data Changed (using last change date as a proxy)
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Data Changed' AS ActivityName,
CAST(AUFK.AEDAT AS VARCHAR(8)) || ' 000000' AS EventTime, -- Time is not available in AUFK
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
WHERE AUFK.AEDAT IS NOT NULL AND AUFK.AEDAT > AUFK.ERDAT
UNION ALL
-- 5. Goods Issue Posted
SELECT
AUFK.AUFNR AS ProductionOrder,
'Goods Issue Posted' AS ActivityName,
CAST(MKPF.BUDAT AS VARCHAR(8)) || ' ' || CAST(MKPF.CPUTM AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN MSEG ON AUFK.AUFNR = MSEG.AUFNR
JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR AND MSEG.MJAHR = MKPF.MJAHR
WHERE MSEG.BWART = '261'
UNION ALL
-- 6. First Confirmation Recorded
SELECT
CONF.ProductionOrder,
'First Confirmation Recorded' AS ActivityName,
CONF.EventTime,
CONF.ProductionPlant,
CONF.ProductCode,
CONF.PlannedQuantity,
CONF.DeliveredQuantity,
CONF.ActualStartDate,
CONF.ActualEndDate,
CONF.SourceSystem,
CONF.LastDataUpdate
FROM (
SELECT
AUFK.AUFNR AS ProductionOrder,
CAST(AFRU.BUDAT AS VARCHAR(8)) || ' ' || CAST(AFRU.ERFZEIT AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
ROW_NUMBER() OVER(PARTITION BY AUFK.AUFNR ORDER BY AFRU.BUDAT, AFRU.ERFZEIT) as rn
FROM AUFK
JOIN AFRU ON AUFK.AUFNR = AFRU.AUFNR
) AS CONF
WHERE CONF.rn = 1
UNION ALL
-- 7. Intermediate Confirmation Recorded
SELECT
AUFK.AUFNR AS ProductionOrder,
'Intermediate Confirmation Recorded' AS ActivityName,
CAST(AFRU.BUDAT AS VARCHAR(8)) || ' ' || CAST(AFRU.ERFZEIT AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN AFRU ON AUFK.AUFNR = AFRU.AUFNR
WHERE AFRU.AUERU = 'T' -- T = Partial Confirmation
UNION ALL
-- 8. Final Confirmation Recorded
SELECT
AUFK.AUFNR AS ProductionOrder,
'Final Confirmation Recorded' AS ActivityName,
CAST(AFRU.BUDAT AS VARCHAR(8)) || ' ' || CAST(AFRU.ERFZEIT AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN AFRU ON AUFK.AUFNR = AFRU.AUFNR
WHERE AFRU.AUERU = 'E' -- E = Final Confirmation
UNION ALL
-- 9. Goods Receipt Posted
SELECT
AUFK.AUFNR AS ProductionOrder,
'Goods Receipt Posted' AS ActivityName,
CAST(MKPF.BUDAT AS VARCHAR(8)) || ' ' || CAST(MKPF.CPUTM AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN MSEG ON AUFK.AUFNR = MSEG.AUFNR
JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR AND MSEG.MJAHR = MKPF.MJAHR
WHERE MSEG.BWART = '101'
UNION ALL
-- 10. Order Technically Completed
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Technically Completed' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0045' AND JCDS.INACT = ''
UNION ALL
-- 11. Order Settlement Ran (using 'Closed' status as proxy)
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Settlement Ran' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0046' AND JCDS.INACT = '' -- I0046 is CLSD (Closed)
UNION ALL
-- 12. Order Cancellation Set
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Cancellation Set' AS ActivityName,
CAST(JCDS.UDATE AS VARCHAR(8)) || ' ' || CAST(JCDS.UTIME AS VARCHAR(6)) AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
JOIN JCDS ON AUFK.OBJNR = JCDS.OBJNR
WHERE JCDS.STAT = 'I0047' AND JCDS.INACT = '' -- I0047 is CNF (Confirmed), use I0076 for Canceled. Recorrecting. Use Deletion Flag instead.
-- Corrected Logic for Cancellation:
SELECT
AUFK.AUFNR AS ProductionOrder,
'Order Cancellation Set' AS ActivityName,
CAST(AUFK.AEDAT AS VARCHAR(8)) || ' 000000' AS EventTime,
AUFK.WERKS AS ProductionPlant,
AUFK.MATNR AS ProductCode,
AFKO.GAMNG AS PlannedQuantity,
AFKO.GASMG AS DeliveredQuantity,
AUFK.GSTRP AS ActualStartDate,
AUFK.GETRI AS ActualEndDate,
SY-SYSID AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate
FROM AUFK
WHERE AUFK.LOEKZ = 'X';