You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Doküman içeriği aşağıdaki gibidir: 

  • LogoConnect için Basit Kural İşlemleri
  • LogoConnect için Script Kural İşlemleri
  • Görsel Tasarım İşlemleri



KURAL TANIMLARI

Kural Tanımları, LogoConnect platformunun özelleştirilmesi amacıyla kullanılan geniş bir bölümdür. LogoConnect Kural Tanımı Bankacılık, B2B ve FDA Modüllerinin yanı sıra e-Dönüşüm Modülleri için de kullanılabilir. LogoConnect e-Dönüşüm Modülleri Kural Tanımları, Gelir İdaresi sistemine gönderilecek olan ve Gelir İdaresi sisteminden gelen belgeler için, manüel yapılan bir takım işlemlerin otomatikleştirilmesi veya bu belgelerin XML belgesi üzerinde veri değişikliği yapılabilmesi için kullanılır.

Kural Tanımları, Basit ve Script kural olmak üzere ikiye ayrılır. Basit kural oluşturmak için belli tanımlamalar yapılırken, Script kural tanımları için Visual Basic Script yazım dili kullanılır. Visual Basic Script yazım dili Excel ve Word programlarının içerisindeki macro dili olarak da kullanılmakta olan, en
standart script kodlama dilidir ve yapılmak istenen her türlü işlem ile ilgili örnek kodlar internette bulunabilir.



Kural tanımlarına LogoConnect ara yüzündeki Araçlar altındaki Kural Tanımları seçeneği ile ulaşılır. Alt kısımda bulunan açılır liste kutusu (combobox) içeriği ile script kural veya basit kural ayrımı yapılır.

e-Fatura İşlemleri İçin Basit Kural Tanımları

Kural tanımı türünün basit kural seçilmesinden sonra F9 menüsünden (sağ tık) "Ekle" işlemi ile kural tanımı eklenebilir. Bu durumda açılacak olan ekran aşağıdaki gibidir:




Basit Kural Seçenekleri

Kural No : Tanımlanan kuralın tanım numarasıdır.

Açıklaması : Kural tanımının adı ya da açıklayıcı bilgisidir.

Doküman : Kuralın hangi belge türü için uygulanacağı bu alanda belirlenir.



e-Dönüşüm Kural Tanımında Kullanılacak Doküman Tipleri 

  • e-Fatura
  • e-İrsaliye
  • Uygulama Yanıtı
  • e-Arşiv Fatura
  • Sistem Yanıtı


Seçilebilecek Olay Türleri

e-Dönüşüm belgeleri UBL-TR formatında gönderilmekte ve alınmaktadır. e-Dönüşüm belgeleri gönderilirken ERP Sisteminden LogoConnect'te XML olarak aktarılır. LogoConnect "Onaylanmadan/Mühürlenmeden Önce" işlemi sırasında XML'si UBL'ye çevirir. Kural tanımları bölümünde yapılan veri değişikliği işlemi sırasında XML'deki veriler değişir ve UBL'ye taşınır.

Örneğin; e-Fatura üzerinde veri değiştirmek amaçlı kural tanımı yapılırken "Onaylanmadan/Mühürlenmeden Önce" olayı seçilmelidir. e- Fatura alınırken UBL-TR formatında gelir ve "Geldiğinde" işlemi sırasında XML formatı oluşur. Gelen e-Fatura üzerinde veri değiştirmek amaçlı tanımlanacak olan kural tanımlarında "Geldiğinde" olayı seçilmelidir.

Kural Tanımlarında Statüler 

Bir kuralın belli bir süre çalışmasını durdurmak için kullanılan alandır. Bu durumda kuralı silmeden çalışmasını engellemek için bu alanın içeriğinin "Pasif" durumuna çekilmesi gerekir. Kuralın tekrar çalışması için içeriği "Aktif" durumuna çekilmelidir.

Yapılan kural tanımının çalışıp çalışmayacağı sadece kural tanımı içerisindeki "Statüsü" alanına bağlı değildir. LogoConnect – Seçenekler – Genel Parametreler altındaki "Kural Kullan" parametresi de işaretli olmalıdır. Bu parametre işaretli değilken tanımlanan hiçbir kural çalışmaz.



Basit Kural Koşul İşlemi

Koşul: Elle giriş yapılıp, koşul yazılabilen bir alandır. Kurala atanacak koşul bu alanda belirtilir. Koşul bölümünde hiçbir şey yazılmamış ise oluşturulan kural tanımı her koşulda çalışacak demektir.

Alanlar: Seçilen doküman tipi ile ilişkili olarak koşul tanımlanabileceği gibi XML alanları bu bölümde bulunmaktadır. Doküman tipinin Logo ürünündeki XML formatı bellidir. LogoConnect ürünü bu formatı temel alarak, ihtiyacı olan diğer alanları bu format üzerine eklemektedir.

"Header_Record" bölümünün altında Connect Database'inde bulunan LG_XXX_APPROVAL tablosunun kolonları bulunmaktadır.

HEADER_RECORD Alanları: Bir veri gönderilmek üzere paketlendiğinde veya geldiğinde LG_XXX_ APPROVAL tablosuna kayıt atılır. XML kayıtları arasında bu tablo alanlarının tamamına denk gelen Tag'ler yoktur. Bu alanların da kural tanımlarında kullanılabilmesi için ilgili dokümanın standart XML formatı bozulmadan aşağıda gösterildiği üzere en başta bulunan HEADER_RECORD başlığı altında toplanarak standart XML formatına eklenmektedir. HEADER_RECORD başlığı altındaki alanlar doküman tipinden bağımsız olarak tüm dokümanlarda aynıdır. Standart alanlarda olduğu gibi bu alanlar üzerinde de koşul tanımlanabilmektedir. Connect Veritabanında (Inboxta, outboxta, onay işlemlerinde görünen) her kayıt APPROVAL tablosunda tutulur. Her doküman için APPROVAL tablosunda bulunan aşağıdaki alanlara ulaşılabilir.

Basit Kural İşlemler - Veri Üzerinden Değişiklik Yap

Kural tanımında seçilen Doküman tipi ve olaya bağlı olarak taşıdığı alanlar ve içerikleri üzerinde değişiklik yapılmak için kullanılır. Alan içerikleri değiştirilebilir, boşaltılabilir veya yeni XML alanı eklenebilir.

































    • Alan Adı : Hangi alan üzerinde değişiklik yapılacağının seçildiği bölümdür.
    • Değeri : Değişiklik yapılacak olan alana hangi değerin geleceğinin seçildiği bölümdür.


Alan üzerindeki seçim alanı ile ilgili XML'de tanımlı olan bütün alanlar arasından seçim yapılabilir veya "Değeri" alanına manuel giriş yapılabilir. Seçim ekranına HEADER_RECORD alanları gelmez.
BASİT KURAL ÖRNEK


ÖRNEK 1 : Giden e-fatura Özel Kodu "X" 'e
eşit ise DOC_NUMBER (Fatura Belge
Numarası) alanına AUXIL_CODE (Fatura Özel Kod) alanınındaki bilgiyi getir.







SONUÇ :
BASİT KURAL İŞLEMLER – E-POSTA GÖNDER
E-Posta Gönder : Kural tanımı ile seçilen Doküman tipindeki kayıtlar için, seçilen olay ve koşulların gerçekleşmesi durumunda kişilere otomatik bilgilendirme maili yollanması sağlanabilir.

  • Subject : Mail konu başlığı.
  • Message : Mail içeriği.

NOT : Mail gönderiminin gerçekleştirilmesi için LogoConnectSYS – Araçlar – E-Posta Ayarları altından gönderimi yapacak mail adresinin tanımlanması
gerekmektedir.












NOT : Message bölümüne sağ tuş ile "Alan Adları" bölümünden XML'in alanları taşınabilir. Bu durumda oluşturulan mesaj alanına gelen belgeye özgü
alanların taşınması sağlanabilir. Mesaj alanına XML alanları dışında HEADER_RECORD alanlarıda taşınabilir.
ÖRNEK: Fatura numarasının "GID" ile başlaması durumunda bilgi maili atılması.

BASİT KURAL İŞLEMLER – SERBEST ALANLARI EKLEME

  • Serbest Alan Ekle : Kural ile XML ve UBL alanlarına "AdditionalDocumentReference" alanı script kurala ihtiyaç

