Kısa Tanım:
 
Eftatura UBL eşleştirmesi ile birden fazla veri alınması gerektiğinde bir tabloya almak yerine direk spesifik değerleri getirme işlemleridir.
 
Açıklama:
 
Efatura ile UBL çekildikten sonra UBLDegiskeni.GetXml() methodu ile mevcut xml' ine ulaşabiliyoruz. Bu xml' de aşağıdaki gibi bir kodlama aktivitesi ise xml' den istediğimiz verileri çekebiliyoruz. Bazı durumlarda xml içerisinde n tane veri olup sadece o verilerden 1 tanesine ulaşım sağlanması istenebilir. Bu durumda UBL eşleştirme aktivitesi ile bir tabloya set edebilirsiniz. Bu şekilde yaptığınızda bir de tabloda satırlarında hangi veriyi istiyorsanız tekrardan bir kod yazmanız gerekmektedir. Bunun yerine aşağıdaki kod ile daha kolay ve kısa bir şekilde UBL xml' inden spesifik bir satırındaki veriyi alabilirsiniz. Aşağıdaki örnekte efatura ubl xml' indeki AccountingSupplierParty içerisinde n tane gelen yapıda sadece VKN şema id' si olanın değerini çekebiliyoruz.

Kod Örneği:

System.Xml.XmlDocument xml = new System.Xml.XmlDocument();

System.IO.StringReader sr = new System.IO.StringReader(UblInvoice.GetXml());

xml.Load(sr);

var nsmgr = new System.Xml.XmlNamespaceManager(xml.NameTable);

nsmgr.AddNamespace("cac""urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2");

nsmgr.AddNamespace("cbc""urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2");

string gelenDeger =

xml.SelectSingleNode("//cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='VKN']", nsmgr).InnerText;



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.


Efatura UBL Xmlinden kod ile veri çekme işlemi.nxm