2016-08-31 5 views
8

एक्सेल 2016 (16.0.6965.2076)"XML पार्सिंग लाइन xxx, स्तंभ 36 पर विफल: अवैध एक्सएमएल चरित्र" जब बिजली की धुरी का आयात SSRS रिपोर्ट

एसक्यूएल सर्वर 2014 (12.0.4213.0)

मैं 10 पैरामीटर के साथ एक एसएसआरएस रिपोर्ट है - दो तिथियां हैं और अन्य 8 विकल्पों को पॉप्युलेट करने के लिए क्वेरी का उपयोग करके टेक्स्ट ड्रॉपडाउन हैं। यदि मैं इस रिपोर्ट को Excel में पावर पिवट डेटा मॉडल में लाने की कोशिश करता हूं (पावर पिवट -> प्रबंधित करें -> अन्य स्रोतों से -> रिपोर्ट), तालिका आयात विज़ार्ड को पूरा करते समय (सफलतापूर्वक मेरी रिपोर्ट और पैरामीटर मान निर्दिष्ट करने और रिपोर्ट देखने के बाद टेबल्स का चयन करें और देखें पेज मैं एक त्रुटि संदेश प्राप्त पर समाप्त करें बटन पर क्लिक करके विज़ार्ड में) सही ढंग से प्रस्तुत करना:

XML parsing failed at line 1345, column 36: Illegal xml character.

दिया लाइन क्या पैरामीटर मान मैं रिपोर्ट के लिए निर्दिष्ट पर निर्भर करता है, लेकिन स्तंभ हमेशा 36 है। मैंने अपनी रिपोर्ट का निरीक्षण किया है और ये लाइन और कॉलम नंबर मेरी रिपोर्ट से संबंधित नहीं दिखते हैं, अक्सर वे रिपोर्ट में वापस आने वाली पंक्तियों/स्तंभों की कुल संख्या से अधिक होते हैं।

मैं ऑनलाइन चारों ओर देखा और कुछ संसाधनों जो इस मुद्दे से निपटने के पाया है, लेकिन मैं अपने मुद्दे का समाधान खोजने में असमर्थ किया गया है:

This ब्लॉग और this जुड़े माइक्रोसॉफ्ट कनेक्ट टिकट है कि मैं यह कर सकते हैं सुझाव है यह एक डेटा फ़ीड के रूप में अपनी रिपोर्ट निर्यात और बजाय पावर धुरी जादूगर के भीतर से संदर्भित है कि द्वारा काम करने के लिए मिलता है, लेकिन यह भी मेरे लिए काम नहीं करता है, मुझे कोई दूसरी त्रुटि मिलती है:

Unable to obtain schema for data feed '[Report feed Name]'. Please make sure this feed exists.

मैं पाया है सुझाव कहीं और ऑनलाइन कि यह बाद की त्रुटि (या मूल समस्या) के रूप में हो सकता है रिपोर्ट यूआरएल का परिणाम बहुत लंबा है (पैरामीटर/मान सहित)। दुर्भाग्य से मैं यूआरएल लम्बाई (वर्तमान में 700 से अधिक अक्षरों) को कम करने के लिए कोई और तरीका नहीं देख सकता, क्योंकि मैंने अपने पैरामीटर नाम और रिपोर्ट नाम को कम किया है, लेकिन अभी भी यह समस्या है (मुझे विश्वास नहीं है कि मैं पैरामीटर मानों को कम कर सकता हूं क्योंकि वे हैं एक एप्लिकेशन डेटाबेस से प्राप्त किया गया जिसे हम नहीं बदल सकते हैं)।

मैंने "मूल्य निर्दिष्ट करें" पैरामीटर के साथ "क्वेरी से मूल्य प्राप्त करें" पैरामीटर को प्रतिस्थापित करने के लिए सुझाव भी देखे हैं, लेकिन यह व्यवहार्य नहीं है क्योंकि पैरामीटर मान ऊपर वर्णित अनुप्रयोग डेटाबेस से प्राप्त किए जाने चाहिए और समय के साथ बदल जाएगा , इसलिए गतिशील रूप से लाने की आवश्यकता है।

क्या कोई इस समाधान के लिए समाधान या आगे समस्या निवारण चरणों का सुझाव दे सकता है?

+0

