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

كيفية استكشاف أخطاء SharePoint غامضة.

نظرة عامة:

التصحيح صعوبة عند تطوير وظيفة مخصصة ل Windows SharePoint Services 3.0 (WSS) أو Microsoft Office SharePoint Server (موس). المذنب الرئيسي هو أن SharePoint السطوح عادة سوى القليل من المعلومات التشخيصية في مستعرض ويب عند حدوث خطأ. هذا بلوق دخول توضح هذه المقالة كيفية تحديد موقع إضافية إنشاء نظام معلومات التشخيص التي يمكن غالباً ما تقدم أن الإضافية قليلاً من التفاصيل أن أحد الاحتياجات بغية تحديد الأسباب الجذرية. ثم قد يؤدي هذا إلى حل المشكلة.

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

النهج:

يحفظ SharePoint قدرا كبيرا من المعلومات إلى سجل تشخيص في ملف سجل في 12 خلية.

خلية "12" ويقع عادة في "ج:\البرنامج الملفات المشتركة مايكروسوفت المشتركة الملقم Extensions12 ". (لست متأكداً مما إذا كان من الممكن 12 خلية للعيش في أي مكان آخر, في الحقيقة).

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

  • كميات وفيرة من المعلومات. SharePoint تولد كمية كبيرة جداً من المعلومات المتعلقة بالتشخيص ويكتبه إلى أن ملف السجل بشكل سريع جداً. كنت بحاجة إلى أن تكون سريعة مع الأصابع للاستيلاء عليها.
  • تعدد. SharePoint لا الكتابة إلى ملف سجل واحد ولكن بدلاً من ذلك يقوم بإنشاء ملفات سجلات متعددة في تسلسل.
  • قم بنسخ ولصق جيد في MS Excel.

بلدي الأسلوب المفضل:

  1. فتح مستكشف windows الإشارة إلى 12 hivelogs.
  2. فرز العرض لإظهار حسب تاريخ التعديل (أحدث الأولى).
  3. تسليط الضوء على ملف السجل الحالي أكثر.
  4. في إطار مستعرض ويب, القوة إلى حدوث الخطأ.
  5. فتح ملف السجل الحالي بسرعة ونسخ محتوياتها إلى MS Excel.
  6. الانتقال إلى نهاية وتحليل المدخلات ذات الصلة.

ملاحظات أخرى:

بشكل افتراضي, سجل التشخيص يقع في 12 دليل hiveLOGS.

MS أفضل الممارسات (ككل مايك t. من Microsoft) الدولة التي يجب أن يتم حفظ ملفات السجل إلى محرك أقراص ثابتة منفصلة. واحد يقوم بهذا عن طريق الإدارة المركزية. مسؤول النظام الخاص بك قد فعلت هذا, في هذه الحالة سوف تحتاج من الواضح للعثور على ملف سجل هناك بدلاً من الافتراضي 12 موقع الخلية).

هذا الإدخال ويتناول قضايا مثل:

  • فشل في بدء التشغيل بسبب خطأ داخلي سير العمل SharePoint.
  • (المزيد من الجهود لإضافة على مر الزمن)
  • هذا الدخول كان مفيداً لتشخيص الأخطاء سير العمل (مثلاً. "سير العمل فشل في بدء التشغيل بسبب خطأ داخلي").

موس: مقدمة فعالة لمنظمة دولية

