பயனரால் இயக்கப்படும் அளவுருக்களை அட்டவணை உட்பொதிக்கப்பட்ட டாஷ்போர்டுகளில் ஒருங்கிணைத்தல்
Tableau Embedding API ஐப் பயன்படுத்தி வலைப் பயன்பாடுகளுக்குள் Tableau டேஷ்போர்டுகளை உட்பொதிப்பது டெவலப்பர்களை டைனமிக், தரவு சார்ந்த தீர்வுகளை வழங்க அனுமதிக்கிறது. பயனர் அனுபவத்தை மேம்படுத்துவதற்கான ஒரு சக்திவாய்ந்த வழி, கீழ்தோன்றும் மெனுக்கள் மூலம் டாஷ்போர்டு அளவுருக்களுடன் தொடர்புகொள்வதாகும்.
இந்த எடுத்துக்காட்டில், ஒரு குறிப்பிட்ட அட்டவணை அளவுருவைக் கையாள கீழ்தோன்றும் மெனுவை உள்ளமைப்பதில் சவால் உள்ளது "மெய்டா". ஒருங்கிணைக்க எளிதான வடிப்பான்களைப் போலன்றி, JavaScript ஐப் பயன்படுத்தி சரியாக ஏற்றவும் புதுப்பிக்கவும் அளவுருக்களுக்கு துல்லியமான கையாளுதல் தேவைப்படுகிறது.
அட்டவணை API ஆனது அளவுருக்களை அணுகுவதற்கான முறைகளை வழங்கினாலும், கிடைக்கக்கூடிய அளவுரு மதிப்புகளை கீழ்தோன்றும் விருப்பங்களாக சரியாகக் காண்பிப்பது மற்றும் பயனர்கள் தேர்வு செய்யும் போது தடையற்ற புதுப்பிப்புகளை உறுதி செய்வது தந்திரமானதாக இருக்கும்.
இந்த கட்டுரையின் குறிக்கோள், அமைப்பதற்கான படிகள் மூலம் உங்களுக்கு வழிகாட்டுவதாகும் "மெய்டா" கீழ்தோன்றும் அளவுரு. டெவலப்பர்கள் எதிர்கொள்ளும் பொதுவான சிக்கல்களைத் தீர்ப்பதன் மூலம், அனுமதிக்கப்பட்ட மதிப்புகளைப் பெறுவது, கீழ்தோன்றும் இடத்தில் அவற்றைக் காண்பிப்பது மற்றும் தேர்வு செய்யப்படும் போது அளவுரு புதுப்பிப்புகளை திறம்பட உறுதி செய்வது எப்படி என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.
கட்டளை | பயன்பாட்டின் உதாரணம் |
---|---|
viz.workbook.getParametersAsync() | இந்த ஒத்திசைவற்ற முறை அட்டவணை பணிப்புத்தகத்தில் கிடைக்கும் அனைத்து அளவுருக்களின் பட்டியலை மீட்டெடுக்கிறது. உட்பொதிக்கப்பட்ட டாஷ்போர்டில் அவற்றுடன் தொடர்புகொள்வதற்கு முன், அளவுரு தரவை மாறும் வகையில் ஏற்றுவது அவசியம். |
viz.workbook.changeParameterValueAsync() | அட்டவணையில் குறிப்பிட்ட அளவுருவின் மதிப்பைப் புதுப்பிக்கிறது. பயனர் கீழ்தோன்றும் தேர்வை மாற்றும்போது, பணிப்புத்தகத்தில் உள்ள அளவுரு நிகழ்நேரத்தில் புதுப்பிக்கப்படுவதை இது உறுதி செய்கிறது. |
allowableValues | இந்த சொத்து அட்டவணை அளவுருவிற்கு அனுமதிக்கப்பட்ட மதிப்புகளைக் கொண்டுள்ளது. பயனர்கள் தேர்ந்தெடுக்கக்கூடிய அனைத்து செல்லுபடியாகும் அளவுரு விருப்பங்களுடன் கீழ்தோன்றும் மெனுவை நிரப்ப இது பயன்படுகிறது. |
currentValue.value | அட்டவணை அளவுருவின் தற்போதைய மதிப்பை அணுகுகிறது. கீழ்தோன்றும் இயல்புநிலை தேர்வு டாஷ்போர்டில் உள்ள அளவுருவின் தற்போதைய நிலைக்கு பொருந்துகிறது என்பதை இது உறுதி செய்கிறது. |
document.createElement("select") | JavaScript மூலம் மாறும் வகையில் |
dropdown.addEventListener("change") | பயனர் தேர்வு மாற்றங்களைக் கண்டறிய, கீழ்தோன்றலில் நிகழ்வு கேட்பவரைச் சேர்க்கிறது. தூண்டப்படும் போது, அது அட்டவணைப் பணிப்புத்தகத்தில் அளவுரு புதுப்பிப்பு செயல்முறையைத் தொடங்குகிறது. |
find((p) =>find((p) => p.name === "Moeda") | குறிப்பிட்ட "Moeda" அளவுருவைக் கண்டறிய, அளவுருக்கள் வரிசையில் கண்டுபிடி() முறையைப் பயன்படுத்துகிறது. புதுப்பிப்புகளுக்கு சரியான அளவுரு இலக்காக இருப்பதை இது உறுதி செய்கிறது. |
viz.addEventListener(TableauEventType.FirstInteractive) | டேபிள் டேஷ்போர்டு முழுமையாக ஏற்றப்பட்டதும், நேர சிக்கல்களைத் தவிர்த்து, அளவுரு டிராப் டவுனை ஏற்றுவதற்கான செயல்பாடு மட்டுமே செயல்படுத்தப்படும் என்பதை இந்தக் கட்டளை உறுதி செய்கிறது. |
option.value = value.value | ஒரு |
jest.fn().mockResolvedValue() | ஒத்திசைவற்ற செயல்பாடுகளின் நடத்தையை கேலி செய்ய அலகு சோதனைகளில் பயன்படுத்தப்படுகிறது. நேரடி அட்டவணை சூழல் தேவையில்லாமல் சோதனையின் போது அளவுரு புதுப்பிப்பு தர்க்கம் சரியாக உருவகப்படுத்தப்படுவதை இது உறுதி செய்கிறது. |
ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி அட்டவணை அளவுருக்களை மாறும் வகையில் கட்டுப்படுத்துவது எப்படி
மேலே கொடுக்கப்பட்டுள்ள ஸ்கிரிப்ட்கள் டேபிள் டேஷ்போர்டுக்கும் தனிப்பயன் HTML க்கும் இடையே ஒரு சுமூகமான இடைவினையை செயல்படுத்த வடிவமைக்கப்பட்டுள்ளது. கீழிறங்கும் மெனு. இந்த ஸ்கிரிப்ட்கள் Tableau Embedding API ஐப் பயன்படுத்துகின்றன, இது டெவலப்பர்களை வலைப் பயன்பாடுகளுக்குள் டேபிள் டேஷ்போர்டுகளை உட்பொதிக்கவும், அவற்றின் ஊடாடுதலை நீட்டிக்கவும் அனுமதிக்கிறது. "Moeda" என்ற பெயரிடப்பட்ட அளவுருவை JavaScript மூலம் கையாள்வதே முதன்மையான கவனம், அதன் அனுமதிக்கப்பட்ட மதிப்புகளைப் பெறுவதன் மூலமும், பயனர் தேர்வு செய்யும் போது அளவுருவை மாறும் வகையில் புதுப்பிப்பதன் மூலமும் ஆகும்.
ஸ்கிரிப்ட்டின் முதல் பகுதி "Moeda" அளவுருவை ஏற்றுவதற்கான செயல்பாட்டுடன் தொடங்குகிறது. இந்த செயல்பாடு பலப்படுத்துகிறது getParametersAsync() பணிப்புத்தகத்தில் உள்ள அனைத்து அளவுருக்களையும் மீட்டெடுக்கும் முறை. அளவுருக்கள் ஏற்றப்பட்டதும், ஸ்கிரிப்ட் குறிப்பிட்ட "Moeda" அளவுருவைப் பயன்படுத்தி அடையாளம் காட்டுகிறது கண்டுபிடி() முறை. அளவுரு கண்டுபிடிக்கப்படவில்லை எனில், மீதமுள்ள குறியீட்டை உடைப்பதைத் தவிர்க்க இது ஒரு பிழையை பதிவு செய்கிறது. மேலும் தர்க்கத்துடன் தொடர்வதற்கு முன், அளவுருக்களுடன் பணிபுரிவதற்கு அவை இருக்கிறதா என்பதைத் தெரிந்துகொள்ள வேண்டும் என்பதால் இது மிகவும் முக்கியமானது.
அளவுருவைக் கண்டறிந்த பிறகு, a கீழிறங்கும் ஜாவாஸ்கிரிப்ட்டின் DOM கையாளுதல் முறைகளைப் பயன்படுத்தி மெனு மாறும் வகையில் உருவாக்கப்படுகிறது. அளவுருவின் அனுமதிக்கப்பட்ட மதிப்புகளிலிருந்து ஒவ்வொரு மதிப்பும் கீழ்தோன்றும் விருப்பமாக சேர்க்கப்படும். தேர்ந்தெடுக்கப்பட்ட விருப்பத்தை அளவுருவின் தற்போதைய மதிப்பிற்கு அமைப்பதன் மூலம் கீழ்தோன்றும் அளவுருவின் தற்போதைய நிலையை பிரதிபலிக்கிறது என்பதை ஸ்கிரிப்ட் உறுதி செய்கிறது. டேஷ்போர்டில் உள்ள சமீபத்திய மதிப்பை பயனர் பார்க்கிறார் என்பதை உறுதிப்படுத்த, டாஷ்போர்டின் நிலை மற்றும் கீழ்தோன்றும் இயல்புநிலை விருப்பத்திற்கு இடையே நிலைத்தன்மையை வழங்குவதற்கு இந்தப் படி அவசியம்.
ஸ்கிரிப்ட்டின் கடைசி பகுதி கீழ்தோன்றும் நிகழ்வில் கேட்பவரைச் சேர்ப்பதை உள்ளடக்கியது. தேர்ந்தெடுக்கப்பட்ட விருப்பத்தை பயனர் மாற்றும்போது இந்த நிகழ்வைக் கேட்பவர் கண்டறிந்து அதைத் தூண்டுகிறார் changeParameterValueAsync() அட்டவணையில் அளவுருவைப் புதுப்பிக்கும் செயல்பாடு. கூடுதலாக, ஸ்கிரிப்ட் டாஷ்போர்டைப் பயன்படுத்தி முழுமையாக ஏற்றப்பட்ட பின்னரே கீழ்தோன்றும் தரப்படுவதை உறுதிசெய்கிறது. முதல் ஊடாடுதல் நிகழ்வு. இது ட்ராப் டவுன் முன்கூட்டியே நிரப்பப்படாமல் இருப்பதை உறுதிசெய்கிறது, பிழைகளைத் தடுக்கிறது அல்லது அளவுரு மதிப்புகளைக் காணவில்லை. தீர்வு மட்டு மற்றும் அளவிடக்கூடியது, அதே லாஜிக் கட்டமைப்பை மீண்டும் பயன்படுத்துவதன் மூலம் மற்ற அளவுருக்கள் அல்லது டாஷ்போர்டுகளுக்கு மாற்றியமைப்பதை எளிதாக்குகிறது.
அட்டவணை அளவுருக்களைக் கட்டுப்படுத்த ஒரு ஊடாடும் கீழ்தோன்றலை உருவாக்குதல்
அளவுருக்களை மாறும் வகையில் ஏற்ற மற்றும் புதுப்பிக்க, அட்டவணை உட்பொதித்தல் API உடன் JavaScript ஐப் பயன்படுத்துதல்
// 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);
அட்டவணை அளவுரு புதுப்பிப்புகளுக்கான மாடுலர் டிராப் டவுன் லாஜிக்கை செயல்படுத்துகிறது
மாடுலர் செயல்பாடுகள் மற்றும் மேம்படுத்தப்பட்ட பிழை கையாளுதல் ஆகியவற்றைப் பயன்படுத்தி உகந்த அணுகுமுறை
// 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");
});
வெவ்வேறு சூழல்களில் அட்டவணை அளவுரு தொடர்புகளை சோதித்தல்
அளவுரு புதுப்பிப்புகளை சரிபார்க்க JavaScript மூலம் அலகு சோதனைகளை எழுதுதல்
// 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");
});
ஜாவாஸ்கிரிப்ட் மூலம் அட்டவணை அளவுருக்களைக் கையாள்வதற்கான சிறந்த நடைமுறைகள்
வலைப் பயன்பாடுகளில் டேப்லே டாஷ்போர்டுகளை உட்பொதிக்கும்போது, டெவலப்பர்கள் பயனர் ஊடாடுதலை மேம்படுத்த அளவுருக்களை டைனமிக் செய்ய வேண்டும். போன்ற அளவுருக்களை கையாள்வது ஒரு முக்கிய சவால் "மெய்டா" வடிகட்டிகளைப் பயன்படுத்துவதற்குப் பதிலாக கீழ்தோன்றும் மெனு மூலம். அளவுருக்கள் மிகவும் சிக்கலானவை, ஏனெனில் அவற்றின் அனுமதிக்கப்பட்ட மதிப்புகளை மீட்டெடுக்க API அழைப்புகள் தேவை மற்றும் செயல்பாடுகள் மூலம் புதுப்பிக்கப்பட வேண்டும். changeParameterValueAsync(). இந்த அணுகுமுறை பயனர்களுக்கு பக்கத்தைப் புதுப்பிக்காமலேயே டாஷ்போர்டில் குறிப்பிட்ட தரவுக் காட்சிகளின் மீது அதிகக் கட்டுப்பாட்டை வழங்குகிறது.
அட்டவணை டேஷ்போர்டில் உள்ள அளவுருக்களை நிர்வகிப்பது, அவற்றை சரியாக அடையாளம் காண்பதை உள்ளடக்குகிறது getParametersAsync(). ஒரு பொதுவான ஆபத்து என்னவென்றால், சில அளவுருக்கள் கிடைக்காமல் போகலாம் அல்லது பணிப்புத்தக உள்ளமைவைப் பொறுத்து வெவ்வேறு அணுகல் நிலைகள் தேவைப்படலாம். எனவே, ஒரு அளவுரு கண்டுபிடிக்கப்படவில்லை என்றால், கீழ்தோன்றும் தர்க்கம் உடைவதைத் தடுக்க பிழை கையாளுதலைச் சேர்ப்பது முக்கியம். கருத்தில் கொள்ள வேண்டிய மற்றொரு அம்சம், டாஷ்போர்டு முழுவதுமாக ஏற்றப்பட்ட பிறகு மட்டுமே கீழ்தோன்றும் ரெண்டரிங் ஆகும். பயன்படுத்தி முதல் ஊடாடுதல் தனிப்பயனாக்கங்களைப் பயன்படுத்துவதற்கு முன்பு டாஷ்போர்டு கூறுகள் தயாராக இருப்பதை நிகழ்வு உறுதி செய்கிறது.
செயல்திறன் தேர்வுமுறையும் முக்கியமானது, குறிப்பாக பெரிய தரவுத்தொகுப்புகள் அல்லது பல அளவுருக்கள் கொண்ட டாஷ்போர்டுகளைக் கையாளும் போது. போன்ற ஜாவாஸ்கிரிப்ட் செயல்பாடுகள் கண்டுபிடி() அளவுரு தேடலைக் குறைக்க உதவுங்கள், ஆனால் எதிர்கால அளவிடுதலை அனுமதிக்க குறியீடு மட்டுவாக இருக்க வேண்டும். பயனர் இடைமுகம் மற்றும் டாஷ்போர்டு தரவுகளுக்கு இடையே உள்ள முரண்பாடுகளைத் தவிர்க்க, டெவலப்பர்கள் அளவுரு மதிப்புகளைப் புதுப்பிக்கும் முன் அவற்றைச் சரிபார்க்க வேண்டும். இந்த உத்திகள் மூலம், அட்டவணை அளவுருக்களை திறமையாக நிர்வகிப்பது மற்றும் தடையற்ற பயனர் அனுபவத்துடன் டாஷ்போர்டுகளை உருவாக்குவது எளிதாகிறது.
அட்டவணை API இல் அளவுருக்களைப் பயன்படுத்துவது பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்
- அட்டவணையில் உள்ள அளவுருவிற்கும் வடிகட்டிக்கும் என்ன வித்தியாசம்?
- அளவுருக்கள் பயனர்கள் குறிப்பிட்ட மதிப்புகளை டாஷ்போர்டில் அனுப்ப அனுமதிக்கின்றன, அதே நேரத்தில் வடிப்பான்கள் அளவுகோல்களின் அடிப்படையில் காட்டப்படும் தரவைக் கட்டுப்படுத்துகின்றன. வடிகட்டிகள் தரவுத்தொகுப்புகளில் செயல்படுகின்றன, அதேசமயம் அளவுருக்கள் குறிப்பிட்ட புலங்கள் அல்லது கணக்கீடுகளைப் பாதிக்கின்றன.
- அளவுருக்களைப் பெறும்போது எனது கீழ்தோன்றும் ஏன் காலியாக உள்ளது?
- உறுதி செய்து கொள்ளுங்கள் getParametersAsync() செயல்பாடு வெற்றிகரமாக அளவுருவை மீட்டெடுக்கிறது. இல்லையெனில், பணிப்புத்தகக் கட்டுப்பாடுகள் காரணமாக அளவுரு மறைக்கப்படலாம் அல்லது அணுகப்படாமல் இருக்கலாம்.
- அளவுருவின் தற்போதைய நிலைக்கு கீழ்தோன்றும் பொருந்துகிறது என்பதை எவ்வாறு உறுதி செய்வது?
- பயன்படுத்தவும் currentValue.value கீழ்தோன்றலில் இயல்புநிலை விருப்பத்தை அமைக்க சொத்து. இது UI மற்றும் டாஷ்போர்டை சீரமைக்க வைக்கிறது.
- அட்டவணையில் அளவுருக்களை புதுப்பிக்கும்போது பிழைகளை எவ்வாறு கையாள்வது?
- மடக்கு changeParameterValueAsync() உள்ளே அழைக்கவும் a try-catch அளவுரு புதுப்பிக்கப்படும் போது ஏற்படும் பிழைகளைக் கையாள தடுக்கவும்.
- தனிப்பயனாக்கத்திற்கு முன் டாஷ்போர்டு தயாராக இருப்பதை எந்த நிகழ்வு உறுதி செய்கிறது?
- தி FirstInteractive டேப்லோ ஏபிஐயில் உள்ள நிகழ்வு, டாஷ்போர்டு முழுவதுமாக ஏற்றப்பட்டு, கீழ்தோன்றலைச் சேர்ப்பது போன்ற கூடுதல் தொடர்புகளுக்குத் தயாராக உள்ளது என்பதைக் குறிக்கிறது.
ஊடாடும் அளவுரு கையாளுதல் பற்றிய இறுதி எண்ணங்கள்
அளவுருவாக்கப்பட்ட டிராப் டவுன்களுடன் ஊடாடும் டாஷ்போர்டுகளை உட்பொதிப்பது பயனர்களுக்கு அதிக நெகிழ்வுத்தன்மையை வழங்குகிறது. சரியான அமைப்புடன், டெவலப்பர்கள் போன்ற அளவுருக்களைப் பெறலாம் மொய்டா மற்றும் டேஷ்போர்டு கட்டுப்பாட்டை மேம்படுத்த Tableau API ஐப் பயன்படுத்தவும். இந்த அமைப்பு பயனர்கள் தரவை மிகவும் திறம்பட ஆராய அனுமதிக்கிறது.
போன்ற முக்கிய கூறுகள் முதல் ஊடாடுதல் நிகழ்வு மற்றும் வலுவான பிழை கையாளுதல், கீழ்தோன்றும் மெனுக்கள் பயன்பாட்டிற்குள் சீராக செயல்படுவதை உறுதிசெய்க. இந்த அணுகுமுறையைப் பின்பற்றுவதன் மூலம், டெவலப்பர்கள் அளவுருக்களை திறமையாக நிர்வகிக்க முடியும் மற்றும் இறுதிப் பயனர்களுக்கு மாறும் மற்றும் பதிலளிக்கக்கூடிய டாஷ்போர்டு அனுபவத்தை வழங்க முடியும்.
அட்டவணை அளவுருக்களை செயல்படுத்துவதற்கான ஆதாரங்கள் மற்றும் குறிப்புகள்
- டாஷ்போர்டுகளை உட்பொதித்தல் மற்றும் அளவுருக்களுடன் தொடர்புகொள்வது பற்றிய விவரங்கள் அதிகாரியிடமிருந்து குறிப்பிடப்பட்டன அட்டவணை ஜாவாஸ்கிரிப்ட் API ஆவணம் .
- நிகழ்வு கேட்போர் பற்றிய நுண்ணறிவு, போன்ற முதல் ஊடாடுதல், இல் காணப்படும் எடுத்துக்காட்டுகளிலிருந்து பெறப்பட்டது அட்டவணை சமூக மன்றம் .
- ஜாவாஸ்கிரிப்டில் டைனமிக் UI கூறுகளுடன் பணிபுரிவதற்கான பொதுவான கருத்துகள் மற்றும் சிறந்த நடைமுறைகள் எடுக்கப்பட்டது MDN வெப் டாக்ஸ் .