فئة المحفوظات: التنمية SharePoint

تفسير بسيط: “لا تقع القيمة ضمن النطاق المتوقع.”

التحديث: ملصق مجهول ترك تعليق كبيرة حول الأسماء الداخلية. تأكد من قراءتها.

عند العمل مع مستقبلات الأحداث والتعليمات البرمجية الأخرى مراجع عناصر قائمة SharePoint عن طريق نموذج الكائن, أنا غالباً ما تجعل الأخطاء التي تولد هذا الخطأ في وقت التشغيل:

خطأ في تحميل وتشغيل جهاز استقبال الحدث Conchango.xyzzyEventReceiver في xyzzy, الإصدار = 1.0.0.0, الثقافة = المحايدة, PublicKeyToken = 0dc50a750396c3ac. يتم الحصول على معلومات إضافية أدناه. : لا تقع القيمة ضمن النطاق المتوقع.

أعتقد أن هذا هو خطأ عامة إلى حد ما الذي يحتمل أن ينتج العديد من الطرق المختلفة. ومع ذلك, تفسير واحد بسيط أن أنا أشعر بالرجوع إلى حقل غير صحيح. إذا كان اسم الحقل "تاريخ الاستحقاق", يجب الرجوع إليه مثل هذا في استقبال الحدث:

خصائص.عنصر القائمة["تاريخ الاستحقاق"]

عندما أنا خطأ إملائي أو استخدام حالة الخطأ عند الرجوع إلى الميدان, ينشئ SharePoint أعلاه المذكورة خطأ وقت التشغيل. وعلى سبيل المثال, وهذا الخطأ:

خصائص.عنصر القائمة["تاريخ الاستحقاق"]

</نهاية>

الاشتراك في بلادي بلوق.

[تشنورتي] بطاقات:

سريعة & من السهل: قم بإنشاء مجلد وقم بتعيين نوع المحتوى (أو, وقد الخاص بك KPIs ويأكلونها جداً)

من أجل التغلب على مشكلة KPI كتبت عنه هنا, فعلت بعض التجارب واكتشف العمل KPI هذا ضد المجلدات مع البيانات الوصفية بنفس الطريقة التي تعمل ضد الوثائق أو عناصر قائمة. أنا أثبت ذلك بإنشاء نوع محتوى جديد استناداً إلى نوع محتوى المجلد وثم إضافة حقول قليلة. إنشاء بعض المؤشرات، وأثبت لنفسي أن مؤشرات الأداء الرئيسية تعمل كما هو متوقع. كانت هذه الأنباء السارة. أنها ليست مثالية, لأن الحفر إلى أسفل تحصل من KPI ضد المجلدات ليس بالضبط ما تريد. هذا ليس كثيرا هناك عيب في حالتي لأن 1) للمستخدمين النهائيين لا أعرف أي أفضل و 2) يذهب التصفح لأسفل إلى مجلد. يقومون بالنقر فوق اسم المجلد، وهم في هذا البند. نقرتين بدلاً من واحدة, وهي ليست نهاية العالم.

وهذا تدفقت لطيف مع العمل كنت أقوم به. أنا إنشاء مجلد لكل مستند التي تحصل على تحميلها. ويتم هذا عن طريق جهاز استقبال الحدث. وكنتيجة لذلك, أنها قطعة من كعكة للحفاظ الخاصة بالمجلد الأصل بيانات التعريف في المزامنة مع البيانات الوصفية يحركها KPI من الملف نفسه منذ السباكة موجودة بالفعل. This allows me to have my KPI’s and eat them too 🙂

