- ищем полученный штрих-код в MSSQL табличке ASK_REC по полю box = полученному штрих-коду
- если такого ШК нет в таблице ASK_REC со Status = 0, то подать звуковое сообщение об ошибке
- если ШК найден в таблице ASK_REC со Status = 0, то:
- послать команду товарному серверу «GoodDesc.AddInfo»
- если Oracle вернул ошибку, то проверить ее ф-ией is_ora_bkp_error:
- если ф-ия вернула true, то прекратить работу программы
- иначе продолжить выполнение данного алгоритма (см. шаг ниже)
- если Oracle вернул ошибку, то проверить ее ф-ией is_ora_bkp_error:
- послать команду товарному серверу «Container.Accept», сохранив автосгенерированный command_gas.id
- если ошибка посыла команды, то проверить ее ф-ией is_ora_bkp_error:
- если ф-ия вернула true, то прекратить работу программы
- иначе:
- вывести в лог сообщение об ошибке
- подать звуковой сигнал об ошибке
- ask_rec.state:=2 - через "RunMSSQL"
- иначе (командой «UpdateMSSQLFromOracle») считать соотв. команду command_gas с сохраненным на предыдущем шаге command_gas.id
- если command_gas.state=1, то сделать апдейт таблицы mssql ASK_REC:
- state:=1,
- ask_id:= сохраненный command_gas.id
- если command_gas.state=2, то сделать апдейт таблицы mssql ASK_REC:
- state:=2,
- ask_id:= сохраненный command_gas.id, звуковой сигнал об ошибке
- если command_gas.state=1, то сделать апдейт таблицы mssql ASK_REC:
- если ошибка посыла команды, то проверить ее ф-ией is_ora_bkp_error:
- послать команду товарному серверу «GoodDesc.AddInfo»
Также в этом же цикле далее ищутся все записи в таблице mssql ask_rec у которых state=1. Для каждой найденной записи выбирается соотв. запись command_gas (и далее через команды «RunMSSQL» и «RefreshMSSQLContainer»):
- если command_gas.cell_out_name <> ask_rec.cell_name, то сделать update ask_rec.cell_name:=command_gas.cell_out_name
- если command_gas.zone_letter <> ask_rec.zone_letter, то сделать update ask_rec.zone_letter:=command_gas.zone_letter
- если у соотв. command_gas state=2, то делаем update соотв. ask_reс state:=2
- если у соотв. command_gas state=5, то делаем update соотв. ask_reс state:=5
- обновляем mssql таблицу container_placemnet по стандартному алгоритму