همانطور که می دانید عملیات خاص به دو دسته کلی تقسیم می شود: دسته اول عملیات از نوع انجام کار است که در یک مطلب مستقل به آن پرداخته شده و دسته دوم عملیات از نوع اطلاع از وضعیت است که در این مطلب به آن می پردازیم. در ابتدا بهتر است با معنی و مفهوم اطلاع از وضعیت در سیستم مدیریت فرایندها آشنا شویم:
مفهوم اطلاع از وضعیت
قبل از اینکه با مفهوم اطلاع از وضعیت آشنا شویم باید ببینم خود مفهوم وضعیت به چه معنی است.
مفهوم وضعیت
منظور از وضعیت در واقع ویژگی (Property) های یک موجود بنام WorkState است. فهرست ویژگیها به شرح زیر است:
WorkState = {
WorkKey Number/RO کلید کار
DOKey Number/RO کلید منبع دیجیتال کار
LastTaskKey Number/RO کلید آخرین وظیفه انجام شده
CurStatusKey Number/RO کلید وضعیت جاری
SplitterWorkKey Number/RO کلید وضعیت جداکننده
LastUserKey Number/RO کلید آخرین کاربر انجام دهنده وظیفه
StartTime Number/ROزمان شروع کار
EndTime Number/ROزمان خاتمه کار
IsSuspended Boolean/RO وضعیت تعلیق کار
LastLogNote String/RW آخرین یادداشت کار
F1 User Defined فیلدهای تعریف شده در گردش کار
. .
. .
Fn User Defined
ملاحظه می کنید که مقادیر فیلدهای تعریف شده در گردش کار (F1….Fn) ، بخشی از وضعیت کار است که شاید بتوان گفت اصلی ترین و مهمترین بخش وضعیت را شامل می شود.
اطلاع از وضعیت
هر نمایشی از وضعیت یک کار، در واقع به نوعی یک گزارش از کار محسوب می شود لذا این مفهوم ارتباط معنایی زیادی با مفهوم گزارش گیری دارد اما تفاوت اساسی آن با گزارشگیری این است که اطلاع از وضعیت، با یک کار خاص ارتباط دارد و اطلاعات مرتبط با یک کار خاص را استخراج و نمایش می دهد. به عبارت دیگر در ذات و ماهیت گزارشگیری، مفهوم تعدد و مستقل بودن از کارها نهفته است یعنی اساسا وقتی گزارشگیری می کنیم به وضعیت کار خاصی کار نداریم و انتظار داریم که با تعدادی کار بازیابی شده به شکل فهرست روبرو شویم اما در اطلاع از وضعیت، هدف ما این است که نمایشی از اطلاعات مرتبط با یک کار خاص داشته باشیم.حال که مفهوم اطلاع از وضعیت تا حدودی روشن شد، بهتر است با نحوه تعریف عملیات خاص از نوع اطلاع از وضعیت آشنا شویم:
تعریف عملیات خاص از نوع اطلاع از وضعیت
برای تعریف عملیات خاص:
- از منوی گردش کار گزینه تعریف و اصلاح گردش کارها را کلیک کنید و با انتخاب گردش کار کالاها، محاوره تعریف و اصلاح گردش کارها به شکل زیر باز کنید:
- حال مطابق شکل زیر در این محاوره روی آیکون تعریف عملیات خاص کلیک کنید. به این ترتیب محاوره تعریف عملیات خاص به شکل زیر روی صفحه باز می شود:
- در این محاوره روی آیکون کلیک کنید تا یک سطر جدید برای تعریف عملیات خاص ایجاد شود. روی یکی از ستونهای این سطر جدید، دبل کلیک کنید تا محاوره تنظیمات عملیات خاص به شکل زیر روی صفحه باز شود:
همانطور که ملاحظه می کنید، این محاوره شامل سه زبانه می باشد که بطور پیش فرض، زبانه عمومی باز می شود.
- در زبانه عمومی، یک نام و در صورت تمایل یک نام دیگر (نام به زبان انگلیسی) برای این عملیات خاص تعیین کنید. در این مثال نام عملیات خاص، ملاحظه فرم مشخصات کالا تعیین شده است.
- زبانه اطلاع از وضعیت را کلیک کنید تا محاوره تنظیمات این دسته از عملیات خاص، به شکل زیر باز شود:
همانطور که مشاهده می کنید، گزینه دارای مرحله اطلاع از وضعیت کار است بطور پیش فرض غیرفعال است. بنابراین برای تعریف عملیات خاص :
- گزینه دارای مرحله اطلاع از وضعیت کار است را فعال کنید (تیک بزنید)
- در این مرحله باید نوع اطلاع از وضعیت را تعیین کنید.
انواع اطلاع از وضعیت یک فهرست کشویی بازشونده است که گزینه های آن را در شکل زیر مشاهده می کنید:
بنابراین پنج نوع اطلاع از وضعیت وجود دارد که در ادامه مطلب، به تفکیک شرح داده می شود:
انواع اطلاع از وضعیت
الف) ملاحظه فرم عمومی
از این طریق، اطلاعات کار مورد نظر، در یک فرم عمومی به نمایش در می آید. توضیح این که فرم عمومی به دلیل فراگیر بودن ذاتی آن، میتواند به عنوان یک ابزار مناسب برای نمایش وضعیت کار به کاربر استفاده شود. همانند عملیات خاص از نوع انجام کار، در اینجا نیز ممکن است این سوال به ذهن برسد که:
سوال: چرا بجای اینکه درگیر تعریف و تنظیمات عملیات خاص شویم، امکان ملاحظه فرم عمومی در فهرست کارها را به کاربر نمی دهیم تا به راحتی بتواند فرم عمومی را برای تمام کارها ملاحظه کند؟
جواب این است که :
فهرست کارها، محدود به گردش کار نیست و در سطح پایگاه است. بنابراین کاربر با داشتن امکان ملاحظه فرم عمومی در فهرست کارها، می تواند به اطلاعات تمام گردش کارها دسترسی داشته باشد. بنابراین برای دسترسی مدیریت شده به اطلاعات ، باید از عملیات خاص استفاده کنیم.
دوم اینکه اگر چند فرم عمومی داشته باشیم کاربر می تواند تمام فرمهای عمومی را انتخاب و ملاحظه کند. در حالی که در عملیات خاص می توانیم دسترسی کاربر را به یک فرم عمومی مشخص، محدود کنیم. یعنی می توانیم یک فرم عمومی ویزه یک سناریوی خاص، تعریف کنیم و به کاربر مورد نظر اجازه ملاحظه همین فرم را بدهیم.
سوم اینکه از طریق کلاینت وب فقط فرم عمومی پیش فرض قابل ملاحظه است بنابراین برای امکان ملاحظه فرمهای دیگر عمومی، باید عملیات خاص تعریف شود.
نکته مهم: اگر مدیر سیستم فرایندها در یک مرکز، حساسیتی روی مشاهده فرم عمومی نداشته باشد، نیازی به عملیات خاص نیست و کاربران می توانند هنگام انجام وظایف یا هنگام ملاحظه فهرست کارها، فرم عمومی را مشاهده کنند.
تنظیمات اطلاع از وضعیت از نوع ملاحظه فرم عمومی
- برای تنظیمات این نوع از عملیات خاص، باید نوع اطلاع از وضعیت را روی گزینه ملاحظه فرم عمومی قرار دهید (شکل زیر):
- در این مرحله باید فرم عمومی مورد نظر خود را از لیست فرمهای عمومی انتخاب کنید (در این مثال فرم عمومی- مشخصات کالا انتخاب شده است)
- چون این عملیات خاص قرار است صرفا از نوع اطلاع از وضعیت باشد، لذا باید روی زبانه انجام کار کلیک کنید و آن را غیرفعال کنید (همانند شکل زیر):
توضیح: برای پرهیز از تکرار، برای انواع بعدی اطلاع از وضعیت که در ادامه شرح داده شده است، فرض می شود مراحل تعیین نام در برگه عمومی و غیرفعال کردن برگه انجام کار انجام می شود و لذا اشاره ای به این دو مرحله نخواهد شد و فقط تنظیمات برگه اطلاع از وضعیت شرح داده خواهد شد.
ب) ملاحظه پیش نمایش برگه وضعیت
در یک گردش کار، در وضعیتهای مختلف، امکان چاپ برگه وضعیت وجود دارد. حال اگر کاربر امکان چاپ برگه وضعیت کار را داشته باشد، آنگاه می تواند در تمام گردش کارها، تمام برگه وضعیت های تعریف شده را ملاحظه و چاپ کند. حال اگر بخواهیم این کاربر خاص، به شکل مدیریت شده به برگه های وضعیت دسترسی داشته باشد یعنی :
- در یک گردش کار بخصوص
- ملاحظه پیش نمایش یک برگه وضعیت بخصوص
را داشته باشد، آنگاه باید از عملیات خاص استفاده کنیم.
توضیح: محیط پیش نمایش ابزارهای چاپ را نیز در بر دارد . بنابراین کاربر با ملاحظه پیش نمایش، امکان چاپ را نیز خواهد داشت.
تنظیمات اطلاع از وضعیت از نوع ملاحظه پیش نمایش برگه وضعیت
برای تعریف این نوع از عملیات خاص، باید فیلد نوع اطلاع از وضعیت را روی گزینه ملاحظه پیش نمایش برگه وضعیت قرار دهیم (شکل زیر):
- در این مرحله همانند شکل بالا، باید از لیست برگه های وضعیت، برگه وضعیت مورد نظر خود را انتخاب کنید.
ج) ملاحظه فهرست کارها
در بعضی از مراحل یک گردش کار، ممکن است بخواهیم فهرست کارهای مرتبط با یک کار خاص را ملاحظه کنیم. یعنی در واقع اطلاعات فیلدهای کار، مبنای تعیین و نمایش فهرست کارها می شود.
تنظیمات اطلاع از وضعیت از نوع ملاحظه فهرست کارها
برای تعریف این نوع از عملیات خاص، باید برای فیلد نوع اطلاع از وضعیت، گزینه ملاحظه فهرست کارها را انتخاب کنید:
- در این مرحله باید تابع تعیین کارها را تعیین کنید. در این مثال، تابع WorkActionRepExpertWorks انتخاب شده است.
تابع تعیین کارها
تابعی است که خروجی آن، آرایه ای از کلید کارهایی است که به نحوی مرتبط با کار مورد نظر هستند. در این تابع باید با استفاده از مقادیر فیلدهای کار مورد نظر، کارهایی را جستجو و بازیابی کنیم که حاوی مقادیر یا (الگویی از ترکیب مقادیر ) کار مورد نظر باشد.
توضیح: توابع تعیین فهرست کارها، باید از قبل نوشته شده باشد تا شما بتوانید تابع مورد نظر خود را از فهرست کشویی توابع انتخاب کنید. در غیر این صورت، می توانید در ناحیه خالی این فیلد دبل کلیک کنید تا بطور همزمان یک تابع تعیین کارها را ایجاد کنید.
انواع کاربردهای عملیات خاص از نوع فهرست کارها
همانطور که قبلا گفته شد، این عملیات خاص، فهرست کارهای مرتبط با یک کار خاص را استخراج و نمایش می دهد. از این جهت سه کاربرد اصلی برای این نوع از عملیات وجود دارد:
1- ملاحظه کارهای مرتبط با کار تحت مکان نما در گردش کار جاری
2- ملاحظه زیرکارهای مرتبط با کار تحت مکان نما
3- ملاحظه کارهای مرتبط با کار تحت مکان نما در یک گردش کار دیگر
در ادامه، هریک از کاربردها با ذکر مثال و به تفصیل شرح داده می شود:
1) ملاحظه کارهای مرتبط با کار تحت مکان نما در گردش کار جاری
با استفاده از این امکان، می توانیم کارهای مرتبط با یکی از فیلدهای کار تحت مکان نما را ملاحظه کنیم. به یک مثال در این زمینه توجه کنید:
مثال 1 : نمایش فهرست کالاها براساس تامین کننده یک کار خاص
در شکل زیر فهرست کارهای گردش کار تامین کالاها را ملاحظه می کنید :
همانطور که در شکل دیده می شود، نشانگر روی کار «خرید بخارشور» قرار دارد و نام تامین کننده این کالا، شرکت آذرپاد است. این شرکت علاوه بر بخارشور، کالاهای دیگری را نیز برای سازمان تامین می کند. حال می خواهیم با یک عملیات خاص از نوع فهرست کار، لیست کارهای خرید کالاهایی را مشاهده کنیم که تامین کننده آنها، شرکت آذرپاد است. برای این کار باید یک تابع تعیین فهرست کار به شرح زیر بنویسیم:
تابع تعیین کار براساس تامین کننده (WorkActionRepSupplier)
این تابع به شکل زیر است:
برای درک بیشتر این تابع، سطرهای تابع را خط به خط بررسی می کنیم:
همانطور که قبلا هم اشاره شد، پیشوند توابع تعیین فهرست کار، عبارت WorkActionRep است، لذا این تابع هم با این پیشوند به اضافه عبارت Supplier تعریف شده است.
در این مرحله، نام تامین کننده در متغیر supName قرار می گیرد تا در مراحل بعد و در جستجوی کارها مورد استفاده قرار بگیرد. در واقع این متغیر عنصر کلیدی این تابع است و قرار است کارهایی بازیابی شود که نام تامین کننده آنها برابر با مقدار این متغیر باشد.
در این مرحله، پارامترهای جستجوی کار در قالب یک xml تعیین می شود. در سطر اول این متغیر، تعیین می شود که جستجو در گردش کار با کد 1 (WorkflowCode=”1”) و در تمام کارهای فعال و غیرفعال (Status=”15”) انجام شود. و در سطر دوم تعیین می شود که جستجو براساس فیلد نام تامین کننده (supplier) انجام شود و محتوای این فیلد برابر با مقدار متغیر supName باشد.
در این مرحله، جستجو انجام می شود و نتیجه آن که کلیدکارهای بازیابی شده است به شکل یک آرایه در متغیر list ذخیره می شود.
در انتها، از آنجایی که متغیر list به شکل یک Object است، لذا لازم است از طریق متد JSON.stringify به یک رشته حرفی تبدیل شود و نهایتا فهرست کارها به شکل زیر روی صفحه به نمایش در می آید:
در این فهرست کارها، تنها کالاهایی که تامین کننده آنها شرکت آذرپاد است نمایش داده شده است انگار که فهرست کالای اولیه به نوعی روی نام تامین کننده فیلتر شده است.
2) فهرست زیرکارهای مرتبط با کار تحت مکان نما
از این طریق می توانیم فهرست کارهای تولید شده در زیرگردش کار را ملاحظه کنیم. برای نمونه به مثال زیر توجه کنید:
مثال 2: فهرست زیر کارهای یک کار از گردش کار «تامین نیروی انسانی»
یک فهرست نمونه از گردش کار تامین نیروی انسانی را در شکل زیر ملاحظه می کنید:
این گردش کار یک زیرگردش بنام «انجام مصاحبه» دارد که فرایند مصاحبه با درخواست کنندگان استخدام را مدیریت می کند. حال فرض کنید می خواهیم مصاحبه های انجام شده برای کار «تامین نیرو- کارشناس IT» را ملاحظه کنیم. برای این کار باید تابعی مشابه با اسکریپت زیر را در گردش کار ایجاد کنیم:
تابع تعیین زیرکارهای یک کار خاص
در این تابع، با استفاده از متد GetSplittedWorkList فهرست زیرکارهای تولید شده در وضعیت با کد 23 (شروع مصاحبه از متقاضیان استخدام) را استخراج و به شکل زیر نمایش می دهیم:
3) فهرست کارهای مرتبط با کار تحت مکان نما در یک گردش کار دیگر
بعضی از موجودیتها مثل کالا، مشتری و ... ممکن است در چند گردش کار استفاده شده باشد، برای مثال فیلد «کالا» می تواند در گردش کارهای «تامین کالاها» به عنوان کالای مورد خرید و در گردش کار «تولید محصول» به عنوان ماده اولیه استفاده شود. یا مثلا «مشتری» می تواند در گردش کار «پشتیبانی» به عنوان مخاطب خدمات پشتیبانی و در گردش کار «تامین کالاها» به عنوان تامین کننده کالا استفاده شده باشد.حال از این طریق می توانیم مثلا در فهرست کارهای گردش کار تامین کالاها، خدمات پشتیبانی ارائه شده برای یک تامین کننده خاص را ملاحظه کنیم. برای درک بهتر این مورد به مثال زیر توجه کنید:
مثال 3: ملاحظه فهرست خدمات پشتیبانی ارائه شده به یک تامین کننده
فرض کنید فهرست کارهای یک گردش کار تامین کالاها به شکل زیر است:
حال فرض کنید می خواهیم روی کار تحت مکان نما (پارچه نانو)، عملیات خاصی را اجرا کنیم و از آن طریق، فهرست خدمات پشتیبانی ارائه شده به تامین کننده این کالا (شرکت آذرپاد) را مشاهده کنیم. در این صورت باید از تابعی به شکل زیر استفاده کنیم:
تابع تعیین کارها برای فهرست خدمات پشتیبانی به تامین کننده
در این تابع نام تامین کننده در گردش کار تامین کالاها (WorkState1.supplier) به عنوان Value برای فیلد نام مشتری در گردش کار پشتیبانی (Customer_Name) تعیین شده است و سپس در گردش کار پشتیبانی جستجو می شود. در نهایت فهرست خدمات پشتیبانی ارائه شده به این تامین کننده به شکل زیر به نمایش در می آید:
نمایش فهرست کارهای چند گردش کار بصورت همزمان
یکی دیگر از امکانات عملیات خاص از نوع فهرست کارها امکان نمایش همزمان کارهای چند گردش کار در یک فهرست است. برای درک بهتر این موضوع به مثال زیر توجه کنید:
مثال 4: ملاحظه فهرست کارهای مرتبط با یک تامین کننده در دو گردش کار به شکل همزمان
در این مثال، می خواهیم فهرست کارهای مرتبط با تامین کننده در گردش کار تامین کالاها (مثال 1) را همزمان با فهرست کارهای مرتبط با این تامین کننده در گردش کار پشتیبانی (مثال 3)، ملاحظه کنیم. برای این کار تابع تعیین کار را به شکل زیر می نویسیم:
در این تابع، ابتدا فهرست کارهای مثال 1 در متغیر list1 و سپس فهرست کارهای مثال 3 در متغیر list2 قرار می گیرد و سپس این دو آرایه توسط متد concat با هم ترکیب (Merge) و در آرایه list قرار می گیرد. در نهایت فهرست ترکیبی کارها به شکل زیر به نمایش در می آید:
ملاحظه می کنید که ابتدا فهرست کالاها و سپس فهرست خدمات ارائه شده نمایش داده شده است.
نکته خیلی مهم: در حالتی که فقط فهرست کارهای یک گردش کار نمایش داده می شود، خروجی عملیات خاص، در فرم فهرست کارها با فیلدهای قابل تعریف نمایش داده می شود اما در حالتی که مانند مثال قبل قرار است کارهای چند گردش کار به شکل همزمان نمایش داده شود سیستم بطور خودکار از فهرست کارهای عمومی استفاده می کند.
تفاوت عملیات خاص از نوع فهرست کارها با گزارشهای مبتنی بر برنامه
در گزارشهای مبتنی بر برنامه، نیز می توانیم فهرست کارها را براساس یک مقدار (یا یک پارامتر) خاص تهیه کنیم اما تفاوت عمده آن با عملیات خاص در این است که در عملیات خاص، گزارشگیری براساس مقادیر فیلدهای (WorkState) یک کار خاص انجام می شود اما در گزارش مبتنی بر برنامه، وضعیت کار خاصی مد نظر نیست و مقدار پارامتر از بیرون و توسط کاربر به آن پاس می شود. بدیهی است که این مقدار یا پارامتر، مستقل از کارهاست و براساس نیاز کاربر در لحظه تعیین می شود.
د) ملاحظه پیش نمایش گزارش تفصیلی کار به تفکیک آرایه ها
اگر در یک گردش کار از فیلدهای آرایه استفاده شده باشد، آنگاه می توانیم گزارشهای چاپی شامل اطلاعات این آرایه ها را طراحی کنیم و پیش نمایش این گزارشها را از طریق عملیات خاص مشاهده کنیم. برای مثال فرض کنید در گردش کار تامین کالاها، می خواهیم از طریق عملیات خاص، فهرست استعلام قیمت برای یک کالای خاص را چاپ کنیم. پیش نیاز این کار این است که حداقل یک گزارش چاپی از نوع گزارش تفصیلی کارها به تفکیک آرایه ها وجود داشته باشد و برای این گزارش حداقل یک پیش تنظیم ایجاد شده باشد.
ملاحظه لیست فرمهای چاپی گزارش تفصیلی کارها به تفکیک آرایه ها
برای اطمینان از این قضیه، از مسیر زیر لیست فرمهای چاپی مورد نظر را مشاهده کنید:
منوی سیستم --> تنظیمات سیستم (برای تمام کاربران) -> پیش فرض فرمهای چاپی -> گردش کار -> گزارش تفصیلی کارها به تفکیک آرایه ها -> دسته بندی مورد نظر -> گردش کار مورد نظر -> آرایه مورد نظر
برای نمونه در شکل زیر، این فرم چاپی مرتبط با مثال را مشاهده می کنید:
در صورتی که فرمی وجود نداشته باشد باید ابتدا یک فرم چاپی تعریف کنید.
تنظیمات عملیات خاص از نوع پیش نمایش گزارش تفصیلی کار به تفکیک آرایه ها
حال پس از اطمینان از وجود فرم چاپی، باید مطابق شکل زیر، در فیلد نوع اطلاع از وضعیت ،گزینه پیش نمایش گزارش تفصیلی کار به تفکیک آرایه ها را انتخاب کنید:
همانطور که در این محاوره، مشاهده می کنید، برای این نوع از عملیات خاص باید فرم چاپی مرتبط و پیش تنظیم مورد نظر خود را نیز تعیین کنید. در واقع در اینجا مشخص می شود که این عملیات خاص، پیش نمایش کدام فرم چاپی شامل آرایه مورد نظر را تهیه و روی صفحه نمایش می دهد. در این مثال، نتیجه این عملیات خاص، به شکل زیر خواهد بود:
هـ) ملاحظه وضعیت کار توسط فایل Word
هر گزارش چاپی شامل تعدادی محتوا و طرح بندی (Layout) این محتواهاست. طرح بندی شامل فونت، سایز و رنگ قلم ، رنگ یا تصویر پس زمینه و نحوه چیدمان و ترتیب محتواها یا بطور کلی ویژگیهای گرافیکی گزارش است. به این ترتیب سطح و کیفیت طراحی فرم چاپی بستگی دارد به این که اهمیت و اولویت محتوا یا طرح بندی بیشتر باشد، در صورتی که اهمیت محتوا بیشتر باشد آنگاه امکانات طراحی فرم چاپی سیستم مدیریت فرایندها برای چیدمان و نمایش گرافیکی گزارش کافی است. اما مواردی وجود دارد که طرح بندی گرافیکی اهمیت پیدا می کند، مثالهای زیر از این نوع گزارشها هستند:
- گواهینامه ها
- گزارشهای کارشناسی
- دعوتنامه ها
- رزومه ها
در مواردی از این دست که نیاز به امکانات تخصصی در زمینه استایلها و طراحی گرافیکی با تنوع زیاد دارند، بهتر است از یک ویرایشگر استاندارد و قوی استفاده کنیم که برای این کار از معمول ترین و یکی از قوی ترین ویرایشگرهای موجود یعنی Microsoft Word استفاده می کنیم.
مثال: گواهی شرکت در همایش
فرض کنید در یک گردش کار بنام "ثبت نام همایشها"، اطلاعات شرکت کنندگان همایش ثبت شده است. حال می خواهیم پس از پایان همایش، گواهی شرکت در همایش را با یک طراحی گرافیکی دلخواه برای میهمانان همایش ارسال کنیم.
مراحل نمایش فرم چاپی گواهی شرکت در همایش در فایل Word
برای این کار ابتدا باید گزارش مورد نظر خود را به شکل یک فایل ساختاریافته در Word ایجاد کنیم و سپس باید این فایل را به یک عملیات خاص معرفی نماییم.
ایجاد یک فایل Word ساختاریافته
در ویرایشگر Word این امکان وجود دارد که تمام یا بخشهایی از محتوای یک فایل، به صورت محتواهای کنترل شده (Content Control) تعریف شود. همانطور که از نام این مفهوم پیداست، در بخشهایی که بصورت کنترل محتوایی تعریف می شود، محتوا را می توانیم به شکل دلخواه خود کنترل کنیم. مثلا این که اطلاعات با فونت و رنگ خاصی وارد شود یا اینکه اطلاعات موجود در این ناحیه غیرقابل ویرایش باشد و ... این فایلها را اصطلاحا ساختاریافته (Structured) می نامیم. برای نمونه به فایل زیر توجه کنید:
همانطور که ملاحظه می کنید، این یک گواهینامه شرکت در همایش است که قرار است برای مشتریان فرستاده شود. برای تضمین اینکه دعوتنامه برای تمام مشتریان به همین شکل و با همین محتوا ارسال شود، این به شکل ساختاریافته طراحی شده است. حال برای دیدن محتواهای کنترل شده، باید مطابق شکل زیر، از منوی Developer گزینه Design Mode را کلیک کنید .
توضیح: دقت کنید که منوی Developer در حالت پیش فرض وجود ندارد. برای آشنایی با نحوه افزودن آن به منوی اصلی، به پیوست این مستند مراجعه کنید :
به این ترتیب، فایل فوق را به شکل زیر مشاهده خواهید کرد:
ملاحظه می کنید که در این مثال، "نام شرکت کننده"، "عنوان همایش" و "تاریخ همایش" به شکل کنترل شده درج شده است. در ادامه با روش ایجاد یک محتوای کنترل شده در Word آشنا می شویم
روش ایجاد یک کنترل محتوا در Word
برای این کار باید ابتدا نشانگر را به محل مورد نظر در فایل منتقل کنید و سپس در منوی Developer و از ناحیه Controls، نوع محتوا را انتخاب کنید:
ناحیه ای که با خطوط قرمز مشخص شده است، انواع کنترل محتوا را نشان می دهد. از آنجایی که قرار است محتوای فیلدهای گردش کار به این محتواها منتقل شود لذا با توجه به انواع فیلدهای موجود در گردش کارها، مهمترین و پرکاربرد ترین محتواها در محیط سیستم مدیریت فرایندها، شامل موارد زیر است:
- Rich Text (متن غنی شده): هر گاه بخواهیم محتوای این ناحیه علاوه بر متن گرافیکی شامل عناصری مثل جدول، تصویر و ... باشد از این کنترل استفاده می کنیم. این کنترل برای تمام فیلدهای گردش کار از نوع متن، عدد و متن غنی شده مناسب می باشد.
- Plain Text (متن ساده): اگر محتوای مورد نظر فقط از متن ساده و بدون ویژگیهای خاص گرافیکی باشد آنگاه از این کنترل استفاده می کنیم. این کنترل نیز برای تمام فیلدهای گردش کار از نوع متنی و عددی مناسب است.
- Picture (تصویر): برای نمایش یک تصویر با فرمت و اندازه مورد نظر به کار می رود. برای نمایش فیلدهای گردش کار از نوع تصویر، می توانیم از این کنترل استفاده کنیم.
- Date (تاریخ): برای نمایش داده های با فرمت تاریخ استفاده می شود. فیلدهای گردش کار از نوع تاریخ را می توانیم با استفاده از این کنترل نمایش دهیم.
البته انواع دیگری از کنترل محتوا نیز در Word وجود دارد که برای کار ما موضوعیت و کاربرد ندارند. برای اطلاعات بیشتر در این زمینه به مقاله زیر مراجعه کنید:
Content controls in Word
حال باید بتوانیم به نحوی داده های موجود در گردش کار را به این گزارش منتقل یا مرتبط نماییم.
روش انتقال داده ها به فایل Word
یکی از ویژگیهای محتوای کنترل شده، تعیین tag برای این محتواهاست. به این ترتیب هر محتوای کنترل شده، دارای یک هویت و شناسه مستقل می شود که از این طریق امکان انتقال داده ها از محیطهای دیگر به این محتواها از طریق کدنویسی به وجود می آید. روشی که سیستم مدیریت فرایندها برای این کار استفاده می کند، منطبق کردن یکی از مشخصات فیلدهای گردش کار با شناسه tag محتوای کنترل شده است. برای این کار کافی است همانند شکل زیر نشانگر را روی محتوای مورد (در این مثال، عنوان همایش) منتقل کنید و سپس از منوی Developer روی گزینه Properties کلیک کنید:
به این ترتیب، محاوره مشخصات این محتوا (عنوان همایش) به شکل زیر روی صفحه باز می شود:
عبارتی که در این محاوره برای Tag وارد می شود باید با یکی از مشخصات فیلد مورد نظر در گردش کار، مشابه باشد. حال اگر نگاهی به مشخصات فیلد “عنوان همایش” در گردش کار بیندازیم، این تشابه آشکار خواهد شد:
ملاحظه می کنید که عبارت نام در برنامه این فیلد (semTitle)، دقیقا مشابه با Tag محتوای کنترل شده در فایل Word است. مشابه همین کار را برای فیلدهای "تاریخ همایش" و "نام شرکت کننده" نیز انجام می دهیم. حال نوبت آن است که یک عملیات خاص برای ملاحظه وضعیت کار در فایل Word تعریف کنیم.
تعریف یک عملیات خاص از نوع ملاحظه وضعیت کار در فایل Word
برای این کار باید همانند شکل زیر، در محاوره تعریف عملیات خاص، فیلد نوع اطلاع از وضعیت را روی گزینه "ملاحظه وضعیت کار توسط فایل Word" قرار دهید:
ضمنا همانطور که در شکل مشخص شده است، برای این نوع از عملیات خاص باید روش تطبیق فیلدهای گردش کار با محتواهای کنترل شده Word و فایل Word شامل این محتواها را نیز تعیین کنید.
روش تطبیق فیلدهای Word
در این ناحیه مشخص می کنید که Tag محتواهای کنترل شده در فایل Word مشابه با کدام مشخصه از فیلدهای گردش کار است. این منوی بازشونده دارای سه گزینه است که در شکل زیر مشاهده می کنید:
بسته به عبارت وارد شده در Tag ها، از سه طریق نام فارسی و لاتین فیلد و نام در برنامه فیلد می توانید این تطبیق را انجام دهید. در این مثال، گزینه "نام در برنامه فیلد" انتخاب شده است.
انتخاب فایل Word
در اینجا فایل Word ساختار یافته ای را که شامل طراحی و محتوای مورد نظر ماست انتخاب می کنیم. محاوره این ناحیه به شکل زیر است:
در این محاوره باید با کلیک روی گزینه “خواندن از فایل”، فایل Word مورد نظر خود را تعیین کنید. در این مثال یک فایل Word تعیین شده است که اندازه این فایل نیز نمایش داده شده است.
نکته مهم: توجه داشته باشید که یک کپی از فایل Word تعیین شده در این محاوره، از طریق فراخوانی فایل، به پایگاه منتقل می شود و از لحظه انتقال، دیگر ارتباطی با فایل Word اولیه ندارد. به عبارت دیگر، سیستم، فرم چاپی را از فایل Word موجود در پایگاه تولید خواهد کرد و لذا هرگونه ویرایش در فایل Word اولیه هیچ تاثیری در فرم چاپی گزارش نخواهد داشت.
در اینجا ممکن است این سوال پیش بیاید که اگر چنین است پس روش ویرایش فایل Word چیست؟ در ادامه مطلب به جواب این سوال می پردازیم.
ویرایش فایل Word
فایل Word موجود در پایگاه را بطور مستقیم نمی توانیم ویرایش کنیم. برای این کار باید مراحل زیر انجام شود:
- ذخیره در فایل: فایل Word موجود در پایگاه را در یک فایل ذخیره می کنیم.
- ویرایش فایل: فایل Word ذخیره شده را ویرایش می کنیم.
- پاک کردن : فایل Word موجود در پایگاه را پاک می کنیم.
- خواندن از فایل : فایل Word ویرایش شده را انتخاب می کنیم.
نکته مهم: ممکن است تغییرات مورد نظر آنقدر زیاد باشد که اساسا ویرایش فایل Word موجود مناسب نباشد، در این صورت نیازی به مرحله 1 (ذخیره در فایل) نیست و می توانیم یک فایل Word دیگر را مطابق سلیقه و نیاز خود ایجاد کنیم و سپس مراحل 3 (پاک کردن فایل موجود) و 4 (خواندن از فایل) را انجام دهیم و فایل Word جدید را انتخاب کنیم.
شکل نهایی فرم چاپی Word
با انجام عملیات خاص در این مثال، یک فایل Word با نام موقت و به شکل زیر تولید می شود:
ملاحظه می کنید که اطلاعات فیلدهای نام شرکت کننده، عنوان همایش و تاریخ همایش از گردش کار به این فایل منتقل شده است. حال می توانیم این فایل را با نامی دلخواه ذخیره و در صورت نیاز چاپ کنیم.
پیوست
نحوه افزودن منوی Developer به منوی اصلی Word
در نصب عادی Word و در قسمت Ribbon اصلی، منوی Developer مشاهده نمی شود. برای افزودن این قابلیت:
- منوی File را باز کنید.
- گزینه Options را کلیک کنید.
- در محاوره باز شده، روی گزینه Custom Ribbon کلیک کنید و در ناحیه سمت راست، گزینه Developer را فعال کنید: