Ustvarjanje interaktivnega spustnega menija za parametre Tableau z uporabo API-ja JavaScript

Temp mail SuperHeros
Ustvarjanje interaktivnega spustnega menija za parametre Tableau z uporabo API-ja JavaScript
Ustvarjanje interaktivnega spustnega menija za parametre Tableau z uporabo API-ja JavaScript

Vključevanje uporabniško vodenih parametrov v vgrajene nadzorne plošče Tableau

Vdelava nadzornih plošč Tableau v spletne aplikacije z uporabo API-ja Tableau Embedding omogoča razvijalcem, da zagotovijo dinamične rešitve, ki temeljijo na podatkih. Eden zmogljivih načinov za izboljšanje uporabniške izkušnje je omogočanje interakcije s parametri nadzorne plošče prek spustnih menijev.

V tem primeru je izziv konfiguracija spustnega menija za manipulacijo določenega parametra Tableau, imenovanega "Moeda". Za razliko od filtrov, ki jih je lažje integrirati, zahtevajo parametri natančno ravnanje, da se pravilno naložijo in posodobijo z uporabo JavaScripta.

Čeprav API Tableau ponuja metode za dostop do parametrov, je lahko težavno pravilno prikazati razpoložljive vrednosti parametrov kot spustne možnosti in zagotoviti brezhibne posodobitve, ko uporabniki izberejo.

Cilj tega članka je, da vas vodi skozi korake za nastavitev "Moeda" parameter s spustnim menijem. Naučili se boste, kako pridobiti dovoljene vrednosti, jih prikazati v spustnem meniju in zagotoviti, da se parametri učinkovito posodabljajo, ko je narejen izbor, s čimer rešite pogoste težave, s katerimi se srečujejo razvijalci.

Ukaz Primer uporabe
viz.workbook.getParametersAsync() Ta asinhrona metoda pridobi seznam vseh parametrov, ki so na voljo v delovnem zvezku Tableau. Podatke o parametrih morate dinamično naložiti pred interakcijo z njimi na vdelani nadzorni plošči.
viz.workbook.changeParameterValueAsync() Posodobi vrednost določenega parametra v Tableau. Zagotavlja, da se parameter v delovnem zvezku posodobi v realnem času, ko uporabnik spremeni izbiro spustnega menija.
allowableValues Ta lastnost vsebuje dovoljene vrednosti za parameter Tableau. Uporablja se za zapolnitev spustnega menija z vsemi veljavnimi možnostmi parametrov, med katerimi lahko uporabniki izbirajo.
currentValue.value Dostopa do trenutne vrednosti parametra Tableau. To zagotavlja, da se privzeta izbira spustnega menija ujema s trenutnim stanjem parametra na nadzorni plošči.
document.createElement("select") Dinamično prek JavaScripta ustvari spustni element
dropdown.addEventListener("change") V spustni meni doda poslušalca dogodkov, da zazna spremembe izbire uporabnika. Ko se sproži, sproži postopek posodabljanja parametrov v delovnem zvezku Tableau.
find((p) =>find((p) => p.name === "Moeda") Uporablja metodo find() v matriki parametrov za iskanje specifičnega parametra »Moeda«. To zagotavlja, da je za posodobitve namenjen pravilen parameter.
viz.addEventListener(TableauEventType.FirstInteractive) Ta ukaz zagotavlja, da se funkcija za nalaganje spustnega menija parametrov izvede šele, ko se nadzorna plošča Tableau v celoti naloži, s čimer se izognete težavam s časovnim razporedom.
option.value = value.value Nastavi atribut vrednosti elementa
jest.fn().mockResolvedValue() Uporablja se v testih enot za norčevanje iz vedenja asinhronih funkcij. To zagotavlja, da je logika posodabljanja parametrov pravilno simulirana med testiranjem, ne da bi bilo potrebno živo okolje Tableau.

Kako dinamično nadzorovati parametre Tableau z uporabo JavaScripta

Zgoraj navedeni skripti so zasnovani tako, da omogočajo gladko interakcijo med nadzorno ploščo Tableau in HTML-jem po meri spustni meni meni. Ti skripti uporabljajo API za vdelavo Tableau, ki razvijalcem omogoča vdelavo nadzornih plošč Tableau v spletne aplikacije in razširitev njihove interaktivnosti. Primarni poudarek je na manipulaciji parametra z imenom "Moeda" prek JavaScripta s pridobivanjem njegovih dovoljenih vrednosti in dinamičnim posodabljanjem parametra, ko uporabnik naredi izbiro.

Prvi del skripta se začne s funkcijo za nalaganje parametra "Moeda". Ta funkcija izkorišča getParametersAsync() metoda za pridobivanje vseh razpoložljivih parametrov v delovnem zvezku. Ko so parametri naloženi, skript identificira določen parameter "Moeda" z uporabo najdi () metoda. Če parameter ni najden, zabeleži napako, da prepreči zlom preostale kode. To je ključnega pomena, saj je za delo s parametri potrebno vedeti, ali obstajajo, preden nadaljujemo z nadaljnjo logiko.

Po identifikaciji parametra, a spustni meni meni je dinamično ustvarjen z uporabo metod manipulacije DOM JavaScripta. Vsaka vrednost iz dovoljenih vrednosti parametra je dodana kot možnost v spustnem meniju. Skript zagotovi, da spustni meni odraža trenutno stanje parametra, tako da izbrano možnost nastavi na trenutno vrednost parametra. Ta korak je bistven za zagotovitev, da uporabnik vidi najnovejšo vrednost na nadzorni plošči, kar zagotavlja skladnost med stanjem nadzorne plošče in privzeto možnostjo spustnega menija.

Zadnji del skripta vključuje dodajanje poslušalca dogodkov na spustni meni. Ta poslušalec dogodkov zazna, ko uporabnik spremeni izbrano možnost, in sproži changeParameterValueAsync() funkcijo za posodobitev parametra v Tableau. Poleg tega skript poskrbi, da je spustni meni upodobljen šele, ko se nadzorna plošča v celoti naloži z uporabo FirstInteractive dogodek. To zagotavlja, da se spustni meni ne zapolni prezgodaj, kar preprečuje napake ali manjkajoče vrednosti parametrov. Rešitev je modularna in razširljiva, kar omogoča preprosto prilagajanje za druge parametre ali nadzorne plošče s ponovno uporabo iste logične strukture.

Ustvarjanje interaktivnega spustnega menija za nadzor parametrov Tableau

Uporaba JavaScripta z API-jem za vdelavo Tableau za dinamično nalaganje in posodabljanje parametrov

// 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);

Implementacija modularne spustne logike za posodobitve parametrov Tableau

Optimiziran pristop z uporabo modularnih funkcij in izboljšanega obravnavanja napak

// 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");
});

Testiranje interakcije parametrov Tableau v različnih okoljih

Pisanje testov enote z JavaScriptom za preverjanje posodobitev parametrov

// 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");
});

Najboljše prakse za ravnanje s parametri Tableau z JavaScriptom

Pri vdelavi nadzornih plošč Tableau v spletne aplikacije morajo razvijalci pogosto narediti parametre dinamične, da izboljšajo interaktivnost uporabnikov. Eden ključnih izzivov je ravnanje s parametri, kot je "Moeda" prek spustnega menija namesto s filtri. Parametri so bolj zapleteni, ker zahtevajo klice API-ja za pridobitev dovoljenih vrednosti in jih je treba posodobiti prek funkcij, kot je npr. changeParameterValueAsync(). Ta pristop daje uporabnikom večji nadzor nad določenimi pogledi podatkov na nadzorni plošči brez osveževanja strani.

Upravljanje parametrov na nadzornih ploščah Tableau vključuje njihovo pravilno identifikacijo getParametersAsync(). Pogosta napaka je, da nekateri parametri morda niso na voljo ali potrebujejo različne ravni dostopa, odvisno od konfiguracije delovnega zvezka. Zato je pomembno, da vključite obravnavanje napak, da preprečite zlom spustne logike, če parameter ni najden. Drug vidik, ki ga je treba upoštevati, je upodabljanje spustnega menija šele, ko je nadzorna plošča v celoti naložena. Uporaba FirstInteractive dogodek zagotavlja, da so elementi nadzorne plošče pripravljeni pred uporabo prilagoditev.

Optimizacija zmogljivosti je prav tako ključnega pomena, zlasti ko imamo opravka z velikimi nabori podatkov ali nadzornimi ploščami z več parametri. JavaScript deluje kot najdi () pomagajo zožiti iskanje parametrov, vendar mora koda ostati modularna, da omogoča prihodnjo razširljivost. Razvijalci bi morali tudi potrditi vrednosti parametrov, preden jih posodobijo, da se izognejo nedoslednostim med podatki uporabniškega vmesnika in nadzorne plošče. S temi strategijami postane lažje učinkovito upravljati parametre Tableau in graditi nadzorne plošče z brezhibno uporabniško izkušnjo.

Pogosta vprašanja o uporabi parametrov v API-ju Tableau

  1. Kakšna je razlika med parametrom in filtrom v Tableau?
  2. Parametri omogočajo uporabnikom, da posredujejo določene vrednosti na nadzorno ploščo, medtem ko filtri omejujejo prikazane podatke na podlagi meril. Filtri delujejo na naborih podatkov, medtem ko parametri vplivajo na določena polja ali izračune.
  3. Zakaj moj spustni meni pri pridobivanju parametrov ostane prazen?
  4. Prepričajte se, da getParametersAsync() funkcija uspešno pridobi parameter. Če se ne, je parameter morda skrit ali nedostopen zaradi omejitev delovnega zvezka.
  5. Kako zagotovim, da se spustni meni ujema s trenutnim stanjem parametra?
  6. Uporabite currentValue.value lastnost za nastavitev privzete možnosti v spustnem meniju. Tako sta uporabniški vmesnik in nadzorna plošča usklajena.
  7. Kako lahko obravnavam napake pri posodabljanju parametrov v Tableau?
  8. Zavijte changeParameterValueAsync() pokličite znotraj a try-catch blok za obravnavo vseh napak, ki se pojavijo, ko je parameter posodobljen.
  9. Kateri dogodek zagotavlja, da je nadzorna plošča pripravljena pred prilagajanjem?
  10. The FirstInteractive dogodek v API-ju Tableau signalizira, da se je nadzorna plošča v celoti naložila in je pripravljena za nadaljnje interakcije, kot je dodajanje spustnega menija.

Končne misli o interaktivnem ravnanju s parametri

Vdelava interaktivnih nadzornih plošč s parametriranimi spustnimi meniji nudi uporabnikom večjo prilagodljivost. S pravilno nastavitvijo lahko razvijalci pridobijo parametre, kot je Moeda in uporabite API Tableau za izboljšanje nadzora nadzorne plošče. Ta nastavitev uporabnikom omogoča učinkovitejše raziskovanje podatkov.

Ključni elementi, kot je FirstInteractive dogodkov in robustno obravnavo napak, zagotovite nemoteno delovanje spustnih menijev znotraj aplikacije. S tem pristopom lahko razvijalci učinkovito upravljajo parametre in končnim uporabnikom ponudijo dinamično in odzivno izkušnjo nadzorne plošče.

Viri in reference za implementacijo parametrov Tableau
  1. Na podrobnosti o vdelavi nadzornih plošč in interakciji s parametri se je skliceval uradnik Dokumentacija Tableau JavaScript API .
  2. Vpogled v poslušalce dogodkov, kot npr FirstInteractive, so bili izpeljani iz primerov, najdenih na Forum skupnosti Tableau .
  3. Splošni koncepti in najboljše prakse za delo z dinamičnimi elementi uporabniškega vmesnika v JavaScriptu so bili vzeti iz Spletni dokumenti MDN .