با سلام و عرض ادب. در خدمت دوستان عزیز هستیم با آموزش Workflow – آموزش اجرای غیرهمزمان Workflow از وب سایت آموزش برنامه نویسی سورس باران. در این دوره، آموزش Workflow در ۴۶ جلسه بصورت متنی به شما آموزش داده خواهد شد. لطفا تا انتها با ما همراه باشید…
این دوره جهت حفظ حقوق نویسنده از سایت حذف شده، مطالب جدیدتری بزودی در سایت قرار میگیرد
گردش کار (Workflow)
گردش کار، مجموعه ای از فعالیت ها است که برای تکمیل یک وظیفه لازم است. به بیانی دیگر، گردش کار به افراد درمستند سازی و مدیریت وظایف در پروژه ها کمک می کند و این امر با پیاده سازی فرایند های کاری روی مستندات محقق می گردد. گردش کار به سازگاری فرآیندهای کاری در سازمان ها کمک می کند و همچنین میزان تاثیر گذاری سازمان ها و تولیدات را با مدیریت وظایف و مراحلی که در فرایند های کاری وجود دارند، بهبود می دهد.
سازمان ها از گردش کار برای مشارکت کارکنان در انجام وظیفه و همگام سازی داده ها در بین سیستم ها استفاده می کنند و از آن در رسیدن به اهدافی چون بهره وری بیشتر، مسئولیت پذیری بیشتر و سود بیشتر بهره می جویند. برای این موضوع تعاریف بسیاری آورده شده است، می توان گفت گردش کار گاهی به عنوان مجموعه ای از وظایف که یک خروجی را تولید می کنند، تعریف می شود. به علاوه گردش کار به جابه جایی خودکار مستندات یا داده ها در یک توالی از فعالیت ها و وظایف ها که به یک فرایند مربوط می شوند، نیز گفته می شود.
گردش کار می تواند با امکان اضافه کردن منطق کسب وکار به مستندات و آیتم ها در فرایند کاری، برای کنترل فرآیند های کسب وکاری در یک سازمان مورد استفاده قرار گیرد. منطق کاری مجموعه ای از دستورالعمل هاست و گردش کار، این مجموعه از دستور العمل ها که باید در طی فرایند بر روی یک مستند یا آیتم اتفاق افتد را مشخص و کنترل می کند.
گردش کار هزینه و زمان را در اجرای فرایند های کاری با نظارت بر آن ها کم می کند. به طور مثال با مشاهده مستندات، مدیریت و رهگیری وظایف افراد که در فرایند درگیر هستند این امر را محقق می نماید.علاوه بر آن در گردش کار می توان یک مستند را بین گروهی از افراد برای تایید ارسال کنید و زمانی که گردش کار در حال انجام گرفتن بود افراد می توانند با رهگیری فرایند متوجه شوند که کار راچه کسانی تایید کرده و وضعیت نهایی کار چیست؛ در نهایت زمانی که فرایند به پایان برسد یک اعلان برای مالک گردش کار ارسال می شود. یک مثال از روال گردش کار در شکل زیر نشان داده شده است :
نمونه هایی از گردش کار:
گردش های کار با توجه به اهدافی که دارند شناخته می شوند. در زیر به چند نمونه از گردش های کار آورده شده است:
۱- گردش کار مدیریت مستندات:
سازمان های بسیاری هستند که این گردش کار را در دل سازمان خود دارند. به عبارتی، یک مستند نیاز به تایید، تغییر و اضافه کردن متن در طی یک گردش کاری از این نوع را دارد.
۲- خدمات مشتریان (پیگیری سفارش)
این گردش کار به مشتری اجازه می دهد در صورتی که در سازمان درخواستی را ثبت کرده است، بتواند آن را رهگیری کرده و در آن تغییراتی را اعمال کند.
۳- مدیریت تعطیلات
گردش کاری که شامل مدیریت تعطیلات کاربر، رزرو هتل، رزرو پرواز و سایر اقدامات مربوط به آژانس های مسافرتی است.
اجزای گردش کار:
یک گردش کار می تواند به صورت نمودار های فنی فرمال یا غیر فرمال نمایش داده شود که به صورت مجموعه ای از جریان ها بین مراحل پردازش است. گردش کار اصولا توسط سه پارامتر زیر تعریف می شود:
۱- مقدار ورودی: شامل اطلاعات و مقادیری است که برای کامل شدن یک مرحله از گردش کار، مورد نیاز است.
۲- قوانین تغییر: الگوریتم هایی که توسط نقش های انسانی یا سیستمی یا ترکیبی از هر دو انجام می شود را قوانین تغییر گویند.
۳- مقدار خروجی: اطلاعات و مقادیری که توسط هر مرحله تولید شده و به عنوان ورودی به مرحله بعد داده می شود را گویند.
گردش ها کار به سه دسته تقسیم می شوند:
۱- ترتیبی: دراین گردش کار برگشت به مرحله قبل وجود ندارد.
۲- سیستمی: این گردش کارها پیچیده تر هستند و امکان بازگشت به مرحله قبل را نیز دارند.
۳- مبتنی بر قوانین: این دسته همانند گردش کارهای ترتیبی هستند اما با این تفاوت که قوانین هستند که پیشرفت در فرایند را تعیین می کنند.
گردش کاری به سه حالت ممکن است شروع شود:
۱- زمانبندی شده: با توجه به زمانی که برای شروع و تکرار آن در نظر گرفته شده است، شروع می شود.
۲- فرم: در واقع رایج ترین نوع شروع در گردش کار است که کاربر با پر کردن فرم و ارسال آن، گردش کار را به جریان می اندازد.
۳- API: سیستم های دیگر می توانند یک گردش کار را در قالب پیامک اعلان یا وب سرویس و به کمک API شروع کنند.
مزایای استفاده از سیستم ها با قابلیت گردش کار:
۱- افزایش تولید: گردش های کاری مکانیزه شده، زمان انجام کارها را کاهش داده و درنتیجه تولید و بهره وری را افزایش می دهند.
۲- شفافیت: به مدیران این امکان را می دهد که متوجه شوند که در فرایند های کاری آن ها در لحظه چه اتفاقاتی رخ می دهد.
۳- انعطاف پذیری بالا در تغییرات: گردش ها کار این اجازه را به سازمان ها می دهد که به راحتی و به سرعت در فرایند های خود تغییرات لازم را ایجاد کنند.
۴- مسئولیت پذیری بهتر: نظارت و پایش اجرای فرایند های کسب و کار امکان ایجاد معیار هایی را برای بهبود مستمر فرایند ها ایجاد می نماید.
منابع : Introduction-to-workflows
bpm-tutorial/workflow-tutorial
Workflow_Fundamentals
اجرای غیرهمزمان Workflow
اجرای یک Workflow بصورت غیرهمزمان یا asynchronously
در آموزش های قبلی، یادگرفتیم که چگونه یک نمونه Workflow را با استفاده از متد ()Invoke در یک Thread یکسان با برنامه Main اجرا نماییم. اجرای همزمان Workflow و برنامه Main در یک Thread یکسان، کار آسانی بود…! اما در اکثر برنامه های کاربردی، یک Workflow باید در یک Thread مستقل اجرا شود. در اینجا قصد داریم نحوه ی استفاده از WorkflowApplication را برای اجرای یک Workflow توضیح دهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
Run Asynchronous Workflow Run a Workflow asynchronously or asynchronously In previous tutorials, we learned how to implement a Workflow instance using the Invoke () method in a thread identical to the Main application. Simultaneously running Workflow and the Main application in the same thread was easy ...! But in most applications, a workflow must run on an independent thread. Here we are going to explain how to use WorkflowApplication to run a workflow. Steps to do the job The UseWorkflowApplication Workflow project includes the following 5 steps Add a Project Workflow Console Application Workflow design Write code #C Run Workflow How does UseWorkflowApplication workflow work? Add a new project from Workflow Console Application In the Solution Explorer panel, right-click on the Solution Chapter01 and select the ADD option under the New Project menu. In the Add New Project window, select the workflow option, and then select Workflow Console Application from the right side of the window. Now set the Name field to the UseWorkflowApplication value and finally click on the OK button. Workflow design Open the Workflow1.xaml file from the Solution Explorerr panel and design the Workflow as follows: From the bottom of the page, select the Arguments tab. Now, according to the figure below, define the two arguments Number1 and Number2 of type Int32 and the input type (In) and the Result argument of type Int32 and the output type (Out). From the ToolBox panel, select the Assign activity and drag inside the drawing board. Next, set the box to the left with Result and set the box to the right with Numeber1 + Number2. Write code #C But then open the Program.cs file and change the following sub-codes (red part) using system; using system.Linq; using System.Activities; using System.Activities.Statements; using System.Threading; using System.Collections.Generic; namespace UseWorkflowApplication { /// /// Author: Pegah Saadat /// provided by you by: https://www.sourcebaran.com /// class program { static void Main (string [] args) { AutoResetEvent syncEvent = new AutoResetEvent (false); IDictionary <string, object> input = new Dictionary <string, object> () { {"Number1", 123}, {"Number2", 456} }; IDictionary <string, object> output = null; WorkflowApplication wfApp = new WorkflowApplication (new Workflow1 (), input); wfApp.Completed = delegate (WorkflowApplicationCompletedEventArgs e) { Console.WriteLine ("Workflow thread id:" + Thread.CurrentThread.ManagedThreadId); output = e.Outputs; syncEvent.Set (); }; wfApp.Run (); syncEvent.WaitOne (); Console.WriteLine (output ["Result"]. ToString ()); Console.WriteLine ("Host thread id:" + Thread.CurrentThread.ManagedThreadId); Console.WriteLine ("------------- \ nProvided to you by: https://www.sourcebaran.com \ npress any key ..."); Console.ReadLine (); } } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19th 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 using system; using system.Linq; using System.Activities; using System.Activities.Statements; using System.Threading; using System.Collections.Generic; namespace UseWorkflowApplication { /// /// Author: Pegah Saadat /// provided by you by: https://www.sourcebaran.com /// class program { static void Main (string [] args) { AutoResetEvent syncEvent = new AutoResetEvent (false); IDictionary <string, object> input = new Dictionary <string, object> () { {"Number1", 123}, {"Number2", 456} }; IDictionary <string, object> output = null; WorkflowApplication wfApp = new WorkflowApplication (new Workflow1 (), input); wfApp.Completed = delegate (WorkflowApplicationCompletedEventArgs e) { Console.WriteLine ("Workflow thread id:" + Thread.CurrentThread.ManagedThreadId); output = e.Outputs; syncEvent.Set (); }; wfApp.Run (); syncEvent.WaitOne (); Console.WriteLine (output ["Result"]. ToString ()); Console.WriteLine ("Host thread id:" + Thread.CurrentThread.ManagedThreadId); Console.WriteLine ("------------- \ nProvided to you by: https://www.sourcebaran.com \ npress any key ..."); Console.ReadLine (); } } } Run Workflow UseWorkflowApplication project as p |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- حجم فايل : 553 کیلوبایت
- منبع : سورس باران
- رمز فايل : www.sourcebaran.com
- انتشار: ۲۸ آذر ۱۳۹۳
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- رپورتاژ
- فروشگاه
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- Go
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس