Trendlerdeki Yazı

Logo e-Fatura UBL XML Yapısında AdditionalDocumentReference ve XSLT Kullanımı

Logo e-Fatura UBL XML Yapısında AdditionalDocumentReference ve XSLT Kullanımı
logo efatura ubl xslt
0

Logo e-Fatura UBL XML Yapısında AdditionalDocumentReference ve XSLT Kullanımı

Logo ERP (Tiger, Go 3) üzerinden kesilen e-Faturalar, Gelir İdaresi Başkanlığı’nın (GİB) belirlediği standart UBL-TR (Universal Business Language) XML formatında oluşturulur. Ancak çoğu işletmenin fatura şablonunda standart UBL etiketlerinin dışında; özel cari kodları, üretici kodları, sözleşme numaraları veya firmanın kendi iç işleyişine ait özel belge numaraları gibi ekstra verilere ihtiyaç duyulur.

Bu rehberde, LogoConnect üzerinde kural yazarak faturanın arka planındaki UBL XML yapısına “AdditionalDocumentReference” (Ek Belge Referansı) düğümünün nasıl ekleneceğini, bu verilerin Logo Özel Entegratörlük Portalında XSLT ile tasarıma nasıl çağrılacağını ve arka plandaki SQL veritabanı ilişkilerini inceleyeceğiz.

1. LogoConnect ile UBL’e Serbest Alan (Ek Alan) Gömmek

Standart e-Fatura (Giden) işlemleri sırasında, faturanın UBL yapısına ekstra veri basmak için LogoConnect üzerinde “Kural Tanımlama” işlemi yapılır. Belge imzalanmadan önce devreye giren bu kural sayesinde ERP veritabanındaki (Örneğin INVOICE tablosu) özel alanlar XML’e taşınır.

LogoConnect’te bir kural oluştururken olay olarak “İmzalanmadan Önce” seçilmeli ve İşlem olarak “Serbest Alanları Ekle” adımı uygulanmalıdır.

Örneğin; bir faturaya Cari Kodu ve Belge Numarası eklemek için ID ve DOCUMENTTYPE tanımlamaları şu şekilde eşleştirilir:

  • ARP_CODE -> CARIKOD

  • DOC_NUMBER -> BELGENO

Kural çalıştıktan sonra LogoConnect’in ürettiği XML (UBL) dosyasının içerisine şu şekilde ekstra düğümler (<cac:AdditionalDocumentReference>) eklenir:

<cac:AdditionalDocumentReference>
    <cbc:ID>AS-003</cbc:ID>
    <cbc:IssueDate>2016-01-17</cbc:IssueDate>
    <cbc:DocumentType>CARIKOD</cbc:DocumentType>
</cac:AdditionalDocumentReference>
<cac:AdditionalDocumentReference>
    <cbc:ID>000000000000000001</cbc:ID>
    <cbc:IssueDate>2016-01-17</cbc:IssueDate>
    <cbc:DocumentType>BELGENO</cbc:DocumentType>
</cac:AdditionalDocumentReference>

2. Görsel Tasarım Ek Alanlarında XSLT Kullanımı

Logo Özel Entegratörlük Portalında e-Fatura ve e-Arşiv menüleri altındaki standart Tasarım Aracında bulunmayan özel alanlar için “Araçlar” menüsü altındaki “Görsel Tasarım Ek Alanları” bölümüne XSLT kod bloğu yazılması gerekmektedir. Tanımlanan bu alanlar, daha sonra Tasarım Aracı içerisinden seçilerek fatura şablonuna getirilir.

AdditionalDocumentReference Verisini Tasarıma Çekmek

UBL XML içerisinde birden fazla AdditionalDocumentReference alanı olabileceği için, doğrudan etiketi çağırmak yerine XSLT içerisinde <xsl:if> kısıtı kullanılarak ilgili DocumentType kontrol edilmelidir.

Aşağıdaki XSLT kodlarını ek alan olarak tanımlayabilirsiniz:

Cari Kodu Getirmek İçin:

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

