Текущее время: Пт, май 16 2025, 02:05

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Фоновая обработка
СообщениеДобавлено: Пн, окт 10 2005, 09:11 
Гость
Добрый день!

Кто-нибудь сталкивался с такой задачей: необходимо разработать прогу, которая в фоне (запускается периодическим job-ом тр. sm36) обрабатывает файлы определенного каталога.

Подскажите, как реализовать.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: ??
СообщениеДобавлено: Пн, окт 10 2005, 16:31 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
А в чём проблема - то? Единственное, что файлы надо обрабатывать не на локальной машине, а на сервере.

Просто делаешь отчёт по обработке и планируешь его. Там нет ничего "военного". :twisted:

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 16:52 
Гость
Мне необходимо считать содержимое каталога (получить имена файлов), некоторые файлы обработать, после чего скопировать файлы в архив, потом удалить их из рабочего каталога.

Сначала я написал программу, которая использует методы класса CL_GUI_FRONTEND_SERVICES. Все замечательно работает, но мне нужно запускать программу автоматически и периодически, для чего я организовал job (тр. sm36) и задал расписание запуска.

Программа перестала работать, потому что класс CL_GUI_FRONTEND_SERVICES не работает в бэкграунде/фоновом режиме.

Сейчас немного разобрался. Мне необходимо использовать Open Dataset для открытия файла, но как получить список файлов из каталога, как удалить файл или скопировать.

Немного подумав, приходит только один вариант - запускать команды ОС через ФМ SXPG_CALL_SYSTEM, например, dir для просмотра содержимого каталога.

Есть ли еще какие способы?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 16:58 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Для получения списка файлов или директорий на application server можно воспользоваться ФМ SUBST_GET_FILE_LIST. Со всем остальным должна помочь справка по OPEN DATASET.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 17:14 
Гость
У нас application server под AIX, мы пользуемся SXPG_CALL_SYSTEM.
Получил внутреннюю табличку с именами файлов и обрабатываешь в loop. Нет проблем. Если надо - могу и текст подарить.
Работает в фоне и именно так, как требуется: директорию обработал, в архив сбросил.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 17:19 
Гость
Если не трудно, вышлите пример на kdal@inbox.ru
Спасибо.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 17:56 
Гость
Выслать было не трудно, но такой адрес неизвестен - письмо вернулось :(


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 18:23 
Гость
DATA: BEGIN OF strec, "структура для внешних файлов
*****
DATA: END OF strec.

DATA: param LIKE sxpgcolist-parameters,

* Имена файлов
nmfile(50), "val для обработки
offnf like sy-index, "смещение в имени файла
nfo(50) VALUE '/tmp/provesv/', "имя для всех, кроме ....
nfm(50) VALUE '/tmp/provmushket/', "имя для .....
text(32),
codemv LIKE extcmdexex-exitcode.

START-OF-SELECTION.

PERFORM call_system.
IF lin = 0. EXIT. ENDIF.

LOOP AT nfiles.

len = strlen( nfiles-message ).
CLEAR nmfile+offnf.
WRITE nfiles-message TO nmfile+offnf(len).

OPEN DATASET nmfile IN TEXT MODE.
REFRESH tstrec.
DO.
CLEAR strec.
READ DATASET nmfile INTO strec.
IF sy-subrc <> 0.
****** обработка конца файла
PERFORM create_rec.
EXIT.
ENDIF.

MOVE-CORRESPONDING strec TO .......
*******
APPEND ......

ENDDO.

ENDLOOP. "nfiles

WRITE: / 'finish'.

END-OF-SELECTION.

FORM call_system.

* Команда вводится в систему через транз SM69
* Команда ZLS - только команда операционки LS без параметров

CALL FUNCTION 'SXPG_CALL_SYSTEM'
EXPORTING commandname = 'zls'
additional_parameters = param
* parameters = param
TABLES
exec_protocol = nfiles
EXCEPTIONS
*******
OTHERS = 12.
DESCRIBE TABLE nfiles LINES lin.

ENDFORM. " CALL_SYSTEM

*----------------------------------------------------------------------*
FORM create_rec.

DESCRIBE TABLE tstrec LINES lin.
WRITE: / lin, 'записей в файле', nmfile.
SORT tstrec.

* файл перенести в /home/ivc/eid или
* в /home/ivc/mushket
if xmu eq 'X'.
CONCATENATE '-f' nmfile '/home/ivc/mushket/' INTO param
SEPARATED BY ' '.
else.
CONCATENATE '-f' nmfile '/home/ivc/eid/' INTO param SEPARATED BY ' '.
endif.

CALL FUNCTION 'SXPG_CALL_SYSTEM'
EXPORTING
commandname = 'ZMV'
additional_parameters = param
IMPORTING
* STATUS =
exitcode = codemv
TABLES
exec_protocol = mvf
EXCEPTIONS
********
illegal_command = 11
OTHERS = 12.

ENDFORM. " CREATE_REC


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

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


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

Сейчас этот форум просматривают: Ahrefs [Bot]


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

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