پایگاه دانش:
مدیریت کاربران دارای مافوقی با چند سمت سازمانی
منتشر شده توسط , ویرایش شده توسط: شیما عزیزیان در تاریخ 1399/7/9 چهارشنبه 09:35

از آن جا که در ProcessMaker به هر کاربر تنها یک سمت سازمانی اختصاص داده می شود، در نتیجه زمانی که مافوق یک کاربر دارای چند سمت است، نمی توان task بعدی را از طریق گزینه Reports to در بخش Assignment Rules به شخص مافوق ارسال کرد، چراکه ممکن است سمت پیش فرض کاربر مافوق مربوط به قسمت دیگری از چارت سازمانی باشد. در چنین شرایطی می توان اطلاعات کاربر مافوق را از دیتابیس اتوماسیون دریافت کرد. بدین منظور نیازمند انجام مراحل زیر هستیم:

1- ابتدا از طریق query زیر باید نام کاربری مافوق شخص را از دیتابیس اتوماسیون دریافت کرد. این query را می توان در یک trigger که به task اول متصل است اجرا نمود:

SELECT [UserName] from [WebOfficeData].[Security].[UserManagement] where [UserManagementID] in 

(SELECT [EmployeeID] from [WebOfficeData].[HumanResources].[EmployeePosition] where [DepartmentID] in 

(SELECT [DepartmentID_Parent] from [WebOfficeData].[HumanResources].[Department] where [DepartmentID] in 

(SELECT [DepartmentID] FROM [WebOfficeData].[HumanResources].[EmployeePosition] WHERE [EmployeeID] = 

(SELECT [UserManagementID] FROM [WebOfficeData].[Security].[UserManagement] WHERE [UserName] = '".$usr_name."'))))

متغیر usr_name$ در انتهای query بالا باید حاوی نام کاربری شخص ارسال کننده باشد.

پس از اجرای این query، نام کاربری مافوق شخص از دیتابیس اتوماسیون دریافت می شود که می توان آن را در یک متغیر php به نام username$ قرار داد.

2- اکنون در ادامه trigger باید id کاربر مافوق را (که دارای نام کاربری username$ است) از دیتابیس ProcessMaker دریافت کرد. جهت این کار می توان از این query استفاده کرد:

select USR_UID from users where USR_USERNAME = '".$username."'

فیلد USR_UID حاوی id کاربر مافوق است که باید در یک variable موجود در فرم (مثل یک hidden) ریخته شود.

3- فعالیت بعدی در فرآیند را می توان از طریق value-based assignment به variable که مقدار USR_UID در آن ریخته شد، assign کرد که به مافوق ارسال شود.

 

** تذکر: چنانچه نام کاربری شخصی در اتوماسیون حاوی کاراکتر "." باشد، باید هنگام دریافت آن در trigger این کاراکتر را با "_" جایگزین کرد. چراکه "." در نام کاربری در ProcessMaker با "_" جایگزین شده است. جهت جایگزینی کاراکتر در php می توان از تابع str_replace استفاده کرد.

(0 رای (ها))
مفید
مفید نیست

نظرات (0)
نظری جدید منتشر کنید
 
 
نام کامل:
ایمیل:
نظرات:
تایید کپچا 
 
لطفاً متن موجود در تصویر را در زیر وارد کنید (برای جلوگیری از ارسالهای خودکار).

سیستم پشتیبانی (تیکتینگ) فراگستر