2015-11-13 7 views
7

के माध्यम से एक झांकी ग्राफ का वर्तमान दृश्य राज्य को बहाल समस्या:सहेजा जा रहा है और जावास्क्रिप्ट एपीआई

मैं कैसे स्टोर कर सकते हैं - और फिर बाद में पुनः प्राप्त - एक झांकी देखने का रिवाज राज्य जावास्क्रिप्ट-एपीआई के माध्यम से?

विवरण:

मैं एक साइट है जहाँ हम वर्तमान में किसी भी उपयोगकर्ता बाद में उपयोग के लिए एक पावर प्वाइंट की तरह ऑनलाइन प्रस्तुति में झांकी विचारों का एक सेट सहयोग करने दें पर काम कर रहा हूँ। हमारे वर्तमान कार्यान्वयन में, तेंदुए ग्राफ की स्थिति संग्रहित नहीं होती है, और इसलिए उपयोगकर्ता को वांछित फ़िल्टर को लागू करना होता है, प्रस्तुति धारण करते समय वर्कशीट आदि का चयन करना होता है - हर बार। यही वह है जिसे हम अब टालना चाहते हैं।

इसके लिए सबसे आसान समाधान नीचे साझा इंटरफ़ेस के माध्यम से "शेयर" -लिंकों में से एक को स्टोर और पुनर्प्राप्त करना होगा; इन लिंक में वर्तमान दृश्य की स्थिति शामिल है, लेकिन अब तक, हम ऐसा करने में सक्षम नहीं हैं: सबसे पहले, डोमेन समस्याओं के कारण, हम एम्बेड-कोड आईफ़्रेम से साझा-लिंक नहीं ला सकते हैं; और दूसरी बात, एपीआई-विधि workbook.getUrl() वर्तमान दृश्य की स्थिति शामिल नहीं प्रतीत होता है।

मैं currenty workbook.rememberCustomViewAsync (नाम) में देख रहा हूँ और workbook.showCustomViewAsync (नाम) विधियों, जो एक संभव समाधान की तरह लग रहे हैं। हालांकि, मुझे इन दोनों विधियों में से किसी एक से कोई समझदार परिणाम नहीं मिल रहा है, क्योंकि वे दोनों चलाने पर अस्पष्ट, गैर-सूचनात्मक 500 त्रुटियां देते हैं।

एक उदाहरण फ़ाइल, और त्रुटियों:

बेहतर इस मुद्दे को वर्णन करने के लिए, मैं एक न्यूनतम demo (नीचे टुकड़ा) है कि दूसरी विधि ऊपर वर्णित उपयोग करने का प्रयास बनाया है। Google क्रोम में खोले जाने पर, दो बटनों में से कोई भी ('राज्य सहेजें' और 'पुनर्प्राप्त राज्य') मेरे लिए काम नहीं करता है, और निम्न त्रुटियों को डेवलपर टूल्स (क्रमशः http प्रतिक्रिया संदेश और डेवलपर कंसोल आउटपुट) में देखा जा सकता है:

HTTP प्रतिक्रिया:

<br> 
2015-11-11 16&#x3a;14&#x3a;17.916 
&#x28;VkNpWQrCQaIAACQo2YYAAAPi,0,0&#x29; 

कंसोल त्रुटि:

POST http://public.tableau.com/vizql/w/Book6_426/v/YRKE/save_customized_view/sessions/208A699D34E14708A2268AA10A827C99-0:0 500 (Internal Server Error) 

किसी को भी मैं कैसे इस समस्या को हल कर सकते हैं पता है, या तो माकी द्वारा एन प्रदान किया गया कोड उदाहरण काम (दूसरी विधि वर्णित), या किसी अन्य माध्यम से? किसी भी सहायता की सराहना की जाएगी!

पीएस: यहां स्निपेट सिम्युलेटर एक एक्सेस-कंट्रोल-अनुमति-उत्पत्ति त्रुटि का कारण बन जाएगा। फ़ाइल को here प्रकाशित भी किया गया है।

<html> 
 

 
<head> 
 
    <title>A simple Tableau API demo</title> 
 
    <!--script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script--> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
 
    <!--script type="text/javascript" src="https://online.tableau.com/javascripts/api/tableau_v8.js"></script--> 
 
    <script type="text/javascript" src="https://online.tableau.com/javascripts/api/tableau-2.min.js "></script> 
 
</head> 
 

 
<body> 
 

 

 
    <H2>Custom view storage demo</H2> 
 

 
    <button id="remember-button"> 
 
    Remember state 'test' 
 
    </button> 
 
    <button id="retrieve-button"> 
 
    Retrieve state 'test' 
 
    </button> 
 

 
    <div id="viz-placeholder" style="width: 1000px; height: 1000px; display: block;"></div> 
 

 

 
    <script> 
 
    
 
    // Render tableau graph 
 
    function initializeViz() { 
 
     var placeholderDiv = document.getElementById("viz-placeholder"); 
 
     var url = "https://public.tableau.com/views/Book6_426/YRKE"; 
 
     var options = { 
 
     width: placeholderDiv.offsetWidth, 
 
     height: placeholderDiv.offsetHeight, 
 
     hideTabs: true, 
 
     hideToolbar: true, 
 
     onFirstInteractive: function() { 
 
      workbook = viz.getWorkbook(); 
 
      activeSheet = workbook.getActiveSheet(); 
 
     } 
 
     }; 
 
     viz = new tableau.Viz(placeholderDiv, url, options); 
 
    } 
 

 
    $(initializeViz) 
 

 
    
 
    // Assign and set up button actions for storing and retrieving the custom view 
 
    var customViewName = "test"; 
 

 
    $('#remember-button').click(function() { 
 
     console.log("Remembering: ", customViewName); 
 
     
 
     // Try to save state, or print error 
 
     viz.getWorkbook().rememberCustomViewAsync(customViewName).otherwise(function(err) { 
 
     console.log("An error occured:"); 
 
     console.log(err); 
 
     }); 
 
     
 
    }); 
 

 
    $('#retrieve-button').click(function() { 
 
     console.log("Retrieving: ", customViewName); 
 
     
 
     // Try to retrieve state, or print error 
 
     viz.getWorkbook().showCustomViewAsync(customViewName).otherwise(function(err) { 
 
     console.log("An error occured:"); 
 
     console.log(err); 
 
     }); 
 
     
 
    }); 
 
    </script> 
 

 

 
</body> 
 

 
</html>

उत्तर

2

शाबाशी, तो मैं झांकी ग्राहक सहयोग के साथ संपर्क में रहे हैं, और वे इस मुद्दे को मिल गया है लगता है।

जाहिर है, javascript-API के कुछ तत्व केवल टैबलेट ऑनलाइन और टैबलेट सर्वर - टैबलेट पब्लिक के लिए उपलब्ध नहीं हैं।

दूसरे शब्दों में, फ़ंक्शन workbook.rememberCustomViewAsync('customViewName') टैबलेट पब्लिक द्वारा होस्ट किए गए आलेखों के लिए समर्थित नहीं है - जैसे ऊपर दिए गए उदाहरण में उपयोग किए गए एक (https://public.tableau.com/views/...)।

+1

अरे, मेरे पास एक सवाल है। मुझे पता है, एक कार्यपुस्तिका में सभी डैशबोर्ड पर कस्टम दृश्य साझा किए जाते हैं। क्या कोई तरीका है कि हम वर्कबुक 1 के डैशबोर्ड 1 से एक ही फ़िल्टर के साथ वर्कबुक 2 के डैशबोर्ड 2 से कस्टम व्यू लागू कर सकते हैं? –

+0

@ दीपांशुखलरा, मुझे डर है कि मैं आपकी मदद नहीं कर सकता। मैं अनुशंसा करता हूं कि आप आधिकारिक समर्थन मंचों पर एक प्रश्न पोस्ट करें। उन्होंने अंततः मेरी मदद की! –

संबंधित मुद्दे