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

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

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

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 16-Nov-2011, 09:33 PM   #1
humam
مشرف منتدى المطورين
افتراضي تعلم كيفية بناء وتطوير مشاريع تستخدم eConnect

رأيت انه من الافضل فصل هذا الموضوع عن الجزء الاول والذي كان يتضمن اساسيات eConnect وطريقة تثبيته بينما في هذاالموضوع سوف نتطرق الى الجانب التطبيقي واتوقع ان يكون هناك موضوع ثالث منفصل يتعلق بكيفية تغيير اعدادت مكونات eCoonect.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 16-Nov-2011, 09:36 PM   #2
humam
مشرف منتدى المطورين
 
الصورة الرمزية humam
 
تاريخ التسجيل: Jul 2007
الدولة: UAE
المشاركات: 323
إرسال رسالة عبر مراسل Yahoo إلى humam
من مواضيعي  
افتراضي

e-connect Schema & XML document

لكي يكون التطبيق الذي تطوره قادر على التفاعل مع الجريت بلينز فانه يجب ان يكون قادر على ارسال واستقبال وثائق XML التي تصف GP Transactions & Document ان e-connect يمتلك ما يعرف ب eConnect Schema وهي ببساطة عبارة عن اداة لضبط وثائق XML بحيث تكون ضمن السياقات التي يمكن ل eConnect من التعامل معها وهي سوف تحتوي على التركيب النحوي لعبارت XML التي يجب استخدامها والتقيد بها.
ملاحظة:ملف Schema هو عبارة عن ملف XML بأمتداد .xsd

اين تجد ملفات eConnect Schema

عند تنصيب eConnect بالشكل الصحيح سوف تجد ملفات eConnect Schema في المواقع التالية:
c:\Program Files\Common Files\Microsoft Shared\eConnect 10\XML Schema\Incoming
XSD Individual Schema

ومن اسم المجلد الاخير يدل على انك سوف تجد اكثر من ملف .xsd وكل واحد سوف يخص احدى وثائق XML اي سوف توجد هناك انواع متعددة من وثائق XML مثلا وثائق لنقل Master Data وهي بالضرورة سوف تختلف عن وثائق XML التي سوف تنقل Transaction Data وبتالي فأن لكل وثيقة سوف تكون هناك مجموعة من القواعد الخاصة بها وهذه القواعد هي عبارة عن ملفات eConnect Schema ارجو ان يكون هذا الشرح المبسط قد ازال بعض الغموض عن هذه الملفات.

الملف الثاني هو eConnect.xsd وسوف تجده في المسار التالي :
c:\Program Files\Common Files\Microsoft Shared\eConnect
10\XML Schema\Incoming XSD Schemas

وهذا الملف سوف يحتوي على Schema لكل وثائق XML وبصورة مجتمعة والغرض من هذا الملف والملفات السابقة انه في التطيبق الذي تطوره بواسطة .NET قد تحتاج الى عمل Validation لوثائق XML التي تولذها وهذا الملف يعطيك قابلية على عمل Validation لمختلف الانواع او يمكن استخدام الملفات المفردة لعمل Validation لكل وثيقة على حدة.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 16-Nov-2011, 09:39 PM   #3
humam
مشرف منتدى المطورين
افتراضي

eConnect XML Document Structure

