वर्ग पुरालेख: SharePoint वर्कफ़्लो

साइटें बनाएँ (SPWeb) SharePoint डिज़ाइनर वर्कफ़्लो के जरिए

इस ब्लॉग प्रविष्टि का अधिक है एक "संभव के दायरे में" प्रविष्टि बनाम. ठोस जानकारी.

हम एक तकनीकी डिजाइन है कि हमें एक मैन्युअल रूप से शुरू की वर्कफ़्लो प्रक्रिया के माध्यम से एक साइट संग्रह में किसी साइट बनाएँ करने के लिए कहता है. मूल रूप से, उपयोगकर्ताओं को एक "नए ग्राहक में डेटा दर्ज करें" कस्टम सूची और फिर जब वे समाप्त हो गया है और डेटा प्रविष्टि प्रक्रिया को सत्यापित, हम की जरूरत है कि ग्राहक के लिए एक साइट बनाने के लिए.

मैं दोनों कथात्मक वर्कफ़्लो का एक बड़ा प्रशंसक के रूप में अच्छी तरह के रूप में एक कमजोर दृश्य स्टूडियो कार्यप्रवाह प्रोग्रामर हूँ, तो मैं SharePoint डिज़ाइनर का उपयोग कर की आवश्यकता को पूरा करना चाहता था.

मैं इस के बारे में अधिक से अधिक विस्तार में लिखने की योजना (और उम्मीद है कि एक प्रयोक्ता समूह या आने वाले साल में दो से वर्तमान), यहाँ है, लेकिन समग्र समाधान:

  • एसपीडी के साथ एकीकृत करता है किसी कस्टम क्रिया बनाएँ.
  • कस्टम क्रिया एसपीडी एक वेब सेवा प्रारंभ करें और इसे XML के एक स्ट्रिंग पारित करने के लिए अनुमति देता है.
  • वेब सेवा को कस्टम सूची में पंक्ति पता लगाता है और उस नए क्लाइंट के लिए एक कस्टम साइट परिभाषा का उपयोग कर डेटा के अनुसार एक नई साइट बनाता है.
  • वेब सेवा तब नई साइट के लिंक के रूप में कुछ जानकारी के साथ कस्टम सूची अद्यतन.

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

All we need now is an easy tool to automatically migrate SPD workflows around as easily as we can for visual studio workflows and we’ll really be cooking with gas 🙂 I understand that some folk are out there working on this problem and I hope they have some good success with it soon.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

Workflows SharePoint डिज़ाइनर वेब सेवाओं के साथ एकीकृत

मैं SharePoint डिज़ाइनर के लिए कस्टम क्रियाओं के साथ कुछ समय के लिए खेल रहा हूँ चारों ओर (यहाँ देखें के लिए कुछ विस्तृत सामग्री, यदि कि हितों तुम).

मेरे वर्तमान परियोजना में, हम की जरूरत है कुछ काफी भारी उठाया करते हैं और हम कथात्मक एसपीडी वर्कफ़्लो संबद्ध व्यवसाय प्रक्रिया प्रबंधित करने के लिए उपयोग करना चाहते हैं.

लंबे लघु कहानी, यह पूरी तरह संभव है. मैं मेरी Codeplex परियोजना के एक सहायक सेवा"आह्वान करने के लिए विस्तारित" और अब हम एक वेब सेवा एक एसपीडी वर्कफ़्लो सीधे से आह्वान कर सकते हैं.

यहाँ हस्ताक्षर है:

 सार्वजनिक स्ट्रिंग Dispatcher(
        Guid WebID, // रनटाइम वातावरण द्वारा पारित
        Guid SiteID, // रनटाइम वातावरण द्वारा पारित
        स्ट्रिंग ListID, // RTE द्वारा पारित (पता नहीं क्यों यह एक स्ट्रिंग है, नहीं एक GUID)
        int ListItemID, // RTE द्वारा पारित.
        स्ट्रिंग XmlMessage) // उपयोगकर्ता के रूप में घोषित एसपीडी में द्वारा पारित.

