مدیریت کاربران دارای چند سمت سازمانی
منتشر شده توسط , ویرایش شده توسط: در تاریخ 1396/11/2 دوشنبه 12:08
|
|
از آن جا که در ProcessMaker به هر کاربر می توان تنها یک سمت سازمانی اختصاص داد، در نتیجه برای assign کردن task بعدی به مافوق شخص (مافوق سمت دوم) می توان اطلاعات کاربر مافوق را از دیتابیس اتوماسیون دریافت کرد. جهت پیاده سازی این امر، نیازمند انجام مراحل زیر هستیم: 1- قراردادن یک dropdown در فرم کاربر، جهت انتخاب سمت خود. لیست سمت های شخص را می توان با query زیر از دیتابیس اتوماسیون دریافت کرد: SELECT [DepartmentID], [Name] from [webofficedata].[HumanResources].[Department] where [DepartmentID] in (SELECT [DepartmentID] FROM [WebOfficeData].[HumanResources].[EmployeePosition] WHERE [EmployeeID] = (SELECT [UserManagementID] FROM [WebOfficeData].[Security].[UserManagement] WHERE [UserName] = '".@@USR_USERNAME."')) لازم به ذکر است که این query را می توان در یک trigger و قبل از اجرای فرم، اجرا کرده و dropdown مربوط به لیست سمت ها را با استفاده از خروجی آن مقداردهی کرد. بدین ترتیب، dropdown سمت های کاربری که فرم را باز کرده است را نمایش می دهد و کاربر می تواند سمت موردنظر خود را انتخاب نماید. 2- پس از آنکه کاربر فرم را پر کرده و ارسال نمود، در یک trigger دیگر (که پس از فرم اجرا می شود) می توان کاربر مافوق را با استفاده از query زیر، از دیتابیس اتوماسیون دریافت کرد: SELECT [UserName] from [WebOfficeData].[Security].[UserManagement] where [UserManagementID] = (SELECT [EmployeeID] from [WebOfficeData].[HumanResources].[EmployeePosition] where [DepartmentID] = (SELECT [DepartmentID_Parent] from [webofficedata].[HumanResources].[Department] where [DepartmentID] = ".@@dropdown_var.")) به جای dropdown_var در query بالا باید variable مربوط به dropdown سمت ها گذاشته شود. با این query، نام کاربری شخص مافوق دریافت می شود. 3- اکنون در ادامه trigger قبلی باید id کاربر مافوق را از دیتابیس ProcessMaker دریافت کرد. جهت این کار می توان از این query استفاده کرد: select USR_UID from users where USR_USERNAME = '".$username."' در query بالا، $username یک متغیر php است که حاوی نام کاربری مافوق می باشد و از query قبلی دریافت شده است. USR_UID حاوی id کاربر مافوق است که باید در یک variable موجود در فرم (مثل hidden) ریخته شود. 4- فعالیت بعدی در فرآیند را می توان از طریق value-based assignment به variable که مقدار USR_UID در آن ریخته شد، assign کرد.
** تذکر: چنانچه نام کاربری شخصی در اتوماسیون حاوی کاراکتر "." باشد، باید هنگام دریافت آن در trigger این کاراکتر را با "_" جایگزین کرد. چراکه "." در نام کاربری در ProcessMaker با "_" جایگزین شده است. جهت جایگزینی کاراکتر در php می توان از تابع str_replace استفاده کرد. | |
|