Текущее время: Вс, июл 20 2025, 18:45

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: проверка окончания записи в файл
СообщениеДобавлено: Ср, дек 21 2011, 15:03 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Добрый день,

Есть необходимость сделать кой-какие действия строго после окончания процедуры записи файла.
Нет уверенности в том, что если написать данные действия в коде сразу за функцией выгрузки в файл, то на момент их исполнения файл уже будет полностью записан.

Пока что на ум приходит только топорное решение - подсчет ожидаемого размера файла до записи, занесение его в память и рекурсивный вызов "матрешкой" типа
Code:
FORM timeout.
  IF размер файла еще не равен ожидаемому.
     ПОДОЖДАТЬ НЕКОТОРОЕ ВРЕМЯ.
     PERFORM timeout IN PROGRAM zprogram.
  ENDIF.
  ВЫПОЛНИТЬ ВСЯКОЕ РАЗНОЕ.
ENDFORM timеout.

который будет крутиться до тех пор, пока файл не запишется.

А есть ли какое-нибудь более вменяемое решение для таких целей?
Заранее благодарю!

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка окончания записи в файл
СообщениеДобавлено: Ср, дек 21 2011, 18:49 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
dedzinatajs написал(а):
Добрый день,

Есть необходимость сделать кой-какие действия строго после окончания процедуры записи файла.
Нет уверенности в том, что если написать данные действия в коде сразу за функцией выгрузки в файл, то на момент их исполнения файл уже будет полностью записан.

Пока что на ум приходит только топорное решение - подсчет ожидаемого размера файла до записи, занесение его в память и рекурсивный вызов "матрешкой" типа
Code:
FORM timeout.
  IF размер файла еще не равен ожидаемому.
     ПОДОЖДАТЬ НЕКОТОРОЕ ВРЕМЯ.
     PERFORM timeout IN PROGRAM zprogram.
  ENDIF.
  ВЫПОЛНИТЬ ВСЯКОЕ РАЗНОЕ.
ENDFORM timеout.

который будет крутиться до тех пор, пока файл не запишется.

А есть ли какое-нибудь более вменяемое решение для таких целей?
Заранее благодарю!

А каким образом пишется файл?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка окончания записи в файл
СообщениеДобавлено: Чт, дек 22 2011, 14:54 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Пишется так:
OPEN DATASET lv_file FOR OUTPUT IN BINARY MODE
LOOP AT gt_texts.
TRANSFER gt_texts TO lv_file.
ENDLOOP.
CLOSE DATASET lv_file_tmp.

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

PERFORM edi_processing(rsnasted) USING help_returnc us_screen.

Файл большой и нет уверенности что когда iDoc его посылает, то он записался на сервер полностью.

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка окончания записи в файл
СообщениеДобавлено: Чт, дек 22 2011, 19:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
dedzinatajs написал(а):
...Нет уверенности в том, что если написать данные действия в коде сразу за функцией выгрузки в файл, то на момент их исполнения файл уже будет полностью записан.
...
А есть ли какое-нибудь более вменяемое решение для таких целей?
...

1. На чем основаны ваши сомнения, были прецеденты? Если нет, то так можно опасаться и падения метеорита на сервер. :)
2. По идее, пока производится запись в файл, то попытка открыть его же на изменение должна быть неудачной. См. FOR UPDATE

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка окончания записи в файл
СообщениеДобавлено: Пт, дек 23 2011, 19:29 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
Parazit написал:
1. На чем основаны ваши сомнения, были прецеденты? Если нет, то так можно опасаться и падения метеорита на сервер. :)
2. По идее, пока производится запись в файл, то попытка открыть его же на изменение должна быть неудачной. См. FOR UPDATE


1. Революционное пролетарское чутье ;)
2. Как цель тут выдвигается не "попытка открыть его же на изменение должна быть неудачной", а "попытка зачитать файл должна быть удачной, ибо гарантированно будет происходить после окончания процесса записи файла" ;)

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проверка окончания записи в файл
СообщениеДобавлено: Пт, дек 23 2011, 20:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
dedzinatajs написал(а):
1. Революционное пролетарское чутье ;)
2. Как цель тут выдвигается не "попытка открыть его же на изменение должна быть неудачной", а "попытка зачитать файл должна быть удачной, ибо гарантированно будет происходить после окончания процесса записи файла" ;)

А ваше пролетарское чутье не подсказывает, что как только "попытка открыть его же на изменение" станет удачной, то можно считать процесс записи завершенным, а следовательно "попытка зачитать файл должна быть удачной, ибо гарантированно будет происходить после окончания процесса записи файла" ?!

p.s.
Мне моё чутье подсказывает, что вы либо не во все условия задачи нас посвящаете, либо я чего то не знаю о процессе записи файла - разве он выполняется асинхронно?!.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проверка окончания записи в файл
СообщениеДобавлено: Вт, дек 27 2011, 15:41 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, май 19 2010, 15:54
Сообщения: 77
dedzinatajs написал(а):
либо я чего то не знаю о процессе записи файла - разве он выполняется асинхронно?!


Вот как раз именно потому, что я крайне мало знаю об анатомии процесса записи в файл, то в не-асинхронности данного действия я не был 100%-но уверен, посему и спрашивал совета у многоуважаемых посетителей форума ;)

Иными словами, конструкция

CLOSE DATASET lv_file_tmp.
CALL FUNCTION 'FILE_GET_NAME' [различные параметры]
[далее идут экспорты имени файла в память и подготовка к вызову iDoc который шлет этот файл аттачментом.]
PERFORM edi_processing(rsnasted) USING help_returnc us_screen.

однозначно обеспечит то, что в edi_processing приаттачится полностью записанный файл?

_________________
F5-F6-F7-F8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB