إرسال نماذج infopath عبر البريد (كمرفق) أن يكون تحليل SQL Server 2005?

StackOverflow https://stackoverflow.com/questions/838315

  •  10-07-2019
  •  | 
  •  

سؤال

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

  • المستخدم يملأ في InfoPath (2003) شكل محليا على أجهزة الكمبيوتر الخاصة بهم
  • زر في نموذج InfoPath بعنوان 'إرسال' يجلب نظرة جديدة (2003) رسالة البريد الإلكتروني مع نموذج infopath المرفقة.يضغط المستخدم يرسل إرسال البريد الإلكتروني إلى علبة بريد exchange.
  • sql server preiodically يتحقق هذا البريد تنزيل أي طلبات جديدة مع نموذج infopath المرفقة
  • sql server يوزع المرفق و الحقول في نموذج infopath.

هو SQL Server القادرة على تحليل مرفقات البريد بهذه الطريقة ؟ أي المحاذير مع هذا النهج ؟

جاذبية باستخدام Outlook مثل تقديم التكنولوجيا هو أن عملية المستخدم هو نفسه إذا كانوا دون اتصال.سيقوم Outlook ثم مزامنة تلقائيا عندما يعودون على الانترنت.فمن الضروري أن يكون لدى المستخدمين بعض الطريق لملء استمارات حاليا ، 'إرسال' لهم ، ومن ثم يجب ثم مزامنتها تلقائيا مع الخادم عندما يأتي المقبل على الانترنت.

تحرير:للتوضيح أنا لا أبحث عن الطريق إلى ذاكرة التخزين المؤقت شكل البيانات من الخادم->العميل.أنا أبحث في ذاكرة التخزين المؤقت الاستمارة.بناء تطبيق منفصل إلى ذاكرة التخزين المؤقت التقارير المنجزة على العميل ليس خيارا.

هل كانت مفيدة؟

المحلول

الإصدارات اللاحقة من SQL Server قادرة على تشغيل التعليمات البرمجية .NET بداخلها، وبالتالي قد تتمكن من استقصاء صندوق بريد من SQL Server ومعالجة نموذج InfoPath.ومع ذلك، لست متأكدًا من أنني سأفعل ذلك بهذه الطريقة.

قد يكون من الأفضل التفكير في كتابة خدمة Windows تقوم بهذا العمل.ستبدأ خدمة Windows، وتفحص صندوق البريد الخاص بـ "حساب الخدمة"، وتقرأ رسائل البريد الإلكتروني، وتستخرج المرفقات، وتعالج ملف XML، وفي النهاية، تكتب البيانات إلى SQL.ومن الممكن أيضًا الرد على هذا البريد بتأكيد أو حدوث أخطاء في حالة حدوث قواعد العمل أو أخطاء التحقق من الصحة.

لست متأكدًا من أنني سأضع كل المنطق أعلاه في SQL - لسبب واحد، أظن أنك ستواجه مشكلات مع الحسابات (يجب أن يكون لديك الحساب الذي كان SQL يعمل ضمنه لتتمكن من الوصول إلى حساب صندوق بريد Exchange).

قد يختلف عدد الأميال الخاصة بك، ويجب عليك إنشاء نموذج أولي لتحديد ما هو الأفضل بالنسبة لك، لكنني سأحاول الاحتفاظ بالرمز الذي يستخدمه Exchange باعتباره "قائمة انتظار عمل" منفصلة عن SQL ووضع الكود الذي يتعامل مع كتابة البيانات فقط في الجداول في SQL.

نصائح أخرى

لن أستخدم النهج الذي ذكرته أعلاه.هناك العديد من الأساليب التي تبدو لي مرغوبة أكثر من قيام SQL Server بالنظر إلى صندوق بريد Exchange.النقطة الرئيسية التي تحددها والمتطلب المهم هو السماح لنموذج InfoPath بالعمل في وضع عدم الاتصال.أعتقد أن "وضع عدم الاتصال" وأجزاء "نقل البيانات" في مشروعك عبارة عن قطعتين متميزتين ومنفصلتين:1) يجب تخزين النموذج والبيانات على العميل حتى يتوفر الاتصال بالإنترنت و2) بمجرد توفر الاتصال، يجب نقل النموذج والبيانات إلى الخادم.

يمكنك إعداد نموذج InfoPath لإرساله مباشرةً إلى SQL Server وتجاوز "الوسيط" الخاص بـ Exchange بالكامل.يعد الإعداد في InfoPath عندما تقوم بتصميم النموذج الخاص بك واضحًا ومباشرًا:1) تقوم بتمكين "إرسال البيانات" للاتصال و2) تقوم بتكوين خيارات الإرسال.هذا شرط لديه تفاصيل حول كيفية القيام بذلك.علاوة على ذلك، قد يتم إعداد اتصالك بـ SQL Server للاستخدام دون اتصال، كما تمت مناقشته في هذا شرط.التحذير الوحيد في هذا الأسلوب هو أنك قد تحتاج إلى تغيير مخطط قاعدة البيانات الخاصة بك لدعمه.

أسلوب آخر هو إرسال نموذج InfoPath الخاص بك إلى SQL Server 2005 HTTP Endpoint.يعد عميل InfoPath مجرد محرر XML مجيد ونقطة نهاية HTTP هي في الأساس اسم مختلف لخدمة الويب.تتلقى بيانات النموذج عند نقطة نهاية HTTP في جدول مرحلي حيث يتم تخزين البيانات بتنسيق XML، ثم يمكنك إجراء تحليل لتلك البيانات من منطقة التدريج تلك.لا يزال يتعين عليك إعداد اتصال InfoPath للاستخدام دون اتصال.التحذير الرئيسي في هذا الأسلوب هو أن Microsoft ستتجاهل HTTP Endpoint في SQL Server 2008 لصالح WCF.

والأسلوب الآخر الذي أود اقتراحه هو استخدام WCF نفسه لتلقي بيانات نموذج XML من عميل InfoPath.سيتطلب منك هذا الأسلوب توصيل مصدر بيانات النموذج بخدمة ويب WCF الخاصة بك في وقت التصميم ثم إعداد النموذج للاستخدام دون اتصال أيضًا.

آمل أن يكون هذا مفيدًا لك وعلى الأقل يوجهك في الاتجاه الصحيح.

رأيت مشاريع مماثلة التي لجأت إلى Express edition على العميل حفظ infopath (أو بيانات التطبيق) في التعبير عن استخدام خدمات وسيط لتسليم مركز بسبب ضمان التسليم دلالات SSB مقابلالبريد.هذا يعطيك كل SQL الحل أسهل لبيع و لا تحتاج الاقتراع على الملقم.كما أنك لن تضطر إلى التعامل مع MIME تحليل, كل ما على التوالي إلى الأمام معالجة XML.ليس لضعاف القلب على الرغم من الحصول على SSB وتشغيلها هو التحدي.إذا كنت ترغب في الذهاب مع تسليم البريد, خدمة خارجي سوف يكون من الأسهل لبناء تصحيح الأخطاء وإصلاحها.هناك بعض الدقيقة نقطة القضايا يجب أن يكون لديك إجابة على:-كيف يمكنك الحفاظ على ثابت البريد dequeue عمليات طاولة الكتابة العمليات ؟ مكون الخاص بك يجب أن تشارك تبادل قراءة/حذف و SQL إدراج في المعاملات الموزعة.- هو المنطق الخاص بك على استعداد للتعامل مع infopath مستندات الخروج من النظام ؟ نقل البريد يجعل الاطلاق لا ضمان حول ترتيب التسليم, لذلك قد نرى ترتيب 'حذف' doc قبل 'من أجل إنشاء' doc - كيف أنت ذاهب إلى الكشف عن الوثائق المفقودة (لم يتم تسليمها عن طريق البريد)?أنت ذاهب لتنفيذ المرسل رقم تسلسل وفي نهاية المطاف إعادة اختراع TCP على رأس البريد ؟ - هل المعالجة تسمح موازية عملية ترتبط الوثائق ؟ إذا الموضوع: 1 تلتقط doc 1 والخيط 2 تلتقط دوك 2 من نفس المرسل و دوك 2 يرتبط مع دوك 1 (أي.الرجوع إلى نفس المعاملات التجارية) ، ماذا سيحدث في قاعدة البيانات الكتابة ؟ وسوف الجمود ، سوف تفقد التحديث, سوف يكون توالت مرة أخرى ؟

هناك العديد من التنانين تحت الجسر قبل...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top