Vaka çalışması

Ares Vida: Access'ten modern Java uygulamasına

Vida ve bağlantı elemanı üreten Ares Vida, 2006'dan beri büyüyen Access uygulamasını bıraktı. Veriyi kaybetmeden yeni bir Java web uygulamasına taşıdık, ekranları yeniden tasarladık, etiket ve belge çıktılarını sıfırdan kurduk.

ARPR-2021.mdb202 tablogöç hattıhazırlıkaktarımtemizlikJava + Vueetiketirsaliye.pdf
Müşteri
Ares Vida web sitesi
Vida, cıvata ve bağlantı elemanı üretimi, Tuzla, İstanbul
Yaptıklarımız
  • Alan modeli ve yeni veritabanı
  • Access'ten veri taşıma
  • Arayüz tasarımı
  • Barkodlu etiketler
  • Sipariş, irsaliye ve ihracat belgeleri
  • Kurulum ve operasyon
Teknolojiler
Java 21Spring Boot 3PostgreSQL 17RedisVue 3PrimeVuePythonFlying Saucer (PDF)
Durum
Access ile paralel çalışıyor, geçiş aşamalı ilerliyor.

Başlangıç noktası

Ares Vida, Tuzla'da soğuk dövme preslerle vida, cıvata ve perçin üretiyor. Hammadde tel olarak geliyor, ısıl işlem ve kaplama dış fasonda yapılıyor, ürünler hem yurt içine hem ihracata gidiyor. Bu akışın tamamı yıllardır ARPR-2021 adlı bir Access uygulamasında yürüyordu.

Uygulama iki dosyadan oluşuyordu. Formlar ve raporlar bir dosyada, veriler 202 tablolu ayrı bir veri dosyasındaydı. 2006'dan bu yana biriken kayıtlar, büyüyen tablo sayısı ve çok kullanıcılı kullanım, bakımı her yıl zorlaştırıyordu. Firma, aynı işi tarayıcıdan, uzaktan ve güvenle yapabileceği bir sisteme geçmek istedi.

Önce işin modeli

Koda başlamadan önce üretimin dilini çıkardık. Bir vidanın diş tipi, baş şekli, kaplama rengi, ısıl işlemi ve hidrojen kırılganlığı kontrolü gibi özellikleri ürün modeline girdi. Sipariş, üretim planı, iş emri ve lot, tel ve kalıp, stok, satın alma, fason irsaliyeleri, ihracat ve sevkiyat ayrı alanlar olarak tasarlandı. Sonuçta 68 varlıklık bir veri modeli ortaya çıktı.

Veri taşıma: Access'e hiç dokunmadan

Projenin en hassas kısmı veriydi. Baştan bir kural koyduk: geçiş tamamlanana kadar Access tek doğru kaynak olarak kalacak ve hiç değiştirilmeyecek. Yeni sistem her yüklemede en güncel Access kopyasından sıfırdan dolduruluyor. Böylece iki sistem yan yana çalışabiliyor ve kullanıcılar yeni ekranlara kendi hızlarında geçiyor.

Aktarım, aşamalı bir hat olarak kuruldu. Önce hedef tablolar boşaltılıp başvuru verileri yükleniyor. Ardından her Access tablosu için ayrı bir adım, yabancı anahtar sırasına göre çalışıyor. Son aşamada temizlik yapılıyor, Türkçe İ ve I harflerine duyarlı arama alanları üretiliyor, sayaçlar ayarlanıyor.

Sütun eşleştirmesini elle yapmak yerine Python ile bir dönüştürücü yazdık. Dönüştürücü, aynı kimliğe sahip kayıtları karşılaştırarak hangi Access sütununun hangi hedef sütuna gittiğini kendisi çıkarıyor. Elle müdahale gereken birkaç sütun ayrı bir dosyada tutuluyor. Her çalıştırmada tarih biçimleri ve para tutarları dönüştürülüyor, silinmiş kayıtlara işaret eden bağlantılar satır kaybetmeden boşaltılıyor ve yapılan her düzeltme bir rapora yazılıyor.

Yeni arayüz

Ekranları Vue 3 ve PrimeVue ile yeniden tasarladık. Her kayıt türü için aynı düzen kullanılıyor: liste, kayıt ve sorgu ekranı. Kullanıcı bir ekranı öğrendiğinde diğerlerini de biliyor. Sipariş, üretim, stok, satın alma, sevkiyat ve ihracat ekranları bir gösterge paneli etrafında toplanıyor.