تم تعديل متلقي الحدث إضافة المجلد، ثم قم بتعيين نوع المحتوى هذا المجلد الجديد إلى نوع محتوى مخصص بلدي صديقة KPI. هذا جزء من التعليمات البرمجية لا حيلة:

 سبفولديركولكشن سركفولديرس = targetWeb.GetFolder("وثائق").المجلدات الفرعية;
  سبفولدير أديدفولدير = srcFolders.Add(خصائص.ListItem.ID.ToString());
  سبكونتينتيبيد كبيكت = الجديد سبكونتينتيبيد("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["معرف نوع المحتوى"] = كبيكت;
  addedFolder.Item.Update();

لتحديد موقع معرف "نوع المحتوى" الفعلي, الوصول إلى نوع المحتوى عن طريق إعدادات الموقع، ونسخ/لصق من URL كما هو موضح:

الصورة

</نهاية>

الاشتراك في بلادي بلوق!

[تشنورتي] بطاقات: ,

سريعة وسهلة: الحصول على سبفولدير سبليستيتيم في استقبال الحدث

أنا أكره أن نعترف أنه, ولكن أنا ناضلت مع هذا واحدة كل يوم. جهاز استقبال الحدث يحتاج إلى تحديث حقل المجلد الأصل الخاص به. هذا قليلاً يوضح كيفية القيام بذلك:

القطاع الخاص باطلة أوبداتيبارينتفولدير(سبيتيميفينتبروبيرتييس خصائص)
{

سبفولدير ثيسيتيمفولدير = خصائص.ListItem.File.ParentFolder;
thisItemFolder.Item["حالة الموافقة ZZ"] = "الأخبار الجيدة, الجميع!";
thisItemFolder.Item.Update();


} // أوبداتيبارينتفولدير

وفي هذه الحالة, أنني أعمل مع مكتبة مستندات والخصائص تأتي من حدث إيتيماديد.

الحيلة أنه لا يمكنك الحصول على سبفولدير البند مباشرة من العنصر نفسه (الأول-هاء. خصائص.ListItem.Folder خالي). وبدلاً من ذلك, انتقل إلى ملف مقترن عنصر القائمة والحصول على مجلد ملف.

</نهاية>

الاشتراك في بلادي بلوق!

[تشنورتي] بطاقات:

بعد تصحيح استقبال الحدث آخر خدعة

وأنا متأكد من أني لست أول شخص للخروج بهذا. ومع ذلك, أنا لم تكن قد لاحظت أي شخص نشر خدعة مثل هذا منذ أن بدأت تولي اهتماما وثيقا للمجتمع في يوليو الماضي. حتى, وأعتقد أن وظيفة هذا نصيحة سريعة وسهلة التصحيح.

أنا أعمل على جهاز استقبال حدث الذي بدأ بإنشاء هذا الخطأ في 12 خلية:

خطأ في تحميل وتشغيل جهاز استقبال الحدث Conchango.xyzzyEventReceiver في xyzzy, الإصدار = 1.0.0.0, الثقافة = المحايدة, PublicKeyToken = بلاهبالهباله. يتم الحصول على معلومات إضافية أدناه. : لم يتم تعيين إلى مثيل لكائن مرجع كائن.

لم أكن أعرف حيث كان عرض هذا الخطأ لأن كنت قد فعلت أشياء كثيرة جداً في واحدة من دورات بلدي مدونة/نشر/اختبار.

حاولت هذا الحل للحصول على بلدي pdb هناك مع الآمال في أن SharePoint 12 سوف تظهر خلية تتبع مكدس الذاكرة المؤقتة, لكن لا حظ. أنا لا أعرف إذا كان ذلك ممكناً، وإذا كان شخص ما لا, واسمحوا لي أن أعرف 🙂

وأنا أعلم أنه من الممكن كتابة رسائل سجل الخاصة بك 12 خلية. بصراحة, يريد شيئا أقل قليلاً مخيف وأسرع لتنفيذ.

وقع لي أن يمكن على الأقل احصل على بعض المعلومات الأساسية تتبع باصطياد وإعادة طرح الاستثناءات العامة مثل هذا:

  حاول {
    أوبداتيديتيونداتي(خصائص);
  }
  الصيد (الاستثناء ه)
  {
    رمي الجديد الاستثناء("مرسل, أوبداتيديتيونداتي(): الاستثناء: [" + e.ToString() + "].");
  }

هذا وأظهرت في 12 خلية thusly:

خطأ في تحميل وتشغيل جهاز استقبال الحدث Conchango.xyzzyEventReceiver في xyzzy, الإصدار = 1.0.0.0, الثقافة = المحايدة, PublicKeyToken = بلاهبلاهبلة. يتم الحصول على معلومات إضافية أدناه. : مرسل, أوبداتيديتيونداتي(): الاستثناء: [System.NullReferenceException: لم يتم تعيين إلى مثيل لكائن مرجع كائن. في Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(خصائص سبيتيميفينتبروبيرتييس) في Conchango.xyzzyManagementEventReceiver.Dispatcher(خصائص سبيتيميفينتبروبيرتييس, سلسلة افينتديسكريبشن)].

الذي قدم لي كل التفاصيل أنا في حاجة إلى تعقب تلك المشكلة خاصة وأتوقع أن استخدامه كثيرا تسير إلى الأمام.

</نهاية>

الاشتراك في بلادي بلوق!

[تشنورتي] بطاقات: ,

الحل: سبكويري عدم البحث في المجلدات

أنا تم تنفيذ الأسبوع الماضي "المتطورة" الحل لعميل الذي يستخدم BDC وسبكويري واصطدم ببعض صعوبة في استخدام سبكويري ضد مكتبة المستندات التي تحتوي على المجلدات. خلاصة: تعيين "العودية" لعرض السمة للاستعلام.

بلدي السيناريو:

  • يوم الاثنين, إيداع مستند، وتوفير بعض البيانات الوصفية.
  • وفي الأسبوع التالي, أقوم بتحميل مستند جديد. كثير من بيانات التعريف هذه الوثيقة الجديدة تستند إلى وثيقة حملت يوم الاثنين (التي نسميها "المستند الرئيسي").
  • لقد قمنا بإنشاء واجهة خدمة ويب التي توفر واجهة ودية BDC إلى القائمة حيث أن المستخدمين يمكن بسهولة تحديد موقع تلك الوثيقة اليوم الاثنين عن طريق بحث عنوان.
  • عمود بيانات BDC يوفر واجهة مستخدم ودية. (وهذا جزء من محاولة مني في استخدام BDC لعمود بحث أكثر ودية).

خدمة BDC النهائي على الواجهة يستخدم استعلام مثل هذا للقيام بحث:

 // تستخدم أداة U2U للمساعدة في توليد هذا الاستعلام CAML.
      oQuery.Query =
        "<حيث>";

      إذا كان (titleFilter.Length > 0)
          = oQuery.Query
          "  <و>";

        = oQuery.Query
        "    <و>" +
        "      <جيك>" +
        "        <اسم FieldRef =  "DocumentId" />" +
        "        <نوع القيمة =  "Text">" + ميند + "</القيمة>" +
        "      </جيك>" +
        "      <لك>" +
        "        <اسم FieldRef =  "DocumentId" />" +
        "        <نوع القيمة =  "Text">" + مزيد + "</القيمة>" +
        "      </لك>" +
        "    </و>";

      إذا كان (titleFilter.Length > 0)
          = oQuery.Query
          "    <يحتوي على>" +
          "      <اسم FieldRef =  "Title" />" +
          "      <نوع القيمة =  "Text">" + تيتليفيلتير + "</القيمة>" +
          "    </يحتوي على>" +
          "  </و>";
        = oQuery.Query
        "</حيث>";

وخلال المرحلة الأولى من تطوير, وهذا عمل كبير. ومع ذلك, نحن عرض المجلدات في الدليل حل بعض المشاكل وفجأة, منتقي BDC بلدي لن ترجع أية نتائج. أنا تعقب هذا وصولاً إلى حقيقة أن سبكويري سيعود ابدأ أية نتائج. نحن المجلدات المستخدمة أساسا للسماح بملفات متعددة بنفس الاسم سيتم تحميلها ولكن مع مختلف البيانات الفوقية. عندما يتم تحميل الملف, ونحن إنشاء مجلد استناداً إلى معرف عنصر القائمة، ثم قم بنقل الملف هناك (لقد كتبت عن ذلك هنا; لقد كان لدينا نتائج مختلطة مع هذا النهج ولكن في الجامعة, أنه يعمل بشكل جيد). لا تهتم للمستخدم حول المجلدات وفي الواقع, لا أفهم حقاً أن هناك أية مجلدات. ونحن بتكوين كافة الآراء على مكتبة لإظهار العناصر دون اعتبار للمجلدات.

أنا ضربت هذه المشكلة مرتين كتنفيذ التقنية تطورت وحلها هو بشكل مختلف في كل مرة. المرة الأولى, أنا لم يكن استخدام يحتوي على عامل التشغيل في الاستعلام. دون عامل تشغيل يحتوي على, وكنت قادراً على حل المشكلة عن طريق تحديد العرض على كونتراكتور سبكويري. بدلاً من استخدام منشئ افتراضي:

سبليست أوليست = ويب.قوائم["وثائق"];

سبكويري أوكويري = الجديد سبكويري();

لقد استخدمت بدلاً من ذلك على منشئ المحدد في طريقة عرض:

سبليست أوليست = ويب.قوائم["وثائق"];

سبكويري أوكويري = الجديد سبكويري(oList.Views["كافة المستندات"]);

أن تحل هذه المشكلة وبدأت للحصول على بلدي النتائج.

ثم أضفت يحتوي على عامل التشغيل في هذا المزيج، واندلعت مرة أخرى. وتبين أن المشغل يحتوي على, وبقدر ما أستطيع أن أقول, لا تعمل مع الرأي القائل بنفس الطريقة كما جيك أبسط / مشغلي لك. وقد فعلت بعض البحث وعلمت أنه يجب تعيين فيواتريبوتيس للاستعلام إلى "عودي", كما هو الحال في:

oQuery.ViewAttributes = "نطاق = " Recursive "";

أن تحل المشكلة ليحتوي على. في الحقيقة, هذا أيضا حل مشكلتي البحث الأصلي، وإذا كان قد حددت في العودية السمة في المرة الأولى, أود أن لا يكون تشغيل في هذه المسألة مرة أخرى.

حقيقة أن SPQuery المستندة إلى رأي يعمل لبعض مشغلي (جيك/لك) والبعض الآخر لا (يحتوي على), إلى جانب حقيقة أن مؤشرات الأداء الرئيسية لا يبدو للعمل على الإطلاق مع المستند الذي يحتوي على المجلد مكتبات العملاء المتوقعين لي إلى الاعتقاد بأن سبكويري لديه بعض القضايا تعامد.

شكر خاص:

</نهاية>

الاشتراك في بلادي بلوق!

[تشنورتي] بطاقات: ,

علة KPI موس? مؤشر قائمة مرتبطة إلى مكتبة المستندات باستخدام مجلدات

التحديث 02/29/08: أنا حل هذه المشكلة بإنشاء مجلد ومن ثم تعيين نوع محتوى إلى المجلد الذي يحتوي على البيانات الوصفية أحتاج لمؤشرات الأداء الرئيسية. هو موضح تفصيل أكثر قليلاً هنا.

وقد نفذنا حل تقني حيث المستخدمين تحميل المستندات إلى مكتبة مستندات. استقبال حدث بإنشاء دليل ونقل الملف إلى هذا الدليل (باستخدام تقنية مماثلة لما كتبت عن هنا). ونحن لقد أبحر بنجاح حول المشاكل المحتملة الناجمة عن مستقبلات الأحداث التي إعادة تسمية الملفات التي تم تحميلها (أساسا لأن المستخدمين ابدأ ابدأ على المستند بالنقر فوق "جديد" ولكن بدلاً من ذلك إنشاء مستندات محلياً وقم بتحميل الملفات).

البيانات الوصفية لهذه الوثائق تتضمن نعم/لا يوجد عمود موقع يسمى "عاجل" ودعا آخر موقع عمود "الحالة". ونحن بحاجة إلى الوفاء بمتطلبات عمل أن يبين النسبة المئوية من "عاجل" الوثائق التي حالتها "معلقة".

هذه عادة بسيطة للقيام ووصفت شيئا كثيرا مثل هذا في بيجل SharePoint مع الكثير من قطات الشاشة إذا كنت مهتما.

باختصار, لقد فعلت ما يلي:

  • إنشاء طريقة عرض في مكتبة وثيقة تسمى "معلقة".
  • تكوين طريقة العرض لتجاهل بنية المجلد.
  • إنشاء قائمة KPI.
  • إنشاء مؤشر في القائمة التي تشير إلى lib دوك وأن "معلق" طريقة العرض.

وهذا ببساطة لا تعمل. يعرض KPI هدفي (مثلاً. خمس وثائق عاجلة) ولكن دائماً يظهر العدد الفعلي للوثائق العاجلة كصفر. ومن المفارقات, إذا كنت إلى أسفل تفاصيل, ويظهر خمس وثائق عاجلة في القائمة. أنا خلقت سيناريو بسيط جداً مع هاتين الوثيقتين, واحدة في مجلد وواحد لا. هنا هو لقطة الشاشة:

الصورة

لقطة الشاشة أعلاه تبين بوضوح هناك وثيقتين في الرأي ولكن القيمة "" واحد. كاملشيما "" معرف مع مستند فارغ في المجلد الجذر، والآخر في مجلد باسم "84".

ويبدو لي أنه حتى ولو قمت بتحديد طريقة عرض, لا شرف KPI "إظهار كافة العناصر بدون مجلدات" الإعداد وبدلاً من ذلك, ويقتصر على المجلد الجذر.

إذا كنت مخطئا, يرجى قطره لي خط أو ترك تعليق.

</نهاية>

الاشتراك في بلادي بلوق!

[تشنورتي] بطاقات:

حل للمشكلة: “FileNotFoundException” مع بلدي المتلقي ميزة.

كنت أعمل على ميزة الأسبوع الماضي إضافة بعض مستقبلات الأحداث إلى مثيل قائمة محددة. (أنا blogged بعض الشيء عن هذا المتلقي قائمة هنا).

استخدام سطر الأوامر, ويمكن تثبيت هذه الميزة مع أي خطأ (ولكن انظر أدناه للخطأ الخفية). عندما حاولت نشر الميزة في الموقع, واشتكى موس من "FileNotFoundException" خطأ. ويصف هذا بلوق دخول كيفية حلها.

وهذا هو الخطأ الذي أظهر لي موس في مستعرض ويب:

ميزة ' b2cb42e3-4f0a-4380-آبا-1ef9cd526f20’ تعذر تثبيت لأن تحميل الحدث المتلقي الجمعية "xyzzyFeatureReceiver_0" فشل: System.IO.FileNotFoundException: تعذر تحميل الملف أو التجميع ' xyzzyFeatureReceiver_0’ أو بأحد التبعيات الخاصة به. يتعذر على النظام العثور على الملف المحدد.
اسم الملف: ' xyzzyFeatureReceiver_0’
في System.Reflection.Assembly.nLoad(اسم الملف, سلسلة تعليمات البرمجة الأساسية, دليل أسيمبليسيكوريتي, لوكاتيونهينت الجمعية, ستاككراولمارك& ستاكمارك, ثرووونفيلينوتفوند المنطقية, فورينتروسبيكشن المنطقية)
في System.Reflection.Assembly.InternalLoad(اسم أسيمبليريف, دليل أسيمبليسيكوريتي, ستاككراولمارك& ستاكمارك, فورينتروسبيكشن المنطقية)
في System.Reflection.Assembly.InternalLoad(سلسلة أسيمبليسترينج, دليل أسيمبليسيكوريتي, ستاككراولمارك& ستاكمارك, فورينتروسبيكشن المنطقية)
في System.Reflection.Assembly.Load(سلسلة أسيمبليسترينج)
في Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
تحذير: يتم تشغيل تسجيل الجمعية ملزمة OFF.
لتمكين تسجيل فشل ربط الجمعية, قم بتعيين قيمة التسجيل [HKLMSoftwareMicrosoftFusion!انابليلوج] (DWORD) إلى 1.
ملاحظة: وهناك بعض جزاء الأداء المرتبطة بتسجيل فشل ربط الجمعية.
لإيقاف تشغيل هذه الميزة, قم بإزالة قيمة التسجيل [HKLMSoftwareMicrosoftFusion!انابليلوج].

استكشاف الأخطاء وإصلاحها باستخدام Windows SharePoint Services.

أنا أعرف كيف التسبب عمدا في هذا الخطأ: لا تثبيت تجميع في GAC. لكن, في GAC. أنا عادة تثبيت التجميعات في GAC بسحبها إلى c:\windowsassembly المجلد باستخدام مستكشف windows. لقد شعرت ابدأ 100% مريحة القيام بذلك لأنني اعتقدت دائماً أن gacutil موجودة لسبب … ولذلك حاولت أن. فأي فرق.

البحث في الإنترنت، ووجدت هذه الوظيفة: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

حدث المشهد الرئيسي لاستخدام بت الجذر ذاته من التعليمات البرمجية (من الكتاب داخل WSS من هذه القائمة) حتى أنه كان علامة على الأمل. ومع ذلك, الاقتراح من تزيين الجمعية مع [الجمعية العامة: ] التوجيه لم يكن له معنى بالنسبة لي. حاولت ذلك على أي حال، وكنت على حق. فأي فرق.

ثم لاحظت أن تعريف الفئة بلدي لم يكن الجمهور. جعلت من الجمهور، والتي جعلت أي فرق.

القادم, لقد ذهبت إلى عناء لتمكين تسجيل فشل ربط الجمعية "" (وفي أعقاب إرشادات مفيدة ودقيقة قدمت) وهذا حيث بدأت الأمور للحصول على الاهتمام. أن تسجيل الدخول يظهر لي أن وقت التشغيل بالبحث في كل مكان على هذا الخادم لبلدي الجمعية. بل يبدو أنه ينبغي البحث عن ذلك في بلدي الطب مجلس الوزراء. لكن … لن ابحث عنه في GAC.

وضعت على بلدي سترة الشتاء ويذهب البحث الإنترنت مرة أخرى، والعثور على شخص ما بأن هذه المشكلة أيضا. مناقشة مطولة في هذا الترحيل بيترز قبالة إلى لا شيء، ولا أجد حلاً.

انتقل بلدي الجمعية إلى أحد الأماكن السجل المطالبات فإنه يقوم بالبحث واجعل التقدم أكثر قليلاً. أنا أشعر بمكافأة مع خطأ جديد في المستعرض عند محاولة تنشيط ميزة:

فشل في إنشاء كائن جهاز استقبال ميزة من الجمعية "xyzzyFeatureReceiver_0", اكتب "Conchango.xyzzyFeatureReceiver" لميزة b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: لا يمكن أن تكون القيمة فارغة.
اسم المعلمة: نوع
في System.Activator.CreateInstance(نوع نوع, NonPublic منطقية)
في System.Activator.CreateInstance(نوع نوع)
في Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

استكشاف الأخطاء وإصلاحها باستخدام Windows SharePoint Services.

وقت لآخر رحلة واحدة على الإنترنت!

هذه المرة العثور, وكما هو متوقع ما يكفي, أن موس قضايا هذا الخطأ لأن الجمعية العامة ليس في GAC.

أريد أن احصل على شيء إيجابي للخروج من هذه وحاول أن تشعر بالفخر بقليل أن لقد قمت بإنشاء هارب تجميعات MSIL, ولكن لا يعمل. أنا منزعج للتو عادي. أجد نفسي مدمدم "الدجاجة أم البيضة" تحت انفاسي.

وأخيراً قررت البونت. أنا إنشاء مشروع جديد تماما ونسخ/لصق التعليمة البرمجية من المشروع غير العاملين إينكريديبليكلواكيدفرومثيجاكاسيمبلي على هذا المشروع الجديد. (أنا ابحث عن علامة بناء يسمى شيئا مثل "إخفاء من الجمعية العامة ملزمة إذا كانت مثبتة في GAC" ولكن لا يمكن العثور على أحد).

تثبيت الميزة، وتفعيلها و … وهو يعمل! حتى, وبعد كل ذلك, كان على أن الأساس ' إعادة تمهيد’ المشروع الخاص بي. وهذا سبب آخر لماذا أكره أجهزة الكمبيوتر.

لم أكن أعرف شيئا مفيداً من هذا. وكان تثبيت الميزات باستخدام سطر الأوامر stsadm طوال اليوم وتم استخدام "-القوة" خيار الخروج من هذه العادة. لسبب من الأسباب, لم أكن استخدام خيار القوة-عندما قمت بتثبيت المشروع الجديد. هذه المرة, فعلت فعلا, ننسى حقاً لنسخ الجمعية هذا المشروع الجديد في GAC. وكنتيجة لذلك, تلقيت هذا فيلنوتفونديكسسيبشن "" خطأ. هذه المرة, حصلت عليه من الأمر stsadm, لا عندما حاولت تنشيط الميزة عبر مستعرض ويب. حتى, -قوة الواقع يلعب دورين. فإنه يسمح لك بإعادة تثبيت ميزة موجودة. كما يسمح لك لتثبيت ميزة عربات التي تجرها الدواب التي لا يمكن العمل في وقت التشغيل بواسطة قمع الخطأ. ربما جاء في التعليمات في مكان ما بقدر ولكن لاحظت ابدأ أنها.

</نهاية>

[تشنورتي] بطاقات: ,

سريعة & من السهل: إعادة تسمية الملف الذي تم تحميله باستخدام طراز كائن SharePoint عن طريق استقبال حدث

التحديث: هذا يعمل ولكن هناك قيود كبيرة التي يرد وصفها في التعليقات. لا يزال قد يكون هذا مفيداً في بعض مفروض.

التحديث 2: في بلدي المشروع الحالي, دائماً للمستخدمين تحميل الوثائق. وكنتيجة لذلك, أنا لا تقم بتشغيل إلى مشكلة حيث يتم تشغيل MS Word ويعتقد أنه تمت إعادة تسمية الملف على أنه. يمكنني تشغيل إلى مشكلة, "الملف تم تعديله من قبل شخص آخر" وحل هذا عن طريق علم نوع إشارة بسيطة. يحتاج المستخدمون إلى تغيير حقل بيانات الوصفية من قيمته الافتراضية إلى شيء آخر. إيتيموبداتيد() المتلقي يبحث عن قيمة صالحة هناك قبل إجراء إعادة تسمية فعلا، ومنذ ذلك الحين, لم تكن لدى أي مشاكل. قد تختلف من الأميال الخاص بك.

لدى متطلبات عميل لتغيير اسم الملفات التي يتم تحميلها إلى مكتبة مستندات معينة لتتوافق مع اصطلاح تسمية خاصة. لا يوفر API تسمية "()" الأسلوب. وبدلاً من ذلك, ونحن نستخدم "MoveTo(…)". وإليك قليلاً الحد أدنى من التعليمات البرمجية لإنجاز هذا:

 العامة تجاوز باطلة ItemAdded(سبيتيميفينتبروبيرتييس خصائص)
        {
            SPFile f = خصائص.ListItem.File;

            f.MoveTo(خصائص.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

بت صعبة فقط هو "الخصائص. ListItem.ParentList.RootFolder.Url ". MoveTo() يتطلب الأسلوب URL. أن هرس نقطة السلسلة لي إلى المجلد الجذر من بلدي مكتبة المستندات الحالية. وهذا ما يسمح لي لتجنب أي ترميز الثابت في جهاز استقبال الحدث.

هذا هو نسخة أكثر فائدة أن يفعل الشيء نفسه, ولكن يقوم بتعيين اسم الملف إلى "عنوان":

 العامة تجاوز باطلة ItemAdded(سبيتيميفينتبروبيرتييس خصائص)
        {
            ديسابليفينتفيرينج();

            // تعيين عنوان هذا البند إلى اسم الملف نفسه.
 // ملاحظة: هذا التعيين يجب أن تتم قبل أن نقوم بتعديل الملف نفسه.
 // استدعاء التحديث() على SPFile ويبدو أن يبطل الخصائص في
 // بعض الشعور.  التحديثات إلى عنوان "" فشلت حتى أن تغيير (والتحديث() المكالمة)
 // تم نقل أمام التغيير إلى اسم الملف.
            خصائص.عنصر القائمة["عنوان"] = الخصائص.ListItem.File.Name;

            خصائص.ListItem.Update();

            SPFile f = خصائص.ListItem.File;

            // الحصول على التمديد للملف.  نحن بحاجة إلى ذلك في وقت لاحق.
 السلسلة سبفيليكست = الجديد FileInfo(f.Name).ملحق;

            // إعادة تسمية الملف إلى معرف عنصر القائمة واستخدام ملحق اسم الملف للحفاظ على
 // هذا الجزء من أنها سليمة.
            f.MoveTo(خصائص.ListItem.ParentList.RootFolder.Url +
                "/" + خصائص.عنصر القائمة["معرف"] + سبفيليكست);

            // ارتكاب هذه الخطوة.
            f.Update();

            انابليفينتفيرينج();
        }

معلومات سريعة: جزء ويب الخاص باستعلام المحتوى, قيمة العمود البحث و XSL

لدى اسم عمود باسم "موقع العقارات" نوع محتوى.

هذا العمود من نوع "بحث".

وقد تم تعديل <كوممونفيوفيلدس> و ItemStyle.xsl إظهار العمود.

بسيطة <xsl:حدد قيمة من =…> مرة أخرى بإرجاع قيمة داخلية التي تتضمن بيانات الموضع الترتيبي, مثل:

1;#ميامي

للحصول على قيمة الصديقة للإنسان, استخدام xsl سلسلة فرعية بعد, كما هو موضح:

<xsl:( @Real_x005F_x0020_Estate_x005F_x0020_Location، '#')"></xsl:القيمة >(@Real_x005F_x0020_Estate_x005F_x0020_Location,’#’)"></xsl:القيمة>

استخدم هذا الأسلوب عندما كنت تعمل مع قيم البحث في تحويلات XSL وتحتاج إلى الحصول على قيمة الصديقة للإنسان.

<نهاية/>

[تشنورتي] بطاقات: , ,

سريعة وسهلة: تحديد اسم العمود الداخلي من عمود موقع

التحديث: جيريمي تك وقد كتبت عن هذا وطرح بعض التعليمات البرمجية لتطبيق وحدة تحكم أن يعرض أسماء داخلي.

كنت أحاول الحصول على جزء ويب استعلام محتوى لعرض تاريخ استحقاق من مهمة وسبب التسمية الشاشة هو "تاريخ الاستحقاق", أنا افترض أن اسم العمود الذي تريد استخدامه في <كوممونفيوفيلدس> هو "Due_x0020_Date".

خطأ!

وكان اسم العمود الحقيقي في هذه الحالة "دويداتي".

كيف يمكنني العثور عليه? وأنا أعيد قراءة هيذر بلوق الدخول سليمان على تعديل كقوب لعرض أعمدة إضافية من البيانات. وقالت أنها تصف هذه العملية في خطوة #13. تثق به. فمن الصحيح. على الأقل, أنه من الصحيح بالنسبة لي. أنا لا تثق به في البداية لعمود آخر باسم أطول.

وأقول "تثق به" لأنه لا يثق أنه، وربما يضيع بالقرب من ساعتين نطحه رأسي ضد الجدار. بعد أن عقدت العزم دويداتي "" الاسم, كنت أرغب في إضافة حقل آخر إلى <كوممونفيوفيلدس>. باستخدام هذه التقنية سليمان, لقد تم الحصول على اسم عمود مثل "XYZ_x0020_Project_x0020_Due_x00".

وقلت لنفسي, أن من الواضح أن اسم المقطوعة. ذهبت إلى الأمام ومبتورا الأمم المتحدة أنه مع أي نجاح. وأخيراً استخدمت اسم المقطوعة التي تبدو وأنها عملت.

منحة نصيحة: عندما كنت أعمل مع كقوب, إذا أضفت اسم داخلية سيئة إلى <كوممونفيوفيلدس>, كقوب أن تقول لي أنه قد قام الاستعلام بإرجاع أية نتائج. لكن, إذا قمت بإضافة نوع بيانات إلى اسم الحقل, أنه سيعود إلى نتيجة. إضافة البيانات نوع فعلياً ملثمين مشكلة منذ كنت المراجع حقل غير موجود. ويمكن إضافتها, ولكن عندما حاولت عرض قيمته, أنا دائماً الحصول على قرص فارغ.

هذا لا يخفي الخطأ:

<كوممونفيوفيلدس>Due_x0020_Date;</كوممونفيوفيلدس>

هذا القناع الخطأ:

<كوممونفيوفيلدس>Due_x0020_Date,التاريخ والوقت;</كوممونفيوفيلدس>

</نهاية>