در شرکتهای حملونقل و دفاتر لجستیک شهری، ثبت بارنامه شهری یکی از آن کارهایی است که هیچکس دوستش ندارد اما اگر یک روز انجام نشود، همه چیز میخوابد. اطلاعات از چند جا میآید، در چند فیلد اجباری باید بنشیند و در نهایت باید در یک سامانه ثبت شود تا راننده بتواند بار را جابهجا کند. همین تکرار بیپایان، ثبت بارنامه را به یکی از بهترین کاندیداهای خودکارسازی تبدیل میکند؛ به شرطی که پیش از نوشتن اولین خط کد، فرایند را درست فهمیده باشیم.
چرا این فرایند کاندیدای خوبی برای ربات است
هر فرایندی که تکراری است، لزوماً ارزش خودکارسازی ندارد. معیارهای واقعی اینها هستند:
- ورودی ساختارمند: اطلاعات از فایل اکسل، فرم وب، پیام مشتری یا سامانه سفارش میآید و قابل نگاشت به فیلدهای بارنامه است.
- قواعد ثابت: تعیین مبدأ، مقصد، نوع بار، وزن و مبلغ تابع قواعد نوشتهشده است، نه سلیقه اپراتور.
- حجم و تکرار: تعداد ثبتها آنقدر هست که زمان صرفهجوییشده، هزینه ساخت ربات را توجیه کند.
- هزینه خطا: یک رقم جابهجا در وزن یا یک مقصد اشتباه، بعداً به اصلاحیه و صف انتظار تبدیل میشود.
- قابلیت تشخیص موفقیت: بعد از ثبت، سامانه یک شناسه یا شماره بارنامه برمیگرداند که میتوان به آن استناد کرد.
اگر یکی از اینها غایب باشد، ربات به جای اینکه کار را جلو بیندازد، فقط خطاها را سریعتر تولید میکند.
پیش از کد، نقشه فرایند را بکشید
الگوی کار در خودکارسازی فرایندهای دستی تقریباً همیشه یکسان است: اول فرایند را گامبهگام مستند کنید، بعد مشخص کنید کدام گام قابل سپردن به ماشین است. نمونهای از این الگو در رباتهای نرمافزاری و خودکارسازی فرایندهای دستی توضیح داده شده است. برای بارنامه شهری، نقشه معمولاً چنین چیزی است:
- دریافت درخواست حمل از مشتری یا واحد فروش
- اعتبارسنجی اطلاعات (وجود مشتری، صحت مقصد، تکمیل فیلدهای اجباری)
- محاسبه کرایه بر اساس قواعد تعرفه
- ثبت بارنامه در سامانه و دریافت شماره بارنامه
- اطلاعرسانی به راننده و مشتری
- بایگانی سند و بهروزرسانی گزارشها
گامهای قطعی را از گامهای قضاوتی جدا کنید
گامهای ۲ تا ۴ معمولاً قطعیاند و ربات میتواند آنها را انجام دهد. اما بخشی از کار قضاوتی است: بارنامه اصلاحی، ابطال بارنامه، مغایرت وزن اعلامی با وزن باسکول، یا تغییر مقصد پس از ثبت. اینها را از ابتدا بهعنوان مسیر استثنا علامت بزنید؛ نه اینکه بعداً بهعنوان باگ کشفشان کنید.
معماری یک ربات قابل اتکا
ربات بارنامه، یک اسکریپت تکفایلی نیست؛ حداقل به این لایهها نیاز دارد:
- آداپتور ورودی: تبدیل منابع مختلف (فایل، سامانه سفارش، پیام) به یک ساختار داده یکسان.
- موتور قواعد: اعتبارسنجی، محاسبه کرایه و تشخیص موارد ناقص، جدا از منطق اتصال به سامانه.
- صف کار: هر درخواست بهصورت یک واحد مستقل پردازش شود تا خطای یکی، بقیه را متوقف نکند.
- لایه اتصال به سامانه مقصد: اگر سامانه سرویس برنامهنویسی (API) دارد، همان را بهکار ببرید؛ در غیر این صورت، تعامل با رابط کاربری.
- ثبت رویداد و گزارش: برای هر بارنامه مشخص باشد چه زمانی، با چه دادهای و با چه نتیجهای پردازش شده است.
- پنل نظارت: امکان توقف فوری، مشاهده صف و بازپخش دستی یک مورد ناموفق.
نمونهای از همین ترکیب را میتوان در ربات صدور خودکار و مدیریت بارنامههای شهری دید؛ جایی که ثبت خودکار و مدیریت بارنامه در یک سامانه واحد جمع شدهاند.
طراحی برای شکست، مهمترین بخش کار
بخشی از عمر یک ربات خودکارسازی، صرف مدیریت شرایطی میشود که هیچچیز طبق انتظار پیش نمیرود. این پنج تصمیم، بیشترین اثر را دارند:
- کلید یکتا برای هر درخواست: پیش از ثبت، بررسی شود که این بارنامه قبلاً ثبت نشده است؛ در غیر این صورت قطعی شبکه به بارنامه تکراری تبدیل میشود.
- ثبت مرحلهای وضعیت: اگر پردازش در میانه راه قطع شد، ربات بداند از کجا ادامه دهد.
- عکسبرداری از وضعیت پیش از تغییر: وقتی ربات رکوردی را ویرایش میکند، مقدار قبلی نگه داشته شود تا بازگشت ممکن باشد.
- صف استثنا با تحویل به انسان: مورد مشکوک نباید «حدس» زده شود؛ باید کنار گذاشته و به اپراتور سپرده شود.
- هشدار بر پایه نرخ خطا: اگر نسبت موارد ناموفق در یک بازه از حد معمول بگذرد، احتمالاً رابط کاربری سامانه تغییر کرده یا سرویس مقصد قطع است.
کجا ربات کافی نیست
خودکارسازی با شبیهسازی کلیک و پر کردن فرم، وابسته به ظاهر سامانه است. جابهجا شدن یک دکمه، کل ربات را از کار میاندازد. اگر سامانه مقصد امکان اتصال مستقیم بدهد، همیشه آن راه را ترجیح دهید و ربات را فقط برای سامانههایی نگه دارید که چنین امکانی ندارند.
وسوسه دیگری هم وجود دارد: سپردن فیلدهای آزاد و توضیحات غیرساختارمند به مدلهای زبانی. این کار میتواند مفید باشد، اما تا وقتی خروجی مدل با قواعد قطعی اعتبارسنجی نشود، فرایند قابل اتکا نیست؛ تجربه ساختن چنین سامانههایی در هوش مصنوعی مولد در سازمان: از دموی جذاب تا فرایند قابل اتکا جمع شده است.
موفقیت را چطور بسنجیم
- نرخ عبور بدون دخالت انسان: چه سهمی از بارنامهها بدون کمک اپراتور ثبت میشوند.
- زمان چرخه: فاصله دریافت درخواست تا ثبت نهایی و اعلام شماره بارنامه.
- نرخ ثبت تکراری یا اصلاحیه پس از ثبت: شاخصی که مستقیم به اتکاپذیری ربات مربوط است.
- زمان بازیابی: وقتی سامانه مقصد از دسترس خارج میشود، ربات چقدر سریع و سالم برمیگردد.
جمعبندی
خودکارسازی ثبت بارنامه شهری، بیشتر یک کار طراحی فرایند است تا یک کار برنامهنویسی. اگر گامهای قطعی را از قضاوتی جدا کنید، برای هر درخواست کلید یکتا بگذارید، استثناها را به انسان تحویل دهید و اتصال مستقیم را بر شبیهسازی رابط کاربری ترجیح دهید، رباتی خواهید داشت که ماهها بیسروصدا کار میکند. در غیر این صورت، فقط یک صف خطای سریعتر ساختهاید.