الأربعاء، 26 مارس 2014

أين يحفظ محتوى قوائم الشيربوينت ؟


على الرغم من ان  مايكروسفت لا تنصح ابدا بتشغيل استعلامات SQL بشكل مباشر على قواعد بيانات الشيربوينت لان ذلك قد يؤثر  على اداء قواعد البيانات باعتبار انها مهيئة لتشغيل وتحسن اداء استعلامات الشيربوينت الافتراضية  , الا ان الحاجة قد تدعو احيانا المبرمج او مدير منصة الشيربوينت ان يستعرض محتوى قائمة من قوائم الشيربوينت او ان يعدل عليها.
لذلك فان قوائم الشيربوينت او SharePoint Lists  في جدول dbo.AllLists ضمن قاعدة بينات المحتوى WSS_Content.

يكون شكل الجدول في SQL Server كالتالي :


كما نلاحظ من خلال الصورة السابقة ان لكل قائمة معرف خاص بها وهو tp_ID .
وهو الذي نشاهده دائما في رابط الصفحة التي تعرض محتوى القائمة في الشيربوينت و الذي يشبه الرابط التالي

Server_Name/Site_Name/_layouts/ListEdit.aspx?List={c5de9ed6-7cee-4d6b-bef3-ff537af2aa99}

لتكون الشاشة مشابهة لما يلي:





للاطلاع على محتوى القائمة من خلال SQL Server قم باستخدام الاستعلام التالي مع وضع معرف القائمة التي تريد عرضها :

SELECT    *
FROM       [WSS_Content].[dbo].[UserData]
WHERE     tp_ListId = 'c1844df0-ef88-4d61-a2f6-fe645bb80e4d'

نتيجة الاستعلام ستكون كالتالي



بالضغط على الرابط المشار اليه في الصورة اعلاه ستلاحظ ان ملف XML سيفتح ليعرض لك محتوى العنصر ListItem :





الأربعاء، 12 مارس 2014

التعريب الافتراضي في الشيربوينت

 بسم الله الرحمن الرحيم
عندما يكون لديك موقع على منصة شيربوينت يستهدف اللغة العربية في عرض المحتوى فانك تفاجئ احيانا ان التعريب المستخدم في شيربوينت سيئ !! على سبيل المثال لا الحصر نجد ان :
- عبارة "Date of birth" مترجمة الى "عيد الميلاد"  و الاصح ان تكون "تاريخ الميلاد"
- عبارة "Search this site" مترجمة الى "البحث هذا الموقع" و الاصح ان تكون "البحث في هذا الموقع"
و كأن ماكيروسفت تستخدم "ترجمة جوجل" !! ههه
لذلك بامكانك التعديل على ملفات الترجمة (Resource Files) الخاصة باللغة العربية  و التي تنزل على خادم الشيربوينت عند ما نثبت حزمة اللغة العربية Language Pack.

ماهي Resource Files :
هي ملفات xml بامتداد .resx تستخدم في الترجمة ودعم اكثر من لغة في الموقع الواحد. و تنقسم الى 3 اقسام :
- ملفات الترجمة الافتراضية : وهي التي تحتوى على سلسلة من العبارات بنفس اللغة الاصلية للمنتج كاللغة الانجليزية مثلا
- ملفات الترجمة الخاصة باللغة الاضافية التي هي غير اللغة الافتراضية و تكون بها عبارات مترجمة الى العربية مثلا لكن من دون ان تعتمد على ثقافة بعينها على سبيل المثال "ar"
-ملفات الترجمة الخاصة باللغة الاضافية مثل النوع السابق لكن مع الاعتماد في الترجمة على ثقافة بلد بعينه فتكون مثلا : "ar-SA" او "ar-EG"...

ملفات الترجمة في الشيربوينت :
توجد ملفات الترجمة العامة (Global Resource Files)  التي تطبق على جميع مواقع الشيربوينت في المسار التالي :
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\Resources
 بامكاننا فتحها عن طريق Visual Studio مثل ماهو موضح في الصورة التالية, حيث ان الملف المفتوح في الصورة متعلق بصفحة الملف الشخصي User Profile للمستخدم على الذي يملك My Site.


ضع العبارة التي ترى انها الانسب للترجمة وفقا لما يظهر لديك في الشاشة التي لم يناسبك تعريبها المقدم من مايكروسفت.

بالتوفيق !

السبت، 8 مارس 2014

SharePoint_Config Database – SUSPECT

قد يحدث ان تفتح يوما ما جهازك لتعمل على تطوير مواقعك على الشيبروينت او لتقوم بادارة تطبيقات الويب لتتفاجئ بتوقف جميع المواقع عن العمل بما في ذلك تطبيق الويب الخاص بالادارة المركزية Central Administration  وليقابلك الخطأ التالي :
Server Error in ‘/’ Application
Runtime Error
Description: An application error occurred on the server.

قد يبدو ذلك مرعبا في البداية, لكن لا تقلق فالسبب غالبا ما يكون عدم قدرة تطبيق الويب على الاتصال مجددا بقاعدة بيانات الاعداداتSharePoint_Config نظرا الى تحول حالتها الى Suspect
كما توضحه الصورة التالية




لماذا يحدث ذلك ؟
غالبا مايحدث هذا الاشكال عندما يكون خادم قاعدة البيانات افتراضيا VM فيقع في الخادم خلل ما ناجم عن انقطاع الكهرباء مثلا او اعادة تشغيل للخادم غير متوقعة.
 عند ذلك قد يحصل تلف في ملفات قواعد البيانات التي منها SharePoint_Config DB

ما هو الحل ؟
 قم بعمل الخطوات التالية بالترتيب على خادم قواعد البيانات


-- Use the Master database
Use Master
-- Verify that database has issues
EXEC sp_resetstatus 'SharePoint_Config'
--Put the database in emergency mode
ALTER DATABASE SharePoint_Config SET EMERGENCY
DBCC checkdb('SharePoint_Config')
-- Set the database in single user mode
ALTER DATABASE SharePoint_Config SET SINGLE_USER WITH ROLLBACK IMMEDIATE
--Repair the database with data loss
DBCC CheckDB ('SharePoint_Config', REPAIR_ALLOW_DATA_LOSS)
--Set the database in multi-user mode
ALTER DATABASE SharePoint_Config SET MULTI_USER
--Verify that database is reset
EXEC sp_resetstatus 'SharePoint_Config'

بعد تشغيل السكريبت ستلاحظ ان الاشكال الذي حصل في قاعدة البيانات قد زال بمشيئة الله.

بامكانك الان العودة للعمل  !! 
لكن لا تنسى مرة ثانية ان تقوم باخذ نسخة احطياطية من VM قبل عمل اي اعادة تشغيل.