kalmadan otomatik eklenir.

  • ID : XML'de oluşacak olan "AdditionalDocumentReference" alanı altındaki <ID> alanının değerinin belirlendiği alandır.
  • DOCUMENTTYPE : XML'de oluşacak olan "AdditionalDocumentReference" alanı altındaki <DOCUMENTTYPE >

alanının değerinin belirlendiği alandır.

ÖRNEK : Fatura belge numarasının faturanın UBL'ine taşınması



ERP'de Belge No tanımı SONUÇ :


E-FATURA İŞLEMLER İÇİN SCRİPT KURAL TANIMLARI
Kural tanımı türünün script kural seçilmesinden sonra F9 menüsünden (sağ tık) "Ekle" işlemi ile kural tanımı eklenebilir. Bu durumda açılacak olan ekran aşağıdaki gibidir








Kural No, Açıklama, Doküman, Olay, Statüsü,Öncelik alanları basit kural tanımı bölümünde anlatılan bilgiler ile aynıdır.
Şifre : Oluşturulan script kurala şifre konulmasını sağlayan alandır.
Script : Kural tanımının yapılacağı alandır. Burada tanımlanacak kuralın script dili VBScript (Vusial Basic Script)'tir.
Script ekranı açıldığında yukardaki gibi içi boş App nesnesini parametre olarak alan bir prosedür üretilir.
sub ProcessEvent(App) end sub

App Nesnesinin Metodları :
LDXObject : LDXCComApi nesnesinin login olunmuş bir örneğini verir.
Uobject : UObjects nesnesinin login olunmuş bir örneğini verir.
HeaderByName("alan_adı") : Verilen dokümanın alan_adı ile tanımlanan başlık bilgisini verir.
FieldAsString("alan_adı") : Verilen doküman alan_adı datasının bilgisini String olarak verir.
FieldAsInteger("alan_adı") : Verilen dokümanın alan_adı datasının bilgisini Integer olarak verir.
FieldAsFloat ("alan_adı") : Verilen dokümanın alan_adı datasının bilgisini Float olarak verir.
ModifyData ("alan_adı","değeri") : "alan adı" ile verilen data field bilgisinin değerini "değeri" ile değiştirir.
SaveData : Modify Data ile değeri değiştirilmiş alanlar XML'e kaydedilir. Eğer SaveData çağrılmazsa ModfiyData'daki değişiklikler XML'e yansıtılmaz.
RunQuery (Query, Quick) : XML üzerinde verilen query çalıştırılır ve XML'in şarta uygun olup olmadığına göre sonuç döndürülür. Quick
Parametresi eğer XML üzerinde işlem yapılacaksa true yapılmayacaksa daha hızlı çalışması için false verilmelidir.
FirstChild ("child_path") : Verilen path ilk child'a konumlanır. NextChild : Sonraki Child noda konumlanılır. Eğer yoksa false döndürür. SendToApproval "onay için mesaj" : Doküman Onaya gönderilir.
AppApprove : Doküman onaylanır. UndoApproval : Onay Geri Alınır. Save : Doküman kaydedilir.
Pack : Doküman paketlenir.
SendMail "to", "cc", "subject", "message" : Mail gönderir.

Cari Kodu Sevkiyat Adresi Alanına Getirme








sub ProcessEvent(App)
kod = App.Doc.FieldAsString("ARP_CODE") App.Doc.ModifyData "SHIPLOC_CODE", kod
App.Doc.SaveData end sub

Malzeme Kodu Alanına Sabit Veri Getirme







sub ProcessEvent(App) Kontrol=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION") while Kontrol
App.Doc.ModifyData "TRANSACTIONS.TRANSACTION.MASTER_CODE", "TEST"
Kontrol=App.Doc.NextChild
wend
msgbox "okey" App.Doc.SaveData end sub

Satır bilgilerine toplamda sabit alanlar hariç 4 farklı yeni alan getirilebilir


BuyersItemIdentificationITEM_SUPPLIERCODE



BuyersItemIdentification = Alıcı Kodu



Örnek Kural;
sub ProcessEvent(App) ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
kod = App.Doc.FieldAsString("BARCODE")
App.Doc.ModifyData "ITEM_SUPPLIERCODE", kod ok1=App.Doc.NextChild
wend App.Doc.SaveData end sub

e BrandNam Marka Adı (Kodu)





Örnek Kural;
sub ProcessEvent(App) ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
marka = App.Doc.FieldAsString("DESCRIPTION")
App.Doc.ModifyData "MASTER_MARKCODE", marka ok1=App.Doc.NextChild
wend App.Doc.SaveData end sub

n ManufacturersItemIdentificatio PROCEDUCER_CODE





Örnek Kural;
sub ProcessEvent(App) ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
URETICI = App.Doc.FieldAsString("DESCRIPTION")
App.Doc.ModifyData "PROCEDUCER_CODE", URETICI ok1=App.Doc.NextChild
wend App.Doc.SaveData end sub

n CommodityClassificatio MASTER_GROUPCODE





Örnek Kural;
sub ProcessEvent(App) ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
GRUP = App.Doc.FieldAsString("DESCRIPTION")
App.Doc.ModifyData "MASTER_GROUPCODE", GRUP ok1=App.Doc.NextChild
wend App.Doc.SaveData end sub

Malzeme Barkod Alanının UBL'e Getirilmesi





Örnek Kural;
sub ProcessEvent(App) ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
barkod = App.Doc.FieldAsString("TRANSACTIONS.TRANSACTION.BARCODE")
App.Doc.ModifyData "TRANSACTIONS.TRANSACTION.ITEM_SUPPLIERCODE", barkod
ok1=App.Doc.NextChild wend
App.Doc.SaveData end sub

Malzeme Barkod Alanının UBL'e Getirilmesi





Örnek Kural;
sub ProcessEvent(App) ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
barkod = App.Doc.FieldAsString("TRANSACTIONS.TRANSACTION.BARCODE")
App.Doc.ModifyData "TRANSACTIONS.TRANSACTION.ITEM_SUPPLIERCODE", barkod
ok1=App.Doc.NextChild wend
App.Doc.SaveData end sub

Fatura Açıklama Alanının Belli Karakterlerinin Ek Alana Eklenmesi





Örnek Kural;
sub ProcessEvent(App)
Aciklama = App.Doc.FieldAsString("NOTES1")
App.Doc.WriteStartElement "ADDITIONALDOCUMENTS/ADDITIONALDOCUMENT"
App.Doc.WriteElementString "ID", MID(Aciklama,3,1)
App.Doc.WriteElementString "ISSUEDATE", Year(Date) & "" & Right("0" & Month(Date), 2) & "" & Right("0" & Day(Date), 2)
App.Doc.WriteElementString "DOCUMENTTYPE", "TANIMLI" App.Doc.WriteEndElement
App.Doc.SaveData
end sub

Satır Açıklaması Silme



Örnek Kural;
sub ProcessEvent(App) rOk=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while rOk
App.Doc.RemoveChild "TRANSACTIONS.TRANSACTION.DESCRIPTION"
rOk=App.Doc.NextRoot wend
App.Doc.SaveData end sub

Not Alanlarının Tek Alanda Birleştirilmesi





Örnek Kural;
sub ProcessEvent(App)
notes1 = App.Doc.FieldAsString("NOTES1") notes2 = App.Doc.FieldAsString("NOTES2") notes3 = App.Doc.FieldAsString("NOTES3") notes4 = App.Doc.FieldAsString("NOTES4") iText = App.Doc.FieldAsString("ITEXT")
Notlar =notes1 + + notes2 + + notes3 + + notes4 + + iText App.Doc.ModifyData "NOTES1",Notlar
App.Doc.SaveData
end sub

Kimlik Alanların UBL'e Eklenmesi





Örnek Kural;
sub ProcessEvent(App)
Kod = App.Doc.FieldAsString("ARP_CODE")
App.Doc.ModifyData "ACCOUNTCUSTOMERPARTY/PARTY/PARTYIDENTIFICATION/ID", "EPDKNO" App.Doc.ModifyData "ACCOUNTCUSTOMERPARTY/PARTY/PARTYIDENTIFICATION/VALUE", Kod
App.Doc.SaveData end sub

SQL Connection - Malzeme İhracat Kategori Alanının Malzeme Açıklaması Alanına Getirilmesi

