Tekrar eden kayıtları silme - VKN si aynı olan kayıtları siler.
<Group Description="Tekrar eden kayıtları sil"> <Delete Node="/*/Liste/Data/Template[VKN=preceding::VKN]" /> </Group>
Bir Node Set içerisinde distinct görevi görür - Tip Değeri İçin
/*/IK_Tanimlamalar/Data/Template[not(Tip=preceding::Tip)]/Tip
Süreç içerisinde listelenmiş birden çok satırdaki alanı tek bir satırda göstermek amacı ile ekleme yaparken aynı isimde olanları belirlemek için xpath contains özelliği kullanılabilir.
Contains ve string-length kullanımı
<ForEach Node="/*/FirmaBilgileri/Liste/Sablon[@guid!='{00000000-0000-0000-0000-000000000000}' ]"> <If> <Then> <Condition> <Not> <Value Culture="" Target="None">eval::contains(/*/FormBilgileri/FirmaAd,FirmaAdi)</Value> </Not> </Condition> <Perform> <Set Node="/*/FormBilgileri/FirmaAd"> <StringConcat> <Evaluate Target="None" Culture=""><![CDATA[/*/FormBilgileri/FirmaAd]]></Evaluate> <Value Culture="" Target="None">-</Value> <Value Culture="" Target="None">eval::./FirmaAdi</Value> </StringConcat> </Set> </Perform> </Then> </If> </ForEach> <SetVariable Name="$(firstLength)"> <Math Operator="Subtract"> <Value Culture="" Target="None">eval::string-length(/*/FormBilgileri/FirmaAd)</Value> <Value Culture="" Target="Integer">1</Value> </Math> </SetVariable> <Set Node="/*/FormBilgileri/FirmaAd"> <SubString StartIndex="1" Length="$(firstLength)"> <Evaluate Target="None" Culture=""><![CDATA[/*/FormBilgileri/FirmaAd]]></Evaluate> </SubString> </Set>
preceding-sibling kullanımı
<Script Name=""> <SetVariable Name="$(Bilgilendirilecekler)"> <Value Culture="" Target="None" /> </SetVariable> <ForEach Node="/*/processingInfo/workItem[not(completedBy = preceding-sibling::workItem/completedBy)]"> <SetVariable Name="$(Bilgilendirilecekler)"> <Value Culture="" Target="None">eval::concat('$(Bilgilendirilecekler)', completedBy, ';')</Value> </SetVariable> </ForEach> <SetVariable Name="$(length)"> <Math Operator="Subtract"> <Value Culture="" Target="None">eval::string-length('$(Bilgilendirilecekler)')</Value> <Value Culture="" Target="Integer">1</Value> </Math> </SetVariable> <SetVariable Name="$(Bilgilendirilecekler)"> <Value Culture="" Target="None">eval::substring('$(Bilgilendirilecekler)',1,'$(length)')</Value> </SetVariable> <Value Culture="" Target="None">$(Bilgilendirilecekler)</Value> </Script>
floor ve div ile bölme işlemi kullanımı
<Set Node="Sure/Gun"> <Evaluate Target="Decimal" Culture=""><![CDATA[floor(Sure/Saat div 24)]]></Evaluate> </Set>
Bölüm sonrası kalanı alma - mod
<Set Node="Sure/Saat"> <Evaluate Target="Decimal" Culture=""><![CDATA[Sure/Saat mod 24]]></Evaluate> </Set>
Lower-Case
<Evaluate Target="None" Culture=""><![CDATA[translate(/*/Baslik/Email,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')]]></Evaluate>
Upper-Case
<Evaluate Target="None" Culture=""><![CDATA[translate(./Kod,'abcdefghijklmnopqrstuvwxyzçÇğĞıİöÖşŞüÜÂ','ABCDEFGHIJKLMNOPQRSTUVWXYZCCGGIIOOSSUU ')]]></Evaluate>
String-join
<Value Culture="" Target="None">eval::string-join((/*/Tanimlamalar/Data/Template[(Kod='823' or Kod='824' or Kod='825' or Kod='826' or Kod='827' or Kod='828') and TalepDurumu='true' ]/Ad/text()),"-")</Value>
<SetVariable Name="$(Hold)"> <Value Culture="" Target="None">eval::substring-after('$(MailBody)','/index.html/form/')</Value> </SetVariable> <Set Node="workitemid"> <Value Culture="" Target="None">eval::substring('$(Hold)',1,36)</Value> </Set>