Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel ve Inertia.js ile Çok Departmanlı İş Akışı Yönlendirme Sistemi Nasıl Kurdum
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel ve Inertia.js ile Çok Departmanlı İş Akışı Yönlendirme Sistemi Nasıl Kurdum

Yazılım

Laravel ve Inertia.js ile Çok Departmanlı İş Akışı Yönlendirme Sistemi Nasıl Kurdum

teknomers
Son güncelleme: 3 Mayıs 2026 19:13
teknomers
Paylaş
Paylaş


Çözmeye Çalıştığım Problem

VMMS – bir voucher yönetim sistemi inşa etmeye başladığımda, en zor kısımlardan biri UI veya veritabanı şemasından ziyade workflow yönlendirmesiydi.

Bir voucher talebi sadece bir ofise gitmez. Belirli bir sırayla birden fazla departmana gider; her biri, bir sonraki aşamaya geçmeden önce süreci tamamlamak zorundadır.

Ve herhangi bir aşamada, bir departman:

  • Adımını tamamlayabilir ve ileriye geçirebilir
  • Tüm talebi reddedebilir
  • Belgelerin eksik olduğu konusunda flag koyabilir ve süreci durdurabilir

Bunu düzgün bir şekilde yönetebilecek bir sistem gerekiyordu.



Nasıl Modelledim

Her voucher türü, transaction_flows tablosunda saklanan yapılandırılabilir bir işlem akışına sahiptir:

Schema::create('transaction_flows', function (Blueprint $table) {
            $table->id();
            $table->foreignId('voucher_id')->constrained()->cascadeOnDelete();
            $table->string('department');
            $table->integer();
            $table->timestamps();
        });
        

Bir müşteri talep gönderdiğinde, sistem o voucher türü için akışı okur ve onu otomatik olarak ilk departmana yönlendirir.



İlerlemeyi İzleme

Her seferinde bir departman bir talebi işlediğinde, bir denetim kaydı oluşturulur:

Schema::create(, function (Blueprint $table) {
            $table->id();
            $table->foreignId()->constrained()->cascadeOnDelete();
            $table->string();
            $table->timestamp()->nullable();
            $table->timestamp()->nullable();
            $table->date()->nullable();
            $table->timestamps();
        });
        

process_initiate bir departman sürece başladığında ayarlanır. process_accomplished ise bitirdiğinde ayarlanır. Eğer sadece process_initiate ayarlanmışsa, bu o anki aktif departmandır.



Aktif Departmanı Bulma

Bu beklediğimden daha karmaşıktı. İşte mantık:

$activeAudit = $auditTrails->first(
            fn($a) => $a->process_initiate && !$a->process_accomplished
        );

        if ($activeAudit) {
            return $activeAudit->processing_offices;
        }

        // Aktif denetim yoksa, bir sonraki adımı bul
        $doneOrders = $auditTrails->filter(fn($a) => $a->process_accomplished)
            ->map(fn($a) => $flow->firstWhere(, $a->processing_offices)?->order_number ?? 0);

        $lastDone = $doneOrders->max() ?? 0;
        $nextStep = $flow->firstWhere(, $lastDone + 1);

        return $nextStep?->department ?? ;
        

Zor olan kısım uç durumları yönetmekti:

  • Bir departman atlanırsa ne yapılacak?
  • Eksik belgeler için talep geri dönerse ne olur?
  • Son departman yeni bitirdiyse ne olur?

Her biri için ayrı bir yönetim gerekiyordu.



Ön Yüzdeki Pipeline Stepper

Vue 3 tarafında, her departmanı bir adım olarak gösteren bir stepper bileşeni oluşturdum — yeşil tamamlanmış, puls eden aktif, gri ise beklemedeki.

const stepStatus = (req, step, stepIndex) => {
            const audits = req.audit_trails ?? const accomplishedCount = auditsfiltera => aprocess_accomplished !== null
            lengthif stepIndex  accomplishedCountreturn done;
            if stepIndex === accomplishedCountreturn active;
            return pending;
        


Eksik Belgeler — Akışı Durdurma

Bir personel eksik belgeler için bir talebi flagladığında, akış durur. Müşteri bilgilendirilir ve belgeleri yüklemesi gerekir. İşlemlerin devam edebilmesi için gerekli belgeleri yüklemesi gerekir.

Bunu, hangi işlemlerin hangi kullanıcıdan belge beklediğini takip eden ayrı bir requirement_validations tablosuyla yönettim.

$missingDocIds = RequirementValidation::where(, )
            ->whereNull'resume_transaction'->pluck'transaction_id'->();
        

Bu resume_transaction doldurulduğunda, akış yeniden başlar ve talep işlemenin devamı için ilgili personele geri döner.



Öğrendiklerim

1. Akışları işlemden ayrı modellemek
transaction_flows‘u voucher_transactions‘dan ayırmak, bir voucher türü için işlem sırasını değiştirmeyi kolaylaştırdı.

2. Denetim kayıtları en iyi dostunuzdur
Her işlemi zaman damgaları ile saklamak, işleme sürelerini hesaplamayı, performansı izlemeyi ve ayrıca analizler oluşturmayı kolaylaştırdı.

3. Uç durumlar size yakalanacak
“mutlu yol” kolaydı; eksik belgeler, atlanan departmanlar ve reddedilen talepler ayrı bir işlem gerektiriyordu.



Sonuç

Pipeline izleyici artık VMMS’deki en kullanışlı özelliklerden biri. Müşteriler taleplerinin nerede olduğunu gerçek zamanlı olarak görebiliyor – artık yüz yüze takip etmek zorunda değiller.

İşleyişini görmek isterseniz:

🔴 Canlı demo: https://vmms-app-production.up.railway.app/login

VMMS, kullanmak veya onun üzerine inşa etmek için Gumroad’da mevcuttur:
👉 https://getvmms.gumroad.com/l/zeroqz

Herhangi bir sorunuz varsa yorumlarda cevaplamaktan mutluluk duyarım!

Kaynak: Orijinal Makale

FFmpeg ve Laravel Kullanarak Günlük 30GB Video Depolama Nasıl Azaltılır?
Flexiwind’i Tanıtıyoruz (Beta): Laravel & Livewire için modüler UI sistemi
Hacklenmiş bir WordPress Sitesinin Kurtarılması ve Laravel ile Yeniden İnşası
Laravel ve yt-dlp Kullanarak TikTok Video İndirici Nasıl Oluşturulur
Laravel ve SEFAZ ile Çoklu Kiracı NF-e API’si Oluşturma: 6 Zor Düşünüm
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Robotaksilere Nasıl Bilet Kesilir?
Sonraki Makale Nvidia, bellek sıkıntısından dolayı eski Jetson AI işlemcilerini emekliye ayırıyor

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Gears Of War’ta Devrim Niteliğinde Hareket Yeniliği
Oyun
Acil: Yapay Zeka Destekli Windows Terminal ile Tanışın!
Siber Güvenlik
Elegoo Jupiter 2 Reçineli 3D Yazıcı İncelemesi: Dev Geri Döndü
Donanım
Yeni Spyro Oyunu: A Realm Beyond ile Efsane Yeniden Canlanıyor
Oyun
NASA Ay’a Yüksek Teknoloji Prada Termal Giysileriyle Gidecek
Liste
Çin, Saishiteng Dağı’nı Dünyanın En Büyük Astronomi Üssü Yapıyor!
Bilim
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?