2008-09-25 14 views
16

के माध्यम से एक सूची आइटम अपडेट करके एक शेयरपॉइंट वर्कफ़्लो को फायर करना मैं एक साधारण शेयरपॉइंट अनुक्रमिक वर्कफ़्लो विकसित कर रहा हूं जो दस्तावेज़ लायब्रेरी से जुड़ा होना चाहिए। जब एक दस्तावेज़ लाइब्रेरी को थोड़ा कार्यप्रवाह जोड़, मैं इन विकल्पोंसूची वेबसाइट सेवा

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

अब मैं इस पुस्तकालय में एक दस्तावेज़ अपलोड करता हूं और वर्कफ़्लो प्रारंभ होता है और उदाहरण के लिए मेल भेजता है। यह पूरा हो जाता है और सबकुछ ठीक है।

जब मैं नए आइटम पर गुण संपादित करें का चयन करता हूं और परिवर्तन सहेजता हूं, तो वर्कफ़्लो फिर से निकाल दिया जाता है। बिल्कुल हम क्या उम्मीद करते हैं।

Copy.asmx Webservice की सहायता से लाइब्रेरी में एक नया आइटम कॉपी करते समय भी वर्कफ़्लो सामान्य रूप से प्रारंभ होता है।

लेकिन अब मैं SharePoint WebService Lists.asmx के माध्यम से आइटम अपडेट करना चाहते हैं।

मेरे CAML यहाँ जाता है:

<Method ID='1' Cmd='Update'> 
    <Field Name='ID'>1</Field> 
    <Field Name='myDummyPropertyField'>NewValue</Field> 
</Method> 

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

यह व्यवहार हमारे विकास और परीक्षण प्रणाली पर पुन: उत्पन्न करने योग्य है।

जाँच हो रही है त्रुटि लॉग

09/25/2008 16:51:40.17 w3wp.exe (0x1D94)       0x1D60 Windows SharePoint Services  General       6875 Critical Error loading and running event receiver Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver in Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Additional information is below. : The object specified does not belong to a list. 

जो कोई भी इस व्यवहार की पुष्टि कर सकते हैं: (C: \ 12 \ लॉग \ Program Files \ Common Files \ Microsoft साझा \ वेब सर्वर एक्सटेंशन) मैं एक अजीब त्रुटि संदेश की खोज की? या कोई समाधान संकेत देता है?


मैं आपको इस विषय पर किसी भी विकास के बारे में सूचित कर रहा हूं।

+0

हमने इस व्यवहार को Lists.asmx वेब सेवा और वर्कफ़्लो के साथ पिछले सप्ताह में एक समान परिदृश्य के साथ देखा है। इस बिंदु पर हम अतिरिक्त वेब सेवा कॉल के साथ इस पर काम कर रहे हैं जो वर्कफ़्लो कार्यक्षमता को डुप्लिकेट करता है। मुझे आपके द्वारा आने वाले किसी भी विकास के बारे में सुनना अच्छा लगेगा! – barryd

+0

@barryd: क्या आपको लगता है कि आपका कामकाज उत्पादन के उपयोग में करेगा? और क्या आपको वर्कफ़्लो को बाहरी रूप से ट्रिगर करने का कोई तरीका मिला? मैंने माइक्रोसॉफ्ट ग्राहक सहायता सेवाओं पर एक मामला खोला है। मुझे आशा है कि वे हमें इस मुद्दे के माध्यम से प्राप्त करेंगे। बेशक, मैं यहां कोई खबर पोस्ट करूंगा! –

उत्तर

11

अंत में, हमें माइक्रोसॉफ्ट में समर्थन सेवाओं की प्रक्रियाओं के माध्यम से मिला और समाधान मिला!

सबसे पहले, माइक्रोसॉफ्ट ने इसे एक बग कहा। यह एक मामूली बग है, क्योंकि एक अच्छा कामकाज है, इसलिए इसमें कुछ समय लग सकता है, जब तक कि यह बग ठीक नहीं हो जाता है (समर्थन तकनीशियन ने अगले सर्विस पैक के साथ कुछ और कहा है (!))।

लेकिन अब समस्या के लिए।

reaseon

के मेरे सवाल से CAML कोड पर एक नज़र डालें:

<Method ID='1' Cmd='Update'> 
    <Field Name='ID'>1</Field> 
    <Field Name='myDummyPropertyField'>NewValue</Field> 
</Method> 

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

The object specified does not belong to a list. 
बेशक

, वस्तु (दस्तावेज़ लाइब्रेरी) एक सूची से संबंधित नहीं है, यह सूची है।

समाधान

हम अपने CAML क्वेरी के लिए एक और लाइन जोड़ने के लिए:

<Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field> 

FileRef कार्यप्रवाह प्रबंधक पूरी तरह से योग्य दस्तावेज़ का नाम गुजरता है, जो - अब पूरी तरह से खुश - आइटम के वर्कफ़्लो शुरू करता है।

सावधान रहें, आपको पूर्ण सर्वर सर्वर को शामिल करना होगा, अपने सर्वर का नाम छोड़ना होगा (उदाहरण के लिए आपके SPItem की ServerRelativePath प्रॉपर्टी में पाया गया है)।

पूर्ण काम कर CAML क्वेरी:

<Method ID='1' Cmd='Update'> 
    <Field Name='ID'>1</Field> 
    <Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field> 
    <Field Name='myDummyPropertyField'>NewValue</Field> 
    </Method> 

भविष्य

शायद यह गैर-दस्तावेजी व्यवहार आगामी सर्विस पैक्स में से एक में तय किया जाएगा, शायद नहीं। माइक्रोसॉफ्ट समर्थन माफी माँगता है और इस विषय पर एक एमएसडीएन आलेख जारी करने जा रहा है। अगले महीने के लिए मुझे उम्मीद है कि स्टैक ओवरफ्लो पर यह आलेख डेवलपर्स को उसी स्थिति में मदद करेगा।

पढ़ने के लिए धन्यवाद!

0

मुझे इस समस्या का सामना करना पड़ा है और पता चला है कि एक बार वर्कफ़्लो शुरू हो जाने पर, इसे स्वचालित रूप से फिर से शुरू नहीं किया जा सकता है, इससे कोई फर्क नहीं पड़ता कि आप आइटम को कैसे अपडेट करते हैं। हालांकि, आप वर्कफ़्लो को मैन्युअल रूप से फिर से शुरू कर सकते हैं, जितनी बार चाहें उतनी बार।

3

हमें एक स्वीकृति वर्कफ़्लो के साथ एक समान समस्या का सामना करना पड़ा। इसे हल करने के लिए, हमने अपना स्वयं का इवेंट रिसीवर लिखा और इसे सूची में संलग्न किया। आइटम को अपडेट या संपादित किया गया था या नहीं, इसके बाद हमने स्वीकृति वर्कफ़्लो को निकाल दिया।

आशा इस मदद करता है ...

+0

यह अच्छा लगता है। हम माइक्रोसॉफ्ट समर्थन के संपर्क में हैं और वहां सिफारिश की प्रतीक्षा कर रहे हैं। लेकिन यह जाने का एक तरीका लगता है। –

0

मैं एक ही व्यवहार देखा है। लेकिन फिर आपको posts like this मिलते हैं, जो लोगों को ईमेल अनुस्मारक सेट अप करने के लिए प्रति दिन एक दिन बनाने का तरीका दिखाते हैं।

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