LOGO_ Connect Örnek Kural Tanımı İşlemleri

Blog Detay

LOGO_ Connect Örnek Kural Tanımı İşlemleri

LOGO_ Connect Örnek Kural Tanımı İşlemleri

<p>Doküman içeriği aşağıdaki gibidir:&nbsp;</p> <ul> <li><a href="https://docs.logo.com.tr/pages/viewpage.action?pageId=41170492#KuralTan%C4%B1m%C4%B1veEkAlanOlu%C5%9Fturma-e-Fatura%C4%B0%C5%9Flemleri%C4%B0%C3%A7inBasitKuralTan%C4%B1mlar%C4%B1">LogoConnect için Basit Kural İşlemleri</a></li> <li><a href="https://docs.logo.com.tr/pages/viewpage.action?pageId=41170492#KuralTan%C4%B1m%C4%B1veEkAlanOlu%C5%9Fturma-e-Fatura%C4%B0%C5%9Flemler%C4%B0%C3%A7inScriptKuralTan%C4%B1mlar%C4%B1">LogoConnect için Script Kural İşlemleri</a></li> <li><a href="https://docs.logo.com.tr/pages/viewpage.action?pageId=41170492#KuralTan%C4%B1m%C4%B1veEkAlanOlu%C5%9Fturma-Entegrat%C3%B6rl%C3%BCkSayfas%C4%B1ndanEkAlanEkleme">Görsel Tasarım İşlemleri</a></li> </ul> <p><br /> <br /> <strong>KURAL TANIMLARI</strong></p> <p>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.</p> <p>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<br /> standart script kodlama dilidir ve yapılmak istenen her türlü işlem ile ilgili örnek kodlar internette bulunabilir.</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddav33a069db114f7fdf5c5fffa430cc926e.png?version=1&amp;modificationDate=1574840116230&amp;api=v2" /><br /> <br /> 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.</p> <p>&nbsp;</p> <p>&nbsp;</p> <p><strong>e-Fatura İşlemleri İçin Basit Kural Tanımları</strong></p> <p>Kural tanımı türünün basit kural seçilmesinden sonra F9 menüsünden (sağ tık) &quot;Ekle&quot; işlemi ile kural tanımı eklenebilir. Bu durumda açılacak olan ekran aşağıdaki gibidir:</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddav57882fd687dc95c326cc761043f0db98.png?version=1&amp;modificationDate=1574840116377&amp;api=v2" /><br /> <br /> <br /> <strong>Basit Kural Seçenekleri</strong><br /> <br /> <strong>Kural</strong>&nbsp;<strong>No</strong>&nbsp;<strong>:</strong>&nbsp;Tanımlanan kuralın tanım numarasıdır.</p> <p><strong>Açıklaması</strong>&nbsp;<strong>:</strong>&nbsp;Kural tanımının adı ya da açıklayıcı bilgisidir.</p> <p><strong>Doküman :</strong>&nbsp;Kuralın hangi belge türü için uygulanacağı bu alanda belirlenir.</p> <p><br /> <br /> <strong>e-Dönüşüm Kural Tanımında Kullanılacak Doküman Tipleri&nbsp;</strong></p> <ul> <li>e-Fatura</li> <li>e-İrsaliye</li> <li>Uygulama Yanıtı</li> <li>e-Arşiv Fatura</li> <li>Sistem Yanıtı</li> </ul> <p>&nbsp;</p> <p><strong>Seçilebilecek Olay Türleri</strong></p> <p>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&#39;te XML olarak aktarılır. LogoConnect &quot;Onaylanmadan/Mühürlenmeden Önce&quot; işlemi sırasında XML&#39;si UBL&#39;ye çevirir. Kural tanımları bölümünde yapılan veri değişikliği işlemi sırasında XML&#39;deki veriler değişir ve UBL&#39;ye taşınır.</p> <p>Örneğin; e-Fatura üzerinde veri değiştirmek amaçlı kural tanımı yapılırken &quot;Onaylanmadan/Mühürlenmeden Önce&quot; olayı seçilmelidir. e- Fatura alınırken UBL-TR formatında gelir ve &quot;Geldiğinde&quot; 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 &quot;Geldiğinde&quot; olayı seçilmelidir.</p> <p><strong>Kural Tanımlarında Statüler&nbsp;</strong></p> <p>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 &quot;Pasif&quot; durumuna çekilmesi gerekir. Kuralın tekrar çalışması için içeriği &quot;Aktif&quot; durumuna çekilmelidir.</p> <p>Yapılan kural tanımının çalışıp çalışmayacağı sadece kural tanımı içerisindeki &quot;Statüsü&quot; alanına bağlı değildir. LogoConnect &ndash; Seçenekler &ndash; Genel Parametreler altındaki &quot;Kural Kullan&quot; parametresi de&nbsp;işaretli olmalıdır. Bu parametre işaretli değilken tanımlanan hiçbir kural çalışmaz.</p> <p>&nbsp;</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddavd7ec4c67e44d22ce7c40994155a9ed32.png?version=1&amp;modificationDate=1574840116843&amp;api=v2" /></p> <p>&nbsp;</p> <p><strong>Basit Kural Koşul İşlemi</strong></p> <p><strong>Koşul</strong><strong>:</strong>&nbsp;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.</p> <p><strong>Alanlar</strong><strong>:</strong>&nbsp;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.</p> <p>&quot;Header_Record&quot; bölümünün altında Connect Database&#39;inde bulunan LG_XXX_APPROVAL tablosunun kolonları bulunmaktadır.</p> <p><strong>HEADER_RECORD Alanları</strong>: 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&#39;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.<br /> <br /> <strong>Basit Kural İşlemler - Veri &Uuml;zerinden Değişiklik Yap</strong></p> <p>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.&nbsp;</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddav005d1bbd655aea7bf10b7b30f87f2585.png?version=1&amp;modificationDate=1574840117167&amp;api=v2" style="width:800px" /></p> <p><strong>Alan</strong>&nbsp;<strong>Adı</strong>&nbsp;<strong>:</strong>&nbsp;Hangi alan üzerinde değişiklik yapılacağının seçildiği bölümdür.</p> <p><strong>Değeri :</strong>&nbsp;Değişiklik yapılacak olan alana hangi değerin geleceğinin seçildiği bölümdür.</p> <p>Alan üzerindeki seçim alanı ile ilgili XML&#39;de tanımlı olan bütün alanlar arasından seçim yapılabilir veya &quot;Değeri&quot; alanına manüel giriş yapılabilir. Seçim ekranına HEADER_RECORD alanları gelmez.</p> <p>&nbsp;</p> <p><strong>Basit Kural Örnek</strong></p> <p>ÖRNEK 1: Giden e-Fatura Özel Kodu &quot;X&quot; &#39;e eşit ise DOC_NUMBER (Fatura Belge Numarası) alanına AUXIL_CODE (Fatura Özel Kod) alanınındaki bilgiyi getir.</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddav7995098e46e707d81f64f4ad45d3a8da.png?version=1&amp;modificationDate=1574840117997&amp;api=v2" /></p> <p>&nbsp;</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddava808fa67c7e5e841ddd3a82d866eb6cb.png?version=1&amp;modificationDate=1574840118087&amp;api=v2" /></p> <p><br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/worddav3bdcbc683bb6a611b32e5ea5522db0c3.png?version=1&amp;modificationDate=1574840117470&amp;api=v2" /></p> <p>SONUÇ:</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddavd47d0255c8abf49d57129b687336fabe.png?version=1&amp;modificationDate=1574840118833&amp;api=v2" />&nbsp;</p> <p>&nbsp;</p> <p><strong>Basit Kural İşlemler - e-Posta Gönder</strong></p> <p><strong>e-Posta</strong>&nbsp;<strong>Gönder</strong><strong>:</strong>&nbsp;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.</p> <ul> <li><strong>Subject</strong>&nbsp;<strong>:</strong>&nbsp;Mail konu başlığı.</li> <li><strong>Message :</strong>&nbsp;Mail içeriği</li> </ul> <p>Mail gönderiminin gerçekleştirilmesi için LogoConnectSYS / Araçlar / e-Posta Ayarları altından gönderimi yapacak mail adresi tanımlanmalıdır.</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddav4ecbc710943f46e68e32c7d474273e9e.png?version=1&amp;modificationDate=1574840119257&amp;api=v2" /></p> <p>&nbsp;</p> <p>Message bölümüne sağ tuş ile &quot;Alan Adları&quot; bölümünden XML&#39;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.</p> <p>&nbsp;</p> <p>ÖRNEK: Fatura numarasının &quot;GID&quot; ile başlaması durumunda bilgi maili atılması.</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddav26c64e20dc5b7a9e52322e0b5b16dc65.png?version=1&amp;modificationDate=1574840121863&amp;api=v2" style="width:750px" /><img src="https://docs.logo.com.tr/download/attachments/41170492/worddaveff6c1602b15ee6698f0493e628197da.png?version=1&amp;modificationDate=1574840122773&amp;api=v2" style="width:750px" /></p> <p><strong>Basit Kural İşlemler - Serbest Alanları Ekle</strong></p> <p><strong>Serbest</strong>&nbsp;<strong>Alan</strong>&nbsp;<strong>Ekle</strong><strong>:</strong>&nbsp;Kural ile XML ve UBL alanlarına &quot;AdditionalDocumentReference&quot; alanı script kurala ihtiyaç kalmadan otomatik eklenir.</p> <p><strong>ID</strong><strong>:</strong>&nbsp;XML&#39;de oluşacak olan &quot;AdditionalDocumentReference&quot; alanı altındaki &lt;ID&gt; alanının değerinin belirlendiği alandır.</p> <p><strong>DOCUMENTTYPE</strong><strong>:</strong>&nbsp;XML&#39;de oluşacak olan &quot;AdditionalDocumentReference&quot; alanı altındaki &lt;DOCUMENTTYPE &gt; alanının değerinin belirlendiği alandır.</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddavc07ff0c588b40f4646437ce35f733578.png?version=1&amp;modificationDate=1574840123727&amp;api=v2" /></p> <p>ÖRNEK : Fatura belge numarasının faturanın UBL&#39;ine taşınması.<br /> <br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/worddav5785421cf55eeb0b43d1826a51b1be9b.png?version=1&amp;modificationDate=1574840123927&amp;api=v2" /></p> <p>ERP&#39;de Belge No tanımı&nbsp;<br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/worddavd68759d2945dec06e4eb67406e099455.png?version=1&amp;modificationDate=1574840127113&amp;api=v2" /></p> <p>SONUÇ:</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddava5c1dc6395409f1c6b2e174bce94065c.png?version=1&amp;modificationDate=1574840127407&amp;api=v2" /></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p><strong>e-Fatura İşlemler İçin Script Kural Tanımları</strong></p> <p>Kural tanımı türünün script kural seçilmesinden sonra F9 menüsünden (sağ tık) &quot;Ekle&quot; işlemi ile kural tanımı eklenebilir. Bu durumda açılacak olan ekran aşağıdaki gibidir:</p> <p><img src="https://docs.logo.com.tr/download/attachments/41170492/worddav949101788448b13442c3a5e867cc09d1.png?version=1&amp;modificationDate=1574840127993&amp;api=v2" /><br /> <br /> 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.</p> <p><strong>Şifre :</strong>&nbsp;Oluşturulan script kurala şifre konulmasını sağlayan alandır.</p> <p><strong>Script</strong>&nbsp;<strong>:</strong>&nbsp;Kural tanımının yapılacağı alandır. Burada tanımlanacak kuralın script dili VBScript (Vusial Basic Script)&#39;tir.</p> <p>Script ekranı açıldığında yukardaki gibi içi boş App nesnesini parametre olarak alan bir prosedür üretilir.</p> <p>sub ProcessEvent(App) end sub<br /> <br /> <strong>App Nesnesinin Metodları :</strong></p> <p><strong>LDXObject :</strong>&nbsp;LDXCComApi nesnesinin login olunmuş bir örneğini verir.</p> <p><strong>Uobject :</strong>&nbsp;UObjects nesnesinin login olunmuş bir örneğini verir.</p> <p><strong>HeaderByName(&quot;alan_adı&quot;) :</strong>&nbsp;Verilen dokümanın alan_adı ile tanımlanan başlık bilgisini verir.</p> <p><strong>FieldAsString(&quot;alan_adı&quot;) :</strong>&nbsp;Verilen doküman alan_adı datasının bilgisini String olarak verir.</p> <p><strong>FieldAsInteger(&quot;alan_adı&quot;) :</strong>&nbsp;Verilen dokümanın alan_adı datasının bilgisini Integer olarak verir.</p> <p><strong>FieldAsFloat (&quot;alan_adı&quot;)</strong>&nbsp;: Verilen dokümanın alan_adı datasının bilgisini Float olarak verir.</p> <p><strong>ModifyData (&quot;alan_adı&quot;,&quot;değeri&quot;) :</strong>&nbsp;&quot;alan adı&quot; ile verilen data field bilgisinin değerini &quot;değeri&quot; ile değiştirir.</p> <p><strong>SaveData</strong>&nbsp;<strong>:</strong>&nbsp;Modify Data ile değeri değiştirilmiş alanlar XML&#39;e kaydedilir. Eğer SaveData çağrılmazsa ModfiyData&#39;daki değişiklikler XML&#39;e yansıtılmaz.</p> <p><strong>RunQuery (Query, Quick) :</strong>&nbsp;XML üzerinde verilen query çalıştırılır ve XML&#39;in şarta uygun olup olmadığına göre sonuç döndürülür. Quick<br /> Parametresi eğer XML üzerinde işlem yapılacaksa true yapılmayacaksa daha hızlı çalışması için false verilmelidir.</p> <p><strong>FirstChild (&quot;child_path&quot;) :</strong>&nbsp;Verilen path ilk child&#39;a konumlanır.&nbsp;<strong>NextChild</strong>&nbsp;<strong>:</strong>&nbsp;Sonraki Child noda konumlanılır. Eğer yoksa false döndürür.&nbsp;<strong>SendToApproval</strong>&nbsp;<strong>&quot;onay</strong>&nbsp;<strong>için</strong>&nbsp;<strong>mesaj&quot;</strong>&nbsp;<strong>:</strong>&nbsp;Doküman Onaya gönderilir.</p> <p><strong>AppApprove :</strong>&nbsp;Doküman onaylanır.&nbsp;<strong>UndoApproval :</strong>&nbsp;Onay Geri Alınır.&nbsp;<strong>Save :</strong>&nbsp;Doküman kaydedilir.</p> <p><strong>Pack :</strong>&nbsp;Doküman paketlenir.</p> <p><strong>SendMail &quot;to&quot;, &quot;cc&quot;, &quot;subject&quot;, &quot;message&quot; :</strong>&nbsp;Mail gönderir.<br /> &nbsp;</p> <h4>Cari Kodu Sevkiyat Adresi Alanına Getirme</h4> <p>sub ProcessEvent(App)<br /> &nbsp; &nbsp; kod = App.Doc.FieldAsString(&quot;ARP_CODE&quot;)</p> <p>&nbsp; &nbsp; App.Doc.ModifyData &quot;SHIPLOC_CODE&quot;, kod</p> <p>App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4>Malzeme Kodu Alanına Sabit Veri Getirme</h4> <p>sub ProcessEvent(App)</p> <p>&nbsp; &nbsp;Kontrol=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)</p> <p>&nbsp; &nbsp;while Kontrol<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;App.Doc.ModifyData</p> <p>&nbsp; &nbsp; &quot;TRANSACTIONS.TRANSACTION.MASTER_CODE&quot;, &quot;TEST&quot;</p> <p>&nbsp; &nbsp; Kontrol=App.Doc.NextChild<br /> &nbsp; &nbsp; wend<br /> &nbsp; &nbsp; msgbox &quot;okey&quot;</p> <p>App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <p><strong>Satır bilgilerine toplamda sabit alanlar hariç 4 farklı yeni alan getirilebilir.</strong></p> <p>BuyersItemIdentification -&gt; ITEM_SUPPLIERCODE<br /> <br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/worddav983c7de3c03a63c0f4debacaaed14f2c.png?version=1&amp;modificationDate=1574840130217&amp;api=v2" style="height:283px; width:810px" /><br /> &nbsp;</p> <h4>BuyersItemIdentification = Alıcı Kodu</h4> <p>Örnek Kural;<br /> sub ProcessEvent(App)</p> <p>&nbsp; &nbsp;ok1=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)<br /> &nbsp; &nbsp;while ok1<br /> &nbsp; &nbsp; &nbsp;kod = App.Doc.FieldAsString(&quot;BARCODE&quot;)<br /> &nbsp; &nbsp; &nbsp;App.Doc.ModifyData &quot;ITEM_SUPPLIERCODE&quot;, kod</p> <p>&nbsp; ok1=App.Doc.NextChild<br /> &nbsp; wend</p> <p>App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4><u>BrandName -&gt; Marka Adı (Kodu)</u></h4> <p><br /> Örnek Kural;<br /> sub ProcessEvent(App)</p> <p>&nbsp; &nbsp;ok1=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)<br /> &nbsp; &nbsp;while ok1<br /> &nbsp; &nbsp; &nbsp; marka = App.Doc.FieldAsString(&quot;DESCRIPTION&quot;)<br /> &nbsp; &nbsp; &nbsp; App.Doc.ModifyData &quot;MASTER_MARKCODE&quot;, marka</p> <p>&nbsp; &nbsp;ok1=App.Doc.NextChild<br /> &nbsp; &nbsp;wend</p> <p>App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4><u>ManufacturersItemIdentification -&gt; PROCEDUCER_CODE</u></h4> <p>Örnek Kural;</p> <p>sub ProcessEvent(App)</p> <p>&nbsp; &nbsp; ok1=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)<br /> &nbsp; &nbsp; while ok1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;URETICI = App.Doc.FieldAsString(&quot;DESCRIPTION&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;App.Doc.ModifyData &quot;PROCEDUCER_CODE&quot;, URETICI</p> <p>&nbsp; &nbsp; ok1=App.Doc.NextChild<br /> &nbsp; &nbsp; wend</p> <p>App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4><u>CommodityClassification -&gt;&nbsp;MASTER_GROUPCODE</u></h4> <p><br /> Örnek Kural;</p> <p>sub ProcessEvent(App)</p> <p>&nbsp; &nbsp; ok1=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)<br /> &nbsp; &nbsp; while ok1<br /> &nbsp; &nbsp; &nbsp; &nbsp; GRUP = App.Doc.FieldAsString(&quot;DESCRIPTION&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; App.Doc.ModifyData &quot;MASTER_GROUPCODE&quot;, GRUP</p> <p>&nbsp; &nbsp; ok1=App.Doc.NextChild<br /> &nbsp; &nbsp; wend</p> <p>App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4>Malzeme Barkod Alanının UBL&#39;ye&nbsp;Getirilmesi</h4> <p>Örnek Kural;<br /> sub ProcessEvent(App)</p> <p>&nbsp; &nbsp; ok1=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)<br /> &nbsp; &nbsp; while ok1<br /> &nbsp; &nbsp; &nbsp; &nbsp; barkod = App.Doc.FieldAsString(&quot;TRANSACTIONS.TRANSACTION.BARCODE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; App.Doc.ModifyData &quot;TRANSACTIONS.TRANSACTION.ITEM_SUPPLIERCODE&quot;, barkod<br /> &nbsp; &nbsp; ok1=App.Doc.NextChild</p> <p>&nbsp; &nbsp; wend<br /> &nbsp;App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4>Fatura Açıklama Alanının Belli Karakterlerinin Ek Alana Eklenmesi</h4> <p>Örnek Kural;</p> <p>sub ProcessEvent(App)<br /> &nbsp; &nbsp; &nbsp; Aciklama = App.Doc.FieldAsString(&quot;NOTES1&quot;)<br /> &nbsp; &nbsp; &nbsp; App.Doc.WriteStartElement &quot;ADDITIONALDOCUMENTS/ADDITIONALDOCUMENT&quot;<br /> &nbsp; &nbsp; &nbsp; App.Doc.WriteElementString &quot;ID&quot;, MID(Aciklama,3,1)<br /> &nbsp; &nbsp; &nbsp; App.Doc.WriteElementString &quot;ISSUEDATE&quot;, Year(Date) &amp; &quot;-&quot;&nbsp;&amp; Right(&quot;0&quot; &amp; Month(Date), 2), &amp; &quot;-&quot;&nbsp;&amp;&nbsp;Right(&quot;0&quot; &amp; Day(Date), 2)<br /> &nbsp; &nbsp; &nbsp; App.Doc.WriteElementString &quot;DOCUMENTTYPE&quot;, &quot;TANIMLI&quot;</p> <p>&nbsp; &nbsp; &nbsp; App.Doc.WriteEndElement<br /> &nbsp; &nbsp; &nbsp; App.Doc.SaveData<br /> end sub<br /> &nbsp;</p> <h4>Satır Açıklaması&nbsp;Silme</h4> <p>Örnek Kural;</p> <p>sub ProcessEvent(App)</p> <p>&nbsp; &nbsp; &nbsp; &nbsp; rOk=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; while rOk<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; App.Doc.RemoveChild &quot;TRANSACTIONS.TRANSACTION.DESCRIPTION&quot;<br /> &nbsp; &nbsp; &nbsp; &nbsp; rOk=App.Doc.NextRoot wend<br /> &nbsp;App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4>Not Alanlarının Tek Alanda Birleştirilmesi</h4> <p>Örnek Kural;</p> <p>sub ProcessEvent(App)<br /> &nbsp; &nbsp; &nbsp; notes1 = App.Doc.FieldAsString(&quot;NOTES1&quot;)</p> <p>&nbsp; &nbsp; &nbsp; notes2 = App.Doc.FieldAsString(&quot;NOTES2&quot;)</p> <p>&nbsp; &nbsp; &nbsp; notes3 = App.Doc.FieldAsString(&quot;NOTES3&quot;)</p> <p>&nbsp; &nbsp; &nbsp; notes4 = App.Doc.FieldAsString(&quot;NOTES4&quot;)</p> <p>&nbsp; &nbsp; &nbsp; iText = App.Doc.FieldAsString(&quot;ITEXT&quot;)<br /> &nbsp; &nbsp; &nbsp; Notlar =notes1 + + notes2 + + notes3 + + notes4 + + iText</p> <p>&nbsp; &nbsp; &nbsp; App.Doc.ModifyData &quot;NOTES1&quot;,Notlar<br /> &nbsp; App.Doc.SaveData<br /> end sub<br /> &nbsp;</p> <h4>Kimlik Alanların UBL&#39;e&nbsp;Eklenmesi</h4> <p>Örnek Kural;</p> <p>sub ProcessEvent(App)<br /> &nbsp; &nbsp; &nbsp; &nbsp;Kod = App.Doc.FieldAsString(&quot;ARP_CODE&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;App.Doc.ModifyData &quot;ACCOUNTCUSTOMERPARTY/PARTY/PARTYIDENTIFICATION/ID&quot;, &quot;EPDKNO&quot; App.Doc.ModifyData&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;ACCOUNTCUSTOMERPARTY/PARTY/PARTYIDENTIFICATION/VALUE&quot;, Kod<br /> &nbsp;App.Doc.SaveData</p> <p>end sub<br /> &nbsp;</p> <h4>SQL&nbsp;Connection&nbsp;- Malzeme&nbsp;İhracat&nbsp;Kategori&nbsp;Alanının&nbsp;Malzeme&nbsp;Açıklaması&nbsp;Alanına&nbsp;Getirilmesi</h4> <p>Örnek Kural;</p> <p>sub ProcessEvent(App)</p> <p>&nbsp; &nbsp; strDBUser = &quot;sa&quot;</p> <p>&nbsp; &nbsp; strDBPass = &quot;123456&quot;</p> <p>&nbsp; &nbsp; strDBServer = &quot;XXXXXX&quot;</p> <p>&nbsp; &nbsp; strDBName = &quot;TIGER&quot;<br /> &nbsp; &nbsp;Set conn = CreateObject(&quot;ADODB.Connection&quot;)<br /> &nbsp; &nbsp;conn.ConnectionString = &quot;Provider=SQLOLEDB.1;Persist Security Info=False;User ID=&quot; + strDBUser + &quot;;Password=&quot; + strDBPass + &quot;;Initial Catalog=&quot; + strDBName+ &quot;;Data Source=&quot; + strDBServer<br /> &nbsp; &nbsp;conn.Open<br /> &nbsp; &nbsp;Set rs = CreateObject(&quot;adodb.recordset&quot;)</p> <p>&nbsp; &nbsp; rs.ActiveConnection = conn<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; okay=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)</p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while okay<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; intItemRef = App.Doc.FieldAsInteger(&quot;TRANSACTIONS.TRANSACTION.MASTER_ORGLOGICALREF&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strItemRef = CStr(intItemRef)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strQuery = &quot;SELECT EXPCTGNO FROM LG_001_ITEMS WHERE LOGICALREF=&quot; + &#39;strItemRef<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rs.Open strQuery, conn</p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strIHRCODE = rs.Fields(0).value<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; App.Doc.ModifyData &quot;TRANSACTIONS.TRANSACTION.MASTER_DEF&quot;, strIHRCODE<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rs.MoveNext() &#39; birden fazla değer okunacaksa bir sonraki satıra konumlanılıyor<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rs.close</p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;App.Doc.SaveData<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;okay =App.Doc.NextChild</p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wend<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;conn.close</p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;App.Doc.SaveData<br /> end sub<br /> &nbsp;</p> <h4><u>UQUERY_GETFLD Malzeme İhracat Kategori Alanının Malzeme Açıklaması Alanına Getirilmesi</u></h4> <p>Örnek Kural;<br /> sub ProcessEvent(App)</p> <p>&nbsp; &nbsp; &nbsp; &nbsp;ok1=App.Doc.FirstChild(&quot;TRANSACTIONS.TRANSACTION&quot;)<br /> &nbsp; &nbsp; &nbsp; &nbsp;while ok1<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ref = App.Doc.FieldAsInteger(&quot;TRANSACTIONS.TRANSACTION.MASTER_ORGLOGICALREF&quot;)</p> <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IhrKod = App.UQuery_GetFld(1, &quot;EXPCTGNO&quot;, 25, 52, FALSE, &quot;LOGICALREF=&quot;+ cstr(Ref))<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;App.Doc.ModifyData &quot;TRANSACTIONS.TRANSACTION.MASTER_DEF&quot;, IhrKod<br /> &nbsp; &nbsp; &nbsp; &nbsp;ok1=App.Doc.NextChild</p> <p>&nbsp; &nbsp; &nbsp; &nbsp;wend</p> <p>&nbsp; &nbsp; &nbsp; &nbsp;App.Doc.SaveData<br /> end sub</p> <p>&nbsp;</p> <p>&nbsp;</p> <p><strong>Entegratörlük Sayfasından Ek Alan Ekleme</strong></p> <h4><u>Ayarlar menüsünden &ndash; Görsel Tasarım Ek Alanları</u></h4> <h4><img src="https://docs.logo.com.tr/download/attachments/41170492/worddavadd9c2b3c950054875c91c845749d878.png?version=1&amp;modificationDate=1574840130437&amp;api=v2" /><br /> <br /> <strong>Entegratörlük Sayfasından Ek Alan Tanımlama</strong><br /> <br /> <u><strong>Ayarlar</strong>&nbsp;<strong>menüsünden</strong>&nbsp;<strong>&ndash;</strong>&nbsp;<strong>Görsel</strong>&nbsp;<strong>Tasarım</strong>&nbsp;<strong>Ek</strong>&nbsp;<strong>Alanları</strong></u><br /> <br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/image2019-11-27_16-0-18.png?version=1&amp;modificationDate=1574859618803&amp;api=v2" />&nbsp;<br /> <br /> Entegratör Sayfasından Ek Alan Seçilmesi</h4> <h4><u><strong>Eklenen</strong>&nbsp;<strong>Ek Alan</strong>&nbsp;<strong>Hangi</strong>&nbsp;<strong>Satıra</strong>&nbsp;<strong>Konulmak</strong>&nbsp;<strong>İsteniyorsa</strong>&nbsp;<strong>Fare ile</strong>&nbsp;<strong>Seçim</strong>&nbsp;<strong>Yapılıp, Açılan</strong>&nbsp;<strong>&Uuml;st</strong>&nbsp;<strong>Menüden</strong>&nbsp;<strong>Yeşil e-Fatura&nbsp;</strong><strong>Alanları</strong>&nbsp;<strong>Başlığı</strong>&nbsp;<strong>Seçilerek</strong>&nbsp;<strong>Açılan</strong>&nbsp;<strong>Menüden</strong>&nbsp;<strong>Kullanıcı</strong>&nbsp;<strong>Tanımlı</strong>&nbsp;<strong>Başlıktan</strong>&nbsp;<strong>Eklenen</strong>&nbsp;<strong>Ek</strong>&nbsp;<strong>Alan</strong>&nbsp;<strong>Seçilir</strong></u></h4> <h4><br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/worddav729eebec9f39471922ef3dd577b7ce11.png?version=1&amp;modificationDate=1574840131663&amp;api=v2" style="height:423px; width:681px" /></h4> <h4><strong>Satıra Getirilen Örnek Ek Alanlar</strong></h4> <h4><strong>Alıcı Kodu</strong></h4> <p>&lt;xsl:value-of select=&quot;./cac:Item/cac:BuyersItemIdentification/cbc:ID&quot;/&gt;</p> <h4>Satıcı Kodu</h4> <p>&lt;xsl:value-of select=&quot;./cac:Item/cac:SellersItemIdentification/cbc:ID&quot;/</p> <h4>&Uuml;retici Kodu</h4> <p>&lt;xsl:value-of select=&quot;./cac:Item/cac:ManufacturersItemIdentification/cbc:ID&quot;/</p> <p>&nbsp;</p> <p><strong>AdditionalDocumentReference&nbsp;</strong></p> <p><strong>Faturada Malzeme Satırları Hariç Kullanılması Gereken Ek Alan ve Kuralı</strong></p> <p><strong>Ek Alan</strong></p> <p>&lt;xsl:for-each select=&quot;//n1:Invoice/cac:AdditionalDocumentReference&quot;&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;xsl:if test =&quot;cbc:DocumentType = &#39;BELGENO&#39;&quot;&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;xsl:value-of select=&quot;cbc:ID&quot;/&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/xsl:if&gt;<br /> &lt;/xsl:for-each</p> <h4>Kural</h4> <p>sub ProcessEvent(App)<br /> DETAY = App.Doc.FieldAsString(&quot;DOC_NUMBER&quot;)<br /> App.Doc.WriteStartElement &quot;ADDITIONALDOCUMENTS/ADDITIONALDOCUMENT&quot;<br /> App.Doc.WriteElementString &quot;ID&quot;, DETAY<br /> App.Doc.WriteElementString &quot;ISSUEDATE&quot;, Year(Date) &amp; &quot;-&quot;&nbsp;&amp; Right(&quot;0&quot; &amp; Month(Date), 2)&nbsp;&amp; &quot;-&quot;&nbsp;&amp; Right(&quot;0&quot; &amp; Day(Date), 2)<br /> App.Doc.WriteElementString &quot;DOCUMENTTYPE&quot;, &quot;BELGENO&quot;</p> <p>App.Doc.WriteEndElement<br /> App.Doc.SaveData<br /> end sub<br /> <br /> <strong>UBL İçerisinden XSLT Çıkartma</strong><br /> <br /> Fatura UBL&#39;i içerisinde CTRL+F ile &#39;&#39; xslt &#39;&#39; kelimesi ile aratılır.<br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/worddavbb3f9c7e3669d29bb227e36dab8f0fbd.png?version=1&amp;modificationDate=1574840131747&amp;api=v2" style="height:13px; width:900px" /><br /> Application/xml&#39;&#39;&gt;&nbsp; &nbsp; &nbsp; &nbsp;Büyüktür (&gt;) işaretinden sonra ilk karakter dahil satırın sonundaki küçüktür (&lt;) işaretine kadar seçilip kopyalanır.<br /> <img src="https://docs.logo.com.tr/download/attachments/41170492/worddave3d7281da9160eca91d67eab185402e1.png?version=1&amp;modificationDate=1574840131770&amp;api=v2" style="height:48px; width:565px" /><br /> Kopyalanan metin aşağıdaki web sayfasına yapıştırılıp&nbsp;<img src="https://docs.logo.com.tr/download/thumbnails/41170492/image2019-11-27_16-9-38.png?version=1&amp;modificationDate=1574860178857&amp;api=v2" style="height:22px" />butonu ile XSLT elde edilmiş olur.<br /> <br /> <a href="https://www.base64decode.org/" rel="nofollow">{+}</a><a href="https://www.base64decode.org/+" rel="nofollow">https://www.base64decode.org/+</a></p> <p>&nbsp;</p> <p>*Kaynak:<a href="https://docs.logo.com.tr/pages/viewpage.action?pageId=41170492">https://docs.logo.com.tr/pages/viewpage.action?pageId=41170492</a></p>

Bunu paylaş
LOD_Debug İşlemi
LOGO_GİB Durum Kodları
Yazar erydogan
1992 yılı İstanbul doğumluyum. "Beykent Üniversitesi/Bilgisayar Programcılığı" bölümü mezunuyum, 7 yılı aşkın süredir Logo firmasının üretmiş olduğu ERP ürünlerine teknik destek vermek üzere “Logo Erp Danışmanı/Sistem Uzmanı” olarak çalıştım. 2020 Şubat ayında yıllardır hayalini kurduğum "kendi işimi yapma" düşüncemi hayata geçirmek üzere DGN Yazılım firmasını kurdum. Ayrıca .Net C# (MVC) yazılım dilini kullanarak Web tabanlı/Mobil Uyumlu, Logo yazılım entegreli ya da tamamen bağımsız uygulamalar geliştiriyorum.

İlişkili Bloglar:

0 Yorum

Copyrights © 2020 All Rights Reserved by DGN Software.