06 · Development · Weak network and offline
That moment of no network in the cold store must not become two receipts
The mobile engineer lets phones and handhelds finish the job under weak network, scan gun, and gloves. Offline must not become two postings. Whether the gun and printer work is proven by compatibility testing.
The mobile engineer owns device, network, and the hand
The same arrival or receiving task is a table in the back office and weak network, gloves, and one hand on the floor. The mobile engineer’s mark is treating these constraints as features, not as last-week adaptation. When the network drops, is the button disabled, or does the request stay local. If it stays local, it must have a request ID. After the network returns, it submits once. Automatic retry with no request ID is the most common source of double posting on mobile. Gun key mode and printer paper are proven by the Compatibility tester on the acceptance device. This role implements the queue and offline visibility.
He does not write a second set of business rules. Whether qty can post follows the server. The phone can first record the operator’s intent. It cannot locally show complete and let the next step continue. Offline state must be visible: this document is on the phone, not yet on the server. At shift handoff, the unuploaded queue must show qty and document number to the next shift. Another device must not generate a new request. The queue belongs to the document, not to a handheld.
Install, upgrade, and account
Warehouse devices often cannot freely install store versions. The mobile engineer must provide a distributable package, a version number, and a rollback. An upgrade must not clear a local queue that has not been submitted. Login must fit shared devices: after the previous shift logs out, the next shift cannot see the contents of unfinished documents, but the server documents remain. He writes this into the release notes so the trainer does not treat “uninstall and reinstall” as the universal answer. Uninstall drops the unconfirmed receipt still in the queue.
Receiving that dropped in the elevator
At one warehouse, the handheld goes into an elevator from the dock back to the office. There is no wireless in the elevator. The old version auto-resent after timeout. The warehouse clerk left the elevator seeing two success toasts. Stock increased twice. The mobile engineer changed it: on submit, generate a request ID and write it to the local queue; the screen shows pending upload; timeout does not create a new request; after the elevator, the queue only replays the same ID; if the server returns already exists, mark local complete. He walked the elevator twice with the device. First time antenna off, second time restored. Stock increased once.
Glove taps follow the prototype’s conclusion. He retests on the terminal, not with thin fingers on his own phone. He also checks the handheld’s enterprise certificate and clock. An expired certificate stops the whole queue at pending upload. People only see a spinner. A wrong clock makes offline submit time later than the server. Day-end will not match the shift. Both go into device patrol. On logout of a shared device, the local queue must say how many documents are not uploaded, and allow the original account to reconnect and finish the upload. The prompt must not block going off shift, but the next shift must know these documents have not reached the server. After a cold-store terminal auto-dims, the pending-upload yellow bar must still be visible. An invisible queue is treated as already successful. He makes the key state a system notification, not only a small line on the page. When roaming drops, the queue still only replays the same request ID. This page does not rewrite the device matrix as a second test suite. Enterprise certificate expiry goes on the patrol calendar, with an alert one week ahead, not discovered as a whole-warehouse spinner at morning peak. If clock calibration fails, this terminal is forbidden to submit and may only view the queue, so documents that will not match the shift are not sent up.