Nedir?

Şema verilerinin form datasına yüklenmesi amacıyla kullanılır.

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

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



NormalVarsayılan arama metodu
CreateRowIfNotExistsOnSchemaKayıt bulunamazsa boş bir kayıt eklenir
CreateNewRowŞemada yeni bir kayıt yaratılır

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. 

Detay bölümü olmayan durumlarda kullanım
  <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. 

Detay bölümü olmayan durumlarda kullanım 2
<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>
Detay bölümü olmayan durumlarda kullanım 2
<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>


Bakınız

GetSchemaData

SetVariable

Set

  • No labels