بلاگ پرنیان

پرنیان، ارایه دهنده نرم افزارهای اتوماسیون اداری، CRM و پورتال

معرفی InfoPath و وب پارت همگام ساز اینفوپس پرنیان

InfoPath چیست و کاربرد آن چگونه است؟

در این قسمت با تلخیص و تکمیل مطلب منتشر شده در وبلاگ اردوان حریری به توصیف اینفوپس می پردازیم.

مایکروسافت InfoPath یک نرم افزار در محیط ویندوز و در بسته آفیس است که جهت طراحی، انتشار، ورود داده و ارائه فرم‌های الکترونیکی حاوی داده‌های ساخت یافته، تولید شده است. به گفته یکی از افراد تیم سازنده، یکی از تصمیم گیری‌های اساسی در طراحی معماری این نرم افزار «وفادار ماندن به اصل جدایی داده‌ها از قالب نمایش آنها در XML » بود. بنابراین در طراحی این نرم افزار از محیط طراحی فرم WYSIWYG استفاده شده است. در این محیط کنترل‌های گوناگون (از جمله لیست‌های بازشو، جعبه متن و ...) به فیلدهای اطلاعاتی پیوند خورده‌اند. این پیوند به صورت درختی سلسله مراتبی، از پوشه‌ها و فیلدهای اطلاعاتی رقم می‌خورد. این ابداع در سال 2000 توسط آدریانا نیاگو، ژان پاولی و همکارانشان صورت گرفت. می‌توان گفت که آنها XML را با XSLT  و نماهای DHTML نوشتند.

InfoPath فقط برای طراحی فرم در شیرپوینت ساخته نشده است، فرمهای طراحی شده توسط اینفوپس هم در اوتلوک و هم به صورت مستفل در محیط شبکه قابل استفاده هستند و بعد از اضافه شدن Form Service به شیرپوینت امکان نمایش فرم های اینفوپس به صورت تحت وب و در شیرپوینت نیز فراهم شد.

توسعه

برای ساخت یک فرم با استفاده از اینفوپس نیاز به InfoPath designer می باشد. همه داده‌های موجود در فرم‌های «اینفوپس» در قالب XML ذخیره می‌شوند. در «اینفوپس» به این داده‌ها اصطلاحاً «منبع داده» (Data Source) می‌گویند. قالب (Template) فرم باید دست کم یک منبع داده داشته باشد. به آن « منبع داده  اولیه» (Primary Data Source) می‌گویند و برای تایید داده‌ها استفاده می‌شود. همچنین می‌توان از بیشمار «منبع داده ثانویه» (Secondary Data Source) جهت ذخیره سازی داده در فرم استفاده نمود. منابع داده ثانویه را می‌توان در داخل فرم ایجاد نمود و به کمک یک پیوند خارجی در یک وب سرویس یا شیرپوینت از محتوای آن استفاده نمود.

در «اینفوپس» از انواع کنترل‌ها (نظیر تکست باکس، رادیوباتن، چک باکس و ...) برای ارائه داده‌ها در منبع داده یا نمایش آن به کاربران اصلی استفاده می‌شود. همچنین از یک نوع کنترل تحت عنوان «جدول تکرار شونده» (Repeating Table) و نیز «کنترل‌های تکرار شونده» درجداول داده و منابع داده ثانویه برای نمایش شایسته تر داده‌ها استفاده می‌شود. از طرف دیگر می‌توان از قالبهای آماده (Template) و کنترل‌های اکتیوایکس نیز در طراحی فرم‌ها سود جست.


می‌توان عملیات خاصی را برای هر کنترل تعیین نمود. به این عملیات «قانون» (Rule) اطلاق می‌شود. این قوانین به سه دسته تقسیم بندی می‌شوند: قوانین قالب بندی، قوانین اعتبار سنجی و قوانین عملیاتی. از جمله قوانین قالب بندی می‌توان به مخفی کردن یا تغییر رنگ یک کنترل اشاره نمود. از نمونه قوانین اعتبار سنجی می‌توان قانون «فقط اعداد 10 رقمی را وارد کنید» را بیان کرد. با استفاده از قوانین عملیاتی می‌توان «اینفوپس» را وادار نمود تا مجموعه‌ای از عملیات را با توجه به وارد شدن داده‌ای خاص (در سایر فیلدها) انجام دهد. قوانین ممکن است از طریق بررسی رفتار کاربر وادار به اجرا نمود (مثلاً کاربر روی یک دکمه کلیک کند). از طرف دیگر می‌توان اجرا شدن یک قانون را منوط به احراز یک شرایط ویژه نمود. مثلاً  «اگر کاربر برای field1 مقداری وارد نکرد، فیلد Total برابر 100 قرار بده».

امکانات

  • قوانین (Rules): یک قانون پس از اجرا شدن فعالیتهای مشخصی را اجرا می‌کند. قانون به واسطه انجام یک عمل توسط کاربر (مانند کلیک کردن روی یک دکمه) و یا احراز یک شرایط خاص (مثلاً تغییر مقدار یک فیلد) اجرا می‌شود. با استفاده از قوانین می‌توان مقادیر فیلدهای منبع داده را تغییر داد، پایگاه داده را تایید نمود یا از آن پرس و جو(Query)  تهیه نمود، پیامی به کاربر نمایش داد، فرم‌هایی را باز و یا بسته نمود و یا اینکه نماهایی دیگری از فرم را به نمایش گذاشت.
  • اعتبار سنجی (Data Validation): به کمک اعتبار سنجی می‌توان صحت مقادیر ورودی به فیلدها توسط کاربر را آزمود. اعتبارسنجی را می‌توان از طریق مقایسه مقدار ورودی توسط کاربر با یک الگوی از پیش تعیین شده، کنترل نوع داده ورودی و یا هر روش دلخواه دیگر انجام داد.
  • قالب بندی شرایطی (Conditional Formatting): می‌توان نمایش یا عدم نمایش دادن یک داده خاص و یا رنگ و قالب آن را بر اساس مقادیر خاصی روی فرم تغییر داد.
  • کنترل‌ها (Controls): «اینفوپس» از کنترل‌های متنوعی بهره می‌برد. می‌توان مقادیر مختلفی روی فرم را به کنترل‌ها پیوند زد. از این دسته از کنترل‌ها می‌توان به لیست باکس، رادیوباتن، تکست باکس، دکمه و چک باکس اشاره نمود. علاوه بر این در «اینفوپس» کنترلی تحت عنوان «مقادیر محاسبه شده»  (Calculated Values) وجود دارد که به کمک آن می‌توان نتایج عبارتهای XPath و بخشهایی که خود حاوی کنترل‌های دیگری هستند را به نمایش گذاشت. فراتر از این، در «اینفوپس» فیلدها و بخشهای تکرار شونده نیز موجود است که به واسطه آنها می‌توان داده‌های بسیاری را ذخیره نمود.
  • عبارتهای XPath و توابع: از عبارتهای XPath و توابع می‌توان را روی داده‌های فیلدها اعمال نمود تا مقادیر جدید محاسبه شوند. مثلاً تابع " concat(string(field1 + field2), "#;", field3) " مجموع دو فیلد field1 و field2 را حساب کرده، در انتهای آن کاراکتر # را چسبانده و سپس مقدار فیلد field3 را به انتهای آن می‌چسباند. توابع XPath برای انجام عملیات روی داده‌ها رشته‌ای، اجرای عملیات ساده ریاضی و بسیاری از موارد دیگر کاربرد دارند. به علاوه در «اینفوپس» می‌توان داده‌ها را فیلتر نمود. به عبارت دیگر مقادیر مشخصی از دادههای مختلف را جهت انجام عملی خاص روی آنها برگزید.
  • ارتباط خارجی (Connections to External Datasources): «اینفوپس» ارتباط با منابع داده خارجی را پشتیبانی می‌کند. شما در فرم‌های «اینفوپس» می‌توانید از پایگاه داده ساخته شده با SQL، « اکسس » و لیست های شیرپوینت در فرم‌های «اینفوپس» استفاده کنید.
  • پشتیبانی از زبانهای برنامه نویسی: از Jscript، Visual Basic و #C و سایر زبانهای برنامه نویسی می‌توانید برای ارتقای توانمندی‌های «اینفوپس» بهره مند شوید. با این روش می‌توانید پنل کاری HTML ، داده‌های تکراری، «اکتیو دایرکتوری» و تقریباً هر کاری که در «اینفوپس» به صورت عادی مقدور نیست را انجام دهید.
  • قوانین کاربر: می‌توان پس از شناسایی کاربر، قالب بندی و رنگها و حالات نمایش را مطابق میل و سلیقه وی تغییر داد.
  • رعایت استاندارد: قابلیتهای قالب بندی و ایجاد واسط کاربر «اینفوپس» بسیار شبیه به محصول «ورد» می‌باشد.

 

کاربرد

از InfoPath به منظور ایجاد فرمهای دریافت اطلاعات و ذخیره نمودن محتویات آنها در یک فایل استفاده می‌شود. این فایل ممکن است روی هارد کامپیوتر و یا روی یک وب سرور (که میزبان «شیرپوینت» است) قرار داشته باشد. همچنین از «اینفوپس» می‌توان برای دسترسی و نمایش داده‌های منابع گوناگون (وب سرویس‌ها، XML، پایگاه‌های داده، فرم‌های مختلف و ...) استفاده نمود. در عین حال با توجه به قوانین، شرایط و عملیات خاص، می‌توان کنترل مناسبی روی رفتار فرم‌ها اعمال نمود. برای باز کردن فرم‌های «اینفوپس» باید «اینفوپس دیزاینر» یا «اینفوپس فیلر» را روی سیستم خود نصب کرده باشید. البته در صورتی که «شیرپوینت» فایل را میزبانی کند، می‌توان با استفاده  از مرورگر فایل را مشاهده نمود. «اینفوپس» بیشتر کاربرد سازمانی دارد تا کاربرد شخصی زیرا «اینفوپس» به عنوان یک ابزار مشارکتی در گردآوری داده‌ها به شکلی ساخت یافته از افراد متعدد عمل می‌نماید. گسترش استفاده از «اینفوپس» در یک سازمان نیازمند ایجاد یک میزبان «شیرپوینت» و یا تهیه چند لایسنس از «اینفوپس فیلر» می‌باشد. فرم‌های «اینفوپس» روی تلفن همراه نیز قابل مشاهده هستند. البته در صورنی که فایل روی میزبان «شیرپوینت» باشد یا از محصولات third-party استفاده شود.

برای اجرای فرمها روی مرورگر ابتدا باید فایل را روی سروری که سرویس‌های مربوط به فرم‌های «اینفوپس» را پشتیبانی می‌کند بارگذاری کرد. برتری این رویکرد در این است که نیازی به نصب «اینفوپس» روی کلاینت نبوده و تنها وجود یک مرورگر کافی است تا کاربر بتواند فایل را در مرورگر ببیند. در این حالت می‌توان فرم را به شکل یک ایمیل برای کلاینت‌ها ارسال نمود یا مستقیماً روی یک لیست تولید شده توسط «شیرپوینت» قرار داد.

یکپارچگی با «شیرپوینت»

یکی از کاربردهای بسیار معمول «اینفوپس»، یکپارچه نمودن آن با فناوری «شیرپوینت»مایکروسافت می‌باشد. فرم‌های «اینفوپس» را می‌توان روی لیست‌ها و کتابخانه‌های «شیرپوینت» قرار داد. از سوی دیگر سرویس‌های «اینفوپس» یک فرم را جهت قرار گرفتن روی سرور میزبان «شیرپوینت» مهیا می‌کنند. با این کار فرم مذکور به صورت یک صفحه HTML به همراه اسکریپت‌های مربوطه روی مرورگر کلاینت باز شده و پاسخ کاربر به صورت یک صفحه ASP.net به سرور باز می‌گردد.

در «شیرپوینت» «کتابخانه فرم» کتابخانه‌ای از قالبهای فرم «اینفوپس» است که به شکل یک سند طراحی شده‌اند. می‌توان فیلدهای «اینفوپس» را در «شیرپوینت» به گونه‌ای ارتقا داد که به صورت «ستونهای» داده در یک نما (View) دیده شوند. مثل سایر اسناد «شیرپوینت»، می‌توان برای هر فرم «اینفوپس» یک روند کار (Workflow) تعریف نمود تا از آن طریق به فیلدهای ارتقا داده شده دسترسی پیدا کنند.

همانطور که اشاره شد شیرپوینت امکانی را فراهم می کند تا اطلاعاتی که درون XML فرم اینفوپس ذخیره شده اند در ستونهای لیست یا کتابخانه شیرپوینت نیز ذخیره شده و نمایش داده شوند.اما این روش مشکلات زیر را دارد .

  • اطلاعات داخل repeating Table و Repaeting Section را نمی توان در ستونهای شیرپوینت ریخت .
  • نام ستونها در اینفوپس و شیرپوینت یکی  است .
  • در صورتی که ستونی را در اینفوپس حذف کنیم نمی توان آن ستون را در کتابخانه اسناد شیرپوینت به سادگی  حذف نمود (ستونها خودکار ایجاد شده و readonly می باشد)

افزونه همگام ساز اینفوپس پرنیان برای رفع این نواقص طراحی شده است. و روش استفاده از آن به صورت خلاصه به شرح ذیل است:

بعد از نصب افزونه همگام ساز Infopath پرنیان بر روی شیرپوینت در بخش تنظیمات کتابخانه اسناد و در بخش تنظیمات نوع محتوای اضافه شده به کتابخانه اسناد امکاناتی که در تصویر ذیل مشاهده می کنید اضافه می شود.

 

 

به بخش "ایجاد مپ کتابخانه اسناد و اینفوپس - جهت ابزار ذخیره سازی " وارد می شویم. در این بخش فقط کافی است آدرس یک مسیر موقت را روی هارد سرور مشخص کنیم. و دکمه اجرای عملیات را بزنیم. افزونه همگام ساز Infopath پرنیان به صورت خودکار فایل مربوط به قالب فرم InfoPath را پیدا کرده و در مسیر موقت دانلود می کند و آنرا باز کرده و XML آن را تفسیر می کند. سپس یک جدول Map بین فیلدهای فایل InfoPath و ستونهای کتابخانه اسناد شیرپوینت ایجاد می نماید و اگر در فایل InfoPath از Repeating Table استفاده شده باشد. معادل هر مورد یک لیست detail با ستونهای مناسب و مرتبط با کتابخانه اصلی ایجاد می نماید و Map بین آنها را نیز می سازد. همچنین یک event handler روی کتابخانه اصلی ایجاد می نماید و با هر بار تغییر در داده فرم اینفوپس، ستونهای مربوطه در کتابخانه اصلی و لیستهای deatil را به روز می نماید.

 

در تصاویر زیر نمونه ای از یک فرم اینفوپس و نتیجه عملکرد فزونه همگام ساز Infopath پرنیان را مشاهده می نمایید.

 

 

 

Loading