Örnek Kural;
sub ProcessEvent(App) strDBUser = "sa" strDBPass = "123456" strDBServer = "XXXXXX" strDBName = "TIGER"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" + strDBUser + ";Password=" + strDBPass + ";Initial Catalog=" + strDBName+ ";Data Source=" + strDBServer
conn.Open
Set rs = CreateObject("adodb.recordset") rs.ActiveConnection = conn
okay=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION") while okay
intItemRef = App.Doc.FieldAsInteger("TRANSACTIONS.TRANSACTION.MASTER_ORGLOGICALREF")
strItemRef = CStr(intItemRef)
strQuery = "SELECT EXPCTGNO FROM LG_001_ITEMS WHERE LOGICALREF=" + 'strItemRef
rs.Open strQuery, conn strIHRCODE = rs.Fields(0).value
App.Doc.ModifyData "TRANSACTIONS.TRANSACTION.MASTER_DEF", strIHRCODE
rs.MoveNext() ' birden fazla değer okunacaksa bir sonraki satıra konumlanılıyor
rs.close App.Doc.SaveData
okay =App.Doc.NextChild wend
conn.close App.Doc.SaveData
end sub

UQUERY_GETFLD Malzeme İhracat Kategori Alanının Malzeme Açıklaması Alanına Getirilmesi






Örnek Kural;
sub ProcessEvent(App) ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
Ref = App.Doc.FieldAsInteger("TRANSACTIONS.TRANSACTION.MASTER_ORGLOGICALREF") IhrKod = App.UQuery_GetFld(1, "EXPCTGNO", 25, 52, FALSE, "LOGICALREF="+ cstr(Ref))
App.Doc.ModifyData "TRANSACTIONS.TRANSACTION.MASTER_DEF", IhrKod
ok1=App.Doc.NextChild wend App.Doc.SaveData
end sub
ENTEGRATÖRLÜK SAYFASINDAN EK ALAN EKLEME

Ayarlar menüsünden Görsel Tasarım Ek Alanları







Ayarlar menüsünden Görsel Tasarım Ek Alanları





Alan için belirlenen Ad

XSLT kod yazılır
ENTEGRATÖR SAYFASINDAN EK ALAN SEÇİLMESİ
Eklenen Ek Alan Hangi Satıra Konulmak İsteniyorsa Fare ile Seçim Yapılıp, Açılan Üst Menüden Yeşil e-Fatura
Alanları Başlığı Seçilerek Açılan Menüden Kullanıcı Tanımlı Başlıktan Eklenen Ek Alan Seçilir
SATIRA GETİRİLEN ÖRNEK EK ALANLAR
Alıcı Kodu

<xsl:value-of select="./cac:Item/cac:BuyersItemIdentification/cbc:ID"/>

Satıcı Kodu



<xsl:value-of select="./cac:Item/cac:SellersItemIdentification/cbc:ID"/

Üretici Kodu



<xsl:value-of select="./cac:Item/cac:ManufacturersItemIdentification/cbc:ID"/
ADDİTİONALDOCUMENTREFERENCE

Faturada Malzeme Satırları Hariç Kullanılması Gereken Ek Alan ve Kuralı


Ek Alan
<xsl:for-each select="//n1:Invoice/cac:AdditionalDocumentReference">
<xsl:if test ="cbc:DocumentType = 'BELGENO'">
<xsl:value-of select="cbc:ID"/>
</xsl:if>
</xsl:for-each

Kural

sub ProcessEvent(App)
DETAY = App.Doc.FieldAsString("DOC_NUMBER")
App.Doc.WriteStartElement "ADDITIONALDOCUMENTS/ADDITIONALDOCUMENT"
App.Doc.WriteElementString "ID", DETAY
App.Doc.WriteElementString "ISSUEDATE", Year(Date) & "" & Right("0" & Month(Date), 2) & "" & Right("0" & Day(Date), 2)
App.Doc.WriteElementString "DOCUMENTTYPE", "BELGENO" App.Doc.WriteEndElement
App.Doc.SaveData
end sub

UBL İÇERİSİNDEN XSLT ÇIKARTMA

Fatura UBL'i içerisinde CTRL+F ile '' xslt '' kelimesi ile aratılır.

Application/xml''> Büyüktür (>) işaretinden sonra ilk karakter dahil satırın sonundaki küçüktür (<) işaretine kadar seçilip kopyalanır.

Kopyalanan metin aşağıdaki web sayfasına yapıştırılıp < DECODE > butonu ile XSLT elde edilmiş olur.

{+}https://www.base64decode.org/+