مدونة منذر اسامة

العودة   منتديات جريت بلينز العربية Great Plains For Arab > منتدى مطوري جريت بلينز > مواضيع المطورين الأخرى

مواضيع المطورين الأخرى مواضيع المطورين التي لا تنتمي الى أي من التصنيفات السابقة
مثل لغة الديكستريتي (Dexterity) والأدوات التطويرية الأخرى (eConnect , Integration Maneger ,VS2005 for GP...etc.)

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 28-Dec-2011, 05:30 PM   #11
humam
مشرف منتدى المطورين
افتراضي

Security Task Elements

ان كل Task سوف تمتلك العناصر التالية:

Task ID: وهو عبارة عن معرف فريد لكل task وهنا يفضل عند اعطاء قيم لهذا المعرف الالتزام بالصيغة المستخدمة في المايكروسوفت جريت بلينز وهي كما يلي:
Type_Module_Sequence
حيث ان Type سوف يشير الى نوع هذه task ويمكن ان يأخذ احدى القيم التالية :
ADMIN, CARD, INQ, RPT, or TRX
اما Module فهو يشير الى الموديول الذي نعرف المهمة task له مثل Sales واخيرا sequence وهو عبارة عن قيمة رقمية للتمييز بين Task المتشابهة.

Task Name: وهو الاسم الذي سوف يستخدم للاشارة الى هذه Task ويجب ان يكون الاسم وصفي اي يعطي معلومات عن طبيعة task.

Task Description: ويستخدم لاعطاء تفاصيل اكثر عن طبيعة task.

Category: ويستخدم لتجميع grouping للمهام المرتبطة مع بعضها البعض.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 28-Dec-2011, 05:33 PM   #12
humam
مشرف منتدى المطورين
افتراضي

Creating Security Task Programmatically:

يمكن القيام بذلك عن طريق استخدام الدالة CreateSecurityTask() والتي تمتلك الصيغة التالية :

كود:
CreateSecurityTask (task_ID, task_name, description, category)
واعتقد ان البرامتر لهذه الدالة واضحة ولا تحتاج الى شرح وهي متوافقة مع عناصر task المشروحة سابقا. فقط بالنسبة الى البارمتر category وهو يأخذ قيم صحيحة Integer تشير الى الاصناف المتوفرة ويمكن الاستعاضة عن هذه القيم الصحيحة بالثوابت التالية

كود:
CATEGORY_COMPANY    : Company
CATEGORY_FINANCIAL:	 Financial
CATEGORY_INVENTORY: 	Inventory
CATEGORY_OTHER: 	Other
CATEGORY_PAYROLL: 	Payroll
CATEGORY_PROJECT: 	Project
CATEGORY_PURCHASING: Purchasing
CATEGORY_SALES: 		Sales
CATEGORY_SYSTEM:	 System

القيمة المعادة من هذه الدالة تكون عبارة عن قيمة صحيحة ممثلة بأحد الثابتين :

كود:
OKAY: The security task was added successfully.
DUPLICATE: The security task already exists.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 28-Dec-2011, 05:36 PM   #13
humam
مشرف منتدى المطورين
افتراضي

مثال:
في هذا المثال سوف نوضح كيفية استخدام الدالة السابقة لاضافة مهمة Task جديدة:
كود:
Local string TaskID;
Local string TaskName;
Local string TaskDescription;
Local long Status;

TaskID=”CARD_PJI_01”;
TaskName=” Maintain PJI”;
TaskDescription=” Maintain PJI security”;

Status= CreateSecurityTask (TaskID, TaskName, TaskDescription, CATEGORY_SALES of form of form sySecurityRoleEntry) of form sySecurityTask;

ويمكن تحسين هذه الشفرة عن طريق التأكد اولا من ان المهمة “CARD_PJI_01” غير موجودة وذلك عن طريق استخدام الدالة Exists() والتي تعمل على التأكد من ان المهمة الممررة لها موجودة او غير موجودة في الجريت بلينز حيث انها تأخذ معامل واحد هو TaskID والقيمة المعادة سوف تكون من النوع Boolean وتكون True اذا كانت المهمة موجودة اصلا وFalse اذا كانت المهمة غير موجودة.
كود:
Local string TaskName;
Local string TaskDescription;
Local long Status;
TaskID=”CARD_PJI_01”;
TaskName=” Maintain PJI”;
TaskDescription=” Maintain PJI security”;
if Exists (TaskID) of form sySecurityTask = false then
   Status= CreateSecurityTask (TaskID, TaskName, TaskDescription, CATEGORY_SALES of form of form sySecurityRoleEntry) of form sySecurityTask; 
end if;
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 28-Dec-2011, 05:38 PM   #14
humam
مشرف منتدى المطورين
افتراضي

Security Task Operations

ان Operation هي نوع خاص من مصادر الجريت بلينز والتي من خلالها سوف نسطير على سماحيات الوصول.

Security Task Operations Elements

