Làm thế nào để ngăn người dùng tạo các bộ đầu vào sai, khi không có cách thực tế để kiểm tra đầu vào?
Cảnh
Tôi sửa đổi một gói ERP nhỏ được viết bằng Visual FoxPro. Một phần của gói liên quan đến bản in xe tải và hóa đơn được gửi với các tài xế trên các tuyến giao hàng của họ. Thói quen in, khi được cho ăn không phải là đầu vào, sẽ cố in tất cả mọi thứ, dẫn đến việc ram và giấy in của máy in bị lãng phí trên máy in tốc độ cao.
Tôi không ở vị trí để viết lại bất kỳ thành phần giao diện GUI nào, tôi cũng không thể điều chỉnh bất kỳ khung, bộ công cụ hoặc mã bên ngoài nào khác được sử dụng trong tình huống này. Những lý do liên quan đến chính trị văn phòng, xin vui lòng không đề xuất rằng tôi có thể ghi đè khung ERP hiện tại, vì đó không phải là một lựa chọn cho tôi.
Vấn đề
Người dùng đang ở trong một môi trường áp lực cao, thời gian quan trọng. Mỗi quy trình được đo bằng phút hoặc thậm chí vài giây, điều đó có nghĩa là tôi phải giảm thiểu thời gian xử lý càng nhiều càng tốt. Do môi trường này và có thể gây mất tập trung, người dùng thường bỏ qua các hộp thoại, nhấn phím [Enter] khiến tiêu điểm nhanh chóng di chuyển qua biểu mẫu và cuối cùng chạm vào nút hành động cho hộp thoại đầu vào, dẫn đến việc chúng kích hoạt bản in tự động .
Đầu vào bao gồm phạm vi ngày, phạm vi tuyến đường và phạm vi đơn hàng.
Đầu vào cho phạm vi ngày không thể được đặt tự động thành "ngày hôm nay", vì cần phải in lại thường xuyên. Ngoài ra, người dùng cuối làm việc trong nửa đêm, tức là cuộn qua ngày làm cho điều này không thực tế mà không tạo ra thói quen tự động phát hiện thay đổi, v.v.
Đầu vào cho các tuyến đường không thể được mã hóa cứng, cũng không thể suy ra từ các tuyến đường đã được vận chuyển, vì phải in lại (xem ở trên).
Đầu vào cho đơn đặt hàng chỉ có ý nghĩa khi in các đơn hàng hoặc phạm vi cụ thể.
Vì vậy, thẳng thắn, không có cách thực tế để xác nhận đầu vào .
Nút hành động kích hoạt in ấn có thể bị chặn. Mọi đề xuất rằng hộp thoại chặn được đặt trước mặt người dùng sẽ bị bỏ qua. Tôi không được tự do thảo luận tại sao đây không phải là một lựa chọn, ngoài khái niệm đã được thảo luận ở nơi khác trên trang web (từ một điểm thuận lợi khác) và đã bị từ chối.
Chặn các bản in khi tất cả các đầu vào trống đã bị từ chối vì là một quyết định thiết kế vì phần mềm phải chứa điều này như một tính năng.
Người dùng
Người dùng đã nhiều lần được yêu cầu không làm điều này. Họ thường xuyên bỏ qua lời khuyên này. Kích hoạt sự kiện đáng tiếc này không phải là điều mà các quản đốc / quản lý của họ sẽ giải quyết, do đó không có áp lực để kết thúc hành vi.
Tổ chức
Tôi không có tiếng nói trong quy trình làm việc liên quan, chỉ sửa đổi các thành phần phần mềm hiện có bị ảnh hưởng bởi quy trình công việc đó.
Nhà cung cấp
Nhà cung cấp thứ hai cung cấp gói dưới dạng cài đặt tùy chỉnh từ nhà cung cấp phần mềm gốc. Nhà cung cấp yêu cầu tất cả các thay đổi mã được gửi lại cho họ để tích hợp vào cơ sở mã của họ. Những thay đổi đáng kể về kiến trúc sẽ dẫn đến tăng chi phí trong tương lai trong quá trình di chuyển phiên bản do tùy chỉnh rộng rãi có liên quan; trong một số trường hợp, các lập trình viên thậm chí còn nói với tôi rằng họ sẽ hoàn toàn bỏ qua những thay đổi lớn như vậy và sẽ làm theo ý họ.
Phần mềm
Tôi không có ý kiến gì trong việc lựa chọn hoặc cài đặt phần mềm, vì vậy việc thay đổi nền tảng là không cần thiết.
Về môi trường của phần mềm, mỗi hóa đơn được in là một cuộc gọi duy nhất. Không có cơ sở in hàng loạt và vì cách thức cơ sở in được tích hợp vào hệ thống (và cả một số ngôn ngữ ngôn ngữ) nên việc tạo một trình bao bọc xung quanh API đó là không khả thi. Ngoài ra, phần này của chương trình gọi một chương trình khác thực hiện in hóa đơn, lần lượt gọi API in báo cáo, in một hóa đơn. Thiết kế khủng khiếp, tôi biết.
Biểu mẫu đầu vào là sự kết hợp kỳ lạ của tiêu đề biểu mẫu không có hộp đầu vào, nhưng có thể chứa các thành phần GUI khác. Các hộp đầu vào được xác định trong thời gian chạy.
Mục tiêu
Phần mềm sẽ ngăn người dùng in sai tất cả các giấy tờ.
Làm thế nào bạn sẽ giải quyết vấn đề này?