8.0 Versiyonu Sanayi Uygulamaları Yenilikleri Amaç Netsis Sanayi Modülleri ile ilgili aşağıdaki yenilikler kullanıma sunulmuştur. ve Fayda Ürün Grubu Mamul Rezervasyonu Oluşturma Ekranı MRP’de Müşteri Siparişi Önceliklendirme Desteği MRP’de İş Emri Reçetesi Desteği MRP'de Satıcı Siparişleri İçin Dış Ticaret Uygulamasıyla Entegre Yoldaki Miktar Desteği NETOPENX'de Serbest Üretim Sonu Kaydı İçin Bileşen Bazında İşlem Yapabilme Desteği [X] Netsis Enterprise [X] Netsis Standard [X] Netsis Entegre Modül [X] Üretim, MRP Kategori [X] Yeni Fonksiyon Versiyon 8.0 Önkoşulu Uygulama Mamul Rezervasyonu Oluşturma Ekranı Mamul rezervasyonu oluşturma ekranı sayesinde daha önceden herhangi bir müşteri siparişine rezerve edilmemiş serbest mamul stoklarının toplu bir şekilde siparişlere rezerve edilebilmesi ve daha önceden yapılmış rezervasyonların iptali mümkün hale gelmektedir. Bu mamul rezervasyonları şimdilik MRP çalışması sırasında dikkate alınacak olup, rezerve mamuller yeni gelen siparişler için kullanılmayacaktır. İleri sürümlerimizde müşteri siparişlerinin irsaliye vb ile teslimatları sırasında da bu rezervasyonlar dikkate alınacaktır. Mamul rezervasyonu, MRP modülüne önceki sürümlerimizde eklenen sipariş bazında rezervasyon sistemiyle birlikte desteklenmiştir. Bu yüzden MRP modül parametrelerinden ilgili parametrenin seçilmiş olması gerekmektedir. Mamul rezervasyonu oluşturma ekranına MRP İşlemler menüsü altından ulaşılabilir. Halihazırda üretimi yapılan mamul bakiyelerinin müşteri siparişine rezervasyonu iki şekilde desteklenmekteydi: Müşteri sipariş bağlantısı olan bir iş emri ile üretim sonu kaydı yapıldığında otomatik olarak giriş yapan mamul bakiyesi müşteri siparişine rezerve edilmektedir. Müşteri sipariş bağlantılı depolar arası transfer kaydı sayesinde mamul rezervasyonu yapılabilmektedir. Mamul rezervasyonu oluşturma ekranı sayesinde DAT kaydına gerek duymadan mamul bakiyelerinin bulundukları depolara rezerve edilebilmesi de desteklenmiştir. Eğer mamul bakiyesinin kendi deposu üzerinde rezervasyonu istenmiyorsa bu ekran üzerinden DAT kayıtları da oluşturulabilmektedir. 1 Ekran üzerinden iki farklı işlem yapılabilmektedir: 1) Müşteri Siparişine Mamul Rezervasyonu: Bu işlem tipinde öncelikle “çıkış yapılacak depolar” bölümünden rezerve edilecek mamul bakiyesinin aranacağı depolar seçilmelidir. Daha sonrasında “giriş yapılacak depolar” bölümünden mamul rezervasyonunun yapılacağı depo kodu seçilmelidir. Eğer mamul bakiyelerinin bulundukları depolar üzerinde rezervasyonu isteniyorsa “mamuller bulundukları depoya rezerve edilsin” seçeneği seçilmelidir. Depo bilgilerinin girilmesinin ardından sipariş kısıtları sekmesine geçilerek gerekli görülen müşteri siparişi kısıtları verilebilir. “Kayıtları Getir” butonu sayesinde girilmiş kısıtlara uygun olan ve teslimatı tamamlanmamış açık müşteri siparişleri listelenmektedir. Listelenen müşteri siparişleri içinden tek tek seçim yapmak suretiyle işlem yapılabileceği gibi tümünü seç butonu kullanılarak otomatik bir şekilde mamul bakiyesinin müşteri siparişlerine dağıtılması sağlanabilir. Ekran üzerinde yapılan seçim işlemleri sırasında mamule ait stok bakiyesi yürüyen bir şekilde azaltılmaktadır ve güncel serbest stok bakiyesi ekranın alt kısmında gösterilmektedir. Seçim işlemleri ardından yapılacak rezervasyon miktarları önerilen miktar alanına yazılmaktadır. Kullanıcı bu alan üzerinde değişiklik yaparak rezervasyon miktarlarını değiştirebilmektedir. Son aşamada “rezervasyonları oluştur” butonu yardımıyla toplu bir şekilde mamul rezervasyon işlemi yapılmaktadır. Yapılan rezervasyon işlemleri son sekmede raporlanmaktadır. 2 Daha önceden yapılmış olan rezervasyon işlemleri “Rzv Mik.” alanında kümüle olarak gösterilmektedir. 2) Mamul Rezervasyon İptali: Bu işlem tipinde öncelikle “giriş yapılacak depolar” bölümünden daha önceden yapılmış mamul rezervasyonlarının hangi depolarda aranacağını seçilmelidir. Daha sonrasında sipariş kısıtları sekmesine geçilerek gerekli görülen kısıtların verilmesinin ardından “Kayıtları Getir” butonu yardımıyla rezervasyon miktarı sıfırdan büyük olan açık müşteri siparişleri listelenir. Listelenen rezervasyon satırları toplu bir şekilde iptal edilebileceği gibi satır bazında tek tek iptal etmek de mümkündür. MRP’de Müşteri Siparişi Önceliklendirme Desteği MRP’de müşteri siparişi önceliklendirme desteği sayesinde müşteri siparişlerine öncelik verilebilmekte ve böylece MRP’nin aynı teslim tarihine sahip müşteri siparişlerini verilen önceliklere göre sıralaması sağlanmaktadır. Bu sayede MRP’de serbest hammadde ve mamul stoklarının müşteri sipariş ihtiyaçlarına tahsis edilmesi, verilen öncelik sırasında yapılacaktır. Müşteri siparişi önceliklendirme özelliği sipariş bazında rezervasyon sistemiyle desteklenmiştir. Müşteri siparişi için önceliklendirme yapabilmek amacıyla MRP modülü parametrelerine aşağıdaki iki yeni parametre eklenmiştir: 3 Müşteri Siparişi Sıralama Kriterinin Tutulacağı Saha: Bu alanda müşteri siparişi içerisinde satır bazında bilgi tutulabilecek alanlar listelenmektedir. Bu alanlardan herhangi biri seçildiğinde müşteri siparişinin öncelik bilgisi seçilen alandan okunacaktır. Müşteri Sipariş Önceliği İçin Planlama Kayıtlarına Bakılsın: Bu parametre sayesinde MRP’nin müşteri siparişi öncelik bilgisini planlama kayıtlarından okuması mümkün hale gelmektedir. Bu aşamada planlama kayıtlarındaki öncelik sahası dikkate alınmaktadır. Planlama kayıtlarından gelecek öncelik bilgisinin belirlenmesi için hiyerarşik olarak şu tanımlara bakılmaktadır: Müşteri/satıcı stok kayıtlarındaki öncelik bilgisi, cari planlama kayıtlarındaki öncelik bilgisi, stok planlama kayıtlarındaki öncelik bilgisi. Yukarıdaki iki parametre birlikte seçilirse ilk olarak sipariş sıralama kriterinin tutulacağı sahaya bakılacaktır. Eğer bu sahaya herhangi bir değer girilmemiş ise planlama kayıtlarından gelen öncelik bilgisi dikkate alınacaktır. Müşteri siparişi önceliklendirme özelliği aynı tarihli ihtiyaçlar arasında sıralama yapmak amacıyla geliştirilmiştir. İhtiyaçların haftalık, aylık vb periyotlarda kümüle edildiği durumlarda, önceliklendirme özelliği kümüle edilen gün içinde kullanılabilmektedir. Örnek Uygulama Sipariş bazında takip edilen STOK1 mamulü için aynı tarihli iki adet ihtiyaç satırı bulunmaktadır. Bu ihtiyaçlar aşağıdaki gibi iki ayrı müşteri siparişinden ortaya çıkmaktadır. MRP modül parametrelerinden “sipariş önceliği için planlama kayıtlarına bakılsın” parametresi işaretlenmiştir. Müşteri bazında önceliklendirme yapabilmek amacıyla cari planlama kayıtlarında ALICI1 ve ALICI2 için aşağıdaki kayıtlar girilmiştir: Görüldüğü üzere ALICI1 için öncelik değeri olarak 10 ve ALICI2 için de 5 şeklinde tanımlama yapılmıştır. Bu şekilde yapılan bir tanımlamayla beraber ALICI2 carisi daha öncelikli 4 durumdadır. Daha önceden herhangi bir müşteri siparişine rezerve edilmemiş 2500 adetlik STOK1 mamul bakiyesinin olduğu bir durumda MRP çalıştırıldığında elde edilen sonuç ve serbest stok bakiyesinin müşteri siparişlerine dağıtımı aşağıdaki gibi olacaktır: Görüldüğü üzere 2500 adetlik stok bakiyesinin 2000 adetlik kısmı öncelikli cariye (ALICI2) açılmış olan A00000000001113 nolu müşteri siparişine atanmıştır. Geri kalan 500 adetlik mamul bakiyesi ise A00000000001112 nolu müşteri siparişine atanmıştır. MRP’de İş Emri Reçetesi Desteği MRP’nin iş emri reçetelerini dikkate alarak çalışması desteklenmiştir. Bu sayede MRP, çıkan mamul / yarı mamul ihtiyaçlarını karşılamak için sistemdeki mevcut iş emirlerini kullanıyor ve bu iş emirlerine ait düzenlenmiş reçeteler varsa, bunları dikkate alarak hammadde ihtiyaçlarını hesaplayabilmektedir. Bu uygulamanın kullanılabilmesi için MRP parametrelerinde “sipariş bazında rezervasyon sistemi” parametresinin işaretli olması gerekmektedir. İş emri reçetelerinin dikkate alınabilmesi amacıyla MRP ekranına “iş emri reçetesi kontrol edilsin” şeklinde yeni bir parametre eklenmiştir. MRP’nin ihtiyaçları karşılama aşamasında reçetesi bulunan iş emirleriyle eşleşmesi için farklı kondisyonlar bulunmaktadır: İş emri müşteri siparişine rezerve edilmiş ise (iş emrinde müşteri sipariş numarası ve sipariş satırı bilgileri var ise): Bu durumda iş emrinin bağlantılı olduğu müşteri siparişi ile eşleşme sağlanacaktır ve mevcut iş emri reçetesi üzerinden işlem yapılacaktır. Mamul / yarı mamul sipariş bazında takip edilmiyorsa: Bu durumda iş emirleri bütün ihtiyaçların kullanabileceği serbest durumdadır. İhtiyaçların karşılanması aşamasında serbest iş emirleri kullanılacaktır. Kullanılan iş emrindeki mamulun iş emri reçetesi varsayılan reçetesinden farklı ise iş emri reçetesi dikkate alınacaktır ve bileşen ihtiyaçları iş emri reçetesine göre belirlenecektir. Kondisyonun bu şekilde oluşabilmesi için iş emrindeki mamul kodunun sipariş bazında takip edilmemesi gerekmektedir (stok planlama kayıtları / işemri ve planlama politikası). İş emri müşteri siparişine rezerve değil ve mamul kodu sipariş bazında takip ediliyor ise: Böyle bir durumda serbest iş emrinin reçetesi ancak varsayılan reçete ile aynı ise mamul ihtiyaçlarına tahsis edilebilmekte; varsayılan reçeteden farklı ise iş emrinin ihtiyaçlar ile eşleşmesi mümkün olamamaktadır. Eşleşme sağlanamadığında iş emrine kapatma 5 önerisi getirilecektir ve ihtiyaçlar için yeni iş emirleri açılacaktır. Örnek Uygulama Varsayılan reçetesi aşağıdaki gibi olan mamul için 500 adetlik iş emri bulunmaktadır ve bu iş emrine ait reçete yine aşağıda gösterildiği gibidir: YM1 ve YM3 bileşenleri için otomatik reçete tanımı yoktur. STOK1 mamulu için işemri ve planlama politikası olarak “sipariş bazında” seçilmiştir. 6 Görüldüğü gibi STOK1 için açılmış iş emrine ait reçetede varsayılan reçeteden farklı olarak HM3 bileşeni de bulunmaktadır. İş emri müşteri siparişine rezerve durumdadır. İş emrinin bağlantı olduğu müşteri sipariş kalemine ait bilgiler aşağıdaki gibidir: Yukarıdaki 1000 adetlik STOK1 ihtiyacı için aşağıdaki parametreler ile MRP çalıştırıldığında önerillen satıcı siparişi kalemleri aşağıdaki gibi olmaktadır: Görüldüğü üzere MRP işlemi sonucunda mevcut iş emri ile eşleşme sağlanmış ve mevcut iş emrinin reçetesine göre ihtiyaçlar çıkarılmıştır. HM3 bileşeni varsayılan reçetede olmamasına rağmen iş emri reçetesinde bulunduğu için MRP tarafından HM3 bileşenine satıcı siparişi önerilmiştir. MRP çalıştırma aşamasında “işemri reçetesi kontrol edilsin” parametresi işaretlenmez ise sonuç aşağıdaki gibi olacaktır. 7 Görüldüğü üzere iş emri reçetesinin dikkate alınmadığı durumda varsayılan reçete üzerinden işlem yapılmakta ve HM3 için satıcı siparişi önerisi getirilmemektedir. MRP'de Satıcı Siparişleri İçin Dış Ticaret Uygulamasıyla Entegre Yoldaki Miktar Desteği MRP modülünde yola çıkmış olan satıcı siparişlerine ait yoldaki miktarın dikkate alınabilmesi amacıyla dış ticaret/ithalat uygulamasıyla entegre çalışabilen bir yapı geliştirilmiştir. Bu sayede MRP sonucunda satıcı siparişi önerileri aşamasında yoldaki miktarı sıfırdan büyük olan satıcı siparişleri için gerekli kontroller yapılmakta ve şu şekilde davranılmaktadır: Satıcı sipariş kaleminin miktarı yoldaki miktarın altına düşürülmemektedir. Satıcı sipariş kalemi için teslim tarihi bilgisi sabitlenmektedir. Herhangi bir satıcı siparişinin yola çıktığını göstermek için dış ticaret modülünde ithalat uygulaması üzerinden satıcı sipariş kalemi için sevk belgesi hazırlanmalı ve ithalat faturalarının oluşturulması gerekmektedir. Bu durumda ilgili satıcı sipariş kalemi stoklara giriş yapmamakta ancak yoldaki miktar olarak tanımlanmaktadır. Dış ticaret/ithalat uygulamasının haricinde yurtdışı tipli satıcı siparişlerinin yola çıktığını belirtebilmek amacıyla Fatura / Alış parametreleri / İthalat sekmesindeki “Yurt dışı tipli alış irsaliyelerinde miktarlar stoklara geçsin” parametresi de kullanılabilmektedir. Bu parametrenin işaretli olmadığı durumda yurtdışı tipli bir satıcı siparişine alış irsaliyesi girildiğinde miktarlar stok hareketlerine geçmemekte fakat satıcı sipariş kaleminin yola çıktığı anlaşılmaktadır. MRP’de yoldaki miktar desteği yukarıda bahsedilen iki kullanım şekli için de desteklenmektedir. MRP’de yoldaki miktar uygulamasının kullanılabilmesi için MRP modül parametrelerinden “sipariş bazında rezervasyon sistemi” parametresinin seçili olması gerekmektedir. NETOPENX'de Serbest Üretim Sonu Kaydı İçin Bileşen Bazında İşlem Yapabilme Desteği NETOPENX ile serbest üretim sonu kaydı sırasında bileşen kalemlerinin okunması, kalemler üzerinde değişiklik yapma, kalem ekleme, kalemler için seri ekleyebilme ve kalem silme gibi fonksiyonlar desteklendi. Aşağıdaki örnek C# projesinde sırasıyla şu adımlar takip edilerek işlem yapılıyor: Serbest üretim sonu kaydı için fiş üretilmesi (fiş üst bilgilerinin ve mamul bilgisinin oluşturulması) Kalemlerin okunması Kalemleri dolaşarak seri ekleme public void Yeni_SUSK_Kaydet() { string seri = ""; int hatakodu = 0; string hatamesaji = ""; Boolean flag = false; Kernel kernel = new Kernel(); Sirket sirket = default(Sirket); SerbestUSK susk = default(SerbestUSK); try 8 { sirket = kernel.yeniSirket(TVTTipi.vtMSSQL, "DETAYLI_MRP", "TEMELSET", "", "NETSIS", "net1", 0); //şirket bağlantısı yapılıyor.. susk = kernel.yeniSerbestUSK(sirket); // serbest üretim sonu nesnesi yaratılıyor.. susk.UretSon_FisNo = susk.SonFisNumarasi("A").ToString();// A serisi ile başlayan son USK fiş numarası bulunuyor.. susk.IsEmrindenGetir("A00000000010008");// iş emrinden USK yapılacak, iş emri bilgisi getiriliyor. Mamul kodu, miktar, proje kodu vs. gibi alanlar otomatik olarak set edilmiş oluyor. susk.UretSon_Tarih = DateTime.Now; // Fiş için tarih bilgisi susk.DepoOnceligi = TDepoOnceligi.doHicBiri; // Depo önceliği seçimi yapılıyor. susk.UretSon_Depo = 1; // Giriş Depo kodu susk.I_Yedek1 = 2; // Çıkış Depo Kodu susk.OTO_YMAM_GIRDI_CIKTI = true; // Otoyarımamullerde girdi/çıktı susk.OTO_YMAM_STOK_KULLAN = false; // Otoyarımamullerde stoktan kullan susk.BAKIYE_DEPO = 0; // Bakiye kontrolü verilen depoda yapılsın. seri = susk.UretSon_Mamul + "__" + DateTime.Now.ToString("yyyyMMdd_hhmmss"); // stok kodu ve tarih bilgisi kullanılarak mamul için seri türetiliyor. susk.SeriEkle(seri, susk.UretSon_Mamul, "Açıklama", "Açıklama", susk.UretSon_Miktar); // mamul için seri bilgisi giriliyor. flag = susk.FisUret(); // Fiş için üst bilgiler girildi, fiş üretme işlemi yapılıyor. Reçete patlatılıp bileşen listesi yüklenecek. if (flag != true) // Fiş üretme aşamasında alınan hatanın ardından bileşen bilgileri kontrol edilecek. { hatakodu = susk.HataKodu; hatamesaji = susk.HataMesaji; // Hata kodu ve mesajına ait bilgiler alınıyor.. //Bileşen kalemleri dolaşılıp seri bilgisi girilecek.. try { for (int i = 0; i < susk.KalemCount(); i++) { SerbestUSKKalem kalem = susk.KalemGetir(i); // index bilgisi verilerek kalem çağırılıyor. if (kalem.SeriVarMi == true && kalem.GC == TGirisCikis.gcCikis) //kalem için seri takibi olup olmadığı kontrole ediliyor. Eğer seri takibi varsa seri bilgilerinin girilmesi gerekiyor. { seri = kalem.StokKodu + "__" + DateTime.Now.ToString("yyyyMMdd_hhmmss"); // stok kodu ve tarih bilgisi kullanılarak bileşen için seri türetiliyor. susk.KalemSeriEkle(i, seri, kalem.StokKodu, "Açıklama", "Açıklama", kalem.Miktar); // bileşen kalemi için seri ekleniyor. } } susk.Kaydet(); //Kalemler için gerekli bilgiler girildikten sonra fiş tamamlanıyor. } catch (Exception ex2) { MessageBox.Show(ex2.Message); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Marshal.ReleaseComObject(susk); Marshal.ReleaseComObject(sirket); kernel.FreeNetsisLibrary(); Marshal.ReleaseComObject(kernel); } } 9