ان كل Task من الممكن ان تحتوي على العديد من Operations والتي سوف تمثل المصادر resources التي نقوم بعملية اعطاء الصلاحية لها وان كل Operation سوف تحتوي على العناصر التالية:

Task ID: وهو يمثل Task ID للمهمة Task التي تقوم بعملية اضافة Operation لها وهنا يمكنك ان تضيف Operation الى task جديدة خاصة بك او الى task موجودة مسبقا في برنامج الجريت بلينز.

Product ID : وهو سوف يمثل المعرف الفريد لل Integration Dictionary ويمكن ان يكون عبارة عن ثابت او رقم صحيح وقد تطرقت الى Product ID بنوع من التفصيل في موضوع تصميم القوائم في الجريت بلينز.

Resource Type : وهو يمثل نوع المصدر او resource الذي نقوم باضافة Operation من اجله ويمكن ان يكون احد الانواع التالية
كود:
TABLETYPE 	:1
FORMTYPE 	:2
REPORTTYPE	: 23
SECURITYTYPE_LISTS : 900

Security ID: وهو يمثل معرف المصدر او resource id الخاص بالمصدر المحدد specified resource الذي نقوم بأضافة Operation له للمزيد من المعلومات عن GP resources يمكن مراجعة الموضوع تعلم الدكسترتي. طبعا سوف نستخدم الدالة resourceid لاسترجاع هذه القيمة وتوجد هناك حالة خاصة وهي عندما يكون Recourse Type من نوع List في هذه الحالة سوف تحتاج الى استخدام الدالة BuildDictSpecificID() لبناء هذا المعرف.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 28-Dec-2011, 05:42 PM   #15
humam
مشرف منتدى المطورين
افتراضي

Creating Security Operations Programmatically:

للقيام بذلك سوف نستخدم الدالة AddSecurityTaskOperation() التي تعود للنموذج sySecurityTaskOperations للقيام بعملية اضافة Operation الى Task بشكل برمجي تمتلك هذه الدالة الصيغة التالية :

كود:
AddSecurityTaskOperation (task_ID, dict_ID, security_restype, security_ID)
وعناصر هذه الدالة واضحة وهي متوافقة مع عناصر Operation المشروحة سابقا وسوف تعيد هذه الدالة قيمة صحيحة وكما يلي:
كود:
OKAY: The security task was added successfully.
DUPLICATE: The security task already exists
.

مثال:
في هذا المثال سوف نوضح كيفية استخدام الدالة السابقة لاضافة عملية Operation جديدة:
كود:
local long status;
local string taskID;
TaskID = "CARD_PJI_01";

Status = AddSecurityTaskOperation (TaskID,
ISYS_ID,
FORMTYPE,
resourceid (form PJI_Test_Maintenance))
of form sySecurityTaskOperations;

Status = AddSecurityTaskOperation (TaskID,
IG_PROD_ID,
REPORTTYPE,
resourceid (report PJI_Test))
of form sySecurityTaskOperations;

Status = AddSecurityTaskOperation (TaskID,
IG_PROD_ID,
TABLETYPE,
resourceid(table PJI_Test_MSTR))
of form sySecurityTaskOperations;
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 28-Dec-2011, 05:43 PM   #16
humam
مشرف منتدى المطورين
افتراضي

يمكن تعديل الشفرة السابقة عن طريق التحقق من ان Operation التي نحن بصدد اضافتها الى Task غير موجودة مسبقا ويمكن القيام بذلك عن طريق استخدام الدالة Exists() التابعة للنموذج sySecurityTaskOperations وهي تختلف عن الدالة Exists التي استخدمناها سابقا من حيث نوع وعدد البرامتر:
Exists (task_ID, dict_ID, security_ID, security_restype)
القيمة المعادة من هذه الدالة هي قيمة منطقية وتكون True في حالة كون العملية موجودة مسبقا وتعيد False في حالة عدم وجود هذه Operation مسبقا.
كود:
local long status;
local string taskID;
TaskID = "CARD_PJI_01";
if Exists(TaskID,ISYS_ID,FORMTYPE,resourceid (form PJI_Test_Maintenance)) of form sySecurityTaskOperations = false then

Status = AddSecurityTaskOperation (TaskID,
ISYS_ID,
FORMTYPE,
resourceid (form PJI_Test_Maintenance))
of form sySecurityTaskOperations;

end if;
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 29-Dec-2011, 08:03 AM   #17
عثمان
عضو مميز
 
تاريخ التسجيل: Jul 2007
المشاركات: 108
من مواضيعي  
افتراضي

السلام عليكم ورحمة الله وبركاته

انا من المتابعين لدروسك استاذ همام بشغف واحاول ان اتعلم بقدر ما استطيع لكن لي سؤال أرجو أن لا يكون غبي
اقتباس:
المشاركة الأصلية كتبت بواسطة humam مشاهدة المشاركة
Creating Security Task Programmatically:

يمكن القيام بذلك عن طريق استخدام الدالة CreateSecurityTask() والتي تمتلك الصيغة التالية :

