Nedir?
Şema verilerinin form datasına yüklenmesi amacıyla kullanılır.
<FillXmlWithSchema Name="ShemaTabloName" VariablePrefix="" Into="" TemplatePath="" MasterDetailTemplatePath="" ClearDestinationNodes="True" DestinationNodeNameToClear="" SearchMethodToUse="Normal" LanguageId="" Repository="" LogQuery="False"> <Perform /> <Filter /> <Columns /> <Order> <Order Type="Ascending"> <ListColumn Name="Name" DataType="System.String, mscorlib" /> </Order> </Order> </FillXmlWithSchema>
Özellikler
Adı | Açıklama | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Name | Verilerin okunacağı şema tablo adıdır | |||||||||
VariablePrefix | Her kolon adına eklenecek ön değişken adı | |||||||||
Into | Tablodan okunan verilerin yazılacağı node adresidir | |||||||||
TemplatePath | Şablon olarak kullanılacak node adresidir | |||||||||
MasterDetailTemplatePath | Okunan kayıtların form verisine liste olarak yazılacağı node adresidir | |||||||||
ClearDestinationNodes | Forma yazma sırasında mevcut form verilerinin silinip silinmeyeceğini belirtir. "True" ve "False" değerlerinin alır | |||||||||
DestinationNodeNameToClear | ClearDestinationNodes eğer dolu ise, formda silinecek olan node değeridir. | |||||||||
SearchMethodToUse | Arama metodunu belirler.
| |||||||||
LanguageId | Şema verileri okunurken tercih edilen dil değişkeni | |||||||||
Repository | Repository adıdır | |||||||||
Perform | Verilerin okunma işleminde gerçekleştirilecek alt işlemlerin tanımları yer alır | |||||||||
Columns | Kolon verilerinin değişkenler ve node alanları ile eşleştirmelerinin tanımları yer alır | |||||||||
Order | Verilerin okunma işleminde sıralama kolonları ve sıralama adlarını belirtilir |
Örnekler
Bu örnekte DataDefinition tablosundan veriler DataDefinition ismindeki XML Node üzerinde getirilmektedir.
- DataDefinition XML Node altında yer alan ProductCode Node bilgisi veri tabanından getirilmiş olan ProductNo bilgisi ile update edilmektedir.
- Veriler getirilirken XML Node içerisindeki değerlere göre filtreleme yapılmaktadır. PromotionType bunun için iyi bir örnektir.
- <Column Node="PromotionType/@display" Name="PromotionType.Name" /> ifadesi ile DataDefinition tablosu ile ilişkili olan PromotionType tablosundan "Name" okunmakta ve ilgili node alanına yazılması sağlanmaktadır.
- ClearDestinationNodes="True" ile her çalıştırmada xmlnode bilgilerinin temizlenmesi gerektiği ifade edilmektedir.
- <OrderColumn Name="ProductNo.Description" DataType="System.String, mscorlib" /> ile ürün tanımlarına göre sıralama yapılması gerektiği belirtilmektedir.
<Order Type="Ascending"> ile sıralamanın alfabetik artan olması gerektiği belirtilmiştir.
<FillXmlWithSchema Name="DataDefinition" VariablePrefix="" Into="" TemplatePath="" MasterDetailTemplatePath="DataDefinition" ClearDestinationNodes="True" DestinationNodeNameToClear="" SearchMethodToUse="Normal" LanguageId="" Repository=""> <Perform> <Set Node="ProductCode"> <Value Culture="" Target="None">eval::./ProductNo</Value> </Set> </Perform> <Filter> <Criteria Name="PromotionType"> <Evaluate Target="None" Culture=""><![CDATA[PromoData/PromotionType]]></Evaluate> </Criteria> <Criteria Name="Status"> <Value Culture="" Target="None">A</Value> </Criteria> </Filter> <Columns> <Column Node="Id" Name="Id" /> <Column Node="ProductHierLevel1" Name="ProductHierLevel1" /> <Column Node="ProductNo" Name="ProductNo.ProductNo" /> <Column Node="ProductNo/@display" Name="ProductNo.Description" /> <Column Node="PromotionType" Name="PromotionType.Code" /> <Column Node="PromotionType/@display" Name="PromotionType.Name" /> <Column Node="PromotionRate" Name="PromotionRate" /> <Column Node="ProductKDV" Name="ProductNo.KDV" /> <Column Node="Condition1" Name="Condition1" /> <Column Node="Condition1/@display" Name="Condition1.Description" /> </Columns> <Order> <Order Type="Ascending"> <OrderColumn Name="ProductNo.Description" DataType="System.String, mscorlib" /> </Order> </Order> </FillXmlWithSchema>
Aşağıdaki örnekte, BTProjeBildirimRolleri tablosunda bulunan değerler $(CompanyCode) değerine göre filtrelenerek çekilir ve ilk gelen satır xml deki alanlara set edilir.
<FillXmlWithSchema Name="BTProjeBildirimRolleri" VariablePrefix="" Into="" TemplatePath="." MasterDetailTemplatePath="" ClearDestinationNodes="True" DestinationNodeNameToClear="" SearchMethodToUse="Normal" LanguageId="" Repository=""> <Perform /> <Filter> <Criteria Name="Company"> <Value Culture="" Target="None">$(CompanyCode)</Value> </Criteria> </Filter> <Columns> <Column Node="/*/BTProjeBildirimRolleri/Company" Name="Company" /> <Column Node="/*/BTProjeBildirimRolleri/Company/@display" Name="Company.Name" /> <Column Node="/*/BTProjeBildirimRolleri/ITGroup" Name="ITGroup" /> <Column Node="/*/BTProjeBildirimRolleri/ITGroup/@display" Name="ITGroup.Name" /> <Column Node="/*/BTProjeBildirimRolleri/ITDirector" Name="ITDirector" /> <Column Node="/*/BTProjeBildirimRolleri/ITDirector/@display" Name="ITDirector.Person.DisplayName" /> </Columns> <Order /> </FillXmlWithSchema>
Tek değer alma veya alınan değerler içerisinde işlemler yaparak Set işlemi yapmak için aşağıdaki örneği kullanabiliriz. Tablo içerisindeki değerlere TabloIsmı:AlanIsmi ile perform içerisinde ulaaşbiliyoruz.
<FillXmlWithSchema Name="AracTalepRaporu" VariablePrefix="" Into="" TemplatePath="" MasterDetailTemplatePath="" ClearDestinationNodes="True" DestinationNodeNameToClear="" SearchMethodToUse="Normal" LanguageId="" Repository=""> <Perform> <Set Node="Personel/Sayac"> <Value Culture="" Target="None">$(AracTalepRaporu:Sayac)</Value> </Set> </Perform> <Filter> <Criteria Name="Id"> <Value Culture="" Target="None">$(InstanceId)</Value> </Criteria> </Filter> <Columns> <Column Node="" Name="Id" /> <Column Node="" Name="Sayac" /> </Columns> <Order /> </FillXmlWithSchema>
<FillXmlWithSchema Name="IperiyodikOlayKayıtlari" VariablePrefix="" Into="" TemplatePath="" MasterDetailTemplatePath="/*/Ipek_PeriyodikOlayKayıtlari" ClearDestinationNodes="True" DestinationNodeNameToClear="" SearchMethodToUse="Normal" LanguageId="" Repository=""> <Perform /> <Filter> <Criteria Name="BirSonrakiCalistirilmaTar" Comparison="GreaterOrEqual"> <Value Target="Date">Now</Value> </Criteria> <Criteria Name="Aktif"> <Value Target="Bool">True</Value> </Criteria> <Criteria Name="Tarih" Comparison="LessOrEqual"> <Value Target="Date">Now</Value> </Criteria> <Criteria Name="BirSonrakiCalistirilmaTar" Comparison="Less"> <DateTimeAdd Part="Day"> <Value Target="Date">Now</Value> <Value Target="Integer">1</Value> </DateTimeAdd> </Criteria> <Criteria Name="BitisTar" Comparison="Greater"> <Value Target="Date">Now</Value> </Criteria> </Filter> <Columns /> <Order /> </FillXmlWithSchema>