(هذا الإدخال التي عبر عنها بين http://paulgalvin.spaces.live.com/blog/ و http://blogs.conchango.com)

أن الإعلانات على هذا الموقع هي بلدي ولا تمثل بالضرورة المواقف في كونتشانجو, استراتيجيات أو آراء.

نظرة عامة:

يصف هذا الموضوع بعض المعلومات الخلفية بشأن كبير (3,000 المستخدمين) Microsoft Office SharePoint Server (موس) التمهيدية وما قمنا به للحصول على هذا المشروع المتداول في مثل هذه طريقة أن العميل سعيد وراسخا السير على طريق أن ينتهي بالتبني الكامل لمجموعة ميزة موس. وحتى وقت كتابة الإدخال, ونحن تقريبا 50% إكمال المرحلة الأولى من المشروع. كما تقدم الأمور, أنا سوف تحديث هذا الإدخال و/أو كتابة إدخالات جديدة.

في هذه الحالة المحددة, وكان الشركة بالفعل بتثبيت SharePoint Portal Server 2003. فريق تقنية المعلومات بتثبيت المنتج في نوع من "دعونا نرى إذا كان أي شخص يهتم" أزياء. اعتمد العديد من مستخدمي الأعمال بسرعة وأصبحت شعبية جداً في المؤسسة بوجه عام. كما يمكنك أن تتخيل, وهذا لم يكن أفضل استراتيجية التمهيدية (الذي يعترف بسهولة العميل) وعندما وصل إلى موس على الساحة, حل العميل "تفعل ذلك الحق" واستأجرت لنا مساعدتهم.

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

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

نحن كنت تواجه هذه المشكلة مرة ومرة … موس قد مؤسسة الوصول مع مؤسستها ميزة مجموعة, بعد عملاء متطورة إلى حد ما حتى يكون وقتاً عصيبا عقلياً استيعاب تلك الميزات, تتيح وحدة إدماج جزء ملموس منها في روتين حياتهم اليومية.

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

نطاق:

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

  • إدارة مستند بسيط باستخدام مكتبات المستندات, أنواع التحكم ومحتوى الإصدار.
  • بحث فعالة استناداً إلى أنواع المحتوى، وتخصيص البحث المتقدم (عن طريق الخصائص المدارة, XSLT لإنتاج نتائج جميلة, إلخ).

بالإضافة إلى ميزات على مستوى المؤسسة المذكورة أعلاه (بمعنى أن يتم تعميمها على جميع الإدارات والمستخدمين), وأضاف نحن المفرد في نطاق ميني-المشاريع التالية:

  • الدليل على مفهوم التكامل BDC.
  • عملية سير العمل خطوة متعددة وفرع متعددة تم إنشاؤها عبر الحزب الاشتراكي الديمقراطي.
  • نموذج InfoPath المعقدة.
  • تطفو على السطح KPI's لبعض العمليات التجارية (الموارد البشرية ربما اكتساب الموهبة في حالتنا, على الرغم من أنه قد يتغير).

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

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

ماذا نقدم لك ولماذا?

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

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

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

وهذا أدى بنا إلى مكان الهبوط الحالي وحتى الآن الأكثر فعالية لدينا: موقع موس رمل تم تكوينه لإظهار هذه الميزات.

استخدام موقع رمل, نظهر:

  • أنواع المحتوى:
    • إنشاء الأشعة المقطعية مع أنواع متعددة من البيانات (النص, تاريخ, خيار, قيمة منطقية, بحث, إلخ).
    • توسيع الأشعة المقطعية عن طريق إنشاء ط م جديدة استناداً إلى أحد الوالدين.
    • البحث عن المستندات باستخدام بيانات التعريف CT.
  • مكتبات المستندات:
    • اقتران ط م واحد مع مكتبة.
    • ماذا يحدث عندما نقوم بتحميل مستند إلى هذه المكتبة?
    • اقتران متعددة CT مع مكتبة doc.
    • ماذا يحدث عندما نقوم بتحميل مستند إلى هذه المكتبة?
    • التصفية والفرز عبر عناوين الأعمدة في ليب doc.
    • طرق عرض مكتبة المستندات:
      • الفرز
      • التجميع
      • "دخول سريع" (طريقة عرض ورقة البيانات)
      • "بيانات غير المميزة" (مساعدة مع الهجرة للمعايير الأمنية التنفيذية الدنيا من مصادر المحتويات الأخرى; مزيد من المعلومات حول هذا أدناه).

موقع رمل:

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

أنواع المحتوى:

يمكننا تعريف أنواع المحتويات التالية: الفاتورة, أمر الشراء, فاتورة خدمات.

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

مع ما ورد أعلاه, يمكن أن نظهر الآن بعض الملامح الرئيسية من CT بدون التورط في محاولة لشرح مفهوم تجريدي أولاً; الجميع يفهم فعلا ما نعنيه بالفاتورة "" و "أمر الشراء" وبدلاً من ذلك، هي قادرة على التركيز على ميكانيكا للتصوير المقطعي نفسها.

قوائم مخصصة:

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

قمنا بإنشاء قائمة مخصصة مشابهة إدارة "الموردين" لأمر الشراء "" CT.

مكتبات المستندات:

لقد قمنا بإنشاء مكتبات المستندات اثنين: "الفواتير" و "المختلطة بالوثائق".

نحن تكوين مكتبة مستندات فواتير إدارة المستندات فقط من نوع CT "الفاتورة".

نحن تكوين الوثائق المختلطة "" مكتبة لإدارة جميع الأشعة المقطعية ثلاثة.

إنشاء العديد من طرق العرض التي تظهر في الفرز, تصفية, ورقة البيانات وتجميع.

البحث:

يمكننا تعريف اثنين من الخصائص المدارة الجديدة والمعينة لهم برقم الفاتورة والعملاء.

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

تعديل XSLT حيث أن رقم الفاتورة والعملاء, عندما يقدم, تظهر في جدول HTML بلون مشرق. والهدف هنا لإثبات أن مثل هذا التنسيق الممكن.

وضع كل ذلك معا:

نرتب للمستخدمين الرئيسيين المشاركة في عرض.

ونحن نتابع هذا البرنامج النصي البسيط:

  1. تصف معنى والغرض من ط م, استخدام أوامر الشراء والفواتير كأمثلة.
  2. إظهار تعريف CT الفاتورة بينما في نفس الوقت مؤكدا لهم أنها لا تحتاج إلى استخدام تلك الشاشات أنفسهم, مجرد التقاط المفاهيم.
  3. انتقل إلى مكتبة المستندات فواتير.
  4. إيداع مستند.
  5. تبين أن العميل القائمة المنسدلة هو مصدرها حقاً في قائمة مخصصة.
  6. إضافة عميل جديد إلى قائمة العملاء ثم قم بتحديث بيانات التعريف للفاتورة الذي تم تحميله مؤخرا مع العميل الذي تم إنشاؤه حديثا.
  7. قم بالتبديل إلى "الوثائق المختلطة" المكتبة وتحميل مستند. شرح كيف يطالب النظام بنوع المستند.
  8. انتقل إلى مكتبة المستندات فواتير وإظهار كيفية النقر فوق اسم عمود تغيير ترتيب الفرز.
  9. إثبات تصفية على مستوى العمود.
  10. إظهار طرق العرض المختلفة التي تثبت الفرز متعددة المستويات, تصفية وتجميع.
  11. إظهار طريقة عرض ورقة البيانات.
  12. شرح الغرض من الوثائق غير المميزة "" طريقة العرض.
  13. قم بالتبديل إلى البحث المتقدم مخصصة.
  14. الآن, المستند الذي تم تحميله مؤخرا ينبغي أن تتبع ارتباطاته وفهرستها, لذا إجراء بحث يوضح قدرة على تحديد موقع تلك الفاتورة عن طريق الخاصية المعينة.
  15. ونحن تبين الفرق بين البحث عن طريق مقابل الخصائص التي تم تعيينها. البحث عن نص فقط.

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

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

في موجز:

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

ونحن على غرار كيانات تجارية مشتركة ومفهومة بسهولة حيث أن المستخدمين يمكن أن تركز على المعايير الأمنية التنفيذية الدنيا ولا تتورط في الكيانات / أمثلة على أنفسهم.

مستخدمي الأعمال الابتعاد عن الدورات أطروحات مع الواجبات المنزلية "" في شكل وثائق excel الذي هم الآن المختصة ملء، واستخدامها لتصميم أنواع المحتويات الخاصة بهم أولاً-قص.

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

موس: الوظيفية مثال – نوع البيانات المخصصة

سيناريو العمل:

التنفيذ على مستوى المؤسسة للمعايير الأمنية التنفيذية الدنيا للشركة المصنعة مع 30+ مواقع وبضع عشرات من إدارات الشركات.

هدف الأعمال:

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

مشكلة فنية:

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

للأسف, البحث عن أنواع بيانات يجب الوصول إلى قائمة مصدر "محلياً" بمعنى أن لدينا قائمة موثوقة لا يمكن أن تمتد مجموعات الموقع.

الحل التقني:

تنفيذ نوع بيانات مخصصة جديدة تنفذ على أساس سبفيلد وممثله DropDownList في واجهة المستخدم التي ListItems تعبئة من القائمة الرئيسية WSS.

قمنا بإنشاء مجموعة موقع جديدة تسمى "http://localhost/EnterpriseData". هناك, قمنا بإنشاء قائمة مخصصة تسمى "مواقع الشركات". يستخدم هذه القائمة مجرد عنوان "القياسية" الحقل تحتوي قائمة بمواقع الشركات الفعلية.

واحد يتبع عدة خطوات منفصلة إنشاء نوع بيانات مخصصة في WSS. وهم:

  1. تعريف فئة التي ترث من سبفيلد (واحد قد ترث حقول أخرى إذا لزم الأمر).

هنا هو رمز لذلك:

العامة فئة إكسيززيكوربوراتيلوكاتيونفيلد : سبفيلدتيكست
{
العامة إكسيززيكوربوراتيلوكاتيونفيلد
(سبفيلدكوليكشن الحقول, السلسلة typeName, السلسلة اسم العرض)
: قاعدة(الحقول, typeName, اسم العرض) { }

العامة إكسيززيكوربوراتيلوكاتيونفيلد
(سبفيلدكوليكشن الحقول, السلسلة اسم العرض)
: قاعدة(الحقول, اسم العرض) { }

العامة تجاوز باسيفيلدكونترول فيلدرينديرينجكونترول
{
الحصول على
{
باسيفيلدكونترول التحكم = الجديد إكسيززيكوربوراتيلوكاتيونفيلدكونترول();
عنصر التحكم. FieldName = وهذا.إينتيرنالنامي;
عودة عنصر التحكم;
} //الحصول على
} // فيلدرينديرينجكونترول

العامة تجاوز السلسلة جيتفاليداتيدسترينج(كائن القيمة)
{
إذا كان (وهذا.مطلوب || القيمة. ToString().يساوي(السلسلة.فارغة))
{
رمي الجديد سبفيلدفاليداتيونيكسسيبشن ("لم يتم تعيين الإدارة.");
}
عودة قاعدة.جيتفاليداتيدسترينج(القيمة);
} // جيتفاليداتيدسترينج

} // إكسيزيكوربوراتيلوكيشن

  1. تعريف فئة أخرى أن يرث من عنصر تحكم الحقل الأساسي, كما هو الحال في:

العامة فئة إكسيززيكوربوراتيلوكاتيونفيلدكونترول : باسيفيلدكونترول
{
محمية القائمة المنسدلة إكسيززيكوربوراتيلوكاتيونسيليكتور;

محمية تجاوز السلسلة ديفاولتيمبلاتينامي
{
الحصول على
{
عودة "إكسيززيكوربوراتيلوكاتيونفيلدكونترول";
}
} // ديفاولتيمبلاتينامي

العامة تجاوز كائن القيمة
{
الحصول على
{
انسوريتشيلدكونترولس();
عودة وهذا.XYZZYCorporateLocationSelector.SelectedValue;
} // الحصول على
تعيين
{
انسوريتشيلدكونترولس();
وهذا.XYZZYCorporateLocationSelector.SelectedValue = (السلسلة)وهذا.إيتيمفيلدفالوي;
} // تعيين
} // تجاوز قيمة الكائن

محمية تجاوز باطلة كريتتشيلدكونترولس()
{

إذا كان (وهذا.حقل = = null || وهذا.كونترولمودي = = سبكونترولمودي.عرض)
عودة;

قاعدة.كريتتشيلدكونترولس();

وهذا.إكسيززيكوربوراتيلوكاتيونسيليكتور =
(القائمة المنسدلة)تيمبلاتيكونتاينير. فيندكونترول("إكسيززيكوربوراتيلوكاتيونسيليكتور");

إذا كان (وهذا.إكسيززيكوربوراتيلوكاتيونسيليكتور = = null)
رمي الجديد الاستثناء("خطأ: لا يمكن تحميل. ملف ASCX!");

إذا كان (!وهذا.الصفحة IsPostBack.)
{

استخدام (SPSite الموقع = الجديد SPSite("http://localhost/انتيربريسيداتا"))
{
استخدام (SPWeb ويب = الموقع. أبنوب())
{

سبليست كورينتليست = ويب. قوائم["مواقع الشركات"];

foreach (سبيتيم إكسيزيكوربوراتيلوكيشن في currentList.Items)
{
إذا كان (إكسيزيكوربوراتيلوكيشن["عنوان"] == null) مواصلة;

السلسلة ثيتيتلي;
ثيتيتلي = إكسيزيكوربوراتيلوكيشن["عنوان"].ToString();

وهذا.XYZZYCorporateLocationSelector.Items.Add
(الجديد عنصر القائمة(ثيتيتلي, ثيتيتلي));

} // foreach

} // استخدام ويب spweb = site.openweb()
} // استخدام موقع spsite = spsite جديد("http://localhost/انتيربريسيداتا ")

} // إذا لم إعادة النشر

} // كريتتشيلدكونترولس

} // إكسيززيكوربوراتيلوكاتيونفيلدكونترول

تنفذ التعليمات البرمجية أعلاه أساسا منطق ملء DropDownList مع القيم من قائمة مخصصة WSS الموجود في http://localhost/enterprisedata والمسماة "إدارات الشركات".

أنا تعريف كل من الفئات في ملف.cs واحد, جمعت ووضعه في GAC (مطلوب قوي, طبعًا).

  1. تطبيق قالب التحكم (.ascx) كما هو موضح:

<%@ عنصر التحكم اللغة= "C #" يرث="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,الإصدار = 12.0.0.0، الثقافة المحايدة =,PublicKeyToken = 71e9bce111e9429c" compilationMode= "دائماً" %>
<%
@ سجل Tagprefix= "وساوك" Namespace="Microsoft.SharePoint.WebControls" الجمعية العامة="Microsoft.SharePoint, الإصدار = 12.0.0.0, الثقافة = المحايدة, PublicKeyToken = 71e9bce111e9429c" %> <%@ سجل Tagprefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" الجمعية العامة="Microsoft.SharePoint, الإصدار = 12.0.0.0, الثقافة = المحايدة, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:رينديرينجتيمبلاتي معرف= "إكسيززيكوربوراتيلوكاتيونفيلدكونترول" runat= "الملقم">
<قالب>
<آسيا والمحيط الهادئ:القائمة المنسدلة معرف= "إكسيززيكوربوراتيلوكاتيونسيليكتور" runat= "الملقم" />
</قالب>
</
SharePoint:رينديرينجتيمبلاتي>

يتم حفظ ما ورد أعلاه في ج:\البرنامج الملفات المشتركة مايكروسوفت المشتركة الملقم extensions12controltemplates.

  1. وأخيراً, نقوم بإنشاء ملف XML حفظ إلى... 12XML الدليل. هذا هو CAML الذي يقوم بتعريف نوع البيانات المخصص لنا، وعلى سبيل المثال بلدي, يشبه هذا:

<?xml الإصدار="1.0" ترميز="الرموز العالمية لتحوير الهيئة-8" ?>
<
فيلدتيبيس>
<
FieldType>
<
حقل اسم="TypeName">كوربوراتيلوكيشنز</حقل>
<
حقل اسم="بارينتيبي">النص</حقل>
<
حقل اسم="تيبيديسبلاينامي">مواقع الشركات</حقل>
<
حقل اسم="تيبيشورتديسكريبشن">جميع مواقع الشركات XYZZY بما في ذلك مرافق التصنيع أو غيرها.</حقل>
<
حقل اسم="أوسيركريتابل">صحيح</حقل>
<
حقل اسم="شووينليستكريتي">صحيح</حقل>
<
حقل اسم="شوويندوكومينتليبراريكريتي">صحيح</حقل>
<
حقل اسم="شووينسورفيكريتي">صحيح</حقل>
<
حقل اسم="شووينكولومنتيمبلاتيكريتي">صحيح</حقل>
<
حقل اسم="فيلدتيبيكلاس">Conchango.XYZZYCorporateLocationField, إكسيززيكوربوراتيلوكاتيونفيلد, الإصدار = 1.0.0.0, الثقافة = المحايدة, PublicKeyToken = b0b19e85410990c4</حقل>
<
رينديرباتيرن اسم="ديسبلايباتيرن">
<
رمز التبديل>
<
Expr>
<
عمود />
</
Expr>

<القضية القيمة=""/>

<الافتراضي>
<
إتش تي أم ال>
<![CDATA[
<تمتد نمط = "لون:الأحمر "><ب>]]>
</
إتش تي أم ال>

<
عمود سوبكولومنومبير="0" هتملينكودي="صحيح"/>

<إتش تي أم ال><![CDATA[</ب></تمتد>]]></إتش تي أم ال>

</
الافتراضي>
</
رمز التبديل>

</
رينديرباتيرن>
</
FieldType>
</
فيلدتيبيس>
يضيف هذا الملف XML نوع البيانات المخصصة إلى WSS "مكتبة" ويطابق ذلك ضد GAC قد الجمعية.

بعد نقل جميع هذه القطع في مكانها, iisreset في الخادم، وأنه ينبغي بدء كل عمل جيد.

موس: تحديث قائمة مخصصة

وهناك العديد من الأمثلة الجيدة لتحديث قوائم مخصصة عن طريق SDK. هنا هو آخر.

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

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

الحل التقني: إنشاء خدمة ويب الوصول إليها من قبل عميل InfoPath. خدمة ويب تقوم بإرجاع رقم طلب الشراء القادم مرة أخرى وتحديث القيمة القائمة.

الدروس المستفادة:

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

التعليمة البرمجية:

استخدام نظام;
استخدام System.Web;
استخدام System.Web.Services;
استخدام System.Web.Services.Protocols;
استخدام Microsoft.SharePoint;
استخدام System.Configuration;

[خدمة ويب(Namespace = "http://www.conchango.com/")]
[ويبسيرفيسيبيندينج(كونفورمستو = وسيبروفيليس.BasicProfile1_1)]
العامة فئة بوسيرفيسي : System.Web.Services.خدمة ويب
{
العامة بوسيرفيسي () {

//قم بإلغاء السطر التالي في حالة استخدام المكونات المصممة
//InitializeComponent();
}

/// <موجز>
/// الحصول على رقم بو القادمة من قائمة عنصر تحكم sharepoint بو رقم.
/// زيادة رقم بو في تلك القائمة.
/// </موجز>
/// <تقوم بإرجاع></تقوم بإرجاع>
[WebMethod]
العامة السلسلة جيتنيكستبونومبير()
{
السلسلة سبوكونترولسيتينامي; // اسم الموقع موس الفعلي الذي يستضيف قائمة "التحكم بو".
السلسلة سبوكونتروليستنامي; // اسم قائمة المعايير الأمنية التنفيذية الدنيا الفعلية التي تحتوي على عنصر التحكم بو.

سبوكونترولسيتينامي = كونفيجوراتيونسيتينجس.AppSettings["بوكونتروليسثوستينجسيتي"].ToString();
سبوكونتروليستنامي = كونفيجوراتيونسيتينجس.AppSettings["بوكونتروليست"].ToString();

السلسلة نيكستبوريقنومبير = "xyzzy";

استخدام (SPSite الموقع = الجديد SPSite(سبوكونترولسيتينامي))
{
استخدام (SPWeb ويب = الموقع. أبنوب())
{

سبليست كورينتليست = ويب. قوائم[سبوكونتروليستنامي];

foreach (سبيتيم كونتروليتيم في currentList.Items)
{

إذا كان (((السلسلة)كونتروليتيم["كونترولفيلد"]).يساوي("نيكستبونومبير"))
{
نيكستبوريقنومبير = (السلسلة)كونتروليتيم["كونترولفالوي"];

int int_nextPoReqNumber;
int_nextPoReqNumber = تحويل.ToInt32(نيكستبوريقنومبير);

int_nextPoReqNumber ;

كونتروليتيم["كونترولفالوي"] = int_nextPoReqNumber;
controlItem.Update();
}

} // تحديد موقع, قراءة وتحديث عدد بو في قائمة.


} // استخدام ويب spweb = site.openweb()
} // استخدام موقع spsite = spsite جديد("http://localhost/ميزوهو ")

عودة نيكستبوريقنومبير;

}
}