top of page
Yazarın fotoğrafıŞerif Aydın

Arvato SCM Serüvenim

Güncelleme tarihi: 7 Eyl 2021

Herkese merhaba, yazmakta olduğum bu makaleyi kendime ayırdım. Arvato SCM de yaklaşık 3.5 sene çalıştım, bu süre sarfında güzel, keyifli ve bir o kadarda stresli projeler hayata geçirdik.


Sizlere öncelikle kendi yazdığım ve yönettiğim, sonrasında yazdığımız sistemler hakkında biraz bilgi vermek istiyorum. Arvato SCM, teknoloji anlamında güzel yatırımların yapıldığı bir arge merkezi oldu. Ben de uzun süredir arge projeleri ile ilgileniyorum.


3 sene önce güzel bir ekip oluşturuldu, yeni nesil teknolojilerin kullanıldığı bir WMS (Warehouse Management System) projesi geliştirildi. Arvato depoları eski sistem kullandığı LAwep WMS uygulamasından tümüyle yeni yazdığımız ve ismi SLOT olan yeni WMS projesine geçişler sağlandı.


SLOT içerisinde, bir wms projesinde olması gereken tüm özellikle fazlasıyla mevcut, Bir sipariş; web shop, marketplace, müşteri sistemlerinden veya entegrasyonlardan sisteme alınır. Alınan bu sipariş depo içerisinde hareket ettirilerek, dağıtıma kadar ilerletilir sonrasında özenle ve güzel bir sistemle paketlenen siparişler müşteriler ile buluşur.


Genel olarak kullandığımız teknoloji ve diller, Angular, Blazor, WPF, Compact Framework, EF, Xamarin, .Net Core, .Net Framework, Modbus, EF Core, gibi teknoloji ve diller kullanılarak uygulamalarımızı geliştirdik. Gerek teknoloji gerekse operasyonel olarak yazdığımız bu teknolojileri kısa kısa anlatıyor olacağım.

Bu makaleye başlamadan önce sistemin çalışma mantığını, sırasını ve dokunduğum yerleri çizmek istedim. Yandaki şemayı sırası anlatıyor olacağım.















Aşağıda sizlere yaptığımız işlerin, biraz daha gözünüzde canlanması adına bir resim paylaşıyorum. WMS büyük bir sistemdir ve Binlerce metrekare büyük depolarda, güzel yazılan bir WMS projesi harika bir kılavuz görevi görmektedir.

Geliştirdiğimiz sistemlere geçmeden önce, bende ayrı yeri olan ve Arvato da her yıl düzenlenen, Fikir yarışmasında bahsetmek istiyorum.


Senede bir kere, Arvato günü yapılır. Bu etkinlikte direktörler kendi ekipleri ile ilgili geçen sene ne yaptıkları ve bu sene ne yapacakları hakkında sunumlar yaparlar. Arvato nun akıl hocası ve Genel müdürü Umur Özkal Bey, olmamız gereken yerlerden, gelecekten, vizyon ve misyonumuzdan bahseder.


Umur Bey inde konuşmasından sonra yemek molası verilir ve ardından Fikir yarışmalarında ilk 5 e kalan yarışmacılar projelerini sunar.


Ben ilk fikir yarışmasını üçüncü olarak tamamladım, ikincisini ise ikinci sırada tamamladım. Sırası ile projelerim aşağıdaki gibidir.


1) XAMHOLO - Eller Serbest, giyilebilir akıllı gözlük projesi.


Xamholo, bir akıllı gözlük projesidir. Bu proje ile üçüncülük derecesi aldım.


Bu konuyu ilk araştırdığım ve proje haline getirdiğim zamanlar da özellikle üzerinde durduğum iki konu vardı.

  1. Eller Serbest

  2. Gamification - oyunlaştırarak öğrenme.

Depo persollerinin daha performanslı ve ergoınomik çalışmasını sağlayacak aynı zamanda, istediği bilgiye anında erişip, akılı yönlendirmelerin yapılacağı bir sistem.


Xamholo ile,

  • Oryantasyon sürecinin hızlandırılması.

  • Doğru ve hızlı bilgiye erişim imkanı.

  • Personel yönlendirmeleri.

  • Eller serbest çalışma modeli.

  • Oyunlaştırarak öğretme ve çalışma modeli



Ben bu projemde RealWear HMT-1 akıllı gözlüğünü kullandım. Ürün barkodu okutma işlemlerinde TIM firmasına ait akıllı scanner cihazını kullandım. Gözlük ve scanner bir birleri ile entegre çalışmaktadır.

Bu videoda fikrimi biraz daha geliştirdim ve ürün haline getirdim, WMS sistemlerindeki en maliyetli operasyonlardan birisi olan Toplama (Picking) operasyonunu hızlandıracağı ve daha performanslı yapacağı düşüncesindeyim. Bu video çalışması ile bir çok firma ve kişininde dikkatini çektiğimi söyleyebilirim

Teknoloji olarak, Xamarin, RealWear MHT-1, TIM Bluetooth scanner, WebApi, .Net Core, EF Core








2) SORBİ CHATBOT - Yapay zeka destekli, yönlendirmeli Chatbot projesi.


Sorbi, Yapay zeka destekli bir chatbot projesidir. Skype, Whatsapp veya İç sistemlerde kullanılabilir.


Binlerce metrekare depolarda bir sorun oluştuğunda çözümüne erişmek oldukça güç olabiliyor. Tüm sistemlerimizle entegre, data manipülasyonları yapabilen, yönlendirme yapabilen, Öneri ve takip yapabilen; sesli ve yazışmalı sohbet projesidir.

Bu sistemi başlıca kullanacak kişiler.

  • Müşteriler.

  • Support

  • Operasyon

  • Yöneticiler

Aslında herkes kullanabilir tabi ki, ama özellikle ihtiyaç duyduğum kişiler ve görevleri yukarıda belirttim.

  • Paketlenemeyen bir sipariş.

  • Özel istatistiksel veriler.

  • Kargosu atanamayan sipariş.

  • Etiket sorunları

  • vb

Yukarıdaki gibi isteklere anında cevap verebilir. Örneğin "Paketlenemeyen sipariş" yazıldığında size öncelikle hangi depo ? Hangi Müşteri gibi sorular ile yönlendirme yapar sonrasında sorunu çözemez ise Jira da aktif kayıt açar. Açılan bu kaydı bir vaka çalışması olarak kaydeder ve olası aynı sorunu yaşayan insanlar için öneri sunar.

Bu proje ile ikincilik derecesi elde ettim.


Benim bu projeleri sunmamın ve araştırmamın en temel amacı, çalıştığım kuruma çok daha faydalı olmak. Aynı zamanda gelişen teknolojiler ile daha sürdürülebilir sistemler ve teknolojiler yazmak.


Teknoloji olarak, Cognitive Service, Microsoft ChatBot framework, .Net Core








Dünyanın en hızlı büyüyen sektörü olan Lojistik sektörünün daha akıllı sistemler ile yönetilebileceğini düşünüyorum. Bu yüzden sürekli araştırıyorum ve rakipleri takip ediyorum. Ayrıca bu sektörü çok sevmem ile ilgili olacak ki çözülecek bir çok konu olduğunu ve bu konuları çözecek donelere sahip olduğumuzu düşünüyorum. Tabi bir fikrin doğması kadar, o fikre yatırım yapılmasının da önemli olduğunu belirtmem gerekiyor.


Muhteşem fikir yarışmasından da bahsettiğim üzere artık geliştirdiğimiz sistemlere geçebiliriz.


1) SLOT WMS


Binlerce metre kare depolarda, müşterilerin stoklarını, görevlerini ve tüm ihtiyaçlarının karşılandığı bir WMS projesidir. Mal Kabul, Putaway, Toplama, Ayrıştırma, Paketleme, Yükleme, Sevkiyat, Dağıtım, Sayım vb tüm konuların hızlı ve düzenli yapılabildiği bir sistem.

Müşterilerin siparişlerini, kendi sistemlerinden, Marketplace , entegratörler' den veya farklı sistemlerden bir şekilde alıyoruz, tabi onlarda gönderebiliyor.

Gelen bu siparişler; Daha öncesinden, Mal Kabul yapılmış ve Putaway yapılmış lokasyonlardan aloke ediliyor.


Binlerce metre kare büyük depolarda, müşterilere ait ürünler; lokasyonlar da düzenli bir şekilde stoklanır. Stoklanan bu ürünler sipariş geldikte toplanır ve sevk edildiğinde stoklardan düşer.


Siparişler sisteme ilk düştüğünde, alokasyon çalıştırılır ve siparişe ait ürünlerin toplama görevleri oluşur.


Slot içerisinde, siparişlerin marketplace yönetimleri için, Smartplace adında bir uygulaması geliştirdik. Hem siparişleri çekiyor hemde müşterilerin, entegrasyonlarını tamamladığımız marketplace lerde, ürün, fiyat, listeleme, kampanya gibi işlemleri yapabiliyor.


Genel olarak kullandığımız teknolojileri; .Net Core, .Net Framework, Angular 8+, WPF, Windows Service, Entity Framework Code, Redis, MongoDB, RabbitMQ, NServiceBus, MEF Yapısı, Compact Framework, DevExtreme, FastReport, WebApi, Blazor, Jenkins, Docker, Elastic Search, Kibana


