Kullanıcı Odaklı Parametreleri Tableau Gömülü Kontrol Panellerine Entegre Etme
Tableau Embedding API'sini kullanarak Tableau kontrol panellerini web uygulamalarına yerleştirmek, geliştiricilerin dinamik, veri odaklı çözümler sunmasına olanak tanır. Kullanıcı deneyimini geliştirmenin güçlü bir yolu, açılır menüler aracılığıyla kontrol paneli parametreleriyle etkileşimi etkinleştirmektir.
Bu örnekte zorluk, Tableau adı verilen belirli bir parametreyi yönetmek için bir açılır menüyü yapılandırmakta yatmaktadır. "Moeda". Entegre edilmesi daha kolay olan filtrelerin aksine, parametrelerin JavaScript kullanılarak doğru şekilde yüklenmesi ve güncellenmesi için hassas işlem yapılması gerekir.
Tableau API, parametrelere erişim için yöntemler sunsa da, mevcut parametre değerlerini açılır seçenekler olarak düzgün bir şekilde görüntülemek ve kullanıcılar bir seçim yaptığında güncellemelerin sorunsuz olmasını sağlamak zor olabilir.
Bu makalenin amacı, kurulum adımlarında size rehberlik etmektir. "Moeda" bir açılır menü içeren parametre. İzin verilen değerleri nasıl alacağınızı, bunları açılır menüde nasıl görüntüleyeceğinizi ve bir seçim yapıldığında parametre güncellemelerinin etkili bir şekilde yapılmasını sağlayarak geliştiricilerin karşılaştığı yaygın sorunları çözmeyi öğreneceksiniz.
Emretmek | Kullanım Örneği |
---|---|
viz.workbook.getParametersAsync() | Bu eşzamansız yöntem, Tableau çalışma kitabında bulunan tüm parametrelerin bir listesini alır. Parametre verilerinin yerleşik kontrol panelinde etkileşimde bulunmadan önce dinamik olarak yüklenmesi önemlidir. |
viz.workbook.changeParameterValueAsync() | Tableau'daki belirli bir parametrenin değerini günceller. Kullanıcı açılır seçimi değiştirdiğinde çalışma kitabındaki parametrenin gerçek zamanlı olarak güncellenmesini sağlar. |
allowableValues | Bu özellik bir Tableau parametresi için izin verilen değerleri tutar. Açılır menüyü kullanıcıların seçebileceği tüm geçerli parametre seçenekleriyle doldurmak için kullanılır. |
currentValue.value | Bir Tableau parametresinin geçerli değerine erişir. Bu, açılır menünün varsayılan seçiminin kontrol panelindeki parametrenin mevcut durumuyla eşleşmesini sağlar. |
document.createElement("select") | JavaScript aracılığıyla dinamik olarak bir |
dropdown.addEventListener("change") | Kullanıcı seçimi değişikliklerini algılamak için açılır menüye bir olay dinleyicisi ekler. Tetiklendiğinde Tableau çalışma kitabındaki parametre güncelleme işlemini başlatır. |
find((p) =>find((p) => p.name === "Moeda") | Belirli "Moeda" parametresini bulmak için parametreler dizisindeki find() yöntemini kullanır. Bu, güncellemeler için doğru parametrenin hedeflenmesini sağlar. |
viz.addEventListener(TableauEventType.FirstInteractive) | Bu komut, parametre açılır listesini yükleme işlevinin yalnızca Tableau kontrol paneli tamamen yüklendikten sonra yürütülmesini sağlar ve zamanlama sorunlarından kaçınır. |
option.value = value.value | Bir |
jest.fn().mockResolvedValue() | Eşzamansız işlevlerin davranışını taklit etmek için birim testlerinde kullanılır. Bu, parametre güncelleme mantığının test sırasında canlı bir Tableau ortamına ihtiyaç duymadan doğru şekilde simüle edilmesini sağlar. |
JavaScript Kullanarak Tableau Parametrelerini Dinamik Olarak Kontrol Etme
Yukarıda sağlanan komut dosyaları, Tableau kontrol paneli ile özel bir HTML arasında sorunsuz bir etkileşim sağlamak için tasarlanmıştır. yıkılmak menü. Bu komut dosyaları, geliştiricilerin Tableau gösterge tablolarını web uygulamalarına yerleştirmesine ve etkileşimlerini genişletmesine olanak tanıyan Tableau Embedding API'sini kullanır. Birincil odak noktası, "Moeda" adlı bir parametreyi, izin verilen değerlerini getirerek ve kullanıcı bir seçim yaptığında parametreyi dinamik olarak güncelleyerek JavaScript aracılığıyla değiştirmektir.
Betiğin ilk kısmı "Moeda" parametresini yükleme işleviyle başlar. Bu işlev, getParametersAsync() çalışma kitabındaki tüm mevcut parametreleri alma yöntemi. Parametreler yüklendikten sonra, komut dosyası belirli "Moeda" parametresini aşağıdaki komutu kullanarak tanımlar: bulmak() yöntem. Parametre bulunamazsa kodun geri kalanını bozmamak için bir hata kaydeder. Bu çok önemlidir çünkü parametrelerle çalışmak, daha fazla mantığa geçmeden önce bunların var olup olmadığını bilmeyi gerektirir.
Parametreyi belirledikten sonra yıkılmak menüsü, JavaScript'in DOM işleme yöntemleri kullanılarak dinamik olarak oluşturulur. Parametrenin izin verilen değerlerinden her bir değer, açılır menüye bir seçenek olarak eklenir. Komut dosyası, seçilen seçeneği parametrenin geçerli değerine ayarlayarak açılır listenin parametrenin geçerli durumunu yansıtmasını sağlar. Bu adım, kullanıcının kontrol panelindeki en son değeri görmesini sağlamak ve kontrol panelinin durumu ile açılır menünün varsayılan seçeneği arasında tutarlılık sağlamak için önemlidir.
Komut dosyasının son kısmı, açılır menüye bir olay dinleyicisinin eklenmesini içerir. Bu olay dinleyicisi, kullanıcının seçilen seçeneği değiştirdiğini algılar ve changeParameterValueAsync() Tableau'daki parametreyi güncelleme işlevi. Ek olarak, komut dosyası, açılır menünün yalnızca kontrol paneli kullanılarak tamamen yüklendikten sonra oluşturulmasını sağlar. İlkİnteraktif etkinlik. Bu, açılır listenin zamanından önce doldurulmamasını sağlayarak hataların veya eksik parametre değerlerinin önlenmesini sağlar. Çözümün hem modüler hem de ölçeklenebilir olması, aynı mantık yapısını yeniden kullanarak diğer parametrelere veya gösterge tablolarına uyum sağlamayı kolaylaştırır.
Tableau Parametrelerini Kontrol Etmek için Etkileşimli Açılır Menü Oluşturma
Parametreleri dinamik olarak yüklemek ve güncellemek için Tableau Embedding API ile JavaScript kullanma
// Solution 1: Basic Implementation Using Async/Await and Tableau API
async function loadMoedaParameter() {
try {
const parameters = await viz.workbook.getParametersAsync();
const moedaParam = parameters.find((p) => p.name === "Moeda");
if (!moedaParam) {
console.error("Parameter 'Moeda' not found!");
return;
}
const dropdown = document.createElement("select");
moedaParam.allowableValues.forEach((value) => {
const option = document.createElement("option");
option.text = value.formattedValue;
option.value = value.value;
dropdown.appendChild(option);
});
dropdown.value = moedaParam.currentValue.value;
dropdown.addEventListener("change", async (e) => {
const selectedMoeda = e.target.value;
try {
await viz.workbook.changeParameterValueAsync("Moeda", selectedMoeda);
console.log("Moeda changed to:", selectedMoeda);
} catch (error) {
console.error("Error changing the Moeda parameter:", error);
}
});
document.getElementById("Moeda-container-desktop").appendChild(dropdown);
} catch (error) {
console.error("Error loading the Moeda parameter:", error);
}
}
viz.addEventListener(TableauEventType.FirstInteractive, loadMoedaParameter);
Tableau Parametre Güncellemeleri için Modüler Açılır Mantığı Uygulama
Modüler İşlevler ve Gelişmiş Hata İşleme Kullanarak Optimize Edilmiş Yaklaşım
// Solution 2: Modular and Reusable Code with Error Handling
function createDropdown(options, onChangeCallback) {
const dropdown = document.createElement("select");
dropdown.style.cssText = "border:none; width:100%; height:40px; background:#FFF;";
options.forEach(({ text, value }) => {
const option = document.createElement("option");
option.text = text;
option.value = value;
dropdown.appendChild(option);
});
dropdown.addEventListener("change", (e) => onChangeCallback(e.target.value));
return dropdown;
}
async function updateParameter(parameterName, value) {
try {
await viz.workbook.changeParameterValueAsync(parameterName, value);
console.log(\`${parameterName} changed to: \${value}\`);
} catch (error) {
console.error("Error updating parameter:", error);
}
}
async function loadParameterDropdown(containerId, parameterName) {
try {
const parameters = await viz.workbook.getParametersAsync();
const param = parameters.find((p) => p.name === parameterName);
if (!param) throw new Error(\`Parameter '\${parameterName}' not found!\`);
const options = param.allowableValues.map((val) => ({
text: val.formattedValue,
value: val.value,
}));
const dropdown = createDropdown(options, (value) => {
updateParameter(parameterName, value);
});
document.getElementById(containerId).appendChild(dropdown);
} catch (error) {
console.error("Error loading parameter dropdown:", error);
}
}
viz.addEventListener(TableauEventType.FirstInteractive, () => {
loadParameterDropdown("Moeda-container-desktop", "Moeda");
});
Tableau Parametre Etkileşiminin Farklı Ortamlarda Test Edilmesi
Parametre Güncellemelerini Doğrulamak için JavaScript ile Birim Testleri Yazma
// Solution 3: Unit Test to Validate Parameter Changes
function mockVizWorkbook() {
return {
parameters: [{
name: "Moeda",
allowableValues: [{ value: "USD", formattedValue: "USD" }],
currentValue: { value: "USD" },
}],
changeParameterValueAsync: jest.fn().mockResolvedValue(),
};
}
test("Dropdown updates Moeda parameter correctly", async () => {
const vizMock = { workbook: mockVizWorkbook() };
const updateSpy = vizMock.workbook.changeParameterValueAsync;
document.body.innerHTML = '<div id="Moeda-container-desktop"></div>';
await loadParameterDropdown("Moeda-container-desktop", "Moeda");
const dropdown = document.querySelector("select");
dropdown.value = "USD";
dropdown.dispatchEvent(new Event("change"));
expect(updateSpy).toHaveBeenCalledWith("Moeda", "USD");
});
Tableau Parametrelerini JavaScript ile Kullanmaya Yönelik En İyi Uygulamalar
Tableau gösterge tablolarını web uygulamalarına yerleştirirken, geliştiricilerin kullanıcı etkileşimini geliştirmek için sıklıkla parametreleri dinamik hale getirmeleri gerekir. Önemli zorluklardan biri aşağıdaki gibi parametrelerin ele alınmasıdır: "Moeda" Filtre kullanmak yerine açılır menüyü kullanarak. Parametreler daha karmaşıktır çünkü izin verilen değerleri almak için API çağrıları gerektirirler ve aşağıdaki gibi işlevler aracılığıyla güncellenmeleri gerekir: changeParameterValueAsync(). Bu yaklaşım, kullanıcılara sayfayı yenilemeden kontrol panelindeki belirli veri görünümleri üzerinde daha fazla kontrol sağlar.
Tableau kontrol panellerindeki parametreleri yönetmek, bunların doğru şekilde tanımlanmasını içerir. getParametersAsync(). Yaygın olarak karşılaşılan bir sorun, bazı parametrelerin kullanılamayabileceği veya çalışma kitabı yapılandırmasına bağlı olarak farklı erişim düzeyleri gerektirebileceğidir. Bu nedenle, bir parametre bulunamazsa açılır mantığın bozulmasını önlemek için hata işlemeyi dahil etmek önemlidir. Göz önünde bulundurulması gereken diğer bir husus, açılır listenin yalnızca kontrol paneli tamamen yüklendikten sonra oluşturulmasıdır. kullanarak İlkİnteraktif olay, özelleştirmeleri uygulamadan önce kontrol paneli öğelerinin hazır olmasını sağlar.
Performans optimizasyonu da özellikle büyük veri kümeleri veya birden fazla parametreye sahip gösterge tablolarıyla uğraşırken çok önemlidir. Gibi JavaScript işlevleri bulmak() parametre aramasının daraltılmasına yardımcı olur, ancak kodun gelecekte ölçeklenebilirliğe olanak sağlamak için modüler kalması gerekir. Geliştiricilerin ayrıca kullanıcı arayüzü ile kontrol paneli verileri arasındaki tutarsızlıkları önlemek için parametre değerlerini güncellemeden önce doğrulamaları gerekir. Bu stratejilerle Tableau parametrelerini verimli bir şekilde yönetmek ve kusursuz bir kullanıcı deneyimine sahip kontrol panelleri oluşturmak daha kolay hale gelir.
Tableau API'sinde Parametrelerin Kullanımı Hakkında Sıkça Sorulan Sorular
- Tableau'da bir parametre ile filtre arasındaki fark nedir?
- Parametreler kullanıcıların kontrol paneline belirli değerleri aktarmalarına olanak tanırken, filtreler kriterlere göre gösterilen verileri sınırlandırır. Filtreler veri kümeleri üzerinde etkili olurken parametreler belirli alanları veya hesaplamaları etkiler.
- Parametreler getirilirken açılır listem neden boş kalıyor?
- Emin olun getParametersAsync() işlev parametreyi başarıyla alır. Aksi takdirde parametre gizli olabilir veya çalışma kitabı kısıtlamaları nedeniyle erişilebilir olmayabilir.
- Açılır menünün parametrenin mevcut durumuyla eşleştiğinden nasıl emin olabilirim?
- Kullanın currentValue.value Açılır menüdeki varsayılan seçeneği ayarlamak için özellik. Bu, kullanıcı arayüzünün ve kontrol panelinin aynı hizada kalmasını sağlar.
- Tableau'da parametreleri güncellerken hataları nasıl halledebilirim?
- Sarın changeParameterValueAsync() içeriyi ara try-catch parametre güncellendiğinde ortaya çıkan hataları işlemek için blok.
- Hangi olay kontrol panelinin özelleştirmeden önce hazır olmasını sağlar?
- FirstInteractive Tableau API'sindeki olay, kontrol panelinin tamamen yüklendiğini ve açılır menü ekleme gibi diğer etkileşimler için hazır olduğunu gösterir.
İnteraktif Parametre Kullanımına İlişkin Son Düşünceler
Etkileşimli kontrol panellerini parametreleştirilmiş açılır menülerle birleştirmek, kullanıcılara daha fazla esneklik sunar. Uygun bir kurulumla geliştiriciler aşağıdaki gibi parametreleri getirebilir: Moeda ve kontrol paneli kontrolünü geliştirmek için Tableau API'yi kullanın. Bu kurulum, kullanıcıların verileri daha etkili bir şekilde keşfetmesine olanak tanır.
gibi temel unsurlar İlkİnteraktif olay ve güçlü hata yönetimi, açılır menülerin uygulama içinde sorunsuz çalışmasını sağlar. Geliştiriciler bu yaklaşımı izleyerek parametreleri verimli bir şekilde yönetebilir ve son kullanıcılara dinamik ve duyarlı bir kontrol paneli deneyimi sunabilir.
Tableau Parametrelerini Uygulamaya Yönelik Kaynaklar ve Referanslar
- Kontrol panellerinin yerleştirilmesi ve parametrelerle etkileşime geçilmesiyle ilgili ayrıntılara resmi kaynaktan başvurulmuştur. Tableau JavaScript API Belgeleri .
- Etkinlik dinleyicilerine ilişkin bilgiler; İlkİnteraktifüzerinde bulunan örneklerden türetilmiştir. Tableau Topluluk Forumu .
- JavaScript'te dinamik kullanıcı arayüzü öğeleriyle çalışmaya yönelik genel kavramlar ve en iyi uygulamalar şuradan alınmıştır: MDN Web Belgeleri .