مقدمة
توفر خدمة اتصال البيانات 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.
الثلاثاء، 2 أغسطس 2011
خدمة اتصال البيانات - 01
Labels:
شيربوينت 2010,
BCS,
SharePoint 2010
الاشتراك في:
تعليقات الرسالة (Atom)
السلام عليكم ورحمة الله وبركاته
ردحذفأشكرك أخي إسماعيل على هذه المقالة الرائعة، وقد قمت بتجربةنفس الخطوات والحمدلله تمت بنجاح.
وفي إنتظار بقية المقالات المتعلقة بهذا الشأن، وهي بصراحة في غاية الأهمية، لأنها ستوفر الكثير من الوقت.
وسؤالي هو: كيف يمكن عرض البيانات من أكثر من جدول، وكيف يمكن عمل علاقة بين جدولين أثناء العرض master details وأنا متوقع أن يكون شرحها في المقالات القادمة، ألف شكر لك
وعليكم السلام ورحمة الله وبركاته ...
ردحذفشكراً أخي وأتمنى أن تكون المقالة ذا فائدة, بالنسبة لجوابي على سؤالك فهو عبارة عن مقالة مفصلة عن هذا الموضوع الشيق, وإن شاء الله قريباً
المقالة الثانية في سلسلة مقالات خدمة اتصال البيانات
ردحذفhttp://sharepoint4arab.blogspot.com/2011/08/business-connectivity-service-02.html
لدي ملاحظة وهي ليست خطأ لكن لإكمال هذه المقالة فقط :
ردحذفعند الذهاب إلى موقع الشيربوينت لإنشاء External List بشكل افتراضي هذه القائمة غير موجودة إلا إذا تم تفعيل الميزة (Team Collaboration Lists) الموجودة في (Site Features)
لدي سؤال : يظهر من شاشة (Data source Explorer)في برنامج الشيربوينت ديزاينر ثلاث خيارات (Tables ,Views and Routains) فقط أريد أن أعرف ما المقصود ب (Routains) هل المقصود (Stored procedures or Functions or both)
ردحذفالمقصود هو Stored Procedures & Functions وقريباً سيتم إدراج مقالة كاملة عن كيفية استخدامها لإنشاء نوع محتوى خارجي
ردحذفأخي فادي جواباً على ملاحظتك حول القائمة الخارجية External List, فعلاً هي بشكل افتراضي لا تكون متوفرة في موقع النشر Publishing Site ولكن يمكن تفعيلها دون الحاجة لتفعيل الميزة "Team Collaboration Lists" حيث يمكن تفعيل الميزة ExternalList فقط باستخدام PowerShell
ردحذفEnable-SPFeature ExternalList -Url http://URL
السلام عليكم، مقدمة مفيدة ولكن قد واجهت رسالة خطأ عند محاولة إنشاء نوع محتوى خارجي من SP Designer
ردحذفThe buisness data connectivity metadata store is currently unavailabale
وبعد عدة محاولات ، قمت بحذف خدمة اتصال البيانات Business Connectivity Service , ومن ثم اضافتها من جديد، وهكذا كنت قادرةالحمد لله على تكملة المثال بنجاح.
شكراً وجزاك الله عنا خيراً