powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нестандартная задача
19 сообщений из 19, страница 1 из 1
Нестандартная задача
    #39845336
bbc116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может быть и стандартная...

Средствами Access (vbscript) при создании записей в таблице "Заказы" создается папка на сетевом диске в подпапке соответствующей статусу заказа. В дальнейшем заказ может изменять свой статус, например с "Ком. предл." на "В работе", при этом папка заказа переносится в соответствующую статусу заказа подпапку на диске (напр. путь к папке при создании записи такой: C:/Ком. предл./ФИО клинета, при изменении статуса - C:/В работе/ФИО клиента). Данная процедура (скрипт) работает без нареканий, но иногда происходит следующее:

Если у одного из пользователей открыта папка заказа, или файл из папки заказа (просто открыт, забыли или умышленно не закрывают), скрипт не срабатывает, что логично - папка или файл заняты. В этом случае в БД путь к папке меняется (путь формируется скриптом), а перемещения не происходит. Путь и папка заказа не связаны друг с другом.

Я не прошу конкретного решения данной задачи (хотя буду крайне признателен если таковой будет), прошу лишь поделиться мыслями на тему, как можно обойти этот камень преткновения. Сам я уже извелся над этой задачей и ничего путного не приходит в голову.
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845359
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вижу только одно решение....МОжет те кто больше знает меня поправят....
Менять архитектуру проекта. Статус документа определяется не его расположением, а соответствующей записью в БД.


Наверное можно дождаться ночи когда все спят и запустить процедуру перемещения когда никто не должен быть подключен к файлу.... но мне и это не нравится....
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845369
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bbc116, перепроверяйте создание папки, файла там где она должна быть (да простое If Dir(pathname)<>"" then... подойдет )
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845377
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311Я вижу только одно решение....Менять архитектуру проекта. Логично!
bbc116....Путь и папка заказа не связаны друг с другом.... Не логично!
( в таблице поля со статусом заказа не достаточно будет?)
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845383
bbc116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg197311,

Я понял что вы имеете ввиду. Уточняю:

В таблице заказы есть такие поля как "ФИО клиента", "Адрес", "Статус заказа", "Папка заказа"

Менеджер заносит данные в форме ФИО, Адрес, Статус заказа (выбирается из списка доступных значений: Ком. предл., В работе, Архив), сохраняет. Далее процедура формирует ссылку на папку заказа, где склеивает значения "C:/" & Статус заказа & "/" & ФИО & Адрес
Полученную строку процедура апдейтом подставляет к записи, получается что-то вроде C:/Ком. предл./ФИО_Адрес/(несколько папок)
Далее oFso.CreateFolder создает папки по ранее созданному пути.

Далее, когда заказчика устраивает коммерческое предложение, менеджер в форме заказа изменяет статус с Ком. предл. на В работе, аналогичная процедура берет текущую ссылку на папку C:/Ком. предл./ФИО_Адрес/ и заменяет "Ком. предл." на "В работе", после чего апдейтит путь к папке в БД, и oFso.MoveFolder перемещает папку проекта по новому пути - и вот как раз тут иногда, редко, происходит сбой - если в момент изменения статуса заказа у кого-либо из менеджеров, проектировщиков, бухгалтера - не важно - открыта папка заказа или файл из подпапок, ссылка на папку в БД обновляется, а папка не перемещается (Винда не может переместить папку которая уже открыта или содержит файл который открыт кем-либо в сети). Вот в чем дело

Прошу прощения что сразу не раскрыл всю суть проблемы, надеюсь это пояснение даст более полное понимание задачи.
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845388
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bbc116,

Вам же уже ответили... убирайте все промежуточные движения с папками, достаточно Статуса заказа и новой папки проекта заказа при его создании, делайте со статусом что угодно, папку не трогайте...
А вот потом уже, когда менеджер завершит заказ, пусть перемещает эту папку куда захочет или удаляет дабы не плодить мусор в каталоге заказов...
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845391
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagbbc116,
Вам же уже ответили... убирайте все промежуточные движения с папками, достаточно Статуса заказа и новой папки проекта заказа при его создании, делайте со статусом что угодно, папку не трогайте...
А вот потом уже, когда менеджер завершит заказ, пусть перемещает эту папку куда захочет или удаляет дабы не плодить мусор в каталоге заказов...+100500
А как же "национальная забава"-создать искусственные трудности и героически их преодолевать?
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845404
bbc116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,
Пожалуй, что я с Вами согласен, не зачем таскать папки при изменении статуса. Но начальство имеет другое мнение по этому поводу.