Etiketler ve belgeler

Access raporlarının yerini, sunucuda HTML şablonlardan üretilen PDF çıktılar aldı. Türkçe karakterler için gömülü yazı tipi kullanılıyor. Toplam 64 şablon var. Bunların arasında ürün kodu, sipariş numarası ve üretim tarihini taşıyan barkodlu ürün, koli ve palet etiketleri; sipariş çıktısı ve sipariş listeleri; iş emri, proses kontrol formu ve üretim planı; ısıl işlem ve kaplama için fason irsaliyeleri; ihracat irsaliyesi, ticari fatura, proforma ve çeki listesi bulunuyor. Bazı müşteriler için etiket düzeni müşterinin istediği biçime göre ayrı hazırlandı.

Bugün

Yeni sistem şirket içindeki sunucuda çalışıyor ve Access ile paralel kullanılıyor. Son tam yüklemede yaklaşık 160 bin kayıt iki buçuk dakikada aktarıldı, kullanıcılar yalnızca birkaç dakika bekledi. Kalite ve laboratuvar tabloları gibi bazı alanlar bilinçli olarak kapsam dışında bırakıldı. Kalan tablolar için karar, firmayla birlikte ihtiyaç sırasına göre veriliyor.

Rakamlarla

Projenin ölçeği

tablolu Access veri dosyası incelendi
202tablolu Access veri dosyası incelendi
kayıt her yüklemede yeniden aktarılıyor
~160 binkayıt her yüklemede yeniden aktarılıyor
yılına uzanan geçmiş korundu
2006yılına uzanan geçmiş korundu
etiket, rapor ve belge şablonu
64etiket, rapor ve belge şablonu
Veri taşıma hattı

Access verisi yeni sisteme nasıl geçiyor

Her yükleme aynı adımları aynı sırayla izliyor. Hat tekrar tekrar çalıştırılabildiği için geçiş günü sürpriz yok.

  1. Hazırlık

    otomatik Ön adımlar

    Hedef tablolar boşaltılıyor, ülke gibi başvuru verileri yükleniyor. Kullanıcılar ve oturumlar korunuyor.

  2. Tablo tablo aktarım

    otomatik Yabancı anahtar sırasıyla

    Her Access tablosu kendi adımında dönüştürülüyor. Sütun eşleşmesini dönüştürücü kendisi çıkarıyor.

  3. Temizlik

    otomatik Son adımlar

    Kopuk bağlantılar satır kaybetmeden boşaltılıyor, Türkçe arama alanları üretiliyor, sayaçlar ayarlanıyor.

  4. Karşılaştırma

    her çalıştırmada Rapor

    Kayıt sayıları ve yapılan düzeltmeler raporlanıyor. Fark çıkarsa hat düzeltilip yeniden çalıştırılıyor.

Teslim ettiklerimiz

Projede neler yaptık

Veri taşıma

Access verisini tekrarlanabilir bir hatla PostgreSQL'e taşıdık.

  • Access hiç değiştirilmedi
  • Otomatik sütun eşleştirme
  • Her çalıştırmada düzeltme raporu

Alan modeli

Vida üretiminin dilini yazılıma taşıdık.

  • Ürün özellikleri ve kalite sınıfları
  • Sipariş, plan, iş emri ve lot
  • Fason ve ihracat süreçleri

Arayüz

Tarayıcıdan çalışan, her yerde aynı düzeni izleyen ekranlar.

  • Liste, kayıt ve sorgu düzeni
  • Gösterge paneli
  • Uzaktan erişim

Etiket ve belgeler

Barkodlu etiketler ve tüm çıktılar sunucuda PDF olarak üretiliyor.

  • Ürün, koli ve palet etiketleri
  • Sipariş, iş emri ve irsaliye
  • Ticari fatura, proforma, çeki listesi
Sizde de Access mi var?

Eski uygulamanızı veriyi kaybetmeden taşıyalım.

Mevcut uygulamanızı birlikte inceleyelim. Hangi tabloların taşınacağını, hangi ekranların yeniden tasarlanacağını ve geçişin nasıl aşamalandırılacağını size yazılı olarak çıkaralım.