क्या यह आपकी समस्या से संबंधित है: https://connect.microsoft.com/SQLServer/feedback/details/2855443/xml-parsing-failed-at-line-2096-column-36-illegal-xml-character। यहां एक संभावित समाधान है: http://www.leonardmurphy.com/blog/powerpivot_ssrs_xml_parsing_failed –

+0

हां, मैंने अपने ब्लॉग में उस ब्लॉग से लिंक किया है और कनेक्ट टिकट भी देखा है, लेकिन यह इस मुद्दे के आसपास स्थिर विकल्पों का उपयोग करके समस्या के आसपास काम करने का सुझाव देता है पैरामीटर, जो मेरे प्रश्न में समझाया गया है मेरे लिए संभव नहीं है। यह पूर्ण repro चरणों को भी प्रदान नहीं करता है, क्योंकि बहु-मूल्य क्वेरी पैरामीटर के साथ कुछ एसएसआरएस रिपोर्ट ठीक काम करती हैं, बस कुछ नहीं करते हैं। – 3N1GM4

उत्तर

0

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

यदि कॉपी की गई रिपोर्ट काम करती है, तो पुष्टि करें कि URL की लंबाई समस्या है, तो आपके पास URL लंबाई को कम करने के लिए और संभावनाओं की जांच करने के अलावा कोई विकल्प नहीं है।

यदि यूआरएल की लंबाई समस्या है, तो आप सही ढंग से संचालित एक लक्षित यूआरएल लंबाई निर्धारित करने के लिए पैरामीटर जोड़ सकते हैं।

क्या इनपुट पैरामीटर की लंबाई को कम करना संभव है? यदि पैरामीटर को डेटा या कोड के मानों से मेल खाना जरूरी है जिसे आसानी से संशोधित नहीं किया जा सकता है, तो क्या एक लुकअप टेबल को शामिल करने के लिए रिपोर्ट को संशोधित करना संभव है, ताकि छोटे चर में पारित होने वाले उनके पूर्ण संस्करणों में मैप किए गए हों?

वैकल्पिक रूप से, क्या आपके पास केवल 2 या 3 विकल्पों के साथ कई टेक्स्ट पैरामीटर हैं? या, क्या कुछ पैरामीटर हैं जो विशिष्ट संयोजनों में केवल वैध हैं? यदि ऐसा है, तो यह आपको एक और विकल्प देता है, हालांकि यह बेहद खराब अभ्यास है और यदि कुछ भी बदलने की जरूरत है तो रिपोर्ट को बनाए रखने के लिए बहुत सारे प्रयास होंगे ... आप रिपोर्ट की कई प्रतियां बना सकते हैं, जो पैरामीटर को सीमित कर रहे हैं वैध संयोजनों की संख्या। फिर, Excel में संग्रहीत इनपुट पैरामीटर के आधार पर, आप प्रासंगिक रिपोर्ट को कॉल करते हैं जो उन पैरामीटर से मेल खाता है, और यूआरएल में शेष पैरामीटर से गुज़रता है।

हालांकि, अगर यूआरएल की लंबाई मुद्दा नहीं है, तो आप कारण की जांच और उम्मीदवार क्लीनर समाधान की जांच में और अधिक प्रयास कर सकते हैं!

3

अपनी समस्या को कम करने के लिए, मैं रिपोर्ट (आपके पैरामीटर का उपयोग करके) एक्सएमएल प्रारूप में निर्यात करूंगा। जब यह आपकी रिपोर्ट कहता है तो यह पावर पिवट क्या कर रहा है इसका प्रभावी रूप से एक मैन्युअल रेपो है।

तब मैं उस फ़ाइल को एक एक्सएमएल संपादक (जैसे विजुअल स्टूडियो) में खोलूंगा और "लाइन 1345, कॉलम 36: अवैध एक्सएमएल चरित्र" के लिए खोज करूंगा।

यदि यह किसी टेक्स्टबॉक्स नाम से ट्रिगर किया गया है, तो आप DataElementName प्रॉपर्टी को सेट करके एक्सएमएल निर्यात के लिए ओवरराइड कर सकते हैं।

यदि यह डेटा मान द्वारा ट्रिगर किया गया है, तो मैं इससे बचने के लिए एक एसएसआरएस अभिव्यक्ति का उपयोग करूंगा। आप उस परिदृश्य के तहत केवल डेटा मान में हेरफेर करने के लिए Globals!RenderFormat.Name = "XML" के लिए परीक्षण कर सकते हैं।

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