Her parçayı haftalar değil, saniyeler içinde izle
Havacılık üretiminde, teslimattan yıllar sonra arızalanan bir parçanın geçmişi anında geriye izlenebilmelidir — geçtiği her tezgah, çalıştıran her operatör, ölçen her muayene cihazı. Bu proje, standart SAP teknolojisi üzerinde bu izlenebilirlik sistemini uçtan uca kuruyor: üç ABAP tablosu, klasik bir OData V2 servisi, nesne yönelimli bir kalite motoru, CDS tabanlı bir raporlama katmanı ve neredeyse tamamen annotation'lardan üretilen bir Fiori Elements arayüzü.
Bu parçayı hangi tezgah üretti, hangi operatör çalıştırdı, hangi CMM cihazı ölçtü — ve tüm ölçümler tolerans içinde miydi?
Neler kuruldu
-
Tam parça soy ağacı
Hammadde, işleme operasyonları ve kalite muayene sonuçları tek bir parça kaydından bağlantılı ve sorgulanabilir.
-
Canlı kritiklik analitiği
Kritiklik seviyesine göre parça dağılımını gösteren donut chart'lı List Report — gerçek sunucu taraflı
GROUP BYile hesaplanıyor, istemci taraflı yaklaşık değer değil. -
Üç seviyeli onay / red
Parça, operasyon ve tekil kalite ölçümü birbirinden bağımsız olarak imzalanabiliyor — bu bir kalite mühendisinin incelemesi, otomatik doğrulamadan ayrı.
-
Otomatik durum roll-up'ı
Herhangi bir operasyon ya da ölçümün reddedilmesi anında üst parçayı reddedilmiş olarak işaretliyor. Manuel takip yok, kötü bir sonucu gizlemek mümkün değil.
-
Sadece saklama değil, tolerans zorlaması
Özel bir ABAP OOP sınıfı, her yeni ölçümü gönderildiği anda
Nominal ± Tolerans'a karşı kontrol ediyor. -
Beklemesiz e-posta uyarısı
Tolerans dışı bir sonuç,
CL_BCSüzerinden kalite yöneticisine otomatik e-posta gönderiyor — sorunu önce birinin fark etmesi gerekmiyor. -
CDS tabanlı birleşik zaman çizelgesi
Bir CDS View, operasyon ve kalite olaylarını her parça için tek bir kronolojik akışta birleştiriyor,
@OData.publishile kendi OData servisi olarak yayınlanıyor.
Ölçümden karara, otomatik olarak
Tüm projenin etrafında kurulduğu çekirdek döngü — tek bir Fiori action'ı tarafından tetikleniyor: SubmitQualityMeasurement.
Muayene mühendisi bir ölçüm girer
Boyut adı, nominal değer, artı/eksi tolerans ve gerçek ölçülen değer belirli bir parçaya karşı girilir.
ZCL_TEI_QUALITY_VALIDATOR kontrol eder
Saf bir ABAP OOP sınıfı, gerçek değeri Nominal ± Tolerans ile karşılaştırır — yan etkisi yok, sadece bir sonuç ve sapma miktarı döner.
Sonuca göre dallan
Sonuç "Pass" olarak kaydedilir. Başka bir şey olmaz.
Parça durumu "Reddedildi"ye yükselir ve ZCL_TEI_QUALITY_NOTIFIER uyarı e-postasını gönderir.
Üç tablo, tek parça kaydı
Her parça, PART_ID ile bağlanan bire-çok operasyon geçmişi ve bire-çok kalite kontrolü taşır.
- PART_ID (key)
- PART_NO · DRAWING_NO · DESCRIPTION
- MATERIAL_SPEC · CRITICALITY_LEVEL (A/B/C)
- STATUS — OK / RJ
- OPERATION_SEQ (key)
- OPERATION_TYPE · MACHINE_ID
- OPERATOR_ID · START/END_DATE
- OPER_RESULT — P / F
- TEST_SEQ (key)
- DIMENSION_NAME · CMM_DEVICE_ID
- NOMINAL / TOLERANCE / ACTUAL
- QUAL_RESULT — P / F
Neyle inşa edildi
| Kalem | Bileşen | Detay |
|---|---|---|
| B-01 | SAP Gateway servisi | OData V2, klasik SEGW — ZTEI_PART_SRV_SRV |
| B-02 | Kalite doğrulayıcı | ABAP OOP sınıfı, ZCL_TEI_QUALITY_VALIDATOR |
| B-03 | Uyarı bildirici | ABAP OOP sınıfı + CL_BCS, e-posta gönderimi |
| B-04 | Birleşik raporlama | CDS View, @OData.publish, iki olay tipinin UNION'ı |
| Kalem | Bileşen | Detay |
|---|---|---|
| F-01 | UI framework | SAP Fiori Elements v2 — Analytical List Page + Object Page |
| F-02 | Runtime | SAPUI5 / OpenUI5 1.150.0, sap_horizon teması |
| F-03 | UI tanımı | OData annotation'ları — UI.LineItem, UI.FieldGroup, UI.Chart, UI.DataFieldForAction |
| F-04 | Araçlar | @sap/ux-ui5-tooling, @ui5/cli, Node.js |
Tek zaman çizelgesi, iki olay tipi
Operasyonlar ve kalite kontrolleri yapısal olarak farklı tablolar — ama bir parçanın geçmişi için ikisi de sadece birer olay. Bir CDS UNION bu şekilde ele alıyor.
@OData.publish: true define view ZTEI_I_PART_TRACE_EVT as select from ztei_oper_log as oper inner join ztei_part_master as part on part.part_id = oper.part_id { key part.part_id as PartId, key oper.operation_seq as EventSeq, 'OPERATION' as EventType, oper.operation_type as EventDescription, oper.start_date as EventDate, oper.oper_result as EventResult } union select from ztei_qual_result as qual inner join ztei_part_master as part on part.part_id = qual.part_id { key part.part_id as PartId, … 'QUALITY' as EventType … }
Bilinen kısıtlar
SOST'ta doğrulanabilir) — izole bir deneme sisteminde son internet teslimatı adımı Internal Routing Error ile başarısız olabilir. Bir altyapı eksikliği, uygulama hatası değil.sap.m.Timeline bileşeni yok — Smart Template'in dokümante edilmemiş extensibility sınırlarına takıldı. Kronolojik veri bugün iki tablo ve CDS tabanlı birleşik olay servisi üzerinden tam olarak mevcut.
Uygulamalı bir SAP Fiori Elements · ABAP OOP · CDS öğrenme ve portföy projesi olarak geliştirilmiştir.