ان eConnect Schema سوف تصف هرمية eConnect XML Document حيث كما هو معروف ان وثائق XML سوف تمتلك بناء هرمي يستخدم لوصف البيانات وان وثائق XML سوف تحتوي على ما يسمى ب Node والتي تمتلك علاقات من نوع Parent/Child وكذلك تمتلك ما يمسى ب Element الذي يستخدم لوصف البيانات وفي الحقيقة ان العمل مع eConnect يحتاج لبعض المتطلبات التي يجب ان يمتلكها المطور مثل معرفة هرمية XML معرفة كيفية العمل مع اطار العمل .NET وللمزيد يجب ان يحصل على قدر من الدراية ب MSMQ في حالة رغب في استخدام Biz Talk Server ولكن اتصور ان الحد الادنى مطلوب اي ليس مطلوب منك ان تكون محترف في هذه المواضيع لتكون قادر على فهم كيفية عمل eConnect ولكن التطبيق العملي لكي يكون ناجح نعم يحتاج الى مطورين من ذوي الخبرة وخصوصا ضمن نطاق التعامل مع وثائق XML في اطار العمل .NET وغيرها من المتطلبات الاخرى.
نعود الى هرمية eConnect XML والتي تمتلك تركيب خاص بها كما وضحت سابقا وهذا التركيب يكون مدرج ضمن ملفات .xsd وقد ذكرت هذه المعلومة بشكل مكرر في هذا الموضوع ولذا سوف اتوقف عن ذكرها ولكن يجب ان تكون حاضرة في الذهن.
وان هذه الهرمية تشير الى وجود ثلاث مستويات مختلفة ترتبط فيما بينها بعلاقة Parent/Child وهي :

eConnect Document
eConnect Transaction Type
eConnect XML Node


الشكل التالي يوضح هذا البناء الهرمي بشكل مبسط :

من الشكل السابق تكون العلاقة بين المستويات الثلاثة واضحة ان eConnect Document سوف يكون هو الجذر الرئيسي اي الاب لكل العناصر الباقية و eConnect Transaction Type سوف يكون الاب لباقي الNode المحتواة في داخله وهي eConnect XML Node واخيرا سوف تحتوي eConnect XML Node على العناصر Elements والتي سوف تستخدم لوصف البيانات اتمنى ان تكون العلاقة واضحة بين المستويات الثلاثة.
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	Fig7.JPG‏ المشاهدات:	760 الحجـــم:	23.1 كيلوبايت الرقم:	279  
__________________
GP Techno-Functional Consultant

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

eConnect Document

كما نلاحظ ان السطر الاول والذي يحتوي على معرف XML وكذلك Schema ومن المهم جدا ان تعرف ان الوثيقة سوف تحتوي على Node واحدة فقط من نوع eConnect Transaction Type وهذا الامر مهم جدا لانه في حالة حصول اي خطأ في عملية تحديث البيانات سوف يتم استخدام rollback لازالة كل Transactions الموجودة في الوثيقة لذا تؤكد الوثائق على ضرورة ان تحتوي XML Document على معلومات تتعلق بنوع واحد من GP Transaction اي يجب عدم خلط الانواع المختلفة وذلك لكي تكون هناك امكانية لاستخدام Rollback في حالة حصول خلل.


eConnect Transaction Type

وهي تعتبر Parent Node لباقي الNodes المحتواة في داخلها وهي سوف تمثل GP Document Or Operation ومن الممكن ان تحتوي في داخلها على اكثرمن Child Node واحدة في الشكل اعلاه نلاحظ انها تحتوي على عقدتين الاولى هي <eConnectProcessInfo> وهي نوع خاص من Node سوف نوضح لاحقا اهميته والعقدة الثانية هي <taSopHdrIvcInsert> والتي تمثل eConnect XML Node .
<eConnectProcessInfo> Node

ان eConnect Schema تشترط ان تكون اول Node ضمن eConnect Transaction Type هي من النوع <eConnectProcessInfo> وتستخدم هذه العقدة للتحكم بكيفية تنفيذ eConnect Transaction Type Node في المثال التالي يوضح كيفية استخدام هذه العقدة eConnect Connection String :

<eConnectProcessInfo>
<ConnectionString> Provider=SQLOLEDB.1;
Integrated Security= SSPI;
PersistSecurity Info= False;
Initial Catalog= TWO;
Data Source= GP10
</ConnectionString>
</eConnectProcessInfo>
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 16-Nov-2011, 09:48 PM   #5
humam
مشرف منتدى المطورين
افتراضي

eConnect XML Node

ان XML Node يمكن ان يكون Parent لاكثر من Element واحد وان Element سوف تحتوي على Data Value ويقوم eConnect باستخدام هذه Data Value لتحديث بيانات الجريت بلينز.
ان eConnect Schema تعرف الخصائص التي يجب ان تمتلكها XML Node وهي كما يلي :
اسم العنصر element name : حيث ان لكل عنصر هناك اسم يجب ادراجه بين Tags ويجب ان نستخدم الاسماء المعرفة مسبقا مثل :

<BACHNUMB>TEST14</BACHNUMB>

الحقول المطلوبة required field : كما نعلم ان لكل عنصر من عناصر الجريت بلينز سوف تكون هناك حقول اخيارية واخرى اجبارية لذا يجب ان توفر كل الحقول المطلوبة لتحديث Module معين وفي حالة اغفال هذه الحقول سوف يؤدي ذلك الى خطأ.
نوع البيانات Data type :وهذا الجزء يخبرك بنوع المعلومات التي يستقبلها هذا العنصر مثلا اذا كان Customer Name سوف يكون نوع البيانات هو String .
محددات البيانات Data constraint :بعض انوع العناصر تحتاج الى قيم محدد من البيانات ويجب الالتزام بها اذا مررت قيم خاج هذا النطاق سوف يؤدي ذلك الى حصول خطأ.

تكوين eConnect XML Document

بما ان لغة XML هي عبارة عن لغة نصية لذا سوف تكون قادر على تكوين XML بواسطة اي برنامج نصوص او يمكن استخدام برامج مثل XML Editor ولكن تنصح وثائق eConnect بأستخدام البرمجة لتكوين وثائق XML وذلك لان البناء اليدوي قد عمليا شبه مستحيل لذا يوفرeConnect نوعين من Assemblies يمكن استخدامها لبناء XML برمجيا :

Microsoft.Dynamics.GP. eConnect.Serialization.dll

في حالة استخدام هذه المكتبة فأن Serialization سوف يعمل على تنظيم XML بشكل مماثل لمواصفات eConnect Schema .

Microsoft.Dynamics.GP. eConnect.Serialization.dll

في حالة استخدام هذه المكتبة فأن NET سوف لا يعيد ترتيب XML بحيث توافق eConnect Schema بل يتم امرار XML بنفس التركيب الذي تم تصميمه
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 16-Nov-2011, 09:51 PM   #6
humam
مشرف منتدى المطورين
افتراضي

Using eConnect to update existing Document

يوجد العديد من XML Document تسمح لك بالقيام بعملية تحديث بيانات GP Documents الموجودة مسبقا ولكي يكون eConnect قادرعلى تحديث هذه Documents فأن eConnect XML Document يجب ان تحتوي على نوع خاص من eConnect XML Node تحتوي على Update Functionality .

ملاحظة:سوف استخدم مصطلح XML Document للدلالة على eConnect XML Document و Transaction Type للدلالة على eConnect Transaction Type واخيرا XML Node للدلالة على eConnect XML Node .

ان هذه XML Node الخاصة والتي تمتلك Update Functionality سوف تشير الى Business Object والذي كما ذكرنا في السابق انه مجموعة من الاجراءات المخزنه ووضيفة هذا Business Object هو التأكد هل ان البيانات الموجودة في XML Node تخص GP Document موجودة مسبقا في قاعدة البيانات ام لا فأذا وجد Business Object هذه البيانات موجودة مسبقا سوف يقوم بتحديث تلك Documents اما اذا لم تكن موجودة سوف يضيف Document جديدة .

بالنسبة الى الطرق التي يستخدمها Business Object لتحديث GP Document هناك طريقتين يمكن استخدامها:

Document Exchange: في هذه الحالة فان Business Object سوف يقوم بعملية تحديث لجميع حقول البيانات سواء تم امرار هذه الحقول او لم يتم امرار قيم هذه الحقول وفي حالة ترك قيم بعض الحقول فارغة فسوف يتم استخدام eConnect default value لاعداد هذه الحقول اي ببساطة عند استخدام هذه الطريقة سوف تحتاج الى امرار قيم جميع الحقول حتى لو لم تتغير قيمها السابقة.

Field Level Update: في هذه الطريقة يمكن السماح بادراج فقط الحقول التي سوف تتغير قيمها ضمن XML Node اما الحقول التي لم يتم ادراجها ضمن XML Node سوف تحتفظ بقيمها السابقة.