كود:
CreateSecurityTask (task_ID, task_name, description, category)
واعتقد ان البرامتر لهذه الدالة واضحة ولا تحتاج الى شرح وهي متوافقة مع عناصر task المشروحة سابقا
لماذا هذه الأكواد (التي تنفذ من الديكستيريتي ) أقصد ما الفائدة منها طالما أنه باستطاعتنا أن نقوم بعمل Task ,Roll من خلال جريت بلينز 10 مباشرة ؟!
عثمان غير متواجد حالياً   رد مع اقتباس
قديم 29-Dec-2011, 01:24 PM   #18
humam
مشرف منتدى المطورين
افتراضي

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

انا من المتابعين لدروسك استاذ همام بشغف واحاول ان اتعلم بقدر ما استطيع لكن لي سؤال أرجو أن لا يكون غبي


لماذا هذه الأكواد (التي تنفذ من الديكستيريتي ) أقصد ما الفائدة منها طالما أنه باستطاعتنا أن نقوم بعمل Task ,Roll من خلال جريت بلينز 10 مباشرة ؟!
مشكور اخي عثمان وسؤالك منطقي هذا الموضوع موجه للمطورين وليس للSystem Admin والذي يقوم بعمليات تكوين Role و Task كما ذكرت من خلال الجريت بلينز مباشرة.
ولكن عندما تقوم بتطوير مشروع جديد فمن الجيد ان تقوم بتصميم هذه الادوار والمهام ضمن المشروع حتى تسهل عملية تنصيب المشروع على Client.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 30-Dec-2011, 06:31 PM   #19
humam
مشرف منتدى المطورين
افتراضي

Security Role

ان مستخدم الجريت بلينز يمكن ان يمتلك عضوية ضمن اكثر من دور Role واحد وان Role يحتوي على مجموعة من Security Operation والتي تعطى او تحجب عنها سماحيات الوصول للمستخدمين الاعضاء ضمن هذا الدور.

ان Security Role سوف يتكون من العناصر التالية:

Role ID: وهو عبارة عن معرف فريد ويجب ان تكون حالة الاحرف المستخدمة هنا هي Uppercase.
Role Name: وهو اسم هذا الدور ويفضل ان يكون الاسم وصفي اي يشير الى مهام هذا الدور.
Role Description: وهنا نضع التفاصيل المتعلقة بهذا الدور.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 30-Dec-2011, 06:33 PM   #20
humam
مشرف منتدى المطورين
افتراضي

Creating Security Role Programmatically

لتكوين الادوار بشكل برمجي سوف نستخدم الدالة CreateSecurityRole() والتي تعود للنموذج sySecurityRole والتي تمتلك الصيغة التالية :

كود:
CreateSecurityRole(role_ID, role_name, description)
وان برامترات هذه الدالة واضحة وهي متوافقة مع عناصر Role وسوف تعيد هذه الدالة بعد التنفيذ قيمة صحيحة يمكن التعبير عنها بالثوابت التالية:
كود:
OKAY: The security task was added successfully.
DUPLICATE: The security task already exists.
وهنا كما لاحظنا في حالة Task و Operation يمكن التأكد من ان Role الذي نحن بصدد اضافته موجود مسبقا او لا عن طريق الدالة Exists التي تعود للنموذج sySecurityRole وتأخذ هذه الدالة معامل واحد هو Role ID وتعيد قيمة منطقية true اذا كان هذا Role موجود و false اذا لم يكن موجود مسبقا:
كود:
local long status;
local string roleID;
roleID = "ISYS TEST";
if Exists(roleID) of form sySecurityRole = false then
status = CreateSecurityRole(roleID, "Isys Test", "Test creating Security Role.") of form sySecurityRole;
end if;
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
إضافة رد


يتصفح الموضوع حالياً : 1 (0 عضو و 1 ضيف)
 
أدوات الموضوع
انواع عرض الموضوع

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

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
كتب تعليمية تخص great plains v9 walidsayed76 حزمة التشغيل (جزيئ المبيعات - المشتريات - المستودعات ) 12 29-Mar-2015 09:46 AM
معاهد تعليم Great Plains never better منتدى جريت بلينز العام 1 19-Apr-2014 07:49 AM
أي استفسار عن الـ Great Plains أي اصدار mohamed_mohy منتدى جريت بلينز العام 0 30-Mar-2012 12:46 PM
ربط EXCEL ببرنامج Great Plains osamamakled منتدى جريت بلينز العام 2 13-Feb-2012 07:15 PM
طلب برنامج Great Plains safesoft0 تركيب وإعدادات النظام وما يتعلق به توجيهات Installation & Configuration 3 24-Sep-2011 01:06 PM


جميع الأوقات بتوقيت GMT +3. الساعة الآن 11:17 AM.


Powered by vBulletin® Version 3.8.3

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

Copyright © 2000-2010 Jelsoft Enterprises Limited.
الموقع لا يمثل أي جهة رسمية بل هو جهد شخصي يرمي الى تجميع القدرات في برنامج جريت بلينز