İçindekiler Tablosu
- Genel Bakış
- Sözlük
- Kurulum
- VooDoo'ya Başlarken
- Senaryo Adımları
- Akış Kontrolü
- Biçimlendirme Ve Dönüştürme
- Dosya
- Doğrulama
- Döngüler
- E-Posta
- Ekran Verileri
- Excel
- FTP
- Gelişmiş
- Karşılaştırma
- Klasör
- Klavye
- Kopyalama Panosu
- Kullanıcı Arayüzü
- Kültür
- Matematik Kütüphanesi
- Metin
- Rastgele
- Regex
- Sistem
- Sürücü
- Tarih ve Zaman
- Uygulama
- Veri Kaynağı
- Windows Oturum Bilgileri
- Adım Geliştirme
- Gömülü Geliştirme Ortamı
- Voodoo Connect
- Genel Bakış
- Connect Bağlantı
- Connect Hüküm ve Koşulları
- Çapraz Tarayıcı Komut Dosyası (CBS)
- Chrome Uzantısı
- Firefox Uzantısı
- ML.NET ve VooDoo
- Bildirim Merkezi
- Bütünleşik Konsol
- Paketlenmiş Kütüphane
- Veri Tabanı
- Sorun Giderme
- 3ncü Parti Tool
İfade Adımı Geliştirme Klavuzu
VooDoo Studio senaryo geliştirme sırasında kullanılan bir çok adım içeren zengin bir altyapıya sahiptir. Arayüz, sistem, e-posta gibi çeşitli kategorilerde sınıflandırılabilen bu adımlar hızlı, rahat ve konforlu bir geliştirme ortamı sunarlar.
Bununla birlikte, bazen sistemde bulunmayan bir özelliğin süreçlerde kullanılması veya mevcut bir özelliğin özelleştirilmesi gerekebilir. Bu durumda VooDoo Studio’da bulunmayan bir adım, geliştirilerek kolay bir şekilde VooDoo tasarım arayüzüne entegre edilebilir ve süreçlerde robotlar tarafından kullanılabilir. Bu yetenek ifade adımı ile gerçekleştirilmektedir.
VooDoo Studio açıldığında kullanılabilecek ifade adımlarının xml formatında bir dosyadan okur. Bu dosyaya eklenen adımlar her adım gezginin deki arama özellikleri içerisinden hem de ifade adımı içerisinden erişilerek kullanılabilir. Bu aşamada bir adımı VooDoo’ya eklemek için gerçekleştirilmesi gerekenler aşağıda sıra ile anlatılmaktadır.
1. İfade XML Dosyasının Açıklaması
C:\Voodoo\Client\CodeBase\CodeSnippet dizini altında expression.xml dosyasında ifade adımları tutulmaktadır. İnternetten indirilen yeni ifadeler bu dosya üzerine yazıldığı için bu dosyaya yapılan eklemelerin daha sonra üzerine yazılması mümkündür. Dolayısı ile bu dosya üzerinde değişiklik yapmadan önce ve yaptıktan sonra yedek alınması önerilmektedir.
2. İfade Grubunun Eklenmesi
Eklenecek adım yeni veya mevcut bir gruba ait olabilir. Eğer yeni bir gruba aitse, öncelikle grubun dosyaya eklenmesi gerekir. Bunun için veriler aşağıdaki xml formatına uygun bir şekilde <ExpressionGroups> boğumu altına eklenir.
<DataScenarioExpressionGroup> <Name></Name> <LabelTr></LabelTr> <LabelEng></LabelEng> </DataScenarioExpressionGroup>
Buradaki alanlar aşağıdaki anlama gelmektedir.
Alan | Açıklama |
---|---|
Name | Grubun adı. Bu isim daha sonra ifade tanımlanırken grubunu belirtmek için kullanılır. |
LabelTr | Grup VooDoo Studio arayüzünde gösterilirken kullanılacak türkçe açıklamadır. |
LabelEng | Grup VooDoo Studio arayüzünde gösterilirken kullanılacak ingilizce açıklamadır. |
3. İfadenin Eklenmesi
İfade ile ilgili verilen aşağıdaki xml formatına uygun bir şekilde <ExpressionSnippets> boğumu altına eklenir.
<DataScenarioExpressionSnippet> <Name>...</Name> <GroupName>...</GroupName> <LabelTr>...</LabelTr> <LabelEng>...</LabelEng> <DevLanguageId>...</DevLanguageId> <LstParameters> <DataScenarioExpressionSnippetParameter> <Name>...</Name> <LabelTr>...</LabelTr> <LabelEng>...</LabelEng> <ControlType>...</ControlType> <BoundDataType>...</BoundDataType> <NameOfParametersToUpdateOnChange>...</NameOfParametersToUpdateOnChange> </DataScenarioExpressionSnippetParameter> </LstParameters> <UserCodeTemplate>...</UserCodeTemplate> </DataScenarioExpressionSnippet>
3.1. İfade Grubunun Eklenmesi
İfadenin genel bilgileri ifadenin adı, arayüzde gösterilecek isim vb. gibi bilgileri içermektedir.
Alan | Açıklama |
---|---|
Name | İfadenin adı. |
GroupName | İfadenin ait olduğu grubun “Name” özelliği. |
LabelTr | İfadenin türkçe arayüzde kullanılan adı. Bu isim aramalarda ve ifade adımında kullanıldığından, adımın yapacağı işlemi ayıt edici bir şekilde ifade etmelidir. “Dosya kopyalama” gibi. |
LabelEng | İfadenin ingilizce arayüzde kullanılan adı. |
DevLanguageId | İfadenin geliştirildiği programlama dili. Önceden tanımlı değerlerden oluşur. CSharp : C# için kullanılır. |
3.2. İfade İle Parametrelerin Eklenmesi
İfade çalıştırılırken parametre kullanıyor ise <LstParameters> nodu altında tanımlanır. Birden fazla parametre kullanılıyor ise alt alta eklenir.
Alan | Açıklama | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Name | Parametrenin adı. | ||||||||||||||||||
LabelTr | Parametrenin türkçe arayüzde kullanılan adı. Bu isim parametrenin girileceği kontrolün yanındaki etikette görüntülenir. | ||||||||||||||||||
LabelEng | Parametrenin ingilizce arayüzde kullanılan adı. | ||||||||||||||||||
ControlType | Parametrenin girişi sırasında kullanılacak kontrol tipi. Önceden tanımlı değerlerden oluşur.
|
||||||||||||||||||
BoundDataType | Aşağı açılan liste gibi veri bağlama özelliği olan bir kontrol tipi ControlType alanında seçildiğinde, listelenecek veriyi tanımlar. Önceden tanımlı değerlerden oluşur.
|
||||||||||||||||||
NameOfParametersToUpdateOnChange | Eğer ilgili parametre değiştiğinde başka bir parametrenin içeriğinin güncellenmesi gerekiyor ise bu alana o parametrenin adı yazılır. Örnek olarak veri kaynağı değiştiğinde veri alanı listesi güncellenerek o veri kaynağının veri alanları listelenir. |
3.3. İfade İle Kodun Eklenmesi
İfade çalıştırıldığında çalışması gereken kod <UserCodeTemplate> boğumu içerisine eklenir.
Kod içerisinde kullanıcının seçtiği bir parametre değerinin kullanılması gerekebilir. Bu durumda \$parametreadi.Value\$ parametrenin değerini, \$parametreadi.Text\$ metin değerini koda ekler.
<DataScenarioExpressionSnippet> <Name>FileCopy</Name> <GroupName>File</GroupName> <LabelTr>Kopyala</LabelTr> <LabelEng>Copy</LabelEng> <DevLanguageId>CSharp</DevLanguageId> <LstParameters> <DataScenarioExpressionSnippetParameter> <Name>P1_ParameterType</Name> <LabelTr>Kaynak Dosya Parametresi</LabelTr> <LabelEng>Source File Parameter</LabelEng> <ControlType>DropDownList</ControlType> <BoundDataType>InputParameterType_DS_St_SnPar</BoundDataType> <NameOfParametersToUpdateOnChange> P2_DataSource;P3_DataField;P4_StaticValue;P5_SnParValue </NameOfParametersToUpdateOnChange> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P2_DataSource</Name> <LabelTr>Veri Kaynağı</LabelTr> <LabelEng>Data Source</LabelEng> <ControlType>DropDownList</ControlType> <BoundDataType>DataSource</BoundDataType> <NameOfParametersToUpdateOnChange>P3_DataField</NameOfParametersToUpdateOnChange> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P3_DataField</Name> <LabelTr>Veri Alanı</LabelTr> <LabelEng>Data Field</LabelEng> <ControlType>DropDownList</ControlType> <BoundDataType>DataField</BoundDataType> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P4_StaticValue</Name> <LabelTr>Değer</LabelTr> <LabelEng>Value</LabelEng> <ControlType>SelectFileTextBox</ControlType> <BoundDataType>None</BoundDataType> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P5_SnParValue</Name> <LabelTr>Sen. Parametre</LabelTr> <LabelEng>Scn. Parameter</LabelEng> <ControlType>TextBox</ControlType> <BoundDataType>None</BoundDataType> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P6_ParameterType</Name> <LabelTr>Hedef Dosya Parametresi</LabelTr> <LabelEng>Destination File Parameter</LabelEng> <ControlType>DropDownList</ControlType> <BoundDataType>InputParameterType_DS_St_SnPar</BoundDataType> <NameOfParametersToUpdateOnChange> P7_DataSource;P8_DataField;P9_StaticValue;P10_SnParValue </NameOfParametersToUpdateOnChange> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P7_DataSource</Name> <LabelTr>Veri Kaynağı</LabelTr> <LabelEng>Data Source</LabelEng> <ControlType>DropDownList</ControlType> <BoundDataType>DataSource</BoundDataType> <NameOfParametersToUpdateOnChange>P8_DataField</NameOfParametersToUpdateOnChange> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P8_DataField</Name> <LabelTr>Veri Alanı</LabelTr> <LabelEng>Data Field</LabelEng> <ControlType>DropDownList</ControlType> <BoundDataType>DataField</BoundDataType> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P9_StaticValue</Name> <LabelTr>Değer</LabelTr> <LabelEng>Value</LabelEng> <ControlType>SelectFileTextBox</ControlType> <BoundDataType>None</BoundDataType> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P10_SnParValue</Name> <LabelTr>Sen. Parametre</LabelTr> <LabelEng>Scn. Parameter</LabelEng> <ControlType>TextBox</ControlType> <BoundDataType>None</BoundDataType> </DataScenarioExpressionSnippetParameter> <DataScenarioExpressionSnippetParameter> <Name>P11_Overwrite</Name> <LabelTr>Üstüne yaz</LabelTr> <LabelEng>Overwrite</LabelEng> <ControlType>DropDownList</ControlType> <BoundDataType>TrueFalse</BoundDataType> </DataScenarioExpressionSnippetParameter> </LstParameters> <UserCodeTemplate> string sourceFilePath = ""; if("\$P1_ParameterType.Value\$" == "DataSource") sourceFilePath = planDataInstanceManager.GetDataTableValueFromCurrentDataRowIndex(\$P2_DataSource.Value\$, "\$P3_DataField.Text\$").ToString(); else if("\$P1_ParameterType.Value\$" == "Constant") sourceFilePath = @"\$P4_StaticValue.Text\$"; else if("\$P1_ParameterType.Value\$" == "ScenarioParameter") result_ = planDataInstanceManager.GetParameter("\$P5_SnParValue.Text\$", ref sourceFilePath); if(!result_) throw new ArgumentException("Scenario source parameter does not exist : \$P5_SnParValue.Text\$ "); string destFilePath = ""; if("\$P6_ParameterType.Value\$" == "DataSource") destFilePath = planDataInstanceManager.GetDataTableValueFromCurrentDataRowIndex(\$P7_DataSource.Value\$, "\$P8_DataField.Text\$").ToString(); else if("\$P6_ParameterType.Value\$" == "Constant") destFilePath = @"\$P9_StaticValue.Text\$"; else if("\$P6_ParameterType.Value\$" == "ScenarioParameter") result_ = planDataInstanceManager.GetParameter("\$P10_SnParValue.Text\$", ref destFilePath); if(!result_) throw new ArgumentException("Scenario destination parameter does not exist : \$P10_SnParValue.Text\$ "); bool overwrite = false; if("\$P11_Overwrite.Value\$" == "1") overwrite = true; System.IO.File.Copy(sourceFilePath, destFilePath, overwrite); </UserCodeTemplate> </DataScenarioExpressionSnippet>