مقدمة

توفر خدمة اتصال البيانات Business Connectivity Service (BCS) إمكانية إنشاء نوع محتوى خارجي External Content Type والذي اعتماداً عليه يمكن إنشاء قائمة خارجية External List التي تعتمد على نوع المحتوى الخارجي, ومن خلال هذه القائمة يمكن عرض بيانات مخزنة في قاعدة بيانات MS SQL Server وإجراء عمليات الإضافة, والتعديل, والحذف عليها بدون الحاجة إلى كتابة أي سطر كود, وتعتبر من الميزات الهامة في شيربوينت 2010. وفي هذه الوثيقة يتم استعراض خطوات تنفيذ بناء قائمة خارجية اعتماداً على قاعدة بيانات من نوع MS SQL Server.



بناء قاعدة البيانات

قاعدة البيانات التي سيتم الاعتماد عليها تتألف من جدول واحد اسمه Employees يحتوي على الأعمدة التالية:
  • EmployeeID, مفتاح رئيسي – رقم تسلسلي

  • FullName, nvarchar(50)

  • Email, varchar(50)

  • Visible, bit

بعد بناء قاعدة البناء أدخل عدة أسطر كبيانات تجريبية.

ملاحظة: قاعدة البيانات مرفقة كملف SharePoint4ArabBCS_DB.sql.



إنشاء خدمة اتصال البيانات Business Connectivity Service

قبل إنشاء نوع محتوى خارجي يجب إنشاء مثيل جديد عن خدمة اتصال البيانات من خلال موقع الإدارة المركزي Central Administration, وذلك باتباع الخطوات التالية:











المعلومات في الصورة الأخيرة تختلف باختلاف البيئة التي تعمل عليها:
  • Service Application Name: اسم اختياري فريد غير مكرر يعبر عن خدمة اتصال البيانات.

  • Database Server: اسم خادم قاعدة البيانات مثل myserver\sql2008.

  • Database Name: اسم قاعدة البيانات التي الخاصة بالخدمة الجديدة.

بعد إنشاء خدمة اتصال البيانات ستظهر رسالة نجاح مشابهة للشكل التالي:





إنشاء نوع محتوى خارجي External Content Type

لإنشاء نوع محتوى خارجي افتح SharePoint Designer 2010 وانتقل إلى التبويب External Content Types:





بشكل افتراضي لا يوجد أي نوع محتوى خارجي, ولإنشاء نوع محتوى خارجي جديد اضغط على الأيقونة External Content Type كما في الشكل التالي:





سيتم عرض شاشة مشابهة للشاشة التالية:





أدخل المعلومات المطلوبة بحيث تصبح الشاشة السابقة كما يلي:





الخطوة التالية هي تعريف مصدر البيانات الخارجي الذي سيتم إنشاء نوع المحتوى الخارجي على أساسه وذلك من خلال القسم External System, لذلن اضغط على الرابط Click here to discover external data sources and define operations, عندها تظهر شاشة مشابهة للشكل التالي:





اضغط على الزر Add Connection لإنشاء اتصال مع قاعدة البيانات التي تم إنشاؤها في البداية:







في حال اختيار Connect with User’s Identity فإن المستخدم الحالي يجب أن يكون لديه الصلاحيات المناسبة على قاعدة البيانات, وهذا الخيار لا يستخدم عادة في بيئة العمل الحقيقية وإنما فقط لإنشاء مشروع تجريبي فقط كما في حالتنا, ويُفضل اختيار الخيار الأخير Connect with Impersonated Custom Identity والذي سيتم شرحه في مقالة أخرى.

في حال نجاح الخطوات السابقة يجب أن تظهر شاشة مشابهة للشكل التالي:





الآن اضغط بزر الفأرة الأيمن على اسم الجدول Employees لإنشاء عمليات عرض معلومات الجدول, والإضافة, والتعديل, والحذف كما في الشكل التالي:







في الشاشة التالية حافظ على جميع الخيارات كما هي:





أيضاً في الشاشة التالية حافظ على جميع الخيارات كما هي:





الآن اضغط على زر حفظ في الزاوية العليا في SharePoint Designer 2010 كما في الشكل التالي:





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



إنشاء قائمة خارجية اعتماداً على نوع محتوى خارجي

الآن سيتم إنشاء قائمة خارجية اعتماداً على نوع المحتوى الخارجي الذي تم إنشاؤه في الخطوات السابقة باتباع الخطوات التالية:



















بعد إنشاء القائمة الخارجية السابقة سيتم عرض قائمة البيانات من الجدول Employees مباشرة وقد يظهر الخطأ التالي:





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











يجب إعطاء صلاحيات للمستخدمين الذي سيكون لديهم الصلاحية لتنفيذ عمليات على نوع المحتوى الخارجي, ولإعطاء صلاحيات لجميع المستخدمين استخدم NT Authority\Authenticated Users كما يلي:





في حال الضغط على زر OK في الشاشة السابقة سيظهر خطأ يُشير إلى أنه يجب تحديد مستخدم لديه صلاحية Set Permissions لذلك يجب تحديد هذه المستخدم قبل الضغط على زر OK.

بعد تنفيذ الخطوات السابقة أعد تحميل الصفحة الرئيسية للقائمة الخارجية التي تم إنشاؤها, وقد يظهر الخطأ التالي:





طبعاً سبب هذا الخطأ هو الاعتماد على الخيار الأول Connect with User’s Identity في الخطوات السابقة وقد أسلفنا بأن هذا الخيار يجب عدم استخدامه في بيئة عمل حقيقية وإنما يجب استخدام Secure Store Service وهو الخيار الأخير, أما لحل هذه المشكلة فيجب إعطاء صلاحية لـ NT AUTHORITY\ANONYMOUS LOGON على قاعدة البيانات كما يلي:











طبعاً لا داعي لإعطاء صلاحية db_owner ولكن فقط هنا لإكمال المثال.

بعد تنفيذ الخطوات السابق ستظهر البيانات المخزنة في الجدول Employees ضمن القائمة الخارجية كما يلي:





الآن يمكن تعديل أو حذف أي سطر من الأسطر الموجودة, إضافة إلى إمكانية إضافة سطر جديد:





الخطوات السابقة تبين إمكانية استخدام نوع المحتوى الخارجي للتفاعل مع بيانات موجود في مصادر بيانات مختلف مثل MS SQL Server, علماً أنه لم يتم استخدام أفضل الممارسات Best Practices في هذه المقالة وإنما هي مقالة تعريفية بهذه الميزة الجديدة في شيربوينت 2010.