इस तथ्य यह है कि हम मिल सकता है पर महत्वपूर्ण वर्कफ़्लो जानकारी leverages, साइट की तरह, सूची ID, आदि. यह अच्छी तरह से आप अपने कस्टम क्रियाएँ बनाने में रुचि उन कई जगहों में प्रलेखित किया गया है. करने के लिए XML स्ट्रिंग के रूप में एक उचित प्रक्रिया प्रेषण के लिए उपयोगकर्ता के द्वारा उपलब्ध कराई गई निकालने का विचार है. मज़ा सामग्री!

अफसोस की बात है, यह स्पष्ट रूप से नीचे करने के लिए एक तरह से टिकट है "Loosey Goosey" विरोधी पैटर्न भूमि, but it’s better than hitting a brick wall 🙂

यदि आप यह करते हैं भले ही आप पता है कि यह एक विरोधी पैटर्न है यह एक विरोधी पैटर्न है?

मैं इस के अंदर Codeplex निकट भविष्य में लपेट के लिए आशा है. अगर तुम मुझे ऐसा करने में रुचि रखते हैं, मुझे प्रहार देना (ईमेल या एक टिप्पणी छोड़ दो) and I’ll be that more enthusiastic about doing it 🙂

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

Technorati टैग: ,

एसपीडी वर्कफ़्लो “एक उपयोगकर्ता से डेटा एकत्रित करें”: उत्पन्न कार्य प्रपत्र को संशोधित करें

मैं एक परियोजना है कि कुछ दस्तावेज़ अनुमोदन को संभाल करने के लिए पाँच विभिन्न SharePoint डिजाइनर काम प्रवाह का उपयोग करता है पर काम कर रहा हूँ. एसपीडी "कलेक्ट के डेटा को एक उपयोगकर्ता प्रदान करता है" क्रिया इतनी है कि हम जानकारी के विभिन्न बिट्स के लिए उपयोगकर्ता को संकेत कर सकते हैं, इस तरह के रूप में चाहे वे इसे अनुमोदन, कुछ टिप्पणियाँ और शायद वे क्या था उस रात के खाने के लिए पूछना.

रूपों पूरी तरह कार्यात्मक हैं. वे करने के लिए कोई कार्य सूची किसी सामग्री प्रकार के रूप में बंधे हैं. वे कर रहे हैं 100% सिस्टम-जनरेट किया गया. यह उनकी ताकत और कमजोरी है. अगर हम डिफ़ॉल्ट प्रपत्र के साथ रह सकते हैं, तो फिर हम जाने के लिए अच्छा कर रहे हैं. हालांकि, हम कैसे प्रपत्र एसपीडी बनाता है पर बहुत अधिक नियंत्रण नहीं है. अगर हम उस डिफ़ॉल्ट व्यवहार पसंद नहीं, हम चारों ओर पाने के लिए विभिन्न ट्रिक्स का सहारा की जरूरत है (उदाहरण के लिए, किसी कार्य पर प्राथमिकता सेट करना).

मैं ऊपर गुण देखें खोले गए इन कार्य रूपों पर एक लिंक प्रदान करने की जरूरत (dispform.asxp) "संबंधित आइटम का" एक नई विंडो में. इस मेटा डेटा संबंधित आइटम के लिए एक-क्लिक पहुँच प्रदान करता है. यह मैं क्या मतलब है:

छवि

शुक्र है, हम ऐसा कर सकते हैं और यह बहुत कठिन नहीं है. मोटे तौर पर, एसपीडी ऊपर आग, कि मकान वर्कफ़्लो फ़ाइलें निर्देशिका में नेविगेट और ASPX फ़ाइल को संशोधित करने के लिए इच्छित खोलें. ये हैं बस क्लासिक XSL ट्रांस्फ़ॉर्म निर्देशों और यदि आप के बारे में itemstyle.xsl के साथ mucked है, खोज या अन्य XSL परिदृश्यों, यह आपके लिए आसान हो जाएगा. वास्तव में, मैं यह करने के लिए जनरेट किया गया प्रपत्र की तुलना में एक खोज कोर परिणाम वेब पार्ट का पालन करने के लिए कुछ हद तक आसान है के बाद से आम तौर पर आसान हो पाया (या भयानक CWQP).

बेशक, वहाँ एक बड़ा ख़तरा है. एसपीडी के कार्यप्रवाह संपादक को उम्मीद है कि उस फ़ाइल पर पूर्ण नियंत्रण. यदि आप इसे संशोधित करें, एसपीडी खुशी से अपने परिवर्तन सही परिस्थितियों के सेट दे को अधिलेखित कर देगा. मैं कैसे बुरा यह मिल सकता है देखने के लिए दो त्वरित परीक्षण किया है. वे दोनों दो कि तुम "कलेक्ट के डेटा को एक उपयोगकर्ता का उपयोग करता है एक वैध एसपीडी वर्कफ़्लो तैयार की जाती है" कदम.

टेस्ट 1:

  • हाथ से ASPX फ़ाइल संशोधित करें.
  • यह परीक्षण (सत्यापित करें कि आपके परिवर्तन ठीक से बच गए और कुछ भी तोड़ना नहीं था).
  • अप वर्कफ़्लो खोलें और एक असंबंधित क्रिया जोड़ें ("इतिहास के लिए ऐसे प्रवेश करें").
  • वर्कफ़्लो को बचाने.

परिणाम: इस मामले में, एसपीडी प्रपत्र पुन: नहीं बना था.

टेस्ट 2:

  • के रूप में ही करते हैं #1 को छोड़कर सीधे "कलेक्ट डेटा से किसी उपयोगकर्ता को संशोधित करें" कार्रवाई.

परिणाम: यह खरोंच से प्रपत्र पुन: बनाता है, आपके परिवर्तन अति लेखन.

अंतिम नोट्स:

  • कम से कम दो एसपीडी क्रियाएँ इस तरह रूपों पैदा: "एक उपयोगकर्ता से डेटा एकत्रित करें" और "करने के लिए आइटम असाइन करें". इन क्रियाओं के दोनों’ प्रपत्रों को मैन्युअल रूप से संशोधित किया जा सकता.
  • मैं क्योंकि मेरी कड़ी dispform.aspx को उत्पन्न करने में सक्षम था, इस मामले में, से संबंधित आइटम हमेशा अपनी ID से संबंधित आइटम का URL में एम्बेडेड है. मैं इसे निकालें और फिर निर्माण करने में सक्षम था एक <एक href> पर यह तो एक क्लिक मेटा डेटा एक्सेस सुविधा प्रदान करने के लिए आधारित. यह संभव नहीं दिखता कि आपके URL इस नियम निम्नानुसार है. संबंधित आइटम की ID प्राप्त करने के लिए अन्य तरीके हो सकते हैं, लेकिन मैं उस पुल को पार करने के लिए नहीं था, तो मैं नहीं जानता कि यदि खाई के दूसरी ओर करने के लिए हो जाता है.
  • मैं जांच नहीं था, लेकिन मुझे आश्चर्य है अगर किसी तरह की टेम्पलेट फ़ाइल में नहीं होगा 12 हाइव कि मैं कैसे एसपीडी उत्पन्न करता है डिफ़ॉल्ट प्रपत्रों को प्रभावित करने के लिए संशोधित सकता है (जैसे हम बहुत सतर्क टेम्पलेट्स संशोधित कर सकते हैं).

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें!

समाधान (की तरह): SharePoint डिज़ाइनर का उपयोग कर किसी कार्य को प्राथमिकता सेट करें

मैं इस तरह एक व्यवसाय परिदृश्य है:

  • एक उपयोगकर्ता किसी दस्तावेज़ लायब्रेरी के लिए कोई दस्तावेज़ अपलोड.
  • वह कोई सामग्री प्रकार का चयन करता है और जरूरत के रूप में मेटा डेटा दर्ज करता है. मेटा डेटा फ़ील्ड् स में से एक एक ध्वज है, "जरूरी".
  • यह एक SharePoint डिज़ाइनर वर्कफ़्लो हो सके कि, अन्य बातों के अलावा, "एकत्र डेटा से एक उपयोगकर्ता का उपयोग करता है" कार्रवाई.

"एक उपयोगकर्ता से डेटा एकत्रित करें" उस दस्तावेज़ के लिए अनुमोदन का अनुरोध किसी कार्य सूची में कोई आइटम बनाती है.

मैं की जरूरत है तत्काल अनुरोधों के अनुमोदन के लिए पता चला है कि सूची के कोई दृश्य बनाएँ.

