İçindekiler Tablosu
- Genel Bakış
- Sözlük
- Kurulum
- 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
Voodoo RPA Çapraz Tarayıcı Komut Dosyası (CBS)
CBS nedir?
BS veya CBS Object, Voodoo RPA ile işletim sisteminizde yüklü olan web tarayıcılarınız arasında bir iletişim modelidir. CBS, “Cross-Browser Scripting” ifadesinin kısaltmasıdır. RPA Geliştiricileri, Voodoo Studio kullanarak bir senaryo tasarlarken, komut dosyasını doğrudan tarayıcıya göndermek isteyebilirler.Bu komut dosyası, tarayıcının bildiği herhangi bir standart olabilir, yani saf Javascript veya jQuery. Voodoo Browser Uzantısı (Chrome veya Firefox) ahedef web uygulamanıza otomatik olarak jQuery API’sini enjekte eder. Bu nedenle, siteniz jQuery kullansın veya kullanmasın, RPA geliştiricileri, Voodoo Studio’da CBS Object Creator kullanarak CBS Nesnesini oluştururken doğrudan jQuery yazar.
Bu teknoloji Voodoo EDE Kütüphanesidir. Varsayılan olarak, Voodoo RPA 2.0 veya daha yüksek sürümleriyle birlikte gelir. Manuel olarak indirmek isterseniz buradan indirip EDE dosya referanslarına ekleyin.
Methods
Özellikler | Açıklamalar |
---|---|
int send(string pureBrowserScript) |
Saf komut dosyasını Tarayıcıya gönderin. Bu yöntem processID’yi döndürür. Not: Voodoo Tarayıcı Uzantıları, son jQuery API bir web sayfasına enjekte eder . Böylece doğrudan Jquery + Pure Javascript kodunu birlikte yazabilirsiniz. |
int sendObj(string nameOfCBSObject, Dictionary < string, string > keyValues = null) |
Tarayıcıya CBS OBject’i gönderin. CBS Nesnenizdeki dinamik Anahtarları ({:mykey}) değiştirmek için sözlük olarak ikinci bir parametre gönderebilirsiniz. Bu yöntem processID’yi döndürür. Not: CBS Nesnesi oluşturmak için Voodoo Studio’da CBS Nesne Oluşturucu aracını kullanabilirsiniz. |
Dictionary < int, string > check (int processID, int ms = 10000) |
İşlem sonucunu kontrol edin ve isteniyorsa tarayıcıdan bir yanıt alın. Not: Bu yöntem sözlük döndürür. İlk Anahtar sonuç kodudur ve İlk Değer, komut dosyanızda “var yanıt” anahtarını kullanarak tasarladıysanız yanıttır. Sonuç Kodları (İlk Anahtar): [-1: görev bulunamadı | 0: bekleyen görev | 1: görev çalışması devam ediyor veya işlem bu durumda takılı kaldığı için komut dosyası hatası oluştu | 2: görev tamamlandı] |
Örnek#1 (Pure Script)
namespace VoodooImplementation { using System; using VooDooCommonData.CommonInterface; using VooDooCommonData.InstanceData; using System.Collections.Generic; using System.Linq; using CBSLoader; public class ComputationEvaluator : System.MarshalByRefObject, IPlugInComputation { private bool result_; private VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager_; /// Default Constructor for class public ComputationEvaluator() { } public bool result { get { return result_; } } public virtual VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager { get { return planDataInstanceManager_; } set { planDataInstanceManager_ = value; } } /// Calculate public virtual void ExecuteComputation() { CBS CBSObj = new CBS(); int id = CBSObj.send("var name = $(\".izquierda:eq(0)\").text(); var age = $(\".izquierda:eq(2)\").text(); result = name + '|' + age;"); Dictionary<int, string> result = CBSObj.check(id, 5000); if(result.First().Key == 2) { string[] resultA = result.First().Value.Split('|'); planDataInstanceManager_.SetDataTableValueFromCurrentDataRowIndex(5, "name", resultA[0]); planDataInstanceManager_.SetDataTableValueFromCurrentDataRowIndex(5, "age", resultA[1]); result_ = true; } else { result_ = false; } } } }
Örnek #2 (CBS Object)
Bu örnekte CBS Nesnesi adı “myCBSObject” olarak tanımlanmıştır.
var name = $(".izquierda:eq({:nameIndex})").text(); var age = $(".izquierda:eq({:ageIndex})").text(); result = JSON.stringify([name, age]);
namespace VoodooImplementation { using System; using VooDooCommonData.CommonInterface; using VooDooCommonData.InstanceData; using Newtonsoft.Json; using System.Collections.Generic; using System.Linq; using CBSLoader; public class ComputationEvaluator : System.MarshalByRefObject, IPlugInComputation { private bool result_; private VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager_; /// Default Constructor for class public ComputationEvaluator() { } public bool result { get { return result_; } } public virtual VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager { get { return planDataInstanceManager_; } set { planDataInstanceManager_ = value; } } /// Calculate public virtual void ExecuteComputation() { CBS CBSObj = new CBS(); int id = CBSObj.sendObj("myCBSObject", new Dictionary<string, string> {{"nameIndex", "0"}, {"ageIndex", "2"}}); Dictionary<int, string> result = CBSObj.check(id, 5000); if(result.First().Key == 2) { List<string> person = JsonConvert.DeserializeObject<List<string>>(result.First().Value); planDataInstanceManager_.SetDataTableValueFromCurrentDataRowIndex(5, "name", person[0]); planDataInstanceManager_.SetDataTableValueFromCurrentDataRowIndex(5, "age", person[1]); result_ = true; } else { result_ = false; } } } }
Örnek #3 (Ascii Olmayan Karakterler İçin CBS Nesnesi)
Bu örnek, Emojiler gibi tarayıcıdan ascii olmayan karakterler içeren içeriği almakla ilgilidir.
CBS Nesnesi adı “myCBSObject” olarak tanımlanmıştır.
var topic = $(".feed-shared-update-v2__description-wrapper div div span span span").eq(0).text(); var like = $("div.social-details-social-activity > ul > li.social-details-social-counts__reactions.social-details-social-counts__item > button > span").eq(1).text(); result = JSON.stringify([encodeURIComponent(topic),like]);
namespace VoodooImplementation { using System; using VooDooCommonData.CommonInterface; using VooDooCommonData.InstanceData; using Newtonsoft.Json; using System.Collections.Generic; using System.Linq; using CBSLoader; public class ComputationEvaluator : System.MarshalByRefObject, IPlugInComputation { private bool result_; private VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager_; /// Default Constructor for class public ComputationEvaluator() { } public bool result { get { return result_; } } public virtual VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager { get { return planDataInstanceManager_; } set { planDataInstanceManager_ = value; } } /// Calculate public virtual void ExecuteComputation() { CBS CBSObj = new CBS(); int id = CBSObj.sendObj("myCBSObject", new Dictionary<string, string> {}); Dictionary<int, string> result = CBSObj.check(id, 5000); if(result.First().Key == 2) { List<string> post = JsonConvert.DeserializeObject<List<string>>(result.First().Value); planDataInstanceManager_.SetDataTableValueFromCurrentDataRowIndex(15, "topic", Uri.UnescapeDataString(post[0])); planDataInstanceManager_.SetDataTableValueFromCurrentDataRowIndex(15, "like", post[1]); result_ = true; } else { result_ = false; } } } }
Örnek #4 (Ascii Olmayan Karakterler ve Çok Boyutlu Veri Alma için CBS Nesnesi)
Bu örnek, ‘Emojiler’ gibi ascii olmayan karakterleri ve ‘Tablo’ gibi çok boyutlu verileri içeren içeriği almakla ilgilidir.
CBS Nesnesi adı “getCommend” olarak tanımlanmıştır.
comments = []; $("#tabPanelProComments ul").find('li').each(function(key){ comment = []; var current = $(this); comment[0] = current.find('.ratingCont span').attr('class'); comment[1] = encodeURIComponent(current.find('.commentTitle').text()); comment[2] = encodeURIComponent(current.find('p').text()); comments[key] = comment; }); result = JSON.stringify(comments); $('html, body').animate({scrollTop: $(".pagination").offset().top - 100}, 1000);
namespace VoodooImplementation { using System; using VooDooCommonData.CommonInterface; using VooDooCommonData.InstanceData; using System.IO; using System.Data; using Newtonsoft.Json; using System.Collections.Generic; using System.Linq; using CBSLoader; public class ComputationEvaluator : System.MarshalByRefObject, IPlugInComputation { private bool result_; private VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager_; /// Default Constructor for class public ComputationEvaluator() { } public bool result { get { return result_; } } public virtual VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager { get { return planDataInstanceManager_; } set { planDataInstanceManager_ = value; } } /// Calculate public virtual void ExecuteComputation() { CBS CBSObj = new CBS(); int id = CBSObj.sendObj("getComments", new Dictionary<string, string> {}); Dictionaryresult = CBSObj.check(id, 5000); if(result.First().Key == 2) { List > comments = JsonConvert.DeserializeObject<List<List<string>>>(result.First().Value); foreach(var comment in comments) { // Create Row Instance DataRow dr = planDataInstanceManager_.GetNewRow(16); dr[0] = comment[0]; dr[1] = Uri.UnescapeDataString(comment[1]); dr[2] = Uri.UnescapeDataString(comment[2]); dr[3] = "-"; planDataInstanceManager_.AddRowToDataTable(16, dr); } result_ = true; } else { result_ = false; } } } }
Örnek#5 (Eğer ulaşılan element ID ise ve içerisinde “.” varsa)
Bu tür bir hatada, ulaşılan element eğer ID ise ve içerisinde bir nokta varsa.t
- Örnek- 5
-
CBS ile ulaştığımız öğe kimlik numarasıysa ve içinde bir nokta varsa, bir hata alır.
-
Ulaşılan ID numarasında “.” varsa öncesinde “//” konmalıdır. (Örneğin //.)
Konu | Açıklama |
---|---|
Problem |
|
Çözüm |
|
var fırsatNo = $("#gsft_main").contents().find("#sys_display\\.incident\\.u_opportunity").val(123); var fırsatKalem = $("#gsft_main").contents().find("#sys_display\\.incident\\.u_line_item").val(123); var calisma = $("#gsft_main").contents().find("#incident\\.u_htmlcomments").val(123); var kapanma = $("#gsft_main").contents().find('#incident\\.close_code').val("Converted to CR"); result = JSON.stringify([fırsatNo, fırsatKalem, calisma, kapanma]);
namespace VoodooImplementation { using System; using VooDooCommonData.CommonInterface; using VooDooCommonData.InstanceData; using Newtonsoft.Json; using System.Collections.Generic; using System.Linq; using CBSLoader; public class ComputationEvaluator : System.MarshalByRefObject, IPlugInComputation { private bool result_; private VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager_; /// Default Constructor for class public ComputationEvaluator() { } public bool result { get { return result_; } } public virtual VooDooCommonData.InstanceData.PlanDataInstanceManager planDataInstanceManager { get { return planDataInstanceManager_; } set { planDataInstanceManager_ = value; } } /// Calculate public virtual void ExecuteComputation() { CBS CBSObj = new CBS(); int id = CBSObj.sendObj("myCBSObject", new Dictionary<string, string> {}); Dictionary<int, string> result = CBSObj.check(id, 5000); result_ = true; } else { result_ = false; } } } }