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

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

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

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 21-Nov-2011, 09:44 PM   #11
humam
مشرف منتدى المطورين
افتراضي

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

متشكرين
الشكر لله اخي العزيز وشكرا جزيلا على هذا الاطراء الجميل وعسى ان اكون عند حسن ظنكم
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 21-Nov-2011, 09:51 PM   #12
humam
مشرف منتدى المطورين
افتراضي

استخدام الطريقة eConnect_EntryPoint method

سوف نورد مثال حول الطريقة السابقة في عملية ارسال XML document الى قاعدة بيانات الجريت بلينز ويمكن تصميم نموذج مبسط يحتوي على زر اسمه Submit ومربع نص XML Doc يستخدم لادخال وثيقة XML ويمكن الاستعانة بنماذج XML المرفقة مع eConnect للحصول على محتويات الوثيقة ثم ادراجها في مربع النص والضغط على الزر Submit لارسال تلك الوثيقة الى الجريت بيلنز وفي حالة تنفيذ الشفرة بنجاح نظهر رسالة بذلك :لاحظ الصورة المرفقة
المثال بسيط جدا في البداية نعرف عبارة الاتصال وبعد ذلك نعمل على تحميل وثيقة XML من مربع النص الى متغير الكائن الذي يمثل وثيقة XML وهو الكائن xmlDoc وذلك بأستحدام الطريقة LoadXml التابعة لهذا الكائن بعد ذلك ننشىء نسخة جديدة من الكائن eConnectObject بأستخدام الكلمة new مع الملاحظة اننا في بداية الشفرة عرفنا متغير من النوع eConnectMethods طبعا هناك فرق بين عملية انشاء متغير الكائن وعملية انشاء نسخة من الكائن وهذا الموضوع من اساسيات البرمجية كائنية التوجه OPP بعد ذلك قمنا باستدعاء الطريقة eConnect_EntryPoint التابعة للكائن eConnectObject وامرار البارامترات المطلوبة لهذه الطريقة ونلاحظ كيفية الاستعانة بالفئة EnumTypes للحصول على الثوابت المطلوبة مثل sqlClient لتحديد نوع قاعدة البيانات و الثابت None للدلالة على اننا سوف لن نستخدم Validation للتحقق من صحة تركيب هذه الوثيقة لذا تلاحظ اننا لم ندرج المعامل الاخير والذي يشير الى مسار ملف schema لاننا هنا اخترنا عدم التحقق لذا يمكن اهمال هذا البرامتر لانه اصبح اخياري ولكن يجب ان تمرر وثيقة eConnect XML لضمان تنفيذ الشفرة بشكل صحيح.
واخيرا نتحقق من القيمة المعادة بواسطة الدالة لمعرفة هل تم التنفيذ بنجاح ثم افتح برنامج الجريت بلينز للتحقق من وجود السجل الذي اضفته افضل ان تستخدم eConnect XML التي تخص Customer لانها من ابسط الانواع ونسبة حصول الخطاء قليلة .
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	Import.JPG‏ المشاهدات:	495 الحجـــم:	34.1 كيلوبايت الرقم:	291   اضغط على الصورة لعرض أكبر الاســـم:	Submit.JPG‏ المشاهدات:	492 الحجـــم:	66.0 كيلوبايت الرقم:	292   اضغط على الصورة لعرض أكبر الاســـم:	XML Form.JPG‏ المشاهدات:	498 الحجـــم:	39.6 كيلوبايت الرقم:	293   اضغط على الصورة لعرض أكبر الاســـم:	New Customer In GP.JPG‏ المشاهدات:	484 الحجـــم:	73.1 كيلوبايت الرقم:	294  
__________________
GP Techno-Functional Consultant

آخر تعديل بواسطة humam ، 22-Nov-2007 الساعة 09:46 PM.
humam غير متواجد حالياً   رد مع اقتباس
قديم 21-Nov-2011, 09:52 PM   #13
humam
مشرف منتدى المطورين
افتراضي

ملاحظة:

ان استخدام هذه الطريقة بهذا الشكل المبسط ليس عمليا لانك هنا سوف تنسخ وثيقة XML الجاهزة وتدرجها في مربع النص ولكن في الجانب العملي تحتاج الى التحكم برمجيا بهذه الوثيقة وسوف نوضح ذلك انشاء الله بعد التطرق الى طرق المكتبة الديناميكية eConnect.Serialization.dll
والتي تحتوي على هذه الامكانيات ولكن بصراحة يجب ان يكون المتتبع لهذا الموضوع له اطلاع على تقنية Object Serialization ويصنف هذا الموضوع ضمن المواضيع المتقدمة لبرمجة اطار العمل .NET وسوف احاول اعطاء نبذة مختصرة عن هذا المفهوم كما ذكرت في الشرح السابق هناك فرق بين نسخة الكائن Object Instance وبين متغير الكائن Object Pointer ان انشاء نسخة جديدة من كائن سوف يؤدي الى حفظ عناصر هذا الكائن في منطقة معينة من الذاكرة تسمى Managed Heap ولكن انشاء متغير الكائن سوف لا يؤدي الى عملية نسخ الكائن الى هذه المنطقة من الذاكرة بل يؤدي الى انشاء مؤشر في الذاكرة يحتوي على موقع الكائن في Managed Heap تأتي عملية تسلسل الكائنات Object Serialization وهي عملية نسخ لنسخة الكائن Object Instance في وحدة تخزين Stream والتي قد تكون على القرص الصلب او في الذاكرة وفيما بعد يمكنك استرجاع نسخة الكائن بواسطة عملية Object Deserializing وامرارها الى مؤشر الكائن او Object Pointer اعرف ان هذا الكلام لايزيل الغموض عن هذا الموضوع لكنه يعطي فكرة مبسطة .
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 22-Nov-2011, 09:03 PM   #14
humam
مشرف منتدى المطورين
افتراضي

الطريقة eConnect_Requester method

وهي الطريقة الثانية ضمن هذه المكتبة الديناميكية وتستخدم لأسترجاع البيانات من الجريت بلينز وهي تمتلك ثلاث بارامترات هي:
ConnectionString: وهي عبارة عن سلسلة نصية تحتوي على اسم المزود واسم قاعدة البيانات واعدادات الامان.

ConnectionType: وهنا سوف نحدد نوع الاتصال ويوجد هناك خياران هما:

EnumTypes.ConnectionStringType.SqlClient
EnumTypes.ConnectionStringType.OleDb

الخيار الاول يعني ان الاتصال يتم مع مصدربيانات SQL Server اما OleDb يستخدم للاتصال مع الانواع الاخرى من قواعد البيانات ونلاحظ ان قيمة هذا البارمتر هي من النوع EnumTypes والمضمنة في الفئة EnumTypes .

sXML:وسوف يمثل هذا البرامتر XML document لذا عليك ان تنشىء كائن من هذا النوع لكي تمرره الى هذه الطريقة.

الدالة سوف تعيد عبارة نصية تمثل البيانات التي تم استرجاعها من الجريت بلينز و على شكل وثيقة XML.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 22-Nov-2011, 09:05 PM   #15
humam
مشرف منتدى المطورين
افتراضي

استخدام الطريقة eConnect_Requester method

سوف نحاول تطوير المثال البسيط الذي استخدمناه مع الطريقة السابقة عن طريق اضافة زر جديد الى النموذج نطلق عليه اسم Request Button وفي هذا الزر سوف نستخدم الطريقة السابقة لاسترجاع معلومات من الجريت بلينز وبالتحديد سوف نسترجع معلومات عن Customer. السؤال الذي يطرح نفسه كيف سوف نحدد اي زبون نريد استرجاع المعلومات عنه والجواب اذا لاحظنا برامترات الطريقة eConnect_Requester وهي ثلاثة الاول والثاني واضحان و لا لبس فيهما ولكن البرامتر الثالث يشوبه نوع من الغموض وهو ليس مني لان وثائق eConnect تعرفه كما ذكرت ولكن بعد ملاحظة سريعة سوف تكتشف ان السر هنا في هذا البرامتر هنا عليك ان تمرر وثيقة eConnect XML ولكن من نوع خاص وهي تسمى Request Document قبل استدعاء الطريقة ويمكن ان تجد امثلة عن هذا النوع من الوثائق ملحقة في مجلد eConnect وكذلك سوف ارفق ملف صورة لهذه الوثيقة.
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	Request Button.JPG‏ المشاهدات:	491 الحجـــم:	49.1 كيلوبايت الرقم:	295  
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 22-Nov-2011, 09:09 PM   #16
humam
مشرف منتدى المطورين
افتراضي

لاحظ الصورة المرفقة لشفرة الزر Request الشفرة ابسط من سابقتها اولا نعرف متغيرات لعبارة الاتصال ومتغير كائن من نوع eConnectMethods لكي نستدعي الطريقة eConnect_Requester والثالث متغير كائن من نوع XMLDocument بعد ذلك سوف نقوم بأعداد عبارة الاتصال ثم سوف استخدم مربع النص XmlDoc_TextBox بشكل مزدوج هنا في المرة الاولى سوف استخدمه لتمرير eConnect Request XML Document ثم بعد ذلك نحمل هذه الوثيقة الى كائن XML بواسطة الطريقة XMLLoad الان اصبحت برامترات الطريقة جاهزه ويمكن استدعاء الطريقة وكما ذكرنا ان الطريقة سوف تعود بسلسلة نصية تحتوي على البيانات المطلوبة وبتنسيق XML وهنا استخدمت نفس مربع النص لعرض النتيجة المعادة من الجريت بلينز.
الان عند تشغيل التطبيق اول خطوة سوف اقوم بأدراج eConnect Request XML Document في مربع النص وهذه الوثيقة هي التي تحدد اي زبون سوف استرجع وهنا تحتاج الى تمريرالمعرف اي Customer ID . لاحظ الصورة eConnectRequesXML.JPG ثم بعد ذلك سوف اضغط على الزرRequest لأرسال الطلب. وبعد لحظات سوف تعاد النتيجة الى مربع النص كما في الشكل Requested Data.JPG وكما نلاحظ ان المعلومات غير منسقة بشكل مقروء لذا يمكن ان تنسخ هذه المعلومات الى Clipboard ثم اضف ملف جديد الى مشروع .NET من نوع XML والصق هذه البيانات هناك ثم اضغط Ctrl + K , Ctrl +F او Ctrl +A ومن قائمة Edit اختر Advanced ثم Format Selection وسوف تجد ان البيانات تم تنسيقها لتكون مفهومة ومقروءة من قبل المستخدم وهذه احدى ميزات XML اي ان اي شخص سوف يكون قادر على فهم محتوى الوثيقة حتى لو لم يكن له خبرة في XML . لاحظ الصورة Customer XML.JPG
وبهذا ينتهي هذا المثال المبسط.
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	eConnectRequesXML.JPG‏ المشاهدات:	480 الحجـــم:	35.5 كيلوبايت الرقم:	296   اضغط على الصورة لعرض أكبر الاســـم:	Requested Data.JPG‏ المشاهدات:	486 الحجـــم:	86.0 كيلوبايت الرقم:	297   اضغط على الصورة لعرض أكبر الاســـم:	Customer XML.JPG‏ المشاهدات:	501 الحجـــم:	125.5 كيلوبايت الرقم:	298  
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 22-Nov-2011, 09:11 PM   #17
humam
مشرف منتدى المطورين
افتراضي

Serialization Assembly

وهنا سوف نتحدث عن المكتبةالثانية من مكتبات eConnect والتي سوف تعطينا امكانية انشاء eConnect XML برمجيا بدل من التعامل بشكل نصي كما فعلنا في الامثلة السابقة والاسم الصريح لهذه المكتبة هو Microsoft.Dynamics.GP.eConnect.Serialization.dll ولكي تكون قادر على استخدام كائنات هذه المكتبة عليك ادراج فضاء الاسماء Microsoft.Dynamics.GP.eConnect.Serialization ضمن المشروع .

قبل التطرق الى فئات هذه المكتبة اود ان اذكر بتركيب وثائق eConnect XML لانه من الضروري ان يكون حاضر في الذهن حتى نستطيع فهم كيفية استخدام هذه المكتبة كما قلنا ان وثيقة XML سوف تكون مكونة من ثلاث مستويات هي :

eConnect Document
eConnect Transaction Type
eConnect XML Node

ان هذه المكتبة سوف تعطيك امكانية انشاء eConnect Transaction Type و eConnect XML Node بشكل برمجي ثم امرارها الى كائن يمثل eConnect XML Node وبتالي سوف تكون قد حصلت على وثيقة XML كاملة عند ذلك يمكنك استخدامها عن طريق امرارها كمعامل الى الطريقة eConnect_EntryPoint method او خزنها على شكل ملف على القرص الصلب وهذا الملف يمكمن استخدامه من قبلMSMQ .

ملاحظة:
سوف تجد كل التفاصيل المتعلقة بانواع transaction type schemas and XML nodes ضمن ملفات help الخاصة ب eConnect .
افضل طريقة لفهم عمل هذه المكتبة هو انشاء مثال عملي
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 25-Nov-2011, 08:07 AM   #18
Monzer Osama
مدير عام منتديات جريت بلينز العربية
افتراضي

جهد مبارك أخي همام ... ربنا يفتح عليك

لإدراج أكواد داخل مشاركاتك وكي تظهر بالشكل والتنسيق الجديد
مثل:

كود:
your code here
اضغط على الرابط لمعرفة كيفية القيام بذلك ....
http://www.gp4arab.com/forum/showpos...02&postcount=7
__________________
Monzer Osama
Saudia Arabia - Jeddah
00966501826235
Microsoft Certified Business Management Solutions Professional
Microsoft Certified Trainer
Monzer Osama غير متواجد حالياً   رد مع اقتباس
قديم 25-Nov-2011, 05:07 PM   #19
humam
مشرف منتدى المطورين
افتراضي

شكرا اخي منذر على هذه الملاحظة نعم ان ادراج الكود ضمن الردود افضل حيث يعطي المتتبع امكانية ملاحظة الشرح مع الاطلاع على الشفرة البرمجية وهذا ما سوف احاول استخدامه في المشاركات القادمة
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 28-Nov-2011, 07:50 PM   #20
humam
مشرف منتدى المطورين
افتراضي

سوف يكون استخدام هذه المكتبة لانشاء eConnect XML document بشكل برمجي وكما وضحت سابقا ان تركيب هذه الوثيقة سوف يكون مكون من Root او Parent Node ممثل ب eConnect Transaction Type وتحت هذا الجذر سوف تأتي باقي الاعضاء او Nodes والتي سوف تمثل eConnect XML Node اعدت شرح التركيب لانه سوف يسهل علينا المثال التالي وهو اعقد نوعا ما من المثال الاول.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
إضافة رد


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

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

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

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
تعلم كيفية كتابة الشفرة البرمجية بلغة الدكسترتي humam مواضيع المطورين الأخرى 30 25-May-2013 04:45 PM
فكرة عمل مشاريع wael abed منتدى أكواد فيجوال بيسك VBA 9 07-Oct-2012 09:08 AM
كيف تستخدم الماكرو و Scheduled Tasks لتنفيذ مهام مجدولة على GP humam مواضيع المطورين الأخرى 25 15-Dec-2011 06:00 PM
كيفية تعلم جريت بلينز نادر احمد ماهر حزمة التشغيل (جزيئ المبيعات - المشتريات - المستودعات ) 1 23-Oct-2011 01:08 PM
مثال عن استخدام الـ Econnect (للمبتدئين) Monzer Osama مواضيع المطورين الأخرى 1 23-Jun-2011 10:27 PM


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


Powered by vBulletin® Version 3.8.3

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

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