Automating document number assignment
ان XML Document التي تعمل على تكوين GP Documents جديدة سوف تحتاج ان تمرر المعرف الخاص بهذه Document ضمن XML Node ولكن بعض XML Document توفر امكانية ايجاد Document Number عن طريق استرجاع المعرف السابق لأخر Document ثم زيادته بمقدار واحد وتعيينه الى Document الجديدة وللقيام بذلك فان XML Document يجب ان تحتوي على Schema توفر Auto numbering اي ان هذه الخاصية ليست متاحة لكل انوع XML Document وبعد التأكد من وجود هذه الخاصية يجب ان تمرر العنصر الذي يمثل Document Number مع تركه فارغا وبتالي سوف يقوم eConnect بالبحث عن الرقم واسناده الى الوثيقة.
في المثال التالي يوضح XML Document تستخدم Transaction Type من نوع GL وهنا سوف نلاحظ كيفية ترك حقل JRNENTRY فارغ للحصول على الرقم بصورة ذاتية :

<taGLTransactionHeaderInsert>
<BACHNUMB>TEST14</BACHNUMB>
<JRNENTRY></JRNENTRY>
<REFRENCE>General Transaction</REFRENCE>
<TRXDATE>2007-01-21</TRXDATE>
<RVRSNGDT>1900-01-01</RVRSNGDT>
<TRXTYPE>0</TRXTYPE>
<SQNCLINE>16384</SQNCLINE>
</taGLTransactionHeaderInsert>

ملاحظة:
ان SOP Document لاتتطلب منك امرار عنصر يمثل معرف الوثيقة بل سوف تقوم بشكل ذاتي بتحديث معرف GP Document سواء مررت العنصر الذي يمثل معرف الوثيقة وتركته فارغا او لم تذكر هذا المعرف ضمن XML Node . ولكن في حالة كونك مررت العنصر الذي يمثل المعرف مع قيمة سوف يؤدي ذلك الى استخدام هذه القيمة لتحديث حقل المعرف في قاعدة البيانات.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 16-Nov-2011, 09:54 PM   #7
humam
مشرف منتدى المطورين
افتراضي

الجدول السابق يحتوي على انواع وثائق XML التي تدعم Auto Numbering
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	Fig8.JPG‏ المشاهدات:	740 الحجـــم:	55.1 كيلوبايت الرقم:	280  
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 19-Nov-2011, 07:13 PM   #8
humam
مشرف منتدى المطورين
افتراضي

Dot NET Development

لكي تكون قادر على تصميم مشاريع بواسطة اطار العمل .NET يجب ان تعمل على ادراج مرجع لل eConnect assembly في المشروع الذي تصممه وان assembly eConnect سوف تحتوي على فضاء الاسماء name space الذي يمكنك من انشاء كائنات eConnect واستدعاء طرقها المختفلة وبصورة عامة ان مكونات eConnect تحتوي على assemblies التالية :
Microsoft.Dynamics.GP.eConnect.dll
Microsoft.Dynamics.GP.eConnect.MiscRoutines.dll
Microsoft.Dynamics.GP.eConnect.Serialization.dll
والتي يمكن ان تجدها في المجلد التالي :
Files\Common Files\Microsoft Shared\eConnect 10\Objects\Dot Net. C:\Program

Adding Reference

لكي تكون قادرعلى استخدام المكتبات الدياميكية انفة الذكر في مشاريعك عليك اضافة مرجع لهذه المكتبات :
بالضغط على اسم المشروع ثم اختر Add Reference ومن نافذة Add Reference اختر علامة التبويب Browse ومنها اختر المجلد Dot Net الموضح مساره الكامل سابقا وسوف تجد ملفات assemblies اختر المجموعة وانقر على الزر Ok وبهذا اضفت مرجع لهذه المكونات وبتالي سوف تكون قادر على استدعاء طرق واحداث eConnect ضمن مشروع .NET الذي تطوره.

Including Namespace

في الحقيقة اتوقع ان يكون مفهوم Namespace او فضاء الاسماء مستوعب من قبل المطورين على اعتبار انه من مفاهيم برمجة .NET الاساسية اما بالنسبة للذين لايمتلكون هذه الخلفية سوف احاول اعطاء شرح مبسط ولانني في هذا الموضوع اود ان اركز على استخدام مكونات eConnect اما موضوع مفاهيم برمجة .NET فانها تحتاج الى مجلدات لشرحها وتوجد هناك مواقع متخصصة بهذا الموضوع يمكن الاطلاع عليها.
فضاء الاسماء يستخدم لعملية احتواء مجموعة من الكتل البرمجية والتي تؤدي وظائف معينة ويسهل على المطورين عملية الوصول الى الكائنات الموجودة داخل هذه الكتل.
بالنسبة الى eConnect Namespace يمكن استدعاء فضاء الاسماء الخاص بها عن طريق استخدام عبارة Import بالنسبة الى VB.NET او عبارة Using في حالة استخدام C# :

Imports Microsoft.Dynamics.GP.eConnect

Using Imports Microsoft.Dynamics.GP.eConnect.MiscRoutines;
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 19-Nov-2011, 07:17 PM   #9
humam
مشرف منتدى المطورين
افتراضي

Microsoft.Dynamics.GP.eConnect.dll

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

eConnectException: وهذه الفئة تجعلك قادر الى متابعة الاستثناءات التي قد تحصل اثناء العمل مع مكونات eConnect.

ملاحظة: للمزيد من المعلومات حول Enum و Exception يمكن مراجعة مكتبة MSDN.

الفئة eConnectMethod :

وتحتوي هذه الفئة على طريقتين هما :
1. eConnect_EntryPoint method
2. eConnect_Requester method
ولكي تكون قادر على استدعاء هذه الطرق عليك ان تعرف اولا كائن من النوع eConnectMethod وكما يلي:
VB.NET:

Dim eConnectObject As New eConnectMethods

C#:

eConnectType eConnect = new eConnectType();

في C#نلاحظ انك تحتاج اولا الى ذكر نوع الكائن او المتغير ثم تتبعه بأسم المتغير وبعد ذلك تتم عملية انشاء نسخة جديدة من الكائن بواسطة العبارة new.

الطريقة eConnect_EntryPoint method

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

sConnectionString = @aa"data source=GP10;initial catalog=TWO;integrated security=SSPI";
هذا المثال بلغة C# والمعامل @aa ضروري في بداية العبارة لكي يتم ترجمتها مثل ما هي بدون الحاجة الى استخدام معاملات الهروب.
ConnectionString = "DataSource=GP10; Integrated Security=SSPI;
"Persist Security Info=False; Initial Catalog=TWO"
هذا المثال بلغة VB.NET

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

EnumTypes.ConnectionStringType.SqlClient
EnumTypes.ConnectionStringType.OleDb

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

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

ValidationType: وهنا سوف تحدد نوع التحقق وهناك قيميتين هما None او XSD في حالة None هذا يعني انك لاتريد ان تجري عملية تحقق على وثيقة XML التي ترسلها الى الجريت بلينز اما الخيار الثاني XSD فهو يعني انك تريد التحقق من تركيب وثيقة XML باستخدام eConnect Schema قبل ارسالها الى الجريت بلينز وقد ذكرنا سابقا عن ملفات Schema ما الغرض منها واين يمكنك ايجادها.

eConnectSchema:ان هذا البرامتر سوف يكون اختياري في حالة كونك استخدمت القيمة None في البرامتر السابق اما اذا استخدمت القيمة XSD فعليك هنا توضيح مسار ملف XSD الذي سوف تستخدمه في عملية المقارنه والتحقق.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 21-Nov-2011, 10:33 AM   #10
ماهر أحمد
عضو جديد
 
تاريخ التسجيل: Aug 2007
المشاركات: 18
من مواضيعي  
افتراضي

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

متشكرين
ماهر أحمد غير متواجد حالياً   رد مع اقتباس
إضافة رد


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

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

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. الساعة الآن 11:02 PM.


Powered by vBulletin® Version 3.8.3

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

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