Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Wiki Markup
!worddav1a5dd99da1f0b20db60848c9f3fd8b89.png|height=107,width=202! Barkod Nedir:
 <span style="color: #202124">İngilizce barcode "<strong>çubuklardan oluşan kodlama sistemi</strong>" sözcüğünden alıntıdır.</span>
<span style="color: #202122"><strong>Barkod</strong>, </span>çubuk kod ya da çizgiler ile verilerin [görsel özellikli makinelerin|https://tr.wikipedia.org/wiki/Barkod_okuyucu] okuyabilmesi için çeşitli kodlama yöntemleriyle sunulmasıdır.
Orijinal olarak barkod, veriyi paralel çizgilerin genişlikleri ve boşlukları arasında saklardı, ama günümüzde noktasal şekiller, iç içe daireler ve görüntü içinde gizli şekiller gibi farklı türlerde de görülebiliyorlar.
!worddavf151008ff9cf665d62a51d6589d2240b.png|height=85,width=583!
Barkod, [barkod okuyucu|https://tr.wikipedia.org/wiki/Barkod_okuyucu] olarak da adlandırılan [optik okuyucular|https://tr.wikipedia.org/w/index.php?title=Optik_okuyucular&action=edit&redlink=1] ile okunabilir veya özel yazılımlarla görüntü içinden (kamera vb. ile) taranabilir. Barkod [bilgisayara|https://tr.wikipedia.org/wiki/Bilgisayar] [veri girişinin|https://tr.wikipedia.org/w/index.php?title=Veri_giri%C5%9Fi&action=edit&redlink=1] doğruluğunu ve hızını artıran [Otomatik Tanıma Veri Toplama|https://tr.wikipedia.org/wiki/Otomatik_Tan%C4%B1ma_ve_Veri_Toplama] (OT/VT) uygulamalarında geniş bir kullanım alanı bulmaktadır.
\\
Barkod, ürünü tespit etmenin yanı sıra ürüne ait bazı bilgilerin de kodlanması ve kolay okutulması için kullanılır.
Örneğin üretim, depolama ve sevkiyat işlemleri için en çok ihtiyaç duyulan ürün barkodu, seri/lot numarası, son kullanma tarihi, üretim tarihi, paletin, paketin veya kolinin içerdiği miktar, parti numarası, üretim yeri, üretim yapılan makine, üretim yapan personel gibi bilgiler kodlanabilmektedir.
Logo WMS Erp uygulamasında tanımlanan ürün barkodlarını kullanmaktadır. Erp uygulamasında tanımlanan ürün barkodu ile ürünü tespit eder.
Eğer barkod karma barkod ise yani ürün barkodu haricinde örnekte verilen bilgilerden en az biri de barkoda eklenmişse bu barkodu çözümlemek için Logo WMS'te iki yöntem kullanılmaktadır.
Bunlardan birincisi; Barkod Miktar Özelliği ikincisi ise Saklı Yordam(Stored Procedure)dır. Varsayılan seçeneği ile barkod çözümleme yapılmayıp doğrudan Erpde tanımlı barkod, ürün kodu, seri/lot, varyant gibi bilgileri içeren barkodlar okutulabilmektedir. 
!worddav7628aaf2ccb1421d179209604f639bda.png|height=127,width=197!
*Saklı Yordam(Stored Procedure) Özelliği:*
Bu özellik veri tabanında kayıtlı "spWMSParseBarcode" adlı stored procedure ile çalışmaktadır. Bu özellik aktive edildiğinde Logo Wms Uygulama ekranında okutulan barkod (karma yada normal) prosedüre parametre olarak gönderilip prosedür içinde barkodda saklanan bilgiler ayrıştırılıp BARKOD<span style="color: #808080">,</span> MIKTAR<span style="color: #808080">,</span> TAKIPNO<span style="color: #808080">,</span> SKT<span style="color: #808080">,</span> ACIKLAMA olarak tekrar uygulamaya geri gönderilir. Uygulama da aldığı bu bilgileri ekrandaki ilgili alanlara yazar.  Prosedürden geri dönen barkod (karma barkoddan ayrıştırılan ürüne ait barkod, kod vb.) ile ürünün tespitini yapar. Ürün seçildikten sonra da karma barkoddan elde edilen diğer bilgileri ekranda ilgili alanlara yazar. Aşağıdaki örnekte 3 farklı uzunluktaki karma barkodu çözen prosedür örneği görmektesiniz.
<span style="color: #0000ff">ALTER</span> <span style="color: #0000ff">PROCEDURE</span> \[dbo\]<span style="color: #808080">.</span>\[spWMSParseBarcode\]
@BARKOD <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>60<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@MIKTAR <span style="color: #0000ff">float</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@TAKIPNO <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@SKT <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@ACIKLAMA <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span> 
\\
<span style="color: #0000ff">AS</span>
\\
       <span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 46
       <span style="color: #0000ff">begin</span>
\\
              <span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>25<span style="color: #808080">,</span>8<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>33<span style="color: #808080">,</span>10<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff0000">'01'</span><span style="color: #808080">+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 43<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 45<span style="color: #808080">,</span> 2<span style="color: #808080">))</span>
              <span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>24<span style="color: #808080">)</span>
              \\
       <span style="color: #0000ff">end</span>
       <span style="color: #0000ff">else</span>
       <span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 27
       <span style="color: #0000ff">begin</span>
              <span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>8<span style="color: #808080">,</span>5<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>13<span style="color: #808080">,</span>4<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 22<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 24<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 26<span style="color: #808080">,</span> 2<span style="color: #808080">))</span>
              <span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>7<span style="color: #808080">)</span>
              \\
       <span style="color: #0000ff">end</span>
       <span style="color: #0000ff">else</span>
    <span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 12
    <span style="color: #0000ff">begin</span>
      <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>9<span style="color: #808080">,</span>4<span style="color: #808080">)</span>
      <span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>8<span style="color: #808080">)</span>
    <span style="color: #0000ff">end</span>
    <span style="color: #0000ff">else</span>
       <span style="color: #0000ff">begin</span>
     <span style="color: #0000ff">SET</span> @ACIKLAMA<span style="color: #808080">=</span> @BARKOD
     <span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> @TAKIPNO
              <span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>24<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> @MIKTAR 
              <span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff0000">''</span>
       <span style="color: #0000ff">end</span>
