یکی از امکانات موجود در سیستم مدیریت فرایندهای نوسا، امکان تهیه گزارشهای چاپی است. از طرفی این گزارشها از طریق وب قابل دستیابی نیست. به این منظور و با هدف دستیابی کاربران وب به گزارشهای چاپی، در سیستم مدیریت فرایندهای نوسا، امکان ذخیره گزارشهای چاپی به شکل منبع دیجیتال در آرشیو منابع دیجیتال پیاده سازی شده است. به این ترتیب فایلهای PDF گزارشها، با استفاده از امکانات سیستم آرشیو، بصورت مدیریت شده، و به شکل نظام مند و دسته بندی شده در دسترس کاربران (ذینفعان) محلی و اینترنتی گردش فرایندها قرار می گیرد.. حال این سوال پیش می آید که از میان انواع گزارشهای چاپی، کدام گزارشها امکان تبدیل به منبع دیجیتال و ذخیره در آرشیو را دارند.
انواع گزارشهای قابل تبدیل به منبع دیجیتال
از میان انواع گزارشهای چاپی موجود در سیستم مدیریت فرایندها، شش نوع گزارش زیر، امکان تبدیل شدن به منبع دیجیتال را دارند:
- برگه وضعیت کار
- برگه وضعیت کار به همراه فیلدهای قابل تعریف
- فهرست کارها
- فهرست کارها به همراه فیلدهای قابل تعریف
- گزارش تفصیلی کارها به تفکیک آرایه ها
- گزارش رخدادهای گردش کار
در ادامه، ساختار و الزامات لازم برای تهیه منبع دیجیتال از گزارشهای فوق شرح داده شده است.
ساختار و الزامات ایجاد منبع دیجیتال از گزارشهای چاپی
مراحل ایجاد منبع دیجیتال از یک گزارش به این صورت است که سیستم بصورت دستی و یا از طریق یک تابع اجرایی و با استفاده از WorkRepGenUtils ، ایجاد منبع دیجیتال را درخواست می کند. سپس این درخواست در انتهای صف درخواستها قرار می گیرد و پس از بررسی، در صورت نداشتن اشکال و عدم بروز خطا، یک منبع دیجیتال با روشی معین که از قبل تعریف شده، ایجاد می شود.
نکته مهم: همانطور که توضیح داده شد، فرایند ایجاد منبع دیجیتال از گزارش چاپی به شکل آسنکرون (Asynchronous) یا غیرهمزمان انجام می شود. یعنی درخواست ایجاد منبع دیجیتال بلافاصله به ایجاد منبع دیجیتال منجر نمی شود و مرحله ایجاد منبع با یک تاخیر تعیین شده، صورت می گیرد.
بنابراین برای امکان ایجاد منبع دیجیتال به پیش نیازها و مقدمات زیر نیاز است:
1-فعال بودن ابزار WorkRepGenUtils در گردش کار و در Admin
راه اندازی این ابزار در گردش کار
همانطور که گفته شد، امور مربوط به ایجاد منبع دیجیتال از گزارش چاپی از طریق متدهای ابزار WorkRepGenUtils انجام می شود. برای این کار، همانند شکل زیر، در محاوره اصلاح اطلاعات گردش کار، برگه برنامه را باز کنید و در ناحیه ابزارهای قابل استفاده در برنامه، گزینه WorkRepGenUtils را تیک بزنید.
راه اندازی این ابزار در Admin
برای بررسی یا راه اندازی این امکان در Admin ، و در محاوره اطلاعات سیستم، برگه گردش کار و از آنجا برگه برنامه را باز کنید و همانند شکل زیر گزینه WorkRepGenUtils را تیک بزنید.
2-وجود حداقل یک فرم چاپی برای گزارش مورد نظر
در سیستم مدیریت فرایندها، در هر گردش کار بطور پیش فرض،برای سه نوع گزارشهای عمومی فهرست کارها، برگه وضعیت کار و گزارش رخدادهای گردش کار، یک فرم چاپی به شکل پیش فرض تعریف شده و وجود دارد اما برای سه نوع گزارش دیگر فهرست کارها به همراه فیلدهای قابل تعریف، برگه وضعیت کار به همراه فیلدهای قابل تعریف و گزارش تفصیلی به تفکیک آرایه ها که به فیلدهای قابل تعریف مرتبط هستند، باید حداقل یک گزارش چاپی تعریف کنید.
توضیح: دلیل اینکه این گزارشها به شکل پیش فرض وجود ندارند این است که در ابتدای تعریف یک گردش کار، هنوز هیچ فیلدی تعریف نشده است و لذا امکان تعریف گزارشهای چاپی پیش فرض مرتبط با فیلدهای قابل تعریف وجود ندارد.
3-وجود حداقل یک روش ایجاد منبع دیجیتال برای فرم چاپی مورد نظر
به دلیل انتخابهای متنوع برای فرمهای چاپی، محل ذخیره منبع دیجیتال، و ... ،برای هر گزارش چاپی که می خواهید منبع دیجیتال ایجاد کنید، باید بطور اختصاصی یک روش ایجاد منبع دیجیتال تعریف کنید. برای این کار، همانند شکل زیر از منوی گردش کار--> ایجاد منبع دیجیتال از گزارشهای چاپی روی گزینه روش ها کلیک کنید:
به این ترتیب، محاوره ایجاد روشهای ایجاد منبع دیجیتال به شکل زیر باز می شود:
حال برای تعریف یک روش جدید، آیکون را کلیک کنید تا یک سطر جدید باز شود. همانطور که در تصویر بالا مشخص است، برای هر روش، موارد زیر باید تعیین شود:
نام گزارش
همانطور که قبلا گفته شد، شش نوع از گزارشهای چاپی قابلیت ایجاد منبع دیجیتال دارند. در این ناحیه، همانند شکل زیر، فهرست گزارشهای شش گانه را باز کنید و نام (نوع) گزارش مورد نظر خود را انتخاب کنید:
برای مثال، فهرست کارها به همراه فیلدهای قابل تعریف را انتخاب می کنیم:
نام روش
در این ناحیه یک نام دلخواه برای این روش را وارد می کنیم. در این مثال، عبارت مشخصات کالاها با قیمت را وارد می کنیم:
نام دیگر روش (اختیاری)
در این ستون، یک نام لاتین برای این روش را می توانید وارد کنید که اختیاری است.
نام پیش تنظیم
همانطور که می دانید، پیش تنظیم ها، شرایطی هستند که به علت پرکاربرد بودن ذخیره می شوند و می توان از این تنظیمات بطور مکرر استفاده کرد. از طرف دیگر در سیستم مدیریت فرایندها، هر کاربر، می تواند پیش تنظیمهای اختصاصی خود را تعریف و ذخیره کند. بنابراین برای انتخاب نام پیش تنظیم، ابتدا باید کاربر پیش تنظیم را تعیین کنید.
تنظیم کاربر پیش تنظیم
برای جلوگیری از تشتت و بی نظمی و جلوگیری از تغییرات ناخواسته در تعریف روشهای ایجاد منبع دیجیتال از گزارشها ، بهتر است کاربر پیش تنظیم، همان کاربر سرویس ارسال اعلامیه (Notifier) باشد. این کاربر باید پیش تنظیمهای لازم را تعریف کند و از آنها در تعریف روشهای ایجاد منبع دیجیتال از گزارشها استفاده کند. به عبارت بهتر، وظیفه تعریف پیش تنظیمها تنها به عهده این کاربر است و از آن پس تمام کاربران، امکان ایجاد منبع دیجیتال بر مبنای این پیش تنظیمها را خواهند داشت.
نکته: برای گزارشهای فهرست گونه که شامل رکوردهای متعدد هستند، استفاده از پیش تنظیم منطقی و شاید بتوان گفت ضروری است. یعنی برای گزارشهای از نوع فهرست کارها، فهرست کارها به همراه فیلدهای قابل تعریف، گزارش تفصیلی کارها به تفکیک آرایه ها و گزارش رخدادها بهتر است برای فیلتر کردن و جزئی کردن گزارشها از پیش تنظیم استفاده شود در غیر این صورت فهرستی از تمام کارها (رخدادها) تولید می شود که عملا بی استفاده خواهد بود. اما برای بقیه گزارشها یعنی برگه وضعیت کار و برگه وضعیت کار به همراه فیلدهای قابل تعریف، از آنجایی که به یک کار خاص مرتبط هستند، استفاده از پیش تنظیم معنی ندارد.
برای تنظیم کاربر پیش تنظیم، مطابق شکل زیر از منوی گردش کار --> ایجاد منبع دیجیتال از گزارشهای چاپی گزینه تنظیمات را کلیک کنید:
به این ترتیب محاوره تنظیمات ایجاد منبع دیجیتال از گزارشهای چاپی به شکل زیر روی صفحه باز می شود:
همانطور که مشاهده می کنید یکی از مواردی که در این محاوره تعیین می شود، کاربر پیش تنظیم است. حال براساس کاربری که تعیین شده، فهرست پیش تنظیمهای مربوط به همان کاربر را ملاحظه خواهید کرد که در این مثال، پیش تنظیم های کاربر نرم افزار را به شکل زیر مشاهده می کنید:
ملاحظه می کنید که دو پیش تنظیم توسط این کاربر در گردش کار کالاها تعریف شده است که از این میان، پیش تنظیم کالاهای خرید عمده را انتخاب می کنیم:
نام کاربر پیش تنظیم
در این ستون، نام کاربری که در بخش قبلی، برای پیش تنظیم انتخاب شده است، نمایش داده می شود:
نام فرم چاپی
در این ناحیه، فهرست فرمهای چاپی را باز کنید و فرم مورد نظر خود را انتخاب کنید. توجه داشته باشید که در این قسمت، سیستم بطور اتوماتیک فرمهایی را لیست می کند که مرتبط با نوع گزارش انتخاب شده است. برای مثال در این مثال، فرمهای چاپی تعریف شده برای فهرست کارها به همراه فیلدها، تعریف شده است (شکل زیر):
در این مثال، فرم چاپی را که در شکل نمایش داده شده (مشخصات کامل کالاها)، انتخاب می کنیم:
نام روش در برنامه گردش کار
در این قسمت یک عبارت لاتین برای این روش انتخاب می کنیم. این نام، یکی از پارامترهای لازم در تابع اجرایی ایجاد منبع دیجیتال از گزارش چاپی است که در ادامه توضیح داده خواهد شد. در این مثال، عبارت Kala3 برای این روش تعیین شده است:
شرح
در اینجا می توانید یک شرح توضیحی و دلخواه برای روش مورد نظر وارد کنید:
کلید حرفی شناسایی پیام
با ایجاد هر منبع دیجیتال از گزارشهای چاپی، امکان سیگنال کردن یک پیام (رخداد) وجود دارد. در این ستون عبارت کلیدی (KeyStr) مربوط به این رخداد تعیین می شود:
در اینجا این سوال به ذهن می رسد که انتشار رخداد برای ایجاد یک منبع دیجیتال از گزارش چاپی چه کاربردهای واقعی می تواند داشته باشد؟
جواب: دقت کنید که تهیه گزارش چاپی در حالت عادی، یک فعالیت انفعالی است و امکان اطلاع رسانی فعال و در لحظه برای این فعالیت وجود ندارد. بنابراین برای رفع این کاستی، در مرحله اول، این فعالیت از طریق یک تابع اجرایی به عهده یک سیستم گذاشته می شود (System Task) و در مرحله بعد، باز هم توسط سیستم و بصورت خودکار، یک رخداد برای این فعالیت منتشر می شود.
چند مثال برای کاربردهای واقعی رخداد برای گزارش چاپی
مثال 1: فرض کنید مدیر یک شرکت، برای شرکت در یک جلسه، منتظر یک گزارش وضعیت است. در این مورد، به محض تهیه گزارش، یک رخداد صادر می شود. حال فرض کنید یک فرایند مدیریت جلسات وجود دارد که به این رخداد حساس است و قرار است به محض دریافت این رخداد، کاری را برای مدیر شرکت ایجاد و در کارتابل او قرار دهد.
مثال 2: فرض کنید یک مدیر تولید در یک کارخانه، منتظر یک گزارش تاییدشده از طرف مدیرعامل برای شروع تولید یک محصول است. بنابراین فرایند فروش به محض ایجاد منبع دیجیتال از گزارش مورد نظر، یک رخداد منتشر می کند و فرایند تولید به محض دریافت این رخداد، یک کار برای تولید محصول ایجاد می کند و در کارتابل مدیر تولید قرار می دهد.
-
ایجاد یک درخواست برای تولید منبع دیجیتال
ایجاد درخواست برای تولید منبع دیجیتال از گزارشهای چاپی به دو روش انجام می شود: از طریق برنامه و به شکل دستی. در ادامه ابتدا روش از طریق برنامه و سپس در بخش درخواستها، روش دستی توضیح داده می شود:
روش ایجاد درخواست از طریق برنامه گردش کار
همانطور که در مطالب قبلی هم اشاره شد، ایجاد منبع دیجیتال از گزارشهای چاپی توسط یک تابع اجرایی و از طریق موجودی بنام WorkRepGenUtils صورت می گیرد. روال کلی این کار به ترتیب زیر است:
الف) اجرای یک وظیفه شامل یک تابع اجرایی خاص برای ایجاد منبع دیجیتال
ب) درخواست ایجاد منبع دیجیتال توسط تابع اجرایی با استفاده از متد CreateReportRequest از WorkRepGenUtils
فرمت کلی متد CreateReportRequest به شکل زیر است:
function WorkRepGenUtils.CreateReportRequest(methodName, workState or doState, doDescription, doContentKindCode, doAddWizardCode, workflowCode, workKey)
همانطور که می بینید، این متد شامل پارامترهای متعددی است که در ادامه شرح داده شده است:
پارامترهای متد ReportRequestCreate
methodName: در اینجا نام روش در برنامه گردش کار وارد می شود.
workState یا doState : محل ذخیره منبع دیجیتال حاصل گزارش را تعیین میکند. اگر از WorkState استفاده کنیم، منبع دیجیتال به شکل پیوست کار ذخیره می شود و اما اگر از doState استفاده کنیم، منبع دیجیتال در مسیر دلخواه در درختواره منابع دیجیتال سیستم آرشیو ذخیره خواهد شد. بدیهی است که برای ایجاد منبع دیجیتال نیاز به دسترسی "نوشتن" داریم.
doDescription: شرح منبع دیجیتال را بیان میکند.
doContentKindCode : کد نوع محتوی منبع دیجیتال را مشخص میکند.
doAddWizardCode: کد روش از پیش تعریفشده افزودن منبع دیجیتال را تعیین میکند.
workflowCode: اگر از پیش تنظیمهای عمومی (فاقد گردش کار خاص) استفاده می کنید و در عین حال می خواهید این منبع فقط برای یک گردش کار خاص ایجاد شود، آنگاه در اینجا کد گردش کار مورد نظر خود را تعیین کنید.
workKey : اگر می خواهید این منبع دیجیتال فقط برای یک کار خاص ایجاد شود، آنگاه کلید کار را در این ناحیه وارد کنید.
برای آشنایی بیشتر با این پارامترها، در ادامه، با یک مثال مرتبط با روش 5، پارامترهای فوق را به شکل واقعی استفاده می کنیم:
مثال تابع ایجاد منبع دیجیتال از فرم چاپی
در سطر اول این تابع، متغیر desc برای شرح منبع دیجیتال تعریف شده و عبارت "برگه مشخصات کالاهای عمده" در این متغیر قرار گرفته است.
در سطر دوم، متد درخواست برای ایجاد منبع دیجیتال قرار دارد که پارامترهای این متد به شرح زیر است:
methodName: برای این پارامتر روش “Kala” انتخاب شده که مرتبط با روش شماره 5 می باشد.
WorkState or DoSatate: محتوای این پارامتر از نوع اول یعنی WorkState1 انتخاب شده و به این معنی است که می خواهیم منبع دیجیتال بصورت پیوست کار ذخیره شود.
doDescription: برای پارامتر شرح منبع دیجیتال، محتوای متغیر desc تعیین شده که در بالا توضیح داده شده است.
doContentKindCode: برای کد نوع محتوا ، عدد 8 انتخاب شده که در این پایگاه، معرف نوع محتوای گزارش است.
doAddWizardCode: در این مثال، کد 2 برای روش از پیش تعریف شده افزودن منابع دیجیتال، انتخاب شده است. یادآوری می شود که این روش باید از نوع شناور باشد.
workflowCode: چون روش استفاده شده در این مثال، بدون پیش تنظیم عمومی (فاقد گردش کار خاص) است لذا نیازی به تعیین کد گردش کار وجود ندارد و به همین جهت، عدد صفر را برای این پارامتر در نظر گرفته شده است.
workKey: چون می خواهیم این منبع فقط برای کار جاری ایجاد شود لذا عبارت WorkState1.WorkKey را در این ناحیه وارد کرده ایم. یادآوری می شود که اگر در این ناحیه عدد صفر را وارد کنیم، آنگاه منبع دیجیتال برای تمام کارهای فعال در این گردش کار ایجاد می شود.
ج) قرار گرفتن درخواست در صف درخواستها
اگر در اجرای تابع اجرایی خطایی رخ ندهد، آنگاه بلافاصله یک درخواست به فهرست درخواستهای ایجاد منبع دیجیتال، افزوده می شود. از دو طریق می توانید محاوره درخواستها را مشاهده کنید:
- از طریق محاوره روشهای ایجاد منبع دیجیتال از گزارشهای چاپی
برای این کار در محاوره روشهای ایجاد منبع، نشانگر را روی روش مورد نظر خود منتقل کنید و سپس در نوار ابزار، روی آیکون کلیک کنید (مطابق شکل زیر):
- از طریق منوی گردش کار--> ایجاد منبع دیجیتال از گزارشهای چاپی --> درخواستها (مطابق شکل زیر):
به این ترتیب محاوره درخواستها به شکل زیر باز می شود:
ملاحظه می کنید که در ستون وضعیت آخرین درخواست، عبارت پردازش نشده نمایش داده می شود و به این معنی است که هر درخواست در ابتدا در وضعیت پردازش نشده قرار می گیرد و به این معنی است که این درخواست، هنوز عملیاتی نشده و منبع دیجیتال ایجاد نشده است.
روش ایجاد درخواست به صورت دستی
در محاوره درخواستها، امکان ایجاد درخواست بصورت دستی نیز وجود دارد. برای این کار کافی است در نوار ابزار روی آیکون کلیک کنید تا یک سطر جدید در فهرست درخواستها ایجاد شود:
در این محاوره، هر درخواست شامل ستونهای متعددی است که از این میان ستونهای زیر قابل ویرایش دستی است:
- روش ایجاد منبع دیجیتال: به عنوان مثال مشخصات کالاها با قیمت
- نام روش از پیش تعریف شده افزودن منابع دیجیتال: برای مثال تست شناور- تاریوردی
- کد سرگروه منبع دیجیتال جدید: برای مثال در شاخه عکسها (05)
- شرح منبع دیجیتال جدید: برای مثال برگه کالاهای جدید
- نوع محتوای منبع دیجیتال جدید: برای مثال گزارشها
- نام فایل منبع دیجیتال: برای مثال NewKala.pdf
با تعیین این ستونها به شکل دستی، یک درخواست جدید با وضعیت پردازش نشده به فهرست درخواستها افزوده می شود:
د) ایجاد منبع دیجیتال در مسیر تعیین شده در آرشیو منابع دیجیتال
ایجاد منبع دیجیتال توسط سرویس مدیریت اعلامیه ها (Repository Notifier) انجام می شود. این سرویس بطور منظم در دوره های زمانی خاص (مثلا هر 5 دقیقه یک بار) فعال می شود و تا زمانی که فعال نشده است، درخواست در وضعیت پردازش نشده باقی می ماند. این سرویس به محض فعال شدن، منبع دیجیتال را ایجاد می کند و به تبع آن، وضعیت درخواست به موفق تغییر می کند:
نکته مهم: دقت کنید که در محاوره تنظیمات ایجاد منبع دیجیتال از گزارشهای چاپی، گزینه غیرفعال تیک نخورده باشد (همانند شکل زیر):
در غیر این صورت، منبع دیجیتال ایجاد نخواهد شد.
به این ترتیب، می توانیم منبع دیجیتال ایجاد شده را در درخت منابع دیجیتال مشاهده کنیم:
ملاحظه می کنید که این منبع دیجیتال به شکل پیوست کار ذخیره شده است. حال فرض کنید بخواهیم منابع دیجیتال گزارشهای چاپی را در یک شاخه دلخواه دیگر ذخیره کنیم.
ذخیره منبع دیجیتال حاصل از گزارشهای چاپی در یک شاخه دلخواه از درخت منابع دیجیتال
برای مثال فرض کنید یک شاخه از منابع دیجیتال را به شکل زیر به گزارشهای فرایندها اختصاص داده ایم:
در این حالت، تابع ایجاد منبع دیجیتال به شکل زیر تغییر می کند:
در سطر اول از این تابع، یک DOState از مسیری که در نظر داریم را در متغیر ds قرار می دهیم و همین ds به عنوان پارامتر دوم متد CreateReportRequest (در سطر چهارم) انتخاب می کنیم.
نکته مهم: پارامتر سوم GetDOState ، گروه فیلد مربوط به منبع دیجیتال است که در این مثال، گروه فیلد Appliance تعیین شده است. برای امکان استفاده از DOState باید حتما در این گروه فیلد اختیار خواندن و نوشتن داشته باشید. برای دادن اختیار باید در فهرست گروه فیلدها، و در نوار ابزار، آیکون را کلیک کنید (مانند شکل زیر):
به این ترتیب، محاوره تعیین دسترسی به گروه فیلدها به شکل زیر روی صفحه باز می شود:
همانطور که مشاهده می کنید، در این محاوره، بطور پیش فرض، دسترسی کاربر ناشناس کامل است و اختیار خواندن و نوشتن را دارد. در این صورت تمام کاربران امکان ایجاد منبع دیجیتال را خواهند داشت ونیازی به افزودن کاربر و دادن مجوز ندارید اما اگر می خواهید این امکان را مدیریت کنید و تنها کاربران خاصی امکان ایجاد منبع دیجیتال از گزارش چاپی را داشته باشند، آنگاه باید دسترسی های کاربر ناشناس را غیرفعال کنید و سپس کاربر مورد نظر خود را با مجوزهای لازم، به فهرست کاربران اضافه کنید (همانند شکل زیر):
بهرحال با اجرای تابع فوق، منبع دیجیتال گزارش، در شاخه مورد نظر ایجاد می شود:
ه) انتشار رخداد برای این منبع دیجیتال
پس از ایجاد منبع دیجیتال، یک پیام از نوع رخداد، و با عبارت کلیدی تعیین شده، منتشر می شود که این رخداد را در فهرست پیامهای ارسال شده می توانید مشاهده کنید:
محاوره تنظیمات ایجاد منبع دیجیتال از گزارشهای چاپی (توضیحات تکمیلی)
همانطور که قبلا هم گفته شد، این محاوره از طریق منوی گردش کار --> ایجاد منبع دیجیتال از گزارشهای چاپی --> تنظیمات قابل دسترسی است:
دو مورد از این تنظیمات در بالا شرح داده شده است اما برای جامع بودن مطلب، تمام آیتمها توضیح داده می شود:
غیرفعال: اگر این گزینه فعال باشد (تیک خورده باشد)، عملیات تا ایجاد درخواست پیش می رود و همانجا متوقف می شود. به عبارت دیگر، منبع دیجیتال ایجاد نمی شود. لذا اگر می خواهید منبع دیجیتال ایجاد شود، نباید این گزینه را تیک بزنید.
کاربر پیش تنظیم: در سیستم مدیریت فرایندها، هر کاربر می تواند پیش تنظیمهای اختصاصی خود را تعریف و استفاده کند. به این ترتیب هر کاربری را که در این قسمت تعیین کنید، می توانید به پیش تنظیمهای اختصاصی آن کاربر دسترسی داشته و در روش ایجاد منبع دیجیتال از آن استفاده کنید.
حداکثر تعداد درخواست بررسی شده در هر مرحله: همانطور که قبلا گفته شد، سرویس ارسال اعلامیه ها در دوره های زمانی معین اقدام به بررسی درخواستها می کند لذا در اینجا مشخص می شود که سرویس ارسال اعلامیه ها در هر بار فعال شدن، چه تعداد از درخواستها را بررسی می کند. اگر نمی خواهید محدودیتی را اعمال کنید در اینجا عدد صفر را وارد کنید.
مدت زمان انقضای درخواستها: در این ناحیه مشخص می کنید که پس از چند روز باید درخواستها منقضی شود. در صورتی که تمایل دارید درخواستها هرگز منقضی نشود، در این ناحیه عدد صفر را وارد کنید.