मैं के लिए एक लेख लिखा था SharePointBriefing.com और वे इसे आज जीवित रखा.
यहाँ एक नमूना है:
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
मैं के लिए एक लेख लिखा था SharePointBriefing.com और वे इसे आज जीवित रखा.
यहाँ एक नमूना है:
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
मैं गया हूँ जहाँ मैं जरूरत है संलग्नक निकालने से कोई InfoPath प्रपत्र के लिए एक परियोजना पर कार्य करना. वहाँ कुछ अच्छी संसाधन InfoPath प्रपत्रों को पार्स करने के लिए कर रहे हैं (जो सिर्फ XML फ़ाइलें हैं, तो यह वास्तव में काफी आसान है).
मैं ऊपर परियोजना का निर्माण किया गया, जबकि, मैं एक InfoPath प्रपत्र डाउनलोड करने और इसे अपने स्थानीय हार्ड ड्राइव करने के लिए सहेजा जा रहा द्वारा शुरू किया. मेरी सी # कोड सीधे उस आवृत्ति से पढ़ रहा था. हालांकि, InfoPath प्रपत्र एक SharePoint प्रपत्र लाइब्रेरी के अंदर वास्तव में रह रहे हैं. मैं एक छोटी सी आधे दिल कैसे इसे लायब्रेरी से सीधे पढ़ने के लिए बाहर खोजने के लिए खोज रहा था और लगभग छोड़ दिया है, जो मामले में मैं होता रूप को एक स्थानीय temp निर्देशिका बचाया है और यह वहाँ से पढ़ें. हालांकि, जैसा कि आप यह पढ़ सकते हैं पुस्तकालय से सीधे उन हुप्स के माध्यम से जाने के लिए कोई ज़रूरत नहीं है. यह छोटा सा टुकड़ा दिखाता है कि कैसे:
/// वर्ग परिभाषा सामान यहाँ, सहित:
निजी SPFile mySharePointFile; /* एक SPList का हिस्सा */ // अधिक कोड यहाँ जाता है और वर्ग की एक विधि के अंदर हम है: textReader = नई XmlTextReader(mySharePointFile.OpenBinaryStream()); textReader.WhitespaceHandling = WhitespaceHandling.कोई नहीं; textReader.Read(); // यदि नोड में मूल्य है जबकि (textReader.Read()) { |
वे बिट प्रमुख ऊपर है कि हम OpenBinaryStream के माध्यम से सीधे InfoPath पढ़ सकते हैं() विधि कॉल पर SPFile XmlTextReader पर निर्माता के लिए एक पैरामीटर के रूप में. यह महान काम करता है.
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
मैं एक ग्राहक है कि leverages InfoPath और वर्कफ़्लो के लिए एक व्यय प्रविष्टि समाधान है. अनुमोदन प्रक्रिया के दौरान एक बिंदु पर, मैं एक ईमेल है कि है कि अच्छे InfoPath डेटा के रूप में अच्छी तरह से अनुलग्नकों को खुद के सभी उत्पन्न करने की जरूरत इसलिए है कि (उच्छ्वास) किसी को उस डेटा ले सकते हैं और मैन्युअल रूप से इसे फिर से एक Oracle डेटाबेस अनुप्रयोग में कुंजी.
यह बहुत मिलता है पर या InfoPath प्रपत्र को पार्स करने के लिए मुश्किल नहीं है. मुझे पता नहीं था कैसे अनुलग्नकों को संभाल करने के लिए, फिर भी. एक घंटा या दो Internets के आसपास poking के बाद (एक अनंत काल!) मैं इस लेख पाया: http://support.microsoft.com/kb/892730
यह अनुलग्नक के रूप में एक नोड से निकालने के लिए कुछ काम कोड प्रदान करते हैं. (आप अभी भी खोजने के लिए नोड और कि सभी की जरूरत है, लेकिन है कि बस XML पार्सिंग).
मुझे पता है कि base64-एनकोडेड लगाव है और मैं मूल रूप से बस निकालने के रास्ते नीचे चला गया base64 डेटा, यह decoding और यह बचत. हालांकि, मैं जल्दी से एहसास हुआ कि मैं जब तक मैं aforementioned लेख पाया फ़ाइल नाम प्राप्त करने के लिए कैसे पता नहीं था.
मैं वास्तव में कि काफी जल्दी मिल गया था, लेकिन मैं इसकी विभाजित व्यक्तित्व द्वारा रख दिया था. एक तरफ, लेख * कहते हैं * इसे InfoPath के लिए अच्छा है 2007. अभी तक, Visual Studio के बारे में सब कर रहे हैं कोड और निर्देश 2003 और InfoPath के संदर्भ 2003.
नीचे पंक्ति, कोड है कि बशर्ते कि लेख मेरे लिए अच्छी तरह से काम कर रहा है (अब तक). मैं अपने InfoPath प्रपत्र प्राप्त कर सकते हैं, मैं यह पार्स कर सकते हैं, मैं पा सकते हैं और अनुलग्नक को डीकोड और मुझे उसका नाम पता. क्या और अधिक एक कर सकते हैं एक जीवन के पूछो?
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
यदि आप अपने SharePoint पर्यावरण एक बालक अस्वास्थ्यकर हो सकता चिंतित हैं, मुझे सहायता तुम ठीक है एक स्वास्थ्य जाँच के साथ.
मैं एक व्यय अनुमोदन प्रक्रिया में मैं InfoPath में एक प्रपत्र आधारित प्रमाणीकरण का उपयोग कर लागू करने के लिए की जरूरत है (FBA) रूपों सेवाओं का उपयोग कर वातावरण (InfoPath वेब आधारित).
वहाँ दो अनुमोदन समूहों रहे हैं और इस तरह काम करता है प्रक्रिया:
चीजों की InfoPath साइड पर, मैं कि क्या उपयोगकर्ता उन अनुमोदन समूहों में से एक के एक सदस्य है पर आधारित छुपाएँ/प्रकट विभिन्न वर्गों है कि है.
FBA वातावरण में उपयोगकर्ता नाम() फ़ंक्शन हमेशा खाली देता है, अफसोस की बात है. मैंने क्या किया है की स्थापना की है एक कस्टम सूची बुलाया "अनुमोदन समूहों".
मैं किसी भी अतिरिक्त स्तंभों को सूची में न जोड़ें.
जब प्रपत्र खुल जाता है, यह इस तरह एक नियम है:
"किसी फ़ील्ड का मान सेट" यहाँ है:
यह मूल रूप से कह रही है: क्वेरी को अनुमोदन समूह कस्टम सूची और फिल्टर है कि क्वेरी में से किसी के लिए देख द्वारा पंक्ति कहाँ शीर्षक का मान "नॉर्डिक" =.
यदि कि कोई मान देता है, तब वर्तमान उपयोगकर्ता उस समूह का एक सदस्य है. मुझे पता है कि यह उस मान होता है क्योंकि स्ट्रिंग लंबाई शून्य से अधिक है.
अनुमोदन समूह सूची में अलग-अलग आइटम को सुरक्षित करके पाश बंद करें. रन-टाइम, वर्तमान उपयोगकर्ता नहीं है, तो उस आइटम तब क्वेरी के लिए उपयुक्त सुरक्षा पहुँच यह वापसी नहीं करेंगे, स्ट्रिंग की लंबाई शून्य होगा और अब आप जानते हैं कि वर्तमान उपयोगकर्ता उस समूह का हिस्सा नहीं है. आप उस तथ्य के रूप में जरूरत के रूप में उपयोग कर सकते हैं.
यह एक सुपर संक्षिप्त लिख हुआ है. मैं समय के लिए दबा रहा हूँ या मैं और अधिक विस्तार प्रदान करेगा.
मैं नहीं जानता कि कैसे प्रासंगिक यह है कि मैं एक FBA वातावरण में हूँ. यह शायद एक गैर-FBA के माहौल में अच्छी तरह से काम करेंगे, लेकिन मैं मामलों जहां यह उपयोगी होगा की कल्पना कर सकते हैं.
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
मैं आज एक InfPath फार्म पर काम कर रहा था और एक पुराने मित्र के खिलाफ दौड़ा, "जब प्रपत्र System.Xml.XmlException प्रतिपादन मैनेज्ड अपवाद: अप्रत्याशित फ़ाइल का अंत करते समय नाम पार्स करने आ गई है."
यह मुझे एक लंबे समय से पहले हुआ था और मैं नहीं जानता कि क्या बिल्कुल मैं इसे हल करने के लिए किया था. ईमानदारी से, मुझे लगता है कि मैं एक नई परियोजना के लिए परिवर्तित किया गया था और यह एक हल कभी नहीं देखा था (उस सिर दर्द के साथ सौदा करने के लिए मेरे प्रतिस्थापन था). मुझे याद है यह एक समस्या का एक शैतान था. मैं कई असफल इसके साथ निपटने दिन बिताए. तब से, मैं यह पिछले वर्ष से अधिक कम से कम एक बार MSDN फ़ोरमों पर आते हैं और कभी नहीं सच में एक जवाब देने के लिए यह देखा देखा है.
मैं यह आज और सौभाग्य से इस बार मारा , मैं सिर्फ बनाने के लिए एक परिवर्तन किया था. मैं बाहर उस परिवर्तन के समर्थन और समस्या को दूर चला गया. यह पता चला है कि इसे बनाने के लिए संभव है कोई टेम्पलेट इस तरह से यह बाड़ के रूपों सर्वर साइड पर एक पार्स त्रुटि उत्पन्न करता है कि InfoPath डिज़ाइनर का उपयोग कर से.
मेरे मामले में, इन चरणों से समस्या का कारण था:
मैं नहीं जानता कि यदि उन चरणों का समस्या कारण या शायद, किसी तरह स्वयं सूची में डेटा एक समस्या है. मैं एक सा प्रयोग और अगर मैं downt कील कर सकते हैं देखने के लिए जा रहा हूँ वह पैरामीटर इस के किसी भी और अधिक विस्तार के साथ.
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
मैं अभी भी InfoPath Forms दुनिया में रह रहा हूँ और मैं एक उन "छोटे" परिवर्तन के एक फार्म करने के लिए बनाने की जरूरत है कि, दुर्भाग्य से, मैं इसके साथ दो हफ्ते पहले स्वीकृत नामकरण परिपाटी को तोड़ता. मैं खुद के लिए सोचा, "किसी और कहते हैं कि अब से एक साल इस बात पर लग रहा है, ' क्या पॉल सोच रहा था? जौव द्वारा, उसका नामकरण परंपरा कोई मतलब नहीं है!”
मुझे एहसास हुआ कि मैं इस के लिए प्रपत्र पर एक दृश्य बना सकता है और फिर, एक बार और, एहसास हुआ कि मैं यह सब साथ ऐसा कुछ कर रहा है सकता है कि. मैं इस तरह के रूप में InfoPath प्रपत्र के लिए एक "डेवलपर नोट्स" दृश्य जोड़ा:
इतना है कि उस दृश्य के लिए उपयोगकर्ताओं को प्राप्त नहीं कर सकता मैं फार्म कॉन्फ़िगर किया गया है और इसलिए, यह केवल InfoPath डिज़ाइन दृश्य में ग्राहक के साथ दिखाई देता है. अब मुझे लगता है थोड़ा कुछ भविष्य अज्ञात डेवलपर देख मेरे फार्म और मेरे बारे में सोच बुरा विचार के खिलाफ inoculated. ओफ़्फ़!
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
मुझे लगता है InfoPath चरणों के माध्यम से जाने के लिए जहां, नीले रंग से बाहर, मैं रूपों का एक गुच्छा crafting कर रहा हूँ. मेरी उँगलियाँ जानें कैसे अच्छी तरह से इस उपकरण का उपयोग करने के लिए और फिर मैं नौ महीने के सूखे के माध्यम से जाओ और इसे फिर से सब सीखना है.
मैं एक InfoPath चरण के बीच में हूँ और मैं विचारों के एक बहुत कुछ के साथ InfoPath प्रपत्र बना रहा हूँ. एक बात आप शायद सूचना कि InfoPath है 2007 क्लाइंट वर्णमाला के क्रम में विचारों से पता चलता है. यह कुछ समय एक असली उपद्रव है. मेरी सबसे अच्छी तकनीक इन दिनों इतना है कि वे हमेशा मुझे चाहते हैं के क्रम में दिखाएँ संख्या दृश्य के नाम को आगे जोड़ते है, के रूप में यहाँ सचित्र:
काश मैं इस सब के साथ कर रहा था.
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
मैं कुछ InfoPath प्रपत्र एक FBA वातावरण में काई में इस सप्ताह पर काम कर रहे और सीखा रहा हूँ, जब मैं को परिनियोजित करने के लिए चला गया कि रूपों एक FBA के साथ एक उत्पादन परिवेश के लिए जोन उपयोगकर्ता नाम() फ़ंक्शन फ़ंक्शन कार्य नहीं करता है. मैं यह अद्वितीय फ़ाइल नाम जनरेट करने के लिए इस्तेमाल कर रहा था.
अच्छी तरह से, कि समारोह एक FBA वातावरण में काम नहीं करता (कम से कम, बाहर बॉक्स का नहीं). और, प्रतिबिंब पर, जिस तरह से मैं की योजना बनाई थी में उपयोगकर्ता नाम का उपयोग कर एक अद्वितीय फ़ाइल नाम किसी भी घटना में गारंटी है नहीं होता.
अब का उपयोग करने के लिए मेरे समाधान किया गया() समारोह और एक नियम है कि प्रपत्र की लोडिंग पर आग. यह रिक्त है जब मैं डेटा तत्व करने के लिए फ़ाइल नाम असाइन करें:
इस दृष्टिकोण का लाभ यह है कि फ़ाइल का नाम केवल एक बार सेट है. (यह स्क्रीन शॉट में दिखाना नहीं, लेकिन एक शर्त है जब "myFilename" रिक्त है केवल आग करने के लिए शासन पर डाल). मैं फ़ाइल का नाम डेटा स्रोत स्तर पर सेट करने के लिए इस्तेमाल किया. आम तौर पर, मैं कुछ नहीं होता (ख़राब) इस तरह:
कि के साथ समस्या है कि अगर उपयोगकर्ता कोई प्रपत्र सोमवार को खोलता है और उपयोगकर्ता B यह मंगलवार को बदलता है, आप दो अलग अलग रूपों के साथ समाप्त होगा जब से दो अलग अलग उपयोगकर्ता यह अलग उपयोगकर्ता नाम के साथ सहेजा गया.
तो, कष्टप्रद FBA सामान्य में और InfoPath के साथ विशेष रूप से हो सकता है के रूप में के रूप में, यह ने मुझे एक छोटी सी, लेकिन वास्तव में महत्वपूर्ण तकनीकी विस्तार और दृष्टिकोण है कि मैं अन्यथा किया है नहीं होगा फिर से लगता!
</अंत>
मेरे ब्लॉग के लिए सदस्यता लें.
मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin
वहाँ इस तरह एक आम व्यापार परिदृश्य है:
इस उदाहरण के office.microsoft.com एक अलग "दृश्य बनाने के लिए कैसे का वर्णन करता है" और पूरे दृश्य केवल-पठन के रूप में चिह्नित करें. यह एक व्यावहारिक दृष्टिकोण है, लेकिन कि तुम प्रभावी ढंग से एक ही रूप के दो संस्करणों की संपूर्ण बना लिया और अब उन्हें सिंक में मैन्युअल रूप से रखना चाहिए खामी है. यदि आप संपादन योग्य देखने के लिए कोई फ़ील्ड जोड़ें, आप तब यह रूप में अच्छी तरह से गैर संपादन योग्य दृश्य करने के लिए जोड़ना आवश्यक. समय के साथ, विभिन्न डेवलपर्स के साथ, वहाँ कुछ फर्क हो सकते हैं.
इस वैकल्पिक कुछ मामलों में बेहतर काम हो सकता है:
इस दृष्टिकोण को दोष यह है कि सभी फ़ील्ड्स अभी भी स्क्रीन पर संपादन योग्य हो जाएगा. उपयोगकर्ता एक झूठी धारणा है कि वे वास्तव में सामग्री को बदल सकते हैं प्राप्त कर सकते हैं. तुम कि कम कर सकते हैं कि प्रपत्र अक्षम किया गया है कुछ पाठ में डाल द्वारा, संभवतः बड़ी लाल अक्षरों में पृष्ठ के शीर्ष के पार.
एक परियोजना में, मैं एक "वर्कफ़्लो स्थिति पैदा" दृश्य. के रूप में वर्कफ़्लो आगे बढ़े, यह विशिष्ट स्थिति फ़ील्ड को प्रपत्र से पदोन्नत किया गया था अद्यतन होता. जब उपयोगकर्ता प्रपत्र खोला, "खुला प्रपत्र" नियम स्वचालित रूप से करने के लिए था कि दृश्य और उपयोगकर्ता एक अच्छा छोटे सारांश स्थिति स्विचित.
</अंत>
हम एक विकसित किया था एक नया किराया का समर्थन करने के लिए एकाधिक दृश्यों के साथ एक InfoPath प्रपत्र / ऑन-बोर्डिंग की प्रक्रिया. जब एक नया व्यक्ति कंपनी काम देता, आईटी विभाग और अन्य समूहों कार्रवाई करने की आवश्यकता (सेट अप पेरोल, उपयुक्त अनुप्रयोगों के लिए पहुँच सक्षम करें, एक डेस्क का पता लगाएँ, आदि). हम फार्म लेकिन फार्म का एक अलग दृश्य पर प्रत्येक उन कार्यों के लिए उपयोग.
इस कंपनी पर, आईटी की समझ रखने वाले व्यापार की प्रक्रिया में शामिल लोगों का सबसे रहे हैं, इसलिए जब वे प्रपत्र तक पहुँच, एक "मेनू अपने डिफ़ॉल्ट दृश्य है" कि उन्हें उनके विशिष्ट फ़ंक्शन को सीधे बटन के साथ देखें. हालांकि, हम नई किराया प्रत्यक्ष प्रबंधक के लिए चीजों को आसान बनाने की जरूरत. यह व्यक्ति आईटी के किसी भी संबंधित सामग्री देखने नहीं होना चाहिए. वास्तव में, वह फार्म का सिर्फ एक दृश्य देख होना चाहिए और नहीं भी अन्य विचारों को देखने के लिए एक विकल्प है.
हमारे मामले में, सीधे प्रबंधक की खाता सीधे शिष्टाचार के फार्म करने के लिए बंधे है कि एक संपर्क चयनकर्ता (जो मैं हमेशा एक "लोग पिकर कॉल करने के लिए चाहता हूँ" किसी कारण के लिए).
चरण निम्नानुसार हैं:
1. डिज़ाइन मोड में, उपकरण पर जाएँ-> प्रपत्र विकल्प-> खोलें और सहेजें.
2. "नियमों" का चयन करें.
3. जिनकी क्रिया "स्विच करें देखने के लिए है एक नया नियम बनाएँ" और जिनकी हालत leverages उपयोगकर्ता नाम() समारोह.
उपयोगकर्ता नाम() "सरल रिटर्न" डोमेन के बिना उपयोगकर्ता नाम. अगर मैं SharePoint में "domainpagalvin" क्रेडेंशियल्स के साथ लॉग ऑन करें, उपयोगकर्ता नाम() रिटर्न "pagalvin".
संपर्क चयनकर्ता तीन बिट्स की एक संपर्क के लिए जानकारी प्रदान करता है. 'Accountid बदलते" भाग इस परिदृश्य के लिए सबसे अधिक उपयोगी है. यह भी एक छोटा सा करता है कि केवल एक ही चीज़ की चुनौती है कि संपर्क चयनकर्ता (मेरे वातावरण में वैसे भी) डोमेन और उपयोगकर्ता ID रिटर्न, में "domainpagalvin" के रूप में. यह हमें accountid के बाद से बदलते एक सीधे आगे समानता हालत करने से रोकता है ("domainpagalvin") कभी नहीं उपयोगकर्ता नाम समान होगा() ("pagalvin").
हम इस के चारों ओर का उपयोग करके प्राप्त कर सकते हैं "होता है" ऑपरेटर: Accountid बदलते उपयोगकर्ता नाम होता है().
हम इसे आगे और प्री-pend एक हार्ड कोडित डोमेन उपयोगकर्ता नाम के सामने ले जा सकते हैं() हमारे समानता चेक पाने के लिए और पर एक झूठी सकारात्मक के जोखिम को समाप्त करने के लिए समारोह होता है ऑपरेटर.
हम वास्तव में की तरह स्वचालित रूप से अन्य उपयोगकर्ताओं को अपने विज्ञापन सुरक्षा समूह सदस्यता पर आधारित के लिए दृश्य स्विच करने के लिए होता है. उदाहरण के लिए, जब "यह विश्लेषिकी का सदस्य" समूह प्रपत्र accesses, स्वचालित रूप से आईटी विश्लेषिकी दृश्य पर स्विच करें. हम इसे लागू करने के लिए समय नहीं है, लेकिन मेरे पहले सोचा था कि एक वेब सेवा है कि एक विधि "IsMemberOfActiveDirectorySecurityGroup" की तरह होता है बनाने के लिए है, यह उपयोगकर्ता नाम पारित() और वापस true या false देते. किसी को किसी भी अन्य है, अधिक चतुर विचार? वहाँ किसी भी SharePoint कार्य हम InfoPath उस दृढ़ संकल्प करने के लिए से लाभ उठाने कर सकते है?
</अंत>