समाधान: शब्द "तत्काल डाल:" इन कार्यों के शीर्षक में.

मैं सीधे प्राथमिकता क्षेत्र निर्दिष्ट करने के लिए पसंद होगा. हालांकि, मैं कई कारणों के लिए ऐसा करने में असमर्थ था:

  1. कलेक्ट डेटा कार्रवाई शीर्षक के अलावा अन्य किसी भी फ़ील्ड को अद्यतन करने के लिए एक तंत्र प्रदान नहीं करता है (और जिसके लिए आप डेटा संग्रहीत करना चाहते हैं उन अतिरिक्त फ़ील्ड्स).
  2. "असाइन एक आइटम के लिए" क्रिया एक ही समस्या है.
  3. यह किसी सूची में कोई आइटम सम्मिलित करने के लिए संभव है (अर्थात. किसी आइटम को कार्य सूची में सीधे सम्मिलित करें) लेकिन इस एक अवरोध कार्रवाई नहीं. इसका मतलब है कि वर्कफ़्लो उस कार्य को पूर्ण करने के लिए उपयोगकर्ता के लिए इंतजार नहीं करेंगे.

मैं कुछ तरीकों से पहले विचार किया (शुक्र है) हम बस सकता है साकार "अत्यावश्यक डाल" शीर्षक में.

  1. कोई वर्कफ़्लो कार्य सूची पर ही शुरू कर इतनी है कि जब एक नया कार्य बनाया है, यह किसी भी तरह पार संदर्भ दस्तावेज़ है कि पहले वर्कफ़्लो प्रारंभ करने के लिए वापस, तत्काल ध्वज मान बाहर खींच और आवश्यकतानुसार प्राथमिकता अद्यतन करें.
  2. ऐसी ही एक घटना रिसीवर के साथ कुछ करना. बनाने के कार्य पर, संबद्ध दस्तावेज़ और जरूरत के रूप में अद्यतन प्राथमिकता का पता लगाएँ.
  3. "बनाएँ सूची आइटम का उपयोग करें" कार्रवाई फ़ील्ड बदलने के लिए "प्रतीक्षा के साथ संयोजन के रूप में" कार्रवाई और एक घटना रिसीवर. यदि हम एक सूची आइटम बनाने के लिए, हम सभी फ़ील्ड् स हम चाहते हैं निर्दिष्ट कर सकते हैं. उपयोगकर्ता टास्क और फ़ील्ड बदलने के लिए "प्रतीक्षा पूरा होने पर मूल आइटम को अद्यतन करने के लिए एक घटना रिसीवर का उपयोग करें" कार्रवाई की हालत से मुलाकात करेंगे और वर्कफ़्लो बढ़ना होता. (किसी कारण के लिए, मैं और अधिक या कम यह दृष्टिकोण पर बुद्धिमानी से दूर कुछ देर के लिए चलना करने के लिए निर्णय लेने से पहले बसे थे).

मेरा समाधान के लिए एक दोष यह है (एक तरफ स्पष्ट तथ्य कि केवल तात्कालिकता शीर्षक का पाठ इंगित करता है). "के बाद से ले लीजिए राय" केवल हार्ड कोडित शीर्षक नाम स्वीकार करता है, मैं दो अलग अलग ले लीजिए राय क्रियाएँ जिसका एकमात्र अंतर है कि हार्ड कोडित शीर्षक का उपयोग करने की आवश्यकता.

लेकिन, कम से कम वहाँ एक समाधान है कि घटना रिसीवर या कस्टम एसपीडी क्रियाओं की आवश्यकता नहीं होती है.

अगर किसी को यह एक अधिक चालाक तरीका में हल किया है, कृपया मुझे पता है.

</अंत>

त्वरित और आसान: स्वचालित रूप से InfoPath प्रपत्र खोलने SharePoint डिज़ाइनर ईमेल से

अद्यतन: Madjur आहूजा इस लिंक से बाहर अंक एक समाचार समूह चर्चा: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. यह सुंदर निश्चित है.

===

