Page History
LogoConnect Script ve basit kural tanımlama hakkında ayrıntılı bilgiye bu dokümandan ulaşabilirsiniz.
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ı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.
Anchor e-Fatura İşlemleri İçin Basit Kural Tanımları e-Fatura İşlemleri İçin Basit Kural Tanımları
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.
...
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 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 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.
Warning |
---|
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.
...
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 ü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 manüel giriş yapılabilir. Seçim ekranına HEADER_RECORD alanları gelmez.
Basit 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Ç:
Basit 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.
...
ÖRNEK: Fatura numarasının "GID" ile başlaması durumunda bilgi maili atılması.
Basit Kural İşlemler - Serbest Alanları Ekle
Serbest Alan Ekle: Kural ile XML ve UBL alanlarına "AdditionalDocumentReference" alanı script kurala ihtiyaç kalmadan otomatik eklenir.
...
ERP'de Belge No tanımı
SONUÇ:
Anchor e-Fatura İşlemler İçin Script Kural Tanımları e-Fatura İşlemler İçin Script Kural Tanımları
e-Fatura İşlemler İçin Script Kural Tanımları
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
Kontrol=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION") while
while Kontrol
App 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.
BuyersItemIdentificationITEMBuyersItemIdentification -> ITEM_SUPPLIERCODE
BuyersItemIdentification = Alıcı Kodu
Örnek Kural;
sub ProcessEvent(App) ok1
ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while while ok1
kod kod = App.Doc.FieldAsString("BARCODE")
App App.Doc.ModifyData "ITEM_SUPPLIERCODE", kod
ok1=App.Doc.NextChild
wend
App.Doc.SaveData
end sub
...
BrandName -> Marka Adı (Kodu)
Örnek Kural;
sub ProcessEvent(App) ok1
ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while while ok1
marka = App.Doc.FieldAsString("DESCRIPTION")
App.Doc.ModifyData "MASTER_MARKCODE", marka ok1
ok1=App.Doc.NextChild
wend wend
App.Doc.SaveData
end sub
...
ManufacturersItemIdentification -> PROCEDUCER_CODE
Örnek Kural;
sub ProcessEvent(App)
ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while ok1
URETICI URETICI = App.Doc.FieldAsString("DESCRIPTION")
App App.Doc.ModifyData "PROCEDUCER_CODE", URETICI
ok1=App.Doc.NextChild
wend
App.Doc.SaveData
end sub
...
...
CommodityClassification -> 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'
...
ye 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 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 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 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 Kod = App.Doc.FieldAsString("ARP_CODE")
App App.Doc.ModifyData "ACCOUNTCUSTOMERPARTY/PARTY/PARTYIDENTIFICATION/ID", "EPDKNO" App.Doc.ModifyData ModifyData "ACCOUNTCUSTOMERPARTY/PARTY/PARTYIDENTIFICATION/VALUE", Kod
App 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 Set conn = CreateObject("ADODB.Connection")
conn conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" + strDBUser + ";Password=" + strDBPass + ";Initial Catalog=" + strDBName+ ";Data Source=" + strDBServer
conn conn.Open
Set 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 rs.MoveNext() ' birden fazla değer okunacaksa bir sonraki satıra konumlanılıyor
rs.close App rs.close
App.Doc.SaveData
okay okay =App.Doc.NextChild wend
conn.close App
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
ok1=App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
while while ok1
Ref = App.Doc.FieldAsInteger("TRANSACTIONS.TRANSACTION.MASTER_ORGLOGICALREF") IhrKod
IhrKod = App.UQuery_GetFld(1, "EXPCTGNO", 25, 52, FALSE, "LOGICALREF="+ cstr(Ref))
App App.Doc.ModifyData "TRANSACTIONS.TRANSACTION.MASTER_DEF", IhrKod
ok1 ok1=App.Doc.NextChild wend App
wend
App.Doc.SaveData
end subENTEGRATÖRLÜK SAYFASINDAN EK ALAN EKLEME
Anchor | ||||
---|---|---|---|---|
|
Entegratörlük Sayfasından Ek Alan Ekleme
Ayarlar menüsünden – Görsel Tasarım Ek Alanları
Entegratörlük Sayfasından Ek Alan Tanımlama
Ayarlar menüsünden – Görsel Tasarım Ek Alanları
...
Entegratör Sayfasından Ek Alan Seçilmesi
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
...
Satıra Getirilen Örnek Ek Alanlar
Alıcı Kodu
<xsl:value-of select="./cac:Item/cac:BuyersItemIdentification/cbc:ID"/>
...
<xsl:value-of select="./cac:Item/cac:ManufacturersItemIdentification/cbc:ID"/ADDİTİONALDOCUMENTREFERENCE
AdditionalDocumentReference
Faturada Malzeme Satırları Hariç Kullanılması Gereken Ek Alan ve Kuralı
Ek Alan
<xsl:for-each select="//n1:Invoice/cac:AdditionalDocumentReference">
<xsl <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 İçerisinden XSLT ÇIKARTMAÇıkartma
Fatura UBL'i içerisinde CTRL+F ile '' xslt '' kelimesi ile aratılır.
Application/xml''> Büyüktür 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/+ Anchor