В качестве аргументации нашего с вами мнения я показал начальству скрины данной темы и своё мнение.

Начальник попросил найти способ проверять и при необходимости принудительно закрывать открытые папки и/или файлы заказов. Как думаете, возможен ли такой способ решения данной задачи? Умеет ли Windows принудительно закрывать файлы и папки, и если да, то как это реализовать из vbscript? Не прошу решения, прошу лишь совета :)
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845456
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bbc116Умеет ли Windows принудительно закрывать файлы и папки, и если да, то как это реализовать из vbscript? Не прошу решения, прошу лишь совета :)

Возможно это не сюда вопрос (не в этот форум) ... Если диск сетевой, - то как закрыть файл юзером 1, если его открыл юзер 2, причем оба скорее всего не администраторы...
Сообщение начальству чтоб разослало циркуляр на закрытие файла ?...
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845459
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bbc116Как думаете, возможен ли такой способ решения данной задачи?

С определенной степенью корректности общего процесса, можно поэкспериментировать с работой управляемых зеркал (как правило самописных)... Админы работают с основным сетевым ресурсом, все остальные с его зеркалом, тогда по барабану открыт в зеркале файл или нет, админ сможет сделать с папкой на сервере что угодно... ну как-то в эту сторону рыть...
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845476
bbc116
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

Буду экспериментировать, спасибо!
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845521
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bbc116,

можно еще так попробовать:
- ну, с новым заказом все понятно, как прежде получаем папку и путь в БД...
- а вот с изменением статуса делаем по-другому:
1. не перемещаем, а делаем копию с новым именем и получаем новый путь в БД.
2. пробуем удалить старый каталог, если удалось, то это удачная имитация штатного перемещения, если неудачная пишем старый путь (а возможно и новый) в отдельную таблицу протокола.
3. Ну а далее либо сервис, делающий заключительные операции, либо доп. действия по заключительным операциям при очередном новом изменении статуса очередного или этого же заказа...

Какие доп действия:
- пройтись по всей таблице протокола и сделать повторную попытку удаления старых каталогов,
в идеальном состоянии эта таблица должна быть пустой...
- возможно перед удалением нужно переписать файлы со старого каталога в новый или еще чего...
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845583
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я чё не понимаю-а зачем вообще эти телодвижения с каталогами?
Через какое-то время от формирования заказа,если он не выполнен(не подтвержден)менять ему статус и фсе...(сохранится история и всегда можно быстро найти не исполненные,добавив в тбл. поле "причинаНеисполнения", и выяснить причину этого)
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845592
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuМожет я чё не понимаю-а зачем вообще эти телодвижения с каталогами?

Скорее всего это уже рабочий процесс, изначально ориентированный на монопольную работу одного менеджера... теперь похоже движуха увеличилась, работают несколько менеджеров и есть желание поменьше переделывать код, а особенно общий алгоритм работы... в этой лабуде есть один плюс - по сути низовому менеджеру почти не нужен интерфейс программы, по названиям папок и так видно что в работе, что завершено,
мечта любителей нортон и виндовс командеров...
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845605
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какие то папки у сотрудников может быть доступ, в какие то нет, у части сотрудников доступа к программе нет вообще, достаточно распространенная практика кстати.
непонятно, какие проблемы проверить наличие, в случае наличия проблемы сделать копию, поменять статус и закинуть в соответствующую таблицу, предназначенную для хранения удаляемых путей. при открытии базы, срабатывает скрипт на отработку удаления всех папок/файлов по путям в этой папке. снова проверка. неудаляемые повторно снова в таблицу и создать запись или сделать отчет, что такие то записи не удаляются (может это защищенные файлы)
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845628
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вход-авторизация,разграничение прав. Не?
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845630
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku, проги нет ,есть смарт который может читать эксели из определенной папки, например сборка, доставка, даже розница. Принял, удалил из папки. в работе.отчитался занес данные сохранил в другую папку: сделано.
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845641
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может имеет смысл поставить тиражируемую систему документооборота/контроля?
...
Рейтинг: 0 / 0
Нестандартная задача
    #39845809
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckosdku, проги нет ,есть смарт который может читать эксели из определенной папки.... Ну вот так все понятно...Если бы так было в ТЗ....
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нестандартная задача
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]