Versions Compared

Key

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

...

Kısa Tanım:

Tablo satırında seçilen ürünün resminin Tiger/Go ERP’ ye aktarma işlemidir.

Açıklama:

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 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 da herhangi bir sıkıştırma vs. işlemi olmadığından direk sql update işlemi uygulanabilmektedir. Tiger/Go ERP dışında  da yine bu şekilde sql de tutulan binary dataları farklı yerlere de atabilirsiniz.

Önemli Not: ERP tarafında arayüzden silinen resimlerde Tiger/Go,  LG_XXX_ITEMS tablosunda “IMAGEINC” ve “IMAGE2INC” olarak iki farklı kolonda burayı 0 olarak set etmektedir. Sqlden Flow tarafından güncelleme yapıldığında eğer 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, sql’ den güncelleme işlemini yapar ama arayüz de resim gözükmez.

Bu akış örneği için yapılması gerekenler:

-Örnekte sadece 1. Resim anlatılmıştır. İstenirse ikinci bir dosya yükleme kolonu açılıp 2. Resminde aktarımı sağlanabilir.

-Sql bağlantıları, veri kaynakları ve sql sorguları kendinize göre düzenlenmelidir.

-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  nfileVariableValue.Files.Count kodu ile kontrol edip kullanıcıyı Showmessage ile uyarmalısınız ya da sadece 1’ ini atacağını iletmelisiniz.   

Kod Örneği:

 string fileId="",sqlSelectSorgu="",sqlUpdateSorgu="",sqlInsertSorgu="";
int malzemeId=0,lref=0;

//BÜTÜN TABLO SATIRLARI TEKER TEKER DÖNME İŞLEMİ BAŞLIYOR
try{
for(int i=0;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>GetValue(MalzemeListesi_Columns.Resim,i);
fileId=nfileVariableValue.Files.<span style="color: #191970"><strong>FirstOrDefault</strong></span>FirstOrDefault().FileId.<span style="color: #191970"><strong>ToString</strong></span>ToString(); <span style="color: #008000">
//SEÇİLEN MALZEMENİN AÇILIR PENCEREDEKİ LOGICALREF DEĞERİ ALINIYOR</span>malzemeIdDEĞERİ ALINIYOR
malzemeId=Convert.<span style="color: #191970"><strong>ToInt32</strong></span>ToInt32(MalzemeListesi.<span style="color: #191970"><strong>GetValue</strong></span>GetValue(MalzemeListesi_Columns.MalzemeSecim,<span style="color: #008b8b"><strong>true</strong></span>true,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 @"SELECT TOP 1 LREF FROM  LG_001_FIRMDOC WITH(NOLOCK) </span> <span style="color: #0000ff"> WHERE </span> <span style="color: #0000ff"> 
 WHERE 
(INFOTYP=20) AND (INFOREF="</span>+malzemeId.<span style="color: #191970"><strong>ToString</strong></span>ToString()+<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>KONTROLÜ YAPILMAKTA
if(fileId!=<span style="color: #0000ff">""</span> && malzemeId><span style="color: #00008b">0</span>)\{<span style="color: #008000">" && malzemeId>0)
{//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>
var selectResult=Context.SqlExecuteReader(SqlConnections.TIGER,sqlSelectSorgu);    <span style="color: #0000ff"><strong>if</strong></span>
    if(selectResult.Rows.Count><span style="color: #00008b">0</span>)    \{    <span style="color: #008000">Count>0)
    {
    //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
  foreach(var item in selectResult.Rows)
          \{
              lref=item\[<span style="color: #0000ff">"LREF"</span>\].<span style="color: #191970"><strong>ToInt</strong></span>ToInt();
          \}   <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 @"UPDATE TIGER..LG_001_FIRMDOC </span> <span style="color: #0000ff">SET FIRMDOC 
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 +
"WHERE INFOREF="</span>+malzemeId.<span style="color: #191970"><strong>ToString</strong></span>ToString()+<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>ToString(); <span style="color: #000080">var</span> updateResult=Context.<span style="color: #191970"><strong>SqlExecuteNonQuery</strong></span>
var updateResult=Context.SqlExecuteNonQuery(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 YAPILIYOR.
    else
    {
        sqlInsertSorgu=@"INSERT INTO TIGER..LG_001_FIRMDOC (INFOTYP,INFOREF,DOCTYP,DOCNR,LDATA) </span> <span style="color: #0000ff">        VALUES  
        VALUES (20,"</span>+malzemeId.<span style="color: #191970"><strong>ToString</strong></span>ToString()+<span style="color: #0000ff">",0,11,"</span>+        <span style="color: #0000ff">"(SELECT TOP 1 DATA FROM +
        "(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>;
        var insertResult=Context.SqlExecuteNonQuery(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)\;
malzemeId=0;
lref=0;
}


//YAPILAN İŞLEMLER SIRASINDA HATA ALINIRSA DURUM DEĞİŞKENİNE HATANIN NEDENİ YAZILIYOR.
}catch(Exception Ex){Durum.Value+=<span style="color: #0000ff">"Hata Oluştu="</span>+Environment.NewLine+Ex.Message.<span style="color: #191970"><strong>ToString</strong></span>ToString();\} \\ \\   <span style="color: #800000"><strong>Akış Dosyası }

Akış Dosyası (.xnm):

...

Aşağıdaki dosyayı indirerek uygulamaya aktarabilirsiniz. İçeri aktarma işleminin nasıl yapıldığına dair bilgi için Aktar bölümünü inceleyebilirsiniz.

View file
nameTablo satırında seçilen ürünün Resmini TigerGo ya Aktarma.nxm
height250