Выполнить ручной sweep и сохранить подтверждённые остатки

Фактические данные получены через расширение interbase и локальный Firebird. Собственные учебные базы и промежуточные резервные файлы удалены после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
Первоначальный остаток Cable3
Пробное значение до rollback99
Перед sweep: Cable / Clamp7 / 0
Сервисная команда принятада
Ответ службы прочитанда
После sweep: Cable / Clamp7 / 0
Подтверждённые товары сохранилисьда
Строки и дополнительные наблюдения
{
    "initial": [
        {
            "ID": 1,
            "TITLE": "Cable",
            "QTY": 3
        },
        {
            "ID": 2,
            "TITLE": "Clamp",
            "QTY": 0
        }
    ],
    "uncommitted_stock": 99,
    "before": [
        {
            "ID": 1,
            "TITLE": "Cable",
            "QTY": 7
        },
        {
            "ID": 2,
            "TITLE": "Clamp",
            "QTY": 0
        }
    ],
    "after": [
        {
            "ID": 1,
            "TITLE": "Cable",
            "QTY": 7
        },
        {
            "ID": 2,
            "TITLE": "Clamp",
            "QTY": 0
        }
    ],
    "service_started": true,
    "completion_kind": "bool",
    "completion_has_text": false
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.