Stok seri kodlarının program tarafından otomatik olarak üretilmesi istenen durumlarda, kodların belli bir formüle göre, düzen içinde yaratılması için Otomatik Seri No Üretme Tanımlamaları ekranı kullanılır. Otomatik seri no üretme tanımları ekranı ile sabit, değişken ve script ile serilerin nasıl oluşturulacağına karar verilebilir.

Otomatik Üretim Kodu: Otomatik seri kodu üretilmesi için kod girilen alandır. Farklı stok grupları için, farklı formüllerle birden fazla seri kodu üretme tanımı yapılabilir.

  • Sabit: Oluşturulacak seri yapılandırma kodu başlangıç karakterinin, girilen sabit değerle başlaması istendiğinde "Sabit" seçeneğinin işaretlenmesi gerekir.
  • Değişken: Otomatik seri kodunun SQL cümlesinden dönen sonuç ile üretilmesi istendiğinde "Değişken" seçeneğinin işaretlenmesi gerekir.
  • Script: Oluşturulacak seri kodunun Script ifadesi ile oluşturulması için kullanılan seçenektir.

Not: Script seçeneği Netsis 9.0.36 ve üzeri versiyonlarda desteklenmektedir.

Başlangıç Numarası: Otomatik seri kodunun, başlangıç karakterinden sonraki bölümde yer alacak sıra numarasının başlangıç değerini ifade eden alandır.

Uzunluk: Otomatik seri kodunun kaç karakterden oluşacağının belirlendiği alandır.

Aktif: Otomatik üretim kodunun geçerli olup olmadığını ifade eden alandır. Program tarafından kod üretilirken, tanımlanan kod parametresinin dikkate alınmaması istendiğinde aktif seçeneğinin işaretlenmemesi gerekir.

Başlangıç Karakteri: "Sabit" seçeneği işaretlendiğinde seri kodları, belirtilen sabit değer ile başlar." Değişken" seçeneği işaretlendiğinde ise başlangıç karakteri ekranına, bir SQL cümlesi yazılarak değişken bir şekilde başlangıç karakteri oluşturulması sağlanır. Script seçeneğinde ise dinamik kodlama ifadesi ile oluşturulan seri kodu Result değişkenine atanarak serinin oluşturulması sağlanır.

"Başlangıç Karakteri" alanında iken, sağ tuş ile ekrana gelen "Stok Kodu Değişkeni" seçeneğine tıklanarak imlecin bulunduğu yere "($StokKodu)" ifadesi eklendiğinde ve bu şekilde başlangıç karakteri verildiğinde, seri numarası üretileceği sırada içinde bulunulan stok kodu bilgisinin, üretilecek seri numarasının başlangıç karakteri olarak yazılır.

Test: Girilen formüle uygun olarak oluşan ilk seri kodunun görüntülenmesi için kullanılan butondur.

Not: Başlangıç Karakteri alanında eğer Stok Kodu Değişkeni eklendiyse test butonu çalışmayacak ve aşağıdaki uyarı ekrana gelecektir. Bu değişkenin tanımlandığı durumlarda, seri kodun kullanılacağı ekranlardan test işlemi gerçekleştirebilir.


Geçerli Stoklar

Geçerli Stoklar, program tarafından üretilecek seri kodlarına ait tanımlanan formülün, hangi stoklar için geçerli olacağı ile ilgili tanımlamalar yapılan sekmedir.

Otomatik seri kodu oluşturulacağı zaman, ilgili stok için mevcut otomatik kod üretim tanımlarına bakılır. Eğer birden fazla aktif kod üretme tanımı varsa ilk bulunan tanıma göre kod üretilir.


Otomatik Seri Kodu Üretme Tanımlamalarında yapılan tanımlamanın geçerli olması için; Stok Kayıt Stok Kartı Kayıtları Seri Takibi "Otomatik Hesaplansın" seçeneğinin işaretlenmesi gerekir.

Örnek Tanım-1 (Sabit)



Örnek Tanım-2 (Değişken)

DECLARE @RND NVARCHAR(8) = LEFT(REPLACE(CONVERT(NVARCHAR(36), NEWID()), '-', ''), 8); DECLARE @DATE NVARCHAR(10) = REPLACE(CONVERT(VARCHAR(10), GETDATE(), 103), '/', '');
SELECT
'S' +
RIGHT('00000000' + REPLACE(($StokKodu), '.', ''), 8) + CAST(SUBE_KODU AS VARCHAR) +
@DATE + @RND
FROM
TBLSUBELER
INNER JOIN NETCONTEXT ON SUBE_KODU = V$SUBE_KODU


Otomatik üretilen seri kodu ekran görüntüsündeki gibidir.

Örnek Tanım-3 (Script)

Dim GrupKodu
set rs = NETSISCORE.NetLibDB.GetNewQuery
query = "SELECT GRUP_KODU FROM STSABIT WHERE STOK_KODU='"&($StokKodu)&"'"
rs.RecSql(query)
GrupKodu = rs.FieldByName("GRUP_KODU").AsString Result = GrupKodu
set rs = Nothing

Otomatik üretilen seri kodu ekran görüntüsündeki gibidir.

Örnek Tanım-4 (Script)

Aşağıdaki tanımda Result değişkenine atanan ilk iki karakter date fonksiyonundan dönen sonucun yıl bilgisini içeren son iki karakteridir. Random sınıfından üretilen 8 karakter uzunluğundaki değer, yıl bilgisinden sonra gelmektedir. Serinin sonundaki değer ise daha önce aynı otomatik üretim kodu kullanılarak oluşturulan seri numarasının 1 artırılarak elde edilen değeridir.


Randomize

Dim chars

chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

Dim length

length = 8

Dim i, randomIndex, randomString randomString = ""

For i = 1 To length

randomIndex = Int(Len(chars) * Rnd) + 1
randomString = randomString & Mid(chars, randomIndex, 1)

Next

Dim result

result = Mid(Date, 9, 2) + randomString


Otomatik üretilen seri kodu ekran görüntüsündeki gibidir.