2) Görev yapısı ve iş listesi


Binlerce metre kare büyük depolarda, Alokasyon işlemi gerçekleşmiş siparişlerin görevlerinin ilerletilmesi gerekmektedir. Sisteme düşen bir siparişin alokasyon işlemi gerçekleştiğinde ilk önce, "Toplama - Girildi" görevleri oluşmaktadır. Oluşan bu görevlerin bir iş listesine bağlanması gerekmektedir. Siparişlerin özelliklerine göre iş listesi bağlama işlemi yapılır.


Bazı iş listesi tiplerini listeleyecek olur isek;

  • Tekli

  • Çoklu

  • FastPack

  • vb

Yeni bir iş listesi tipleri oluşturulurken depo içerisindeki hareketi göz önünde bulundurulur. İş Listesi tiplerinin otomatik görevlerinin hesaplanması için, İş listesi tiplerinin Flow (akış) ları belirlenir.


Örneğin; Tekli İş listesi tipinde, siparişlerin ayrıştırılma işlemine gerek yoktur. "Toplama -> Paketleme" akışı tanımlanır. Çoklu iş listesi tipinde, mobil bir araç içerisinde siparişlere ait ürünler karışık olduğundan, ayrıştırma operasyonunada ihtiyaç vardır. "Toplama -> Ayrıştırma -> Paketleme" akışı olmalıdır. FastPack iş listesi, tekli ve Çoklu iş listesi tipinden farklı olarak "Toplama-> Paketleme" akışı tanımlanır. Fastpack içinde araç içerisinde siparişler karışıktır ama bu karışıklık paketleme masasında çözülür, harici ayrıştırma yapılmasına gerek yoktur.

Depo personeli, El terminali ile; İş listesi belirtir, iş listesine ait siparişlerin ürünleri depo içerisinde en optimum şekilde önerilir. Sistemsel bir görev ilerletildiğinde, o görevin iş listesi tipindeki bir sonraki akış ile dinamik şekilde, bir sonraki görev oluşturulmaktadır.



Biz öneri işlemini, PickingPriority ile "S" mantığı şeklinde çözdük ama geliştirilmesi gereken bir konu. Depo içerisinde en maliyetli operasyonlardan biriside toplama operasyonudur.






3) Paketleme Masası


Toplama Görevleri veya ayrıştırma görevleri biten siparişlerin paketleme işlemlerinin yapıldığı uygulamadır. Arayüzü WPF ile geliştirildi ve MVVM design pattern yapısı kullanıldı.

Paketleme masası uygulaması genel olarak 3 yapıda çalışır, Tekli paketleme, Çoklu paketleme ve Fast pack paketleme. Bu paketleme şekillerine göre ekranda değişiklikler gösterir.

Siparişlerin ürünleri koli oluşturularak içerisine koyulur, koli dolduğunda ise koli kapat işlemi gerçekleşir. Koli kapatıldığında bazı işlemler gerçekleşir.

Siparişlere ait koli kargo etiketinin çıkartılması ve satış belgesi yazdırma işlemi.


Paketlenen siparişlere ait satış belgesi kuralları vardır. her sipariş için farklı satış belgesi çıkabilir. Yandaki resimde de görüldüğü üzere satış belgesi bazı kurallara tabidir.




Siparişe ait; yeniden etiket yazdırma, koli iptali, satış belgesi yazdırma işlemi ve sipariş onaylama işlemleri yapılmaktadır. Paketleme masası dizaynı bana ait bu tasarımı çizerken 3 gün depoda incelemede bulundum.


Depo içerisinde çalışan personelin, daha hızlı ve daha istekli çalışması için elimden gelen desteği verdim. Bu konuda yazdığımız kodların çıktısının onlar olduğunu belirtmek isterim. Bir yöneticinin iyi iş yaptığımı söylemesindense direk onu kullanan ve güzel geri dönüşler bildiren herkes beni fazlasıyla çalışma dönemim boyunca motive etmiştir.

Benimle çalışan arkadaşların her birine bir şeyler katmışımdır. Bilginin paylaştıkça çoğaldığının farkında olduğumu belirtmeliyim.


4) Pick And Pack


PickAndPack operasyonu, siparişlerin toplama görevleri ilerletildiğinde, otomatik şekilde paketleme görevlerinin de ilerletilip kargo ve satış belgesi süreçlerinin başladığı operasyondur.


PickAndPack ile ilgili, Linkedin de yayınladığım makaleye bu linkten erişebilirsiniz. https://www.linkedin.com/pulse/pick-pack-smart-devices-wms-%C5%9Ferif-ayd%C4%B1n/

PickAndPack operasyonunda, raflarda kolili şekilde stoklanan ürünlerin toplanması sağlanır. Bu sayede zaten kolili olan ürünlerin yeniden paketlenmesine gerek yoktur.














El terminalleri ile Yazıcılar arasında bağlantı kuran Self Hosted bir Api vardı. Bu Api vasıtası ile Satış belgesi ve jargo etiketleri farklı serverlar aracılığı ile çıkarılmaktadır. ve her türlü yazıcıdan çıktı alınması sağlanmıştır.

Teknik olarak; Compack Framework, Self Hosted Windows Service, Fast Report, Zpl, RawPrinter, WebApi .NetCore, EF Core kullanılmıştır.


5) PrePicking


Amaç olarak; Siparişlerin mezzanine, yüksek raf veya replenishment gibi lokasyonlarda olan toplama görevlerinin, ayrı ayrı ilerletilmesi sürecidir.


PrePicking isminde bir iş listesi tipi oluşturulur. "Toplama -> Ayrıştırma -> Paketleme" akışı tanımlanır.


PrePicking iş listesi tipi içerisinde siparişlerin yalnızca mezzanine görevleri toplanır. Siparişlerin mezzanine görevleri tamamlandığında "Mezzanine görevleri tamamlanmıştır" uyarısı verilir.

Tamamlanan mezzanine görevlerinin, ayrıştırma görevleri oluşur. Mobil araç içerisine toplanan bu ürünlerin, ayrıştırması Mobil rack dediğimiz gözlere atanarak ayrıştırılır. Siparişlerin mezzanine görevleri bitti, şimdi ayrı ayrı toplanan siparişlerin birleştirilmesi adımına geçelim. Bu operasyonun adı Cluster Picking'dir aşağıda bu konuya değiniyorum


6) Cluster Picking


ClusterPicking operasyonu, genel olarak Mobile Rack gözlerine atanmış siparişlerin, toplama görevlerinin Mobile Rack lere ilerletilmesi sürecidir. PrePicking operasyonu siparişleri birleştirmek için ClusterPicking yapısına ihtiyacı var, fakat Cluster picking kendi başına çalışabilmektedir.

Cluster Picking toplama işleminde toplama görevleri ilerletildiğinde, ayrıştırma görevleride ilerletilmiş olur.


Siparişlere ait mezzanine görevleri bittiğine göre, mezzanine dışında kalan ürünlerinde toplaması ve ayrıştırılması tamamlanır. Siparişlerin görevlerinin birleştirildiğine göre, Paketleme girildi oluşan görevlerin paketlenmesine başlanır.





7) Sayım


Sayım modülü en çok zaman harcadığım modül diyebilirim, kendisi başlı başına bir proje. Kendi revizyonları ve kuralları olan aynı zamanda dinamik olarak değiştirilen kurallara sahip bir modüldür.

Binlerce metre kare depolarda, stokların düzenli olması oldukça önemlidir. Sistemsel stoklar ile fiziksel stokların bir birlerini tutması çok önemli bir konudur. Ama çok fazla kişinin çalışması ve yoğun dönemlerde fiziksel stoklar karışabiliyor. Depo içerisinde belli aralıklarda sayımlar yapılır, yapılan bu sayımların müşteri mutabakatları sağlanır. Sayım Update ile fiziksel stok ile sistemsel stok'da aynı olmuş olur.


2 çeşit sayım vardır.

  1. Cycle Count

  2. Full Count

Cycle Count; Depo içerisinde operasyon devam ederken yapılan sayımdır. Burada önemli konu, sayılan lokasyondan ürün alınmış olma ihtimalidir. Bu durumda çalışan StockChange algoritması yeniden sayım snapshot alarak sayımın tekrarlanmasını sağlamaktadır.


Full Count; Depo içerisinde operasyonun tamemen durduğu ve lokasyonların kilitlendiği sayım türüdür.


Depolarda stoklar fiziksel olarak, Lokasyon -> Palet -> Koli bazında tutulmaktadır. Sayım da stoğun konumuna göre dinamik giriş istemektedir. Stokların imei, serial, lot, skt gibi verileri depo operasyonlarına göre sayımda da istenir ve bu bazdada ayrım yapılmış olur.


Cycle ve Full Count da üç revizyon sayımı bulunmaktadır. Lokasyon doğruluğuna göre R1, R2 ve R3 de sayım yapılması gerekmektedir.








Sayım içerisinde, Lokasyon doğruluğu, ürün doğruluğu, Personel raporları ve revizyon lokasyon durum raporları mevcuttur. Anlık olarak kontrol edilerek sayımda hangi aşamada nasıl bir durumda olunduğu görülmektedir.