Belge Numarasını Getirmek İçin:

<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>

Ekstra İpucu: Birden Fazla İrsaliye Numarasını Yan Yana Yazdırmak

Sık karşılaşılan bir diğer senaryo, faturaya bağlı birden fazla irsaliyenin tasarımda alt alta veya yan yana gösterilmesidir. Tasarım portalındaki Görsel Tasarım Ek Alanlarına aşağıdaki döngüyü ekleyerek UBL’deki DespatchDocumentReference verilerini listeleyebilirsiniz:

<b>İrsaliye Numaraları</b><br />
<xsl:for-each select="//n1:Invoice/cac:DespatchDocumentReference">
    <xsl:value-of select="cbc:ID"/>
    <text> - </text>
</xsl:for-each>

3. UBL Etiketlerinin SQL Veritabanı ve C# API Karşılıkları

Yazılım geliştiriciler (özellikle .NET platformunda) veya dışarıdan Logo REST API / L-Objects kullanan uzmanlar UBL verilerini manuel oluştururken "app.doc.writestartelement" "additionaldocuments/additionaldocument" gibi C# XML Serialization metodlarına ihtiyaç duyarlar.

Bu verilerin Logo ERP veritabanındaki (SQL Server) karşılıkları şunlardır:

  • "additionaldocuments/additionaldocument" "additionaldocumentreference": XML’deki bu etiketler, genellikle LG_XXX_01_INVOICE (Fatura Başlıkları) tablosundaki SPECODE (Özel Kod), DOCODE (Belge No) veya CYPHCODE (Yetki Kodu) alanlarından beslenir. Ayrıca faturaya bağlanan Logo döküman ekleri veritabanında bu referanslarla saklanır.

  • cac:DespatchDocumentReference (İrsaliye Referansı): Veritabanında LG_XXX_01_STFICHE (İrsaliyeler) tablosuna denk gelir. Bir faturanın altındaki irsaliyeleri bulmak için STFICHE.INVOICEREF = INVOICE.LOGICALREF SQL Join işlemi yapılmalıdır.

  • cac:PaymentMeans/cbc:PaymentDueDate (Ödeme Planı Tarihi): Logo veritabanında LG_XXX_PAYPLANS tablosuna denk düşer.

  • cac:SellersItemIdentification (Satıcı Kodu): Malzeme kalemleri (InvoiceLine) içindeki bu etiket, LG_XXX_ITEMS tablosundaki malzeme kodu (CODE) veya üretici kodunu temsil eder.

Özel ERP entegrasyonlarında "app.doc.writestartelement" komutuyla faturanın UBL XML’i manuel oluşturulurken (örneğin e-fatura kontörü harcamamak veya farklı bir entegratör kullanmak için), yukarıda paylaştığımız SQL tablolarından SELECT atılarak ilgili verilerin AdditionalDocumentReference düğümlerine yazdırılması veri bütünlüğü açısından kritik bir adımdır.

Bu yöntemlerle, standart e-fatura görünümünün dışına çıkarak işletmenize veya müşterinize tam uyumlu, esnek ve kurumsal kimliği yansıtan teknik fatura tasarımları oluşturabilirsiniz. XSLT kuralları veya SQL veritabanı eşleştirmeleri hakkında karşılaştığınız hataları yorumlarda belirtebilirsiniz.

Bu Yazıya Tepkiniz Ne Oldu?
  • be_endim
    Beğendim
    0
  • alk_l_yorum
    Alkışlıyorum
    0
  • e_lendim
    Eğlendim
    0
  • d_nceliyim
    Düşünceliyim
    0
  • _rendim
    İğrendim
    0
  • _z_ld_m
    Üzüldüm
    0
  • _ok_k_zd_m
    Çok Kızdım
    0
2685 Puan

Logo destek, logo go3, logo tiger3, logo muhasebe, logo go3 eğitim, logo tiger eğitim, logo connect, logo kural yazma, logo connect kural, logo sql, logo raporlama, logo rapor tasarımı, logo sqlinfo

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir