Цитата:
Сообщение от
mazzy
Предположим у нас есть RunBaseBatch.
Он делает что-то тяжелое. Мы конечно же хотим сделать так, чтобы он мог работать на пакетном сервере.
Но этот класс забирает данные из какого-нибудь файла, который находится на клиенте.
Как и куда правильно вставить действия, которые должны выполняться на клиенте?
Сейчас правильный способ видится таким:
* разбить процесс на два runBaseBatch класса: первый будет иметь свойство RunOn=Client, второй - RunOn=Server
* первый в методе run должен будет выполнить клиентские действия, создать второй класс на сервере и передать ему параметры и данные
Но что-то как-то слишком сложно. Очень напоминает overprogramming.
Может существует другой способ?
Тяжелое, не тяжелое, а действия принципиально те же. Хватаем и тащим. И табуретки и пианино.
Клиентом пишем в базу. Можно при желании уменьшить обращения но это уже оптимизация редко нужная. Временная DB таблица или staging если нужна история.
Сервер берет из базы. В пакетнике или нет, не так важно.
Смысла жонглировать классами - не вижу. Практически всегда вдруг возникает требование видеть историю или статус валидации, а это staging. А там где staging все приходит к ParmId и Line Status и может еще пара параметров типа даты и пр.