हम अक्सर हाइपरलिंक्स InfoPath प्रपत्रों को SharePoint डिज़ाइनर वर्कफ़्लो से भेजे गए ईमेल में एम्बेड करना चाहते हैं. जब उपयोगकर्ताओं को इन ईमेल प्राप्त, वे ईमेल से लिंक पर क्लिक कर सकते हैं और InfoPath प्रपत्र को सीधे जाओ.

इस राक्षस URL निर्माण मेरे लिए काम करता है:

http://server/sites/departments/Technical Services/InformationTechnology/HelpDesk/_layouts/FormServer.aspx?XmlLocation=/sites/departments/Technical Services/InformationTechnology/HelpDesk/REC REM RED Forms/REC2007-12-18T11_33_48.xml&स्रोत http % 3A % 2F % 2Fserver % 2Ecorp % 2Edomain % 2Ecom % 2Fsites % 2Fdepartments % 2FTechnical % 2520Services % 2FInformationTechnology % 2FHelpDesk % 2FREC % 2520REM % 2520RED % 2520Forms % 2FForms % 2FAllItems % 2Easpx =&DefaultItemOpen = 1

प्रपत्र का नाम के साथ bolded लाल पाठ बदलें, निम्न स्क्रीनशॉट में दिखाया गया के रूप में:

छवि

ध्यान दें कि हार्ड कोडित पथ में उस URL का एक बहुत कुछ है, साथ ही साथ एक URL-एनकोडेड घटक. यदि यह भी करने के लिए अपने विशिष्ट स्थिति का अनुवाद करने के लिए मुश्किल है, प्रपत्र लायब्रेरी के लिए अलर्ट पर मोड़ की कोशिश. पोस्ट एक रूप है और जब आप ईमेल प्राप्त, ईमेल का स्रोत देखने के लिए और आप सब कुछ आप की जरूरत है शामिल करने के लिए देखेंगे.

चतुर पाठकों सूचना हो सकता है कि इसके बाद के संस्करण ईमेल शरीर भी एक कड़ी है कि सीधे कार्य किसी फ़िल्टर किए गए दृश्य के माध्यम से accesses दिखाता है. मैं कि एक भविष्य पोस्ट में अधिक से अधिक विस्तार में समझाने के लिए योजना.

</अंत>

काई मुझसे कहता है “प्रवेश निषेध” कोई वर्कफ़्लो कार्य संपादित करने के लिए, लेकिन मैं वास्तव में उपयोग किया है

मैं एक वर्कफ़्लो SharePoint डिज़ाइनर का उपयोग कर एक साइट है जो मुख्य रूप से "NT_AUTHORITYAuthenticated उपयोगकर्ताओं को केवल पढ़ने में क्रियान्वित किया है" (अर्थात. हर कोई). किसी InfoPath प्रपत्र के लिए कोई प्रपत्र लायब्रेरी है. वहाँ एक संबद्ध वर्कफ़्लो कार्य सूची रूचि है इतना है कि जब वर्कफ़्लो संचालित, यह लोगों को कार्य असाइन कर सकते हैं.

मैं अनुमति प्रपत्र लायब्रेरी और कार्य सूची के लिए तोड़ ताकि किसी प्रमाणीकृत उपयोगकर्ता प्रपत्र बना सकते हैं और उनके असाइन किए गए कार्यों का अद्यतन.

मैं के साथ मेरी कम विशेषाधिकार परीक्षण खाते का परीक्षण.

मैं बाहर और बचाने के लिए कोई प्रपत्र लायब्रेरी को भरने कर सकते हैं? –> हाँ

मैं एक ईमेल लिंक से कार्य का उपयोग कर सकते हैं? –> हाँ

मैं एक संपादित करें वर्कफ़्लो कार्य लिंक देख सकते हैं –> हाँ

मैं उस लिंक पर क्लिक कर सकते हैं? –> नहीं … अनुज्ञा नकारी.

क्यों कि मुझे अनुमति से इनकार करते हैं, जब मैं उस पर क्लिक करें संपादित करें लिंक मैं देख सकता हूँ? है कि कैसे यह काम करने के लिए माना जाता है नहीं…

मैं फिर से सुरक्षा कॉन्फ़िगरेशन के माध्यम से जाना, बहुत बारीकी से. मैं इसे फिर से करना. मैं इस पोस्ट को हटाने पर विचार क्योंकि मैं स्पष्ट रूप से सुरक्षा के बारे में कुछ भी पता नहीं.

अंत में, मैं Internets की खोज. मैं इस अत्यधिक संभावना नहीं MSDN फोरम धागे खोजें: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

पोस्टर दिखाई देते हैं कि वर्कफ़्लो एक ड्राइव की थाली करने के लिए निर्यात के सरल कार्य एक काई सुरक्षा मुद्दा ठीक कर देंगे सुझाव दे जा? मैं शायद ही विश्वास कर सकते हैं मैं बस कि टाइप. मैं के बारे में दक्षिण पार्क प्रकरण की याद दिला रहा हूँ 9/11 जहां हमारे Preznit स्टेन पूछ रही है साजिश, "सच में?" और फिर से.

तो, कुछ खोने के लिए, मैं ऊपर एसपीडी आग, कार्यप्रवाह पर राइट-क्लिक करें और इसे बचाने के लिए करने के लिए मेरी सी:\ ड्राइव. कि सी होगी:\ मेरे लैपटॉप पर ड्राइव. इतना है कि कोई भी मुझे पूछना होगा मैं पूरे समय मेरे कंधे पर देख रहा हूँ, "क्यों तुम उस वर्कफ़्लो अपने लैपटॉप के लिए बचत कर रहे हैं?"

अविश्वसनीय रूप से, कि मेरी समस्या हल. मैं कार्य को संपादित कर सकते हैं.

मैं एतद्द्वारा यह की सबसे विचित्र वर्कफ़्लो Workaround किया जा करने के लिए मनोनीत 2007.

</अंत>

SharePoint डिजाइनर, वर्तमान आइटम “एन्कोडेड निरपेक्ष URL” और HTTPS

हम अक्सर आइटम या दस्तावेज़ है कि कार्यप्रवाह ट्रिगर करने के लिए एक हाइपरलिंक भी शामिल है एक ईमेल भेजने के लिए चाहता हूँ. हम वर्तमान आइटम "इनकोडिंग निरपेक्ष URL का उपयोग कर सकते हैं" इस प्रयोजन के लिए. हालांकि, यह हमेशा "http का उपयोग करने के लिए लगता है" यूआरएल प्रोटोकॉल के लिए. यदि आपकी साइट HTTPS पर चलाता है तो यह आपके लिए काम नहीं करेगा.

छवि

जहाँ तक मुझे पता है, कोई बाहर की बॉक्स समाधान इस समस्या के लिए है. यदि आप HTTPS का उपयोग करने की आवश्यकता, आप बॉक्स विकल्प से बाहर नहीं है.

यह हल करने के लिए, कोई कस्टम क्रिया एक स्ट्रिंग बदलें फ़ंक्शन में आपके वर्कफ़्लो का उपयोग करने के लिए प्रदान करता है कि बनाएँ. वैकल्पिक रूप से, यहाँ एक 3 पार्टी उपकरण जैसे कि उत्कृष्ट पैकेज का उपयोग करें: http://www.codeplex.com/spdwfextensions 🙂

</अंत>

SharePoint डिजाइनर ईमेल भेजता है ???? एक ईमेल में

कभी-कभी मंच उपयोगकर्ताओं से पूछो: SharePoint Designer क्यों डाला करता है ???? मेरे ईमेल में एक फ़ील्ड मान के बजाय?

एक कारण यह होता है, क्योंकि जो करने के लिए आप संदर्भित चर नल है.

ऐसा हो सकता है क्योंकि "वर्तमान आइटम से किसी फ़ील्ड को संदर्भित करने के लिए आप प्रयास कर रहे हैं" लेकिन उपयोगकर्ता कभी उस प्रपत्र फ़ील्ड में कोई मान दर्ज किया.

<अंत />

तुलना करें / SharePoint डिज़ाइनर वर्कफ़्लो में रिक्त दिनांक के लिए परीक्षण

परिदृश्य: एक SharePoint डिज़ाइनर वर्कफ़्लो में, आप की जरूरत है अगर कोई दिनांक फ़ील्ड रिक्त है यह निर्धारित करने के लिए.

समस्या: एसपीडी एक तारीख के अलावा और कुछ के लिए तारीखों की तुलना के लिए एक सीधी विधि उपलब्ध नहीं कराता है. आप इस तरह की कोई शर्त नहीं बना सकता: "यदि [DateField] रिक्त बराबर होती है".

समाधान: तारीख करने के लिए एक स्ट्रिंग कनवर्ट करें. यदि दिनांक रिक्त है यह निर्धारित करने के लिए स्ट्रिंग तुलना का उपयोग करें.

स्क्रीन शॉट्स:

निम्न स्क्रीन शॉट्स बताएंगे कि कैसे यह करने के लिए. इस परिदृश्य में, किसी आइटम पर एक फ़ील्ड, "पर्यावरण परमिट:पहली बार अनुस्मारक दिनांक परमिट", प्रस्तुत है और वर्कफ़्लो प्रतिक्रिया में आग.

छवि

छवि

नोट्स:

जब मैं यह करने की कोशिश की, मैं ख़ुशी से कि यह काम करता है जानने के लिए चकित हो गया था. मैं कि SharePoint डिज़ाइनर स्ट्रिंग असाइनमेंट नामंज़ूर हो सकता है चिंतित था (चर:StringReminderDateDate) लेकिन यह यह अनुमति किया.

मैं भी गया था कि यह अनुमति देने का संबंध, मान नल और रनटाइम पर WF अप या तो झटका हो सकता है या शायद वैश्विक तापमान बढ़ा 1/2 एक डिग्री, लेकिन उन चिंताओं निराधार थे.

</अंत>

SharePoint डिज़ाइनर वर्कफ़्लो कस्टम क्रिया — के बारे में अवलोकन <FieldBind डिज़ाइनर प्रकार =”StringBuilder” … />

बस एक त्वरित अवलोकन है कि इन दो परिभाषाएँ के बीच एक बहुत ही महत्वपूर्ण अंतर है:

<FieldBind फील्ड "InParam1 =" DesignerType = "StringBuilder" Id = "2" पाठ = "इनपुट पैरामीटर #1" />

बनाम:

<FieldBind फील्ड "InParam1 =" Id = "2" पाठ = "इनपुट पैरामीटर #1" />

पहली बार इस तरह एसपीडी में दिखाता है:

छवि

जबकि उत्तरार्द्ध दिखाता है इस तरह:

छवि

I’m not sure how helpful these screen shots are but I put in the effort to make them so you have to view them 🙂

इस प्रेक्षण है: StringBuilder एक स्ट्रिंग का निर्माण करने के लिए आपको अनुमति देता है (जाहिर है) एक साथ स्ट्रिंग literals और वर्कफ़्लो डेटा मिश्रण द्वारा ("जोड़ने के जरिए लुकअप" निचले बाएँ कोने में बटन). जब आप लुकअप जोड़ें बटन का उपयोग करें, यह एक टोकन के रूप में सम्मिलित करता है"[%टोकन %]". जब SharePoint अपने कस्टम क्रिया invokes, (मेरे मामले में सी # कोड), SharePoint टोकन ही गुजरता, टोकन का मान नहीं. यदि आप डिजाइनर के लिए डिफ़ॉल्ट प्रकार का उपयोग करें (दूसरा प्रकार), SharePoint टोकन को विस्तृत करता है और अपनी कार्रवाई करने के लिए टोकन का वास्तविक मान गुजरता.

StringBuilder बुरा =, डिफ़ॉल्ट डिजाइनर प्रकार = अच्छा है.

बेशक, कि क्या मैं वास्तव में मतलब यह नहीं है. बस नहीं है और कोशिश एक पैरामीटर करने के लिए अपने कस्टम क्रिया से गुजारें जब टाइप डिजाइनर = StringBuilder. यदि आप अपने वर्कफ़्लो में जटिल स्ट्रिंग बनाने की जरूरत है और डिफ़ॉल्ट डिजाइनर प्रकार चेन यह करने के लिए एक StringBuilder सामने अप का उपयोग करें (जो संयोग से वास्तव में क्या एक ईमेल की कार्रवाई के लिए एक डायनामिक विषय बनाने के लिए करता है, लेकिन है कि एक और ब्लॉग प्रविष्टि के लिए कोई विषय, हर हर).

<अंत />