منتديات جريت بلينز العربية Great Plains For Arab

منتديات جريت بلينز العربية Great Plains For Arab (http://www.gp4arab.com/forum/index.php)
-   مواضيع المطورين الأخرى (http://www.gp4arab.com/forum/forumdisplay.php?f=8)
-   -   خطوات إنشاء البيئة التجريبية في جريت بلينز (تجربة شركة ما) (http://www.gp4arab.com/forum/showthread.php?t=40)

Monzer Osama 26-Jun-2011 02:04 PM

خطوات إنشاء البيئة التجريبية في جريت بلينز (تجربة شركة ما)
 
السلام عليكم ورحمة الله

كلنا يعرف حساسية البيانات الموجودة في البرنامج وقد يقوم المستخدم أو المطور أو حتى المحاسب بعملية في البرنامج تؤثر بشكل كبير على
الـGL وعلى الموديول وقد يكون على مستوى النظام ككل

لذلك لا بد من العمل على بيئة تجريبة تجنب الكثير من المشاكل على المعلومات الحقيقة

وإليكم الطريقة:
تنبيه:
عليك أن تمتلك المهارة الكافية في الـSQL Server والـ Query Analyzer لتنفي هذه المهمة ولا تنسى بأخذ نسخة احتياطية عند كل خطوة


ببسم الله نبدأ:

1- نفتح شركة تجريبة من خلال برنامج GP Utility (على إفتراض أن اسم قاعدة بيانات الشركة X فإن اسم الشركة التجريبية سيكون TESTx)

2- بعد إنشاء الشركة ستكون طبعا خالية من الحسابات ومن كل البيانات

3-ادخل الى برنامج Enterprise Manager الذي يأتي عادة من SQL Server 2000 واعمل نسخ احتياطي لقاعدة بيانات الشركة الأصلية X وسمي الملف باسم Xbackup
4- بعد إغلاق جريت بلينز إعمل استعادة لقاعدة البيانات الأصلية Xbackup على القاعدة التجريبية TESTx

5- قم بالدخول الى برنامج Query Analyzer واختر اسم الشركة التجريبية TESTx وقم بتنفيذ الكود التالي

كود:









if not exists(select 1 from tempdb.dbo.sysobjects where name = '##updatedTables')
        create table [##updatedTables] ([tableName] char(100))
truncate table ##updatedTables
declare @acStatement varchar(255)
declare G_cursor CURSOR for
select
case
when UPPER(a.COLUMN_NAME) in ('COMPANYID','CMPANYID')
        then 'update '+a.TABLE_NAME+' set '+a.COLUMN_NAME+' = '+ cast(b.CMPANYID as char(3))
else
        'update '+a.TABLE_NAME+' set '+a.COLUMN_NAME+' = '''+ db_name()+''''
end
from INFORMATION_SCHEMA.COLUMNS a, DYNAMICS.dbo.SY01500 b
where
        UPPER(a.COLUMN_NAME) in ('COMPANYID','CMPANYID','INTERID','DB_NAME','DBNAME')
        and b.INTERID = db_name()
set nocount on
OPEN G_cursor
FETCH NEXT FROM G_cursor INTO @acStatement
WHILE (@a@aFETCH_STATUS <> -1)
begin
                insert ##updatedTables select
substring(@acStatement,8,patindex('%set%',@acStatement)-9)
                Exec (@acStatement)
        FETCH NEXT FROM G_cursor INTO @acStatement
end
DEALLOCATE G_cursor
select [tableName] as 'Tables that were Updated' from ##updatedTables


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

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

وفق الله الجميع لما فيه الخير
والسلام عليكم

صلاح السيد 27-Jun-2011 09:36 AM

شكرا على المجهود يا باشا

Monzer Osama 27-Jun-2011 12:13 PM

العفو منك أخي وننتظر مشاركاتك ومواضيع الطيبية


جميع الأوقات بتوقيت GMT +3. الساعة الآن 12:21 PM.

Powered by vBulletin® Version 3.8.3

الموقع والمنتدى من تطوير » شركة المنذر للاستضافة والتصميم


الموقع لا يمثل أي جهة رسمية بل هو جهد شخصي يرمي الى تجميع القدرات في برنامج جريت بلينز