Page History
Wiki Markup |
---|
<span style="color: #800000"><strong>Kısa Tanım:</strong></span>
<span style="color: #1e4e79"> </span>
Tablo satırında seçilen ürünün resminin Tiger/Go ERP' ye aktarma işlemidir.
<span style="color: #800000"><strong>Açıklama:</strong></span>
<span style="color: #1e4e79"> </span>
<span style="color: #1e4e79">Tablo içerisinde seçilen ürün ve resimlerin sql üzerinden Tıger/Go ERP' ye atma işlemini gerçekleştirmektedir. Tabloda dosya yükle kolon değişkeni olarak eklenen veriler NWFFILES sql tablosuna yazmaktadır. Her bir dosyanın tekil id' si bulunduğundan dosyanın id' si alınıp NWFFILES tablosundan direk Tiger/Go' ya update</span> <span style="color: #1e4e79">sql işlemi yapmaktadır. NWFFILES ve Tiger/Go ERP sistemlerinde sql de tutulan dosya tipleri binary olup, standart bir şekilde kaydedilmektedir. Her iki tarafta</span> <span style="color: #1e4e79">da herhangi bir sıkıştırma vs. işlemi olmadığından</span> <span style="color: #1e4e79">direk sql</span> <span style="color: #1e4e79">update işlemi uygulanabilmektedir. Tiger/Go ERP dışında da</span> <span style="color: #1e4e79">yine bu şekilde sql de tutulan binary dataları farklı yerlere de atabilirsiniz.</span>
<span style="color: #1e4e79">Önemli Not: ERP tarafında arayüzden silinen resimlerde</span> <span style="color: #1e4e79">Tiger/Go, LG_XXX_ITEMS tablosunda "IMAGEINC" ve "IMAGE2INC" olarak iki farklı kolonda burayı 0 olarak set etmektedir. Sqlden</span> <span style="color: #1e4e79">Flow tarafından güncelleme yapıldığında eğer</span> <span style="color: #1e4e79">ki arayüzden silinme işlemi uygulanıyorsa bu kolonlarında o ürün için değerleri 1 yapılmalıdır. Yoksa Flow,</span> <span style="color: #1e4e79">sql' den güncelleme işlemini yapar ama arayüz</span> <span style="color: #1e4e79">de resim gözükmez.</span>
<span style="color: #1e4e79">Bu akış örneği için yapılması gerekenler:</span>
<span style="color: #1e4e79">-Örnekte sadece 1. Resim anlatılmıştır. İstenirse ikinci bir dosya yükleme kolonu açılıp 2. Resminde aktarımı sağlanabilir.</span>
<span style="color: #1e4e79">-Sql bağlantıları, veri kaynakları ve sql sorguları kendinize göre düzenlenmelidir.</span>
<span style="color: #1e4e79">-Tablo dosya yükle değişkeni n tane dosya ekleyebilme özelliğine sahiptir, biz bu örneğimizde sadece 1' ini alarak işlem yapmaktayız. Bu yüzden ya</span> nfileVariableValue.Files.Count <span style="color: #1e4e79">kodu</span> <span style="color: #1e4e79">ile kontrol edip kullanıcıyı Showmessage ile uyarmalısınız ya da sadece 1' ini atacağını iletmelisiniz.</span>
\\
\\
\\
\\
<span style="color: #800000"><strong>Kod Örneği:</strong></span>
\\
<span style="color: #ff0000">string</span> fileId=<span style="color: #0000ff">""</span>,sqlSelectSorgu=<span style="color: #0000ff">""</span>,sqlUpdateSorgu=<span style="color: #0000ff">""</span>,sqlInsertSorgu=<span style="color: #0000ff">""</span>; <span style="color: #ff0000"><strong>int</strong></span> malzemeId=<span style="color: #00008b">0</span>,lref=<span style="color: #00008b">0</span>; <span style="color: #008000">//BÜTÜN TABLO SATIRLARI TEKER TEKER DÖNME İŞLEMİ BAŞLIYOR</span> <span style="color: #008080"><strong>try</strong></span>\{ <span style="color: #0000ff"><strong>for</strong></span>(<span style="color: #ff0000"><strong>int</strong></span> i=<span style="color: #00008b">0</span>;i<MalzemeListesi.Content.Items.Count;i++)\{ <span style="color: #008000">//TABLO DA YÜKLENEN DOSYANIN NWFFILES TABLOSUNDAKİ FILE ID' SI ALINIYOR.</span> NAF.LFlow.Shared.Types.Files.NFileVariableValue nfileVariableValue=(NAF.LFlow.Shared.Types.Files.NFileVariableValue)MalzemeListesi.<span style="color: #191970"><strong>GetValue</strong></span>(MalzemeListesi_Columns.Resim,i);fileId=nfileVariableValue.Files.<span style="color: #191970"><strong>FirstOrDefault</strong></span>().FileId.<span style="color: #191970"><strong>ToString</strong></span>(); <span style="color: #008000">//SEÇİLEN MALZEMENİN AÇILIR PENCEREDEKİ LOGICALREF DEĞERİ ALINIYOR</span>malzemeId=Convert.<span style="color: #191970"><strong>ToInt32</strong></span>(MalzemeListesi.<span style="color: #191970"><strong>GetValue</strong></span>(MalzemeListesi_Columns.MalzemeSecim,<span style="color: #008b8b"><strong>true</strong></span>,i,<span style="color: #0000ff">"LOGICALREF"</span>)); <span style="color: #008000">//MALZEME LOGICALREF DEĞERİNE GÖRE FIRMDOC TABLOSUNDA ARAMA YAPILMASI İÇİN SQL HAZIRLANIYOR. FIRMDOC TABLOSUNDA ÜRÜN RESMİ VARSA UPDATE YOKSA INSERT İŞLEMİ YAPILMASI İÇİN.</span> sqlSelectSorgu=<span style="color: #0000ff">@"SELECT TOP 1 LREF FROM LG_001_FIRMDOC WITH(NOLOCK) </span> <span style="color: #0000ff"> WHERE </span> <span style="color: #0000ff">(INFOTYP=20) AND (INFOREF="</span>+malzemeId.<span style="color: #191970"><strong>ToString</strong></span>()+<span style="color: #0000ff">") AND (DOCTYP=0) AND (DOCNR=11)"</span>; <span style="color: #008000">//FILE ID VE MALZEME LOGICALREFİ ALINDIYSA KONTROLÜ YAPILMAKTA</span> <span style="color: #0000ff"><strong>if</strong></span>(fileId!=<span style="color: #0000ff">""</span> && malzemeId><span style="color: #00008b">0</span>)\{<span style="color: #008000">//BÜTÜN KONTROLLERDEN SONRA TIGER DA SEÇİLEN ÜRÜNE AİT RESİM VAR MI YOK MU SQL ÇALIŞTIRILARAK KONTROL EDİLİYOR.</span> <span style="color: #000080">var</span> selectResult=Context.<span style="color: #191970"><strong>SqlExecuteReader</strong></span>(SqlConnections.TIGER,sqlSelectSorgu); <span style="color: #0000ff"><strong>if</strong></span>(selectResult.Rows.Count><span style="color: #00008b">0</span>) \{ <span style="color: #008000">//RESİM VAR VE FIRMDOC TABLOSUNDAN LREF BİLGİSİ ALINIYOR.</span> <span style="color: #0000ff"><strong>foreach</strong></span>(<span style="color: #000080">var</span> item <span style="color: #0000ff"><strong>in</strong></span> selectResult.Rows) \{ lref=item\[<span style="color: #0000ff">"LREF"</span>\].<span style="color: #191970"><strong>ToInt</strong></span>(); \} <span style="color: #008000">//ALINAN LREF VE URUN LOGICALREF BİLGİSİNE GÖRE UPDATE İŞLEMİ YAPILIYOR. </span> sqlUpdateSorgu=<span style="color: #0000ff">@"UPDATE TIGER..LG_001_FIRMDOC </span> <span style="color: #0000ff">SET LDATA=(SELECT TOP 1 DATA FROM LFLOW..NWFFILES WHERE ID='"</span>+fileId+<span style="color: #0000ff">"' AND ASSOCIATEDVARIABLENAME='MalzemeListesi__Resim' AND FILETYPE=1)"</span>+ <span style="color: #0000ff">"WHERE INFOREF="</span>+malzemeId.<span style="color: #191970"><strong>ToString</strong></span>()+<span style="color: #0000ff">" AND INFOTYP=20 AND DOCTYP=0 AND DOCNR=11 AND LREF="</span>+lref.<span style="color: #191970"><strong>ToString</strong></span>(); <span style="color: #000080">var</span> updateResult=Context.<span style="color: #191970"><strong>SqlExecuteNonQuery</strong></span>(SqlConnections.TIGER,sqlUpdateSorgu); Durum.Value+=malzemeId+<span style="color: #0000ff">" no' lu ürün resmi güncellendi."</span>+Environment.NewLine; \} <span style="color: #008000">//ÜRÜN RESMİ HİÇ YOKSA INSERT İŞLEMİ YAPILIYOR.</span> <span style="color: #0000ff"><strong>else</strong></span> \{ sqlInsertSorgu=<span style="color: #0000ff">@"INSERT INTO TIGER..LG_001_FIRMDOC (INFOTYP,INFOREF,DOCTYP,DOCNR,LDATA) </span> <span style="color: #0000ff"> VALUES (20,"</span>+malzemeId.<span style="color: #191970"><strong>ToString</strong></span>()+<span style="color: #0000ff">",0,11,"</span>+ <span style="color: #0000ff">"(SELECT TOP 1 DATA FROM LFLOW..NWFFILES WHERE ID='"</span>+fileId+<span style="color: #0000ff">"' AND ASSOCIATEDVARIABLENAME='MalzemeListesi__Resim' AND FILETYPE=1))"</span>; <span style="color: #000080">var</span> insertResult=Context.<span style="color: #191970"><strong>SqlExecuteNonQuery</strong></span>(SqlConnections.TIGER,sqlInsertSorgu); Durum.Value+=malzemeId+<span style="color: #0000ff">" no' lu ürün resmi eklendi."</span>+Environment.NewLine; \}\} <span style="color: #008000">//BÜTÜN HAZIRLANAN SORGULAR/DEĞİŞKENLER SIFIRLANIP, BİR SONRAKİ TABLONUN SATIRINA GEÇİLİYOR.</span> sqlUpdateSorgu=<span style="color: #0000ff">""</span>; sqlSelectSorgu=<span style="color: #0000ff">""</span>; sqlInsertSorgu=<span style="color: #0000ff">""</span>; fileId=<span style="color: #0000ff">""</span>; malzemeId=<span style="color: #00008b">0</span>; lref=<span style="color: #00008b">0</span>;\} <span style="color: #008000">//YAPILAN İŞLEMLER SIRASINDA HATA ALINIRSA DURUM DEĞİŞKENİNE HATANIN NEDENİ YAZILIYOR.</span>\}<span style="color: #008080"><strong>catch</strong></span>(Exception Ex)\{Durum.Value+=<span style="color: #0000ff">"Hata Oluştu="</span>+Environment.NewLine+Ex.Message.<span style="color: #191970"><strong>ToString</strong></span>();\}
\\
\\
<span style="color: #800000"><strong>Akış Dosyası (.xnm):</strong></span>
<span style="color: #800000"> </span>
Aşağıdaki dosyayı indirerek uygulamaya aktarabilirsiniz. İçeri aktarma işleminin nasıl yapıldığına dair bilgi için [Aktar|https://docs.logo.com.tr/display/logoflow/Dosya#Dosya-Aktar] bölümünü inceleyebilirsiniz. |