Sayım bir WMS de olmazsa olmaz bir modüldür, hem dinamik hemde geliştirilebilir olmalıdır. Çünkü her müşterinin operasyonu ve stok tutma işlemi farklı olabilir.


Güçlü ve dinamik bir sayımın arkasında iyi tasarlanmış bir mimari vardır.


Sayım; depo içerisinde, Giriş operasyonu Depo operasyonu ve çıkış operasyonları kurallarına göre çalışmaktadır. Eğer bir ürün toplanırken IMEI veya SERIAL okutuluyor ise sayım içerisinde de okutulur.



Aşağıda Stock Update işlemi için çizdiğim diagramı görebilirsiniz. Stock Update işlemi oldukça önemlidir.

Depo içerisinde yapılan sayımım sistemsel olarak stoğa yansıtılma işlemidir. stock updade işleminde lokasyonlar arası geçişmeler, sayım fazlası ve eksiği gibi satırlar için stock update anında transaction kayıtlarıda oluşturulur.


Teknik Olarak; Angular 8+, .Net Core, EF Core, Redis, Elastic Search, WebApi, Compact Framework teknolojileri kullanılmıştır.


8) Replenishment


Replenishment operasyonu, depo içerisinde en ihtiyaç duyulan operasyonlardan birisidir.


Binlerce metre kare, alan ve katlardan oluşan depolarda en maliyetli operasyonlardan birisi toplama operasyonudur.


Replenishment ile ilgili yazdığım makale, https://www.linkedin.com/pulse/replenishment-%C5%9Ferif-ayd%C4%B1n/


Müşterilerin WMS sistemine düşen siparişleri için Alokasyon çalıştırılır. Alokasyon sonucunda siparişlerin Yüksek rafta görevleri oluşur.

Replenishment için özel yazılan web ve mobil ekranılarından yüksek raf görevleri için, depo içerisinde özel olarak oluşturulan Replenishment alanlarına görevler oluşur ve, Forklift görevlisi bu


görevleri aşağı indirerek bir transfer işlemi yapar. Bu transfer sonucunda, artık toplama görevleride, replenishment lokasyonlarına yapışmış olur. Dikkat edilmesi gereken bir diğer konu, Ürünler replenishment lokasyonlarına sistematik şekilde yerleştirilir.



Replenishment işlemleri için depo içerisinde özel bir alan ayarlanır, Replenishment tipinde lokasyonlar oluşturulur. Sistem bu lokasyonlara sistemsel olarak atamalar yaparak, forklift tarafından indirilmesini sağlar.

9) Dedikasyon


Dedikasyon operasyonuda, replenishment operasyonuna benzemektedir. Replenishment Görevleri kontrol eder.


Dedikasyon için müşteriler AWS dediğimiz satış dataları gönderir, burada en çok satış olasılığı olan ürünler listelenerek, depo içerisinde özel olarak dedikasyon alanlarına indirimi saplanır.


Replenishment ve Dedikasyon aynı işlevi farklı dataları baz alarak yapmaktadır. Forklift görevlisi indirme hareketi yapmak istediğinde sistem dedikasyon ve replenishment hareketlerini beraber sunar.


10) Transfer


Transfer işlemleri, depo içerisinde en çok ihtiyaç duyulan ve kullanılan operasyondur. Sistemsel olarak stokların depo içerisinde hareket etmesini sağlar.


Lokasyon -> Palet -> Koli bazında transfer işlemleri yapılabilir. Transfer işlemlerinde işlem tarihçesine de kayıt atılarak yapılan bu işlem için "+", "-" kayıtları atılmaktadır.


Transfer, Okutulan Source ve Target arasında gerçekleşir. Stok transferi yapılan transferlere göre değişiklik gösterir.







11) Movement Mapping


Müşteriler depolara mal kabul stokları gönderir. Yapılan bu mal kabul stokları lokasyonlara konumlandırılır ve sevk edilene kadar stok içerisinde kalır.


Müşteriler WMS içerisindeki stokları kendi sistemlerinde veya SAP gibi farklı sistemlerde de tutmaktadır. Bu işlemi ambar yapısı ile yapmaktadır.


Müşteriler her bir ambar için kod oluşturur, örneğin hasarlı ambarı için "200" şeklinde oluşturulabilir.


Bizim yazdığımız dinamik Adjustment yapısını, müşteriler istediği gibi manipüle etmektedir. Örneğin sağlamdan kargo hasarlıya geçen stok bilgisine erişmek isteyebilir.


Her bir stok hareketi olduğunda TRANSACTION (işlem tarihçesi) kaydı atılmaktadır. "+", "-" şeklinde Source -> Target a göre bu kayıtlarde stoğun nereden nereye harekt ettiği belirlenmiştir.

Yukarıda örnek bir transfer kaydı gösterilmiştir. Resime göre bakıcak olur isek; I1 ürünü L1 lokasyonunda bulunamamış ve KAYIP a çekilmiştir.

Müşterilerin her ambar isteğini karşılayacak bir Movement Mapping yapısı tasarlamak oldukça önemlidir.


Sistemde Tanımlanan spesikit movement mappingler hamgi müşteriye tanımlanır ise özel bir kod ile tanımlanır ve sistem bir


hareketi müşteriye göndermek istediğinde hangi kodu göndermesi gerektiğini bilir.


12) Depo İçi Transfer


Depo içi transfer modülü, Binlerce metre kare depolarda stoklar tutulmaktadır, Stokları olan ürünlerin bazı özellikleri vardır.

  1. Kırılabilir Ürün

  2. Değerli Ürün

  3. Sıvı Ürün

  4. Yanıcı Ürün

  5. vb.

Depo içerisinde bir zone da, bir ürün özelliği tutulmak istenebilir. Örneğin ben depo içerisinde bir Zone' a Kırılabilir ürünleri toplamak isteyebilirim


Depo personeli el terminallerinde istediği one bilgisini girerek hangi ürün özelliğinin tutulacağını belirtir. Ardından sistem lokasyon önerisi yaparak mobil bir araç içerisine o özellikteki ürünlerin toplanmasını sağlar. Bu işlemlerin sonunda mobil araç içerisindeki ürünler Zone a transferi gerçekleştirilir.



13) SMS Yapısı


WMS sistemimize kazandırdığımız en güçlü modüllerden biriside SMS modülüdür. Müşterilerin istekleri doğrultusunda sipariş statülerine göre sipariş veren müşteriye SMS gitmesini isteyebiliyorlar. Yazdığımız dinamik yapı içerisinde, Hem dinamik mesaj hemde dinamik statüler müşteriye göre tasarlanabilmektedir.


SMS mappingleri belirlenmiş siparişlerin toplu şekilde çekilmesi ve mesajların dinamik replace işleminden geçmesi sonucunda RabbitMQ ya bırakılır.


Gerekli Consumer lar çalışarak, Queue ları işler ve bir SMS sağlayıcısı ile mesajlar müşterilere yönlendirilmeye başlar.









14) JOB Mef Yapısı ve Quartz - Schedule Job


WMS içerisinde çok fazla entegrasyona ihtiyaç vardır. Bu entegrasyonlar müşterilerin sistemlerinden siparişler vb gibi dataları çeker. Aynı zamanda müşterilerin sistemlerine de belli datalar gönderilir.


Kendi ürünümüz olan Schedule Job yapısı geliştirdik, arka zamanlayıcı olarak Quartz ı kullandık.


Her bir müşteri için Class Library oluşturduk ve Class seviyesinde müşteri entegrasyon kodları yazıldı. Arka planda Quartz ile çalışan bu yapı, dinamik şekilde ekranlardan tanımlanabilmektedir.


Örneğin müşterilere PO Confirm göndermek istediğimizde, müşterilerin gerekli Api leride request oluşturacak entegrasyon yazılır. Sonrasında Cron zamanlayıcı tanımlamaları yapılır, son olarak ekranda tanımlamalar yapılır ve Job belirtilen zamanda çalışmaya başlar.


Öncelikle bir entegrasyon yazılır, sonrasında onun için Docker da jenkins ile bir container oluşturulur ve bir konteyner, bir entegrasyon job ı çalıştırmış olur.


Mef yapısı ile ilgili çektiğim videoları aşağıdaki linklerden inceleyebilirsiniz.





Teknoloji olarak; Quartz, Mef yapısı, NServiceBus, .Net Core, WebApi, RabbitMQ, Elastic Search gibi teknolojiler kullanılmıştır.


15) Business Rule


C# Roslyn derleyicisini kullanarak müşteriye özel kod parçaları tanımladık. Bu kod parçaları WebApi Startup anında register oluyor ve istenildiği taktirde çalıştırılması sağlanabiliyor. Yine İş kuralı tanımlamalarını ekranlar vasıtası ile yaptık, bu sayede müşterilere özel kod parçalarını sistem dışı yazdık.


OTOMASYON PROJELERİ


AUTOPACK


Arvato da çalıştığım süre boyunca WMS konularına oldukça fazla değindim. Çok fazla geliştirme yaptım, yazdığım modüllerin çoğu sıkıntısız ve problemsiz şekikde operasyon tarafından kullanılmaya başlandı. Belli bir süre sonra farklı konulara değinmeye başladım, Akıllı operasyon ve insansız operasyon.

İlk başta otomasyon sistemleri ile ilgilendim, sonrasında giyilebilir ekipmanlar ve akıllı gözlükler konularını araştırmaya koyuldum.


İlk otomasyon projesi AutoPack isimli otomasyon projesi idi.



AutoPack de PLC sensörlerinden, Sick den alınan Barcode scanner lar ile ilgili geliştirmeleri ve tüm WMS tarafını yazdım.

İlk otomasyon projem olur kendisi, bir çok arkadaşımın emeği var ama sahiplenmek ve savaşmak söz konusu olduğunda oldukça fazla efor harcadığımı söyleyebilirim.


Hem araştırıyorum hemde en güzel çözümü kullanıyorum.


Çok stresli bir dönem geçirdiğim doğrudur ama her anında zevk aldım, en güzeli korkmadım savaştım ve en sonunda başardım. İşin aslı yoluma engel koyanlar oldu elbette ama bu beni dahada ateşledi.


En büyük amacım para veya kariyer değil, kullanışlı, güzel, geliştirilebilir ve işe yarar büyük projeler geliştirmek. Yazdığımız projelerin başkaları tarafında mutlu mesut kullanıldığını görmek beni fazlasıyla mutlu ediyor.

WPF ile güzel bir Client uygulaması geliştirdik. Bu uygulama, Sick Scannerlar ı dinliyor, Konveyordan geçen kolilerin okumasını gerçekleştirip sistemsel ilerletmesini sağlıyor. Kolilere ait ZPL verisinin Zebra printer dan çıkmasını sağlıyor. Aynı zamanda kolileri sıraya sokup çapraz kolilerin oluşmasını engelliyor.



PLC ile direk erişim sağladık, makinenin piston kollarının çalıştırılması, Konveyorların durdurulması gibi işlemleri yazılım içerisinde kullandık. Baştan aşağı yazılım konusunda geliştirmeleri bize ait.


Konveyorlardan geçen koliler sırası ile ve özel loglama yöntemleri ile loglandı bu sayade bir sıkıntı olduğunda logların incelenmesi sağlandı.


Konveyor ve Sick sensötleri ile uygulama Multi Thread Tcp Client şeklinde bağlanmaktadır. Okumalar yapıldıkça işlemler de sistemde bir durma olmadan devam etmektedir.









Angular ile Yönetim ekranımı yazdık, autopack de olası bir sıkıntı olduğu durumlarda manuel olarak paketlemesinin yapılmasını sağladık.


Arvatodaki son haftamda AutoPack i de ziyaret ettim, Operasyonda çalışan arkadaşlardan olumlu mesajlar aldım ve gider ayak yine mutlu oldum.


Bir proje yazılırken stres, çaresizlik, deadline vb gibi konula oldukça can sıkıcıdır. Ama bu tarz işlerin sonu her zaman üç dört kat daha değerli oluyor.


Bulunduğum şirketlerde çalıştığım süre boyunca en fazlasını vermeye çalıştım, bu durum bazı yöneticilerin hoşuna gitmesede durum bu. Yöneticilik veya Liderlik, Kaynak veya Değer gibi konularda anlayış farklılıkları yaşamış olabilirim, ama bu benim doğru işi yapmamama hiç bir zaman engel olamaz.


PICK BY LIGHT


Pick By Light, Işıklı toplama sistemidir, Siparişler için oluşturulan kolilerin içerisine toplanacak ürünlerin gözleri ve toplanması gereken adet ile birlikte yeçil ışık şeklinde yanar. Depo personeli gözdeki adet kadarını alıp aldığı adet kadar arttırıp veya düşürüp toplama görevlerinin sistemsel ilerletmektedir.


Olmazsa olmaz AutoPack de olduğu gibi, PBL de de yönetim ekranı bulunmaktadır, hem gerekli PLC veya sistem loglarına erişebilir hemde siparişlerin özel durumları kontrol edilerek koli oluşturulması yapılır. Oluşan kolilerin irsaliye ve kargo etiketleri, daha toplama operasyonu başlamadan çıkartılır.


















Autopack projesinde güzel bir ekip çalışması gerçekleştirdik, Deadline hususunda 2 haftada bitirdiğim bir projeme ama bu benim neredeyse bütün gece ve gündüz çalışmama neden oldu. Bu durum beni sıkmıyor neticede ortaya güzel bir ürün çıkartıyoruz.


Fakat bu çalışmanın değerinin verilmesi oldukça önemli. Genel olarak bu sorumlulukları almayan, sadece konuşan ve yönlendirmeye çalışan kendisini iyi pazarlayan insanların olduğu ortamlarda, geliştirme yaparken iki kat efor sarf etmeniz gerekebilir.


Sistem, mistem yok ortada hiç birşey yok ama ortada inanan bir ekiğp var ise herşey mümkün. bazen düşünüyorum da, gerçekten moralimizin düzgün olduğu haksızlıkların olmadığı ortamlarda amma projeler geliştirmişiz.


Pick By Light projesinde, bu ekibin oldukça fazla emeği var ama sevgili Eray Şenay bu konuda hepimizden çok emek gösterdi, çok fazla gelişme kaydetti bunu yazmadan geçemezdim.


Eğer bir şeyi özleyecek olur isem oda bu ekiple çalışmayı olabilir :)


SORT BY LIGHT


Sort By Light otomasyon projesi, ışıklı ayrıştırma işlemidir. Depo personeli eğer ışıklı sort kullanacak ise, kendisine bir ışık atanır, atanan bu ışık aynı zamanda SBL ışık sensörleri yerleştirilen RACK gözlerinde de yanar. Adet ile yanan miktarı button vasıtası ile ayrıştırma görevlerini ilerletir.







Bu proje henüz canlıya geçmiş değil, projede kullandığım sensörlerı Banner dan aldım, sonrasında farklı firmalardan da ışıklı sensör alındı ve arge lerini yaptım.


WMS ve Otomasyon projelerinde fazlaca zaman geçirdikten sonra şimdi son projem olan Click&Colelct projesini anlatıyor olacağım.


CLICK AND COLLECT - ARVATODOT


Watsons için yazdığımız ve ilk aşamada Watsons un bütün mağazalarının kullanacağı, teslimat noktası projesidir.


Projenin amacı, mobil uygulamayı kullanan bütün teslimat noktalarına gelen siparişlerin düzgün şekilde WMS süreçlerinin ilerletilmesi, siparişlerin tek tek değilde bütün halinde teslimat noktalarına gönderilmesi ve mal kabul yapılması. Müşterilere gönderilen dinamik doğrulama sms leri ile teslimat yapılabilmesi.


Proje içerisinde detaylı iade ve transfer süreçleride işlenmiştir.




şu anda app store da koyulmaya çalışılıyor.


Teknoloji olarak; Xamarin Forms, .Net Core, EF Core, MVVM, XAML, Angular 8+, vb gibi teklojiler kullanıldı.


Splash screen ekranında yeni kullanıcı oluşturabilir, aynı zamanda şifremi unuttum seçenekleri mevcut, Login olmak istediğinizde bir sonraki sayfa karşımıza gelmektedir.







Login ekranında, sistemde teslimat noktası kullanıcısı olarak kayıtlı herkes sisteme login olabilir. bir kulanıcı sadece bir teslimat noktasına bağlı olabilir.










Login olan kullanıcı, kayıtlı olduğu teslimat noktasına ait detaylı rapor görebilir. Mal kabul, Teslimat, İade, Rma süreçlerini çalıştırabilir. MAl kabul yapıldığında mal kabulü bitmiş siparişe ait kullanıcıya doğrulama sms i yönşendirilmektedir. Teslimat ekranı müşteriye giden sms bilgileri ile çalışmaktadır.























Sms bilgisi olarak; sipariş numarası ve doğrulama şifresi gönderilmektedir.





















CARRIER MANAGEMENT SYSTEM


Aracı olmayan bir kargo şirketinin, Teknolojik alt yapı ve yazılım mimari süreç çalışması.

Dedike dediğimiz siparişlerin, yani rotası ve optimizasyon süreci olan siparişlerin taşımacılığı konusunda bir projedir. Amaç genel olarak; Bağımsız büyük araçların optimizasyon çalıştırılarak, rotalama ve sipariş dağıtım işlemleri.



Bu proje çalıştığında, bir kargo firmasına gerek kalmaksızın siparişlerin durumuna göre kaynak büyük araçlar temin edilebilir ve yönetimi detaylı şekilde sağlanır.

Benim zamanında çizdiğim mimari yukarıdaki gibidir.



Arvatoda çalıştığım süre boyunca çok fazla proje içerisinde bulundum, Taşın altına elimi koydum, benim işim değil deyip kenara çekilmedim, hangi iş varsa en kısa ve güzel şekilde işi çözdüm. Bütün bu projelerde çalıştığım arkadaşlara teşekkür ederim.


Teknik dışında farklı konularda da tecrübeler kazandım. Liderlik nasıl olmalı veya olmamalı, proje tasarımında yapılmaması gereken hatalar veya yapılması gerekenler, Rahat ve huzurlu ortamlarda çıkan güzel işler aksi durumlarda problemli süreçler, korkunun değil saygının ve sevginin önemi, beraberlik ve birliktelik duygusu ve güven duygusunun önemi.


Edindiğim bu değerli tecrübeler için müteşekkirim..



431 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

Comments


bottom of page