<span style="color: #0000ff">SELECT</span> @BARKOD BARKOD<span style="color: #808080">,</span>@MIKTAR MIKTAR<span style="color: #808080">,</span>@TAKIPNO TAKIPNO<span style="color: #808080">,</span>@SKT SKT<span style="color: #808080">,</span> @ACIKLAMA ACIKLAMA
Bu prosedürde aşağıdaki kısımlar değiştirilmemelidir. Yoksa prosedür çalışmaz.
Yazacağımız ayrıştırma bölümü <span style="color: #0000ff">AS</span> ve <span style="color: #0000ff">SELECT</span> (<span style="color: #008000">----</span> yerine) arasına yazılmalıdır. Şimdi iki farklı uzunluktaki karma barkodu analiz edip sonrasında prosedüre gerekli sorguları ekleyip çözümlemesini yapalım. Doğru çalışıp çalışmadığını yine sorguları yazdığımız sql management ekranında test edeceğiz. 
\\
<span style="color: #0000ff">ALTER</span> <span style="color: #0000ff">PROCEDURE</span> \[dbo\]<span style="color: #808080">.</span>\[spWMSParseBarcode\]
@BARKOD <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>60<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@MIKTAR <span style="color: #0000ff">float</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@TAKIPNO <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@SKT <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@ACIKLAMA <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span> 
\\
<span style="color: #0000ff">AS</span>
<span style="color: #008000">----</span>
<span style="color: #008000">----</span>
<span style="color: #0000ff">SELECT</span> @BARKOD BARKOD<span style="color: #808080">,</span>@MIKTAR MIKTAR<span style="color: #808080">,</span>@TAKIPNO TAKIPNO<span style="color: #808080">,</span>@SKT SKT<span style="color: #808080">,</span> @ACIKLAMA ACIKLAMA
Örnek barkodlarımızdan birisi "<span style="color: #ff0000">000000000BRK0010020030040001619400000000101222</span>" ve ikincisi de "<span style="color: #ff0000">5075001987650010lot01141021</span>" bu olsun. Göründüğü gibi farklı uzunluklarda.
!worddav282a5718d953ac0fb222659f02017214.png|height=92,width=510! Prosedürü yazmadan önce bu barkodların içerdiği bilgilerin hangi kısımları hangi bilgileri içeriyor bilmemiz gerekli. Genellikle bu tür kodlanan barkodların birer dokümanı bulunmaktadır. Doküman incelendiğinde hangi aralıkların hangi bilgileri içerdiği öğrenilebilir. Öncelikle barkodun uzunluğunu tespit ediyoruz. Bu tespiti yaparken gözle saymak yerine sql "len" komutunu kullanmamız daha doğru olacaktır. 
\\
\\
\\
Bazı durumlarda barkodun içinde boşluk karakteri gibi ekranda sayılamayan karakterler de bulunabiliyor. 
Barkod uzunluğunu doğru bir şekilde tespit ettikten sonra barkodun hangi bölümünün hangi bilgiyi içerdiğini tespit etmemiz gerekiyor ve sonrasında da prosedüre sorgumuzu ekleyeceğiz.
İlk örnek barkodda ilk 24 karakterin ürüne ait barkod tanımı olduğunu tespit ediyoruz. Diğer bilgiler de aşağıdaki gibi kodlanmış.
*Barkod*   :1-24 (1. karakterden itibaren 24 hane)
*Takip Numarası{*}:25-8 (25. Karakterden itibaren 8 hane)
*Miktar*  :33-10 (33. Karakterden itibaren 10 karakter)
*Skt*  :43-2 ve 45-2  (43. Karakterden itibaren 2 hane ay bilgisi, 45. Karakterden itibaren 2 hane yılın son iki rakamı)
*Açıklama{*}:Karma barkod içinde açıklama bulunmuyor.
\\
Tespit sonrası prosedürü yazmaya başlayabiliriz.
*Karma Barkoda Göre Prosedürün Yazılması:* 
\\
Prosedürde karma barkod parametresi @BARKOD değişkenine set edilir @BARKOD değişkeni prosedür çağrılırken girdi için kullanılır. 
Bu değişken aynı zamanda çıktı için de kullanılır ve ayrıştırma sonrası ürüne ait barkodu set edeceğimiz değişkendir.
İlk karma barkod @BARKOD değişkeninde olduğu için bu değişkeni içindeki tüm bilgileri alana kadar değiştirmeden tutmalıyız. 
İlk önce karma barkod uzunluğuna göre aşağıdaki bloku yazıyoruz.
<span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 46
<span style="color: #0000ff">begin</span>
<span style="color: #0000ff">end</span>
Sonrasında rakip numarasını @BARKOD değişkeninden kopyalayıp @TAKIPNO değişkenine set ediyoruz. Tespitimize göre 25. Haneden itibaren 8 hane (seri/lot) takip no bilgisi yer almaktaydı.
Miktar değerini de prosedüre eklediğimizde aşağıdaki gibi bir sorgu yazmış oluruz.
<span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 46
<span style="color: #0000ff">begin</span>
 <span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>25<span style="color: #808080">,</span>8<span style="color: #808080">)</span>
 <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>33<span style="color: #808080">,</span>10<span style="color: #808080">)</span>            
<span style="color: #0000ff">end</span>
SKT (Son Kullanma Tarihi) değeri bu barkodda biraz farklı formatta. Yıl değeri iki hane verilmiş ve bunu bizim 4 hane olarak yazmamız gerekli. Bunun için <span style="color: #ff0000">'20'</span><span style="color: #808080">+ karma barkoddan alınan değer</span> yıl bilgisini oluşturacak.
Bununla birlikte gün değeri de verilmemiş. Bu değeri de ayın istediğimiz herhangi bir günü olarak prosedür içinde belirleyeceğiz.
Yıl için <span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 45<span style="color: #808080">,</span> 2<span style="color: #808080">)</span> sorgusu ile yılın ilk iki hanesini biz ekliyoruz. Gün değerini de "01" olarak belirliyoruz ve sorgumuz aşağıdaki gibi oluşuyor.
<span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff0000">'01'</span><span style="color: #808080">+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 43<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 45<span style="color: #808080">,</span> 2<span style="color: #808080">))</span>
En son olarak Barkod değerini @BARKOD değişkeninden alıp yine @BARKOD değişkenine set ediyoruz.  Tespitlerimizde ilk 24 hanenin ürün barkodu olduğunu belirlemiştik.
<span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 46
<span style="color: #0000ff">begin</span>
 <span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>25<span style="color: #808080">,</span>8<span style="color: #808080">)</span>
 <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>33<span style="color: #808080">,</span>10<span style="color: #808080">)</span>
 <span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff0000">'01'</span><span style="color: #808080">+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 43<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 45<span style="color: #808080">,</span> 2<span style="color: #808080">))</span>
 <span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>24<span style="color: #808080">)</span>            
<span style="color: #0000ff">end</span>
Bu şekilde 46 karakter uzunluğundaki barkodu çözümlemiş olduk. Şimdi ikinci örneğimize geçelim.
İkinci barkodumuz "<span style="color: #ff0000">5075001987650010lot01141021</span>". Barkodun uzunluğunu <span style="color: #0000ff">select</span> <span style="color: #ff00ff">len</span><span style="color: #808080">(</span><span style="color: #ff0000">'5075001987650010lot01141021'</span><span style="color: #808080">)</span> ile tespit ediyoruz ve varsa gizli karakterler dahil 27 buluyoruz.  Barkod içine gömülü verileri tespit ediyoruz.
*Barkod*   :1-7 (1. karakterden itibaren 7 hane)
*Takip Numarası{*}:8-5 (8. Karakterden itibaren 5 hane)
*Miktar*  :13-4 (13. Karakterden itibaren 4 karakter)
*Skt*  :22-2 ve 24-2 ve 26-2  (22. Karakterden itibaren 2 hane gün bilgisi, 24. Karakterden itibaren 2 hane ay bilgisi, 26. Karakterden itibaren 2 hane de yılın son iki rakamı bilgisi)
*Açıklama{*}:Karma barkod içinde açıklama bulunmuyor.
\\
Buna göre sorgumuz aşağıdaki gibi oluyor.
<span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 27
<span style="color: #0000ff">begin</span>
<span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>8<span style="color: #808080">,</span>5<span style="color: #808080">)</span>
<span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>13<span style="color: #808080">,</span>4<span style="color: #808080">)</span>
<span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 22<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 24<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 26<span style="color: #808080">,</span> 2<span style="color: #808080">))</span>
<span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>7<span style="color: #808080">)</span>
<span style="color: #0000ff">end</span>
Her iki barkodu çözümleyen prosedürümüz aşağıdaki gibi olacaktır. Sorgular arasında <span style="color: #0000ff">else</span> kullanmamız gerekecektir. Çünkü iki uygun <span style="color: #0000ff">if</span> bloğundan sadece birine girip sadece onda çözümleme yapılmalı. Her iki barkodu aşağıdaki prosedür ile çözümleyebiliriz.
<span style="color: #0000ff">ALTER</span> <span style="color: #0000ff">PROCEDURE</span> \[dbo\]<span style="color: #808080">.</span>\[spWMSParseBarcode\]
@BARKOD <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>60<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@MIKTAR <span style="color: #0000ff">float</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@TAKIPNO <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@SKT <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span><span style="color: #808080">,</span> 
@ACIKLAMA <span style="color: #0000ff">nvarchar</span><span style="color: #808080">(</span>50<span style="color: #808080">)</span> <span style="color: #0000ff">output</span>
<span style="color: #0000ff">AS</span>
       <span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 46
       <span style="color: #0000ff">begin</span>
              <span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>25<span style="color: #808080">,</span>8<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>33<span style="color: #808080">,</span>10<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff0000">'01'</span><span style="color: #808080">+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 43<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 45<span style="color: #808080">,</span> 2<span style="color: #808080">))</span>
              <span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>24<span style="color: #808080">)</span>
              \\
       <span style="color: #0000ff">end</span>
       <span style="color: #0000ff">else</span>
       <span style="color: #0000ff">if</span> <span style="color: #ff00ff">LEN</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">)=</span> 27
       <span style="color: #0000ff">begin</span>
              <span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>8<span style="color: #808080">,</span>5<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>13<span style="color: #808080">,</span>4<span style="color: #808080">)</span>
              <span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 22<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 24<span style="color: #808080">,</span> 2<span style="color: #808080">)+</span><span style="color: #ff0000">'.'</span><span style="color: #808080">+</span><span style="color: #ff0000">'20'</span><span style="color: #808080">+(</span><span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span> 26<span style="color: #808080">,</span> 2<span style="color: #808080">))</span>
              <span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>7<span style="color: #808080">)</span>
              \\
       <span style="color: #0000ff">end</span>
       <span style="color: #0000ff">else</span>
       <span style="color: #0000ff">begin</span>
<span style="color: #0000ff">SET</span> @ACIKLAMA<span style="color: #808080">=</span> @BARKOD
<span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> @TAKIPNO
<span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>24<span style="color: #808080">)</span>
<span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> @MIKTAR 
<span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff0000">''</span>
       <span style="color: #0000ff">end</span>
<span style="color: #0000ff">SELECT</span> @BARKOD BARKOD<span style="color: #808080">,</span>@MIKTAR MIKTAR<span style="color: #808080">,</span>@TAKIPNO TAKIPNO<span style="color: #808080">,</span>@SKT SKT<span style="color: #808080">,</span> @ACIKLAMA ACIKLAMA
<span style="color: #0000ff">GO</span>
Prosedürün son satırındaki <span style="color: #0000ff">if</span> komutu olmayan satır ise yukarıdakilerden hiç birisine uymayan her verinin ortak çözümleme sorgusu olarak eklenmiştir. Doğrudan ürün barkodu, seri/lot ve varyant numarası veya ürün kodu okutulduğunda bu değerin ilk 24 hanesini doğrudan @BARKOD olarak geri döndürür.
\\
       <span style="color: #0000ff">else</span>
       <span style="color: #0000ff">begin</span>
<span style="color: #0000ff">SET</span> @ACIKLAMA<span style="color: #808080">=</span> @BARKOD
<span style="color: #0000ff">SET</span> @TAKIPNO <span style="color: #808080">=</span> @TAKIPNO
<span style="color: #0000ff">SET</span> @BARKOD <span style="color: #808080">=</span> <span style="color: #ff00ff">SUBSTRING</span><span style="color: #808080">(</span>@BARKOD<span style="color: #808080">,</span>1<span style="color: #808080">,</span>24<span style="color: #808080">)</span>
<span style="color: #0000ff">SET</span> @MIKTAR <span style="color: #808080">=</span> @MIKTAR 
<span style="color: #0000ff">SET</span> @SKT <span style="color: #808080">=</span> <span style="color: #ff0000">''</span>
       <span style="color: #0000ff">end</span>
\\
Prosedürü veri tabanına yükledikten sonra aşağıdaki sorgularla test edebilir ve çözümleme sonuçlarını görebiliriz.
<span style="color: #0000ff">exec</span> spWMSParseBarcode <span style="color: #ff0000">'000000000BRK0010020030040001619400000000101222'</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span>            
 \\
<span style="color: #0000ff">exec</span> spWMSParseBarcode <span style="color: #ff0000">'5075001987650010lot01141021'</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span>      
\\
<span style="color: #0000ff">exec</span> spWMSParseBarcode <span style="color: #ff0000">'112233'</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span><span style="color: #808080">,</span><span style="color: #ff0000">''</span>     
\\
!worddav79a09a9d37c698555d5ec24cce57bb23.png|height=186,width=551!
\\
!worddavcc8a2e3728c22215ea53d22762f6e6aa.png|height=147,width=129! Test sonrası kontrol edilecek en önemli nokta BARKOD alanında gelen test sonucunun Erpde üründe tanımlı olmasıdır. Bu değer ürünü bulacak olan kısımdır.
Sonuçların doğru olduğundan emin olduktan sonra prosedürü Logo WMS ile kullanabiliriz.