با سلام خدمت همکاران عزیز، این نوشته به تازههای وب نسخه 15.63 میپردازد.
1- جستجو در محدوده کارهای کارپوشه: تنظیم محدوده برای کارهای در حال نمایش در کارپوشه امکانی بود که از نسخههای اولیه در کارپوشه وجود داشت. با استفاده از آن کاربر میتواند تعداد کارهای مورد ملاحظه خود را کاهش دهد و بر تعداد کمی از کارها تمرکز کند. حالا این امکان را یافته است که در این محدوده جستجو هم انجام دهد. انجام این جستجو از طریق ذرهبینی که در بالای فهرست کارها ظاهر میشود ممکن است. این نمادی است که در امروزه عادت ما در بسیاری از وبسایتها از آن استفاده میشود و برای کاربر آشناست.
با انتخاب ذرهبین، محاورهای ظاهر میشود که به کاربر امکان میدهد تا عبارتی را وارد کند. عبارت وارد شده به طور بلادرنگ با این سه مورد، از کارهای درون محدوده فعلی، انطباق داده میشود: (الف) شرح کار (ب) کد کار (پ) فیلدهای کار. به محض آنکه انطباقی یافت شد، سطرهایی در پایین محاوره ظاهر میشود که کاربر قادر به انتخاب آنهاست. انتخاب یک گزینه منجر به افزوده شدن شرط جدید به شرایط فعلی محدوده میشود و محدوده را مطابق خواست کاربر کوچکتر میکند. کاربر میتواند به دفعات دلخواه دوباره جستجوی جدیدی، اینبار در محدوده جدید انجام دهد.
- ظهور ذرهبین تحت کنترل آزمایش /جستجو_در_کارپوشه است.
- جستجو در محدوده در عمل، روش دیگری برای اعمال محدودیت بیشتر بر فهرست است. از این رو در امتداد همان روشهای پیشین تنظیم محدوده قرار میگیرد و با آن سازگار است. یعنی شرایط جدید اعمال شده با شرایطی که پیشتر اعمال میشد سازگارند و حتی به نوعی همپوشان هستند. به همین خاطر بر خلاف جستجوهای با ظاهر مشابه، اینجا امکان "جستجو در نتایج جستجو" هم به طور طبیعی تا هر چند مرحله وجود دارد.
- تمام روشهای انطباق متن یعنی "انطباق دقیق با کل عبارت"، "انطباق با ابتدای عبارت"، "انطباق با کلمهها" و "انطباق حرف به حرف" به ترتیب و به طور خودکار اعمال میشود. یافتهها به همین ترتیب ظاهر میشوند. مثلا همیشه یافتههای ناشی از انطباق دقیق، اگر موجود باشند بالاتر از دیگران ظاهر میشود.
- انطباق عبارت با دو مورد شرح و کد کار بدون هیچ مقدمهای و به سرعت ظاهر میشود. اما انطباق با مقادیر فیلدهای کار، که به دلایل مربوط به کارایی لزوما از پیش از سرور خوانده نشدهاند به تدریج انجام میشود. در جریان بودن بررسی فیلدها در محاوره بازتاب داده میشود. با این حال به محض خوانده شدن فیلدهای اولین کار دارای انطباق، گزینه متناظر ظاهر میشود. الزامی نیست که او تا انتهای بررسی منتظر بماند. او میتواند هر لحظه گزینه ظاهر شده را انتخاب کند. این کار در زمانی انجام میشود که کاربر خود میداند به نتیجه مطلوب خود رسیده است. مثلا کاربری نام یک شرکت را جستجو میکند (نام شرکت یکی از فیلدهای کار است). او میداند که برای هر شرکت یک کار بیشتر وجود ندارد. پس اولین مورد ظاهر شده حاوی همان کار مطلوب اوست و لازم نیست برای بررسی دیگر کارها منتنظر بماند. اما در مواردی ممکن است برای بررسی تمام کارها منتظر بماند. مثلا ممکن است به دنبال تمام کارهایی باشد که مقدار فیلد "امتیاز" در آنها مقدار "A" است. در این صورت او قاعدتا منتظر میماند تا تمام کارها بررسی شوند.
- کارهایی که فیلدهای آنها برای انطباق بررسی میشوند تنها کارهایی هستند که در محدوده "فعلی" قرار دارند و نه تمام کارهای کارپوشه. به همین خاطر در صورتی که پیش از جستجو کاربر محدوده خود را تا جای ممکن کوچک کند، نتیجه سریعتری میگیرد. یکی از عوامل محدود کننده پر استفاده گردش کار است. معمولا کاربر میداند که در کارهای کدام گردش کار در حال جستجو است. پس بهتر است ابتدا کارها را به گردش کار مورد نظر خود محدود کند و سپس اقدام به جستجو نماید. اگر به فرض 1/3 تعداد کارهای کارپوشه از این گردش کار باشند، عملا، حتی وقتی برای بررسی تمام کارها منتظر میماند، سه برابر سریعتر به جواب میرسد.
- وضعیت جدیدی را باید به رسمیت شناخت که میتوان آن را وضعیت "بررسی ناکامل فیلدها" خواند. فرض کنید کاربری با یک کارپوشه شامل 40 کار مواجه است. این سناریوها را در نظر بگیرید:
الف) او جستجویی برای کار با امتیاز A آغاز میکند و پیش از آنکه تمام 40 کار بررسی شوند اولین یافته ظاهر شده را انتخاب میکند.
ب) او فهرست را به محدوده کارهایی که توسط یک کاربر خاص آغاز شده است محدود میکند (مثلا 10 کار). حالا در این محدوده کارهای با امتیاز A را جستجو میکند. او صبر میکند، 10 کار بررسی شده و فهرست کوچکتر میشود (مثلا 4 کار). حالا او شرط کاربر آغاز کننده را حذف میکند. فهرست منطقا بزرگتر میشود. اما از میان 40 کار کارپوشه تنها 10 مورد از آنها از نظر فیلد امتیاز بررسی شدهاند. 30 کار دیگر در وضعیت بررسی نشده هستند.
پ) او جستجویی برای کار با امتیاز A آغاز میکند. برای بررسی تمام کارها صبر میکند و به فهرست نهایی دست پیدا میکند. حالا بدون اینکه در شرایط تغییری دهد، کارپوشه را بازخوانی میکند. پس از بازخوانی، با در نظر گرفتن اینکه فیلدهای کارها ممکن است تغییر کرده باشند، همه کارها به بررسی مجدد نیاز دارند. هر یک از این 40 کار میتواند امتیاز A داشته باشند.
در تمام سناریوهای بالا در وضعیتی قرار میگیریم که دست کم تعدادی از کارهای فهرست از نظر انطباق با شرایط محدوده در وضع بررسی نشده هستند. نمایش فهرست نهایی نیازمند بررسی آنهاست. یعنی ممکن است کاری حائز شرایط باشد ولی نمایش داده نشده باشد. در این شرایط، در دو سناریوی اول او با دکمهای در بالای فهرست کارها مواجه میشود که ناتمام بودن بررسی کارها را اطلاع میدهد. با کلیک آن میتواند درخواست بررسی کارهای بررسینشده را بدهد. در مورد آخر (برای حفظ رفتار سازگار با نسخههای قبل) بررسی به طور خودکار شروع میشود. به هر حال در هر سه صورت او میتواند بررسی را در میانه راه متوقف و در صورت دلخواه، با کلیک دوباره همان دکمه، از سر بگیرد.
2- جستجوی کارها در برگه مرور کارها: در بالای برگه مرور کارها ناحیه جستجوی کارها قرار دارد دارد که از طریق آن کاربر میتواند کار را بر اساس نام یا کد کار جستجو کند. (اسمها مشابه است با موضوع بند قبل یعنی جستجوی کارها در کارپوشه اشتباه نگیرید). ظاهر این ناحیه نسبت به نسخه قبل تغییری نداشته است. اما تغییری در رفتار دکمه جستجو اتفاق افتاده است. حالا این دکمه به جای آنکه مستقیما به برگه جدید حاوی یافتهها منجر شود، باعث باز شدن محاوره پارامترهای گزارش میشود. کاربر در این محاوره میتواند علاوه بر (یا به جای) دو شرط اولیه شرایط دیگری را هم برای کارهای مورد نظر خود تعیین کند تا جواب دقیقتری به دست آورد. چون پای شرایط دیگر هم در میان است حالا این دکمه بدون تعیین شرح یا کد هم کار میکند.
3- محاوره باز شده در بند قبلی حالا به امکانات استفاده از سابقه تجهیز شده است. شبیه آنچه در نسخههای قبل در مورد سابقه مقدار فیلدها در هنگام انجام وظیفه معرفی کردیم، اینجا سابقهای از ترکیب پارامترهای مورد استفاده برای جستجوی هر کاربر نگهداری میشود. سابقهها در یک پنجره شناور در سمت چپ محاوره فهرست میشوند. نکات زیر در این زمینه حائز توجه است:
- کلیک روی یک سابقه، پارامترهای محاوره را به زمان انجام جستجو باز تنظیم میکند. به نحوی که تایید محاوره مجددا به انجام آن جستجو منجر شود. بدیهی است نتایج جستجوی لحظه حال باز نمایی میشود.
- حداکثر 5 سابقه پیشین انجام جستجو برای هر کاربر نگهداری میشود. پس از آن قدیمیترین سابقه با مورد جدید جایگزین میشود. این کار برای صرفهجویی در فضای ذخیرهسازیای است که مرورگر در اختیار میگذارد.
- هر سابقه یک عنوان دارد. در صورتی که شرح کار یا کد کار تعیین شده باشد، عنوان به آن تنظیم میشود. در غیر اینصورت، زمان انجام جستجو عنوان آن قرار میگیرد. به هر حال عنوان به دلخواه کاربر قابل ویرایش است.
- یک سابقه میتواند سنجاق شود. در این صورت از چرخه جایگزینی با سابقه جدیدتر معاف میشود. در عمل سابقههای سنجاق شده، به همراه عنوان مناسب، کاربرد پیشتنظیم برای محاوره دارند.
- کاربر میتواند هر سابقه را به دلخواه خود حذف کند.
- بر خلاف سابقههای سنجاقنشده، فعلا محدودیتی برای تعداد سابقههای سنجاقشده در نظر گرفته نشده است. چون سنجاق کردن سابقه آنرا از چرخه جایگزینی حذف میکند، با خود کاربر است که از سنجاق کردن بیش از نیاز سابقهها و مصرف فضای محدود پرهیز کند.
4- تغییر رفتار گزینه گزارش کارها در منو:
پیشتر گزینه گزارش کارها در منوی برنامه منجر به نمایش مستقیم "کارهای در وضعیت مهم" (یا اطلاعرسانی) میشد. هدف این بود که دسترسی سریع به این دسته از کارها فراهم شود. این رفتار از این رو بود که تصور میشد این فهرست، فهرستی حاوی کارهای مهم و حائز توجه برای هر کاربر و لذا کوتاه است. از صحبت با دوستان دریافتم که در عمل این فهرست به شکل متفاوتی استفاده میشود و لزوما طوری تنظیم نمیشود که کوتاه باشد. اجرای پیشفرض گزارش کارهای در وضعیت مهم باعث میشد که فهرستی احتمالا طولانی از کارها در بدو امر خوانده شود. در حالی که ممکن بود کاربر اصلا قصد تغییر گزارش را داشته باشد. حالا گزینه منو ابتدا کاربر را با محاوره شرایط مواجه میکند. تصویب پیشفرض محاوره البته هنوز همان فهرست قبلی را بازنمایی میکند، اما به هر حال او فرصت تغییر گزینهها را دارد و ناخواسته باری برای سیستم اضافه نمیکند.
5- به روز شدن مقدار فیلدها با تاخیر:
این دو حقیقت را در نظر بیاورید:
(الف) چنین نیست که تمام فیلدهای تمام گردشکارها در هر لحظه از زمان مستعد تغییر باشند.
(ب) حتی اگر تغییر مقداری اتفاق بیفتد، همیشه آگاهی به لحظه از این تغییر اهمیت حیاتی ندارد.
مثلا گردش کار پیگیری مطالبات شرکت نوسا را در نظر بگیرید. ماهیت کار چنین است که فیلدهای کلیدی این گردش کار (مثلا میزان بدهی مشتری) زمانی تغییر میکنند که مشتری اقدام به واریز وجه به حساب شرکت نموده، آن را اطلاع داده، و سپس واحد اداری سند مرتبط با این پرداخت را در سیستم مالی ثبت کند. احتمالا این اتفاق، برای شرکتی به اندازه شرکت نوسا، (و بر خلاف میل بخش مالی!!) هر ثانیه رخ نمیدهد. علاوه بر آن اگر در موردی هم این اتفاق رخ دهد اهمیت حیاتی ندارد که ما بلافاصله پس از وقوع از آن آگاه باشیم. واقعیت آنست که، از منظر واسط کاربر، کافی است اولین باری که کسی به مقدار فیلد مراجعه میکند بتواند جدیدترین مقدار آن را ملاحظه کند (توجه داشته باشید که امور مربوط به سرور و پردازشهای ماشینی احتمالی موضوع صحبت ما نیست). عملیات مالی-اداری اجرای وظیفه مرتبط با به روز شدن مقدار فیلد بدهی در حد روزها، ساعات یا دست کم دقایق زیادی به طول میانجامد. مثلا پرداخت واقعی مشتری به بانک صبح انجام میشود اما سند مالی مربوط به آن تا بعدازظهر در سیستم مالی ثبت نمیشود. زمان مراجعه به مقدار فیلد هم برای هیچ کس اهمیتی ندارد که مقدار فیلد حالا به روز شده است یا یک ساعت قبل. پس حتی اگر خیلی سختگیر هم باشیم، در این مثال میتوان گفت حتی تاخیری مثلا در حد 15 دقیقه برای آگاهی از تغییر مقدار این فیلد آسیبزننده نیست.
از سوی دیگر در این 15 دقیقه ممکن است کاربران سیستم بارها و بارها اقدام به خواندن اطلاعات فیلدهای این گردش کار کرده باشند بدون آنکه این کار خاص اصلا مد نظرشان بوده باشد. مثلا کارپوشه خود را بازخوانی کردهاند، در آن جستجو کردهاند اما به این کار خاص هیچ مراجعهای نکردهاند. اگر در این فاصله تلاشی برای خواندن فیلدهای این کار انجام شده باشد، در عمل بیهوده بوده است.
هم من و هم شما عنایت داریم که توصیف بالا بسیار سادهانگارانه است و تنها بخش کوچکی از یک تحلیل کلان در سیستم است و جزییات بسیار زیاد ناگفتهای در آن وجود دارد. نیت تنها بیان کوتاه موضوع و بازکردن ذهن و معرفی آزمایشی در این نسخه برنامه است که بسیار "سادهگیرانه" به این امر کلان میپردازد. در این نسخه آزمایش /تاخیر_قابل_قبول_به_روز_شدن_مقدار_فیلدها معرفی شده است که به کاربر اجازه میدهد تا یک بازه زمانی برای تاخیر در به روز شدن مقدار فیلدها فعال کند و هر کجا جا دارد از مزیت حاصل از آن بهره ببرد. خوشبختانه مفهوم آزمایشگاه به ما اجازه میدهد که تاثیر اعمال چنین تاخیری را محک بزنیم.
- قابل قبول بودن تاخیرها را باید در حد گردشکار یا حتی وضعیتهای یک گردشکار تحلیل کرد. یک گردش کار ممکن است با گردشکار دیگر تفاوت قابل ملاحظهای از این نظر داشته باشد. با این حال تنظیم آزمایشی ما بسیار سادهگیرانه است و به همه جا یکسان اعمال میشود.
- حتی با فعال شدن این آزمایش باز هم در هنگام اجرای وظیفه و ویرایش، مقدار فیلدهای کار مثل همیشه اطلاعات به روز خواهد بود.
- غیرفعال کردن این آزمایش (یا تعیین صریح مقدار 0 برای تاخیر قابل تحمل)، بلافاصله آن را غیر فعال میکند.
آزمایشهای جدید:
/جستجو_در_کارپوشه
/تاخیر_قابل_قبول_به_روز_شدن_مقدار_فیلدها
آزمایشهای بازنشست شده:
/روش_پیشین_نمایش_جزییات_در_کارپوشه: در نسخه پیشین توضیح دادم که این گزینه بیشتر برای جنبه آموزش داخلی اضافه شده بود. با این امید که تا این نسخه کار خود را کرده باشد، آن را بازنشسته کردیم. با این کار در واقع دیگر از روش پیشین نمایش استفاده نخواهد شد.
با احترام