Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема начата: Паганель от Сентябрь 26, 2009, 03:18:22 pm

Название: Запуск проги в фоне и чтение xls файла
Отправлено: Паганель от Сентябрь 26, 2009, 03:18:22 pm
Есть: есть прога, которая читает *.xls файл и по нему создает документы.
Надо: запускать эту прогу в фоне, скажем каждый час

Возможно ли такое?
Название: Re: Запуск проги в фоне и чтение xls файла
Отправлено: Uukrul от Сентябрь 26, 2009, 03:49:31 pm
В принципе возможно.. но по факту все это будет довольно сложно реализовать. По шагам начну из далека. В SAP в общем виде оно R/3, потому что если совсем на пальцах, то система разделена на 3 уровня:
В общем виде пока небыло таких средств как ALV локальная станция занималась только рисованием экранчиков, которые ей передавал сервер приложений, кстати в старые времена версий 3.х размер такого экрана по сети занимал меньше 1 Кб и  с SAP-ом можно было работать по GSM-Data на скорости 9600 очень даже комфортно... а про 19200 я вообще молчу это уже была лафа. Плюсом этого было то, что даже после падения клиента на локальной станции (например связь разорвалась), можно было зайти по новой и в момент загрузки клиента сказать типа восстановить сеанс и вы попадали ровно в то место, где вас выбросило из системы, при этом если это был какой-то десятый экран транзакции, то вы попадали именно на него, с сохранением всего ввода предыдущих девяти экранов. Ну потом мы получили ALV и еще кучу всего и за красоту пришлось заплатить потерей восстановления сеанса и ... ну хоть как-то работать можно с 32600, а вообще меньше чем 56200 как-то грустно. Так вот это я к тому, что локального клиента стали грузить разными интересными фишками и одной из таких стало возможность вызова OLE-объектов или как раньше они были ActivX-компонеты с локальной станции, это дало возможность обработки из программы файлов закрытых форматов, тот же EXCEL, WORD и т.д. так как фактически прочитав файл вызывался компонент который этот файл разшифровывал для вас а уже получил расшифрованные данные вы толкали их серверу приложений SAP в своей программе, т.е. сервер приложений сам по себе про формат .xls как бы не в курсе.

Теперь идем к своей программе которая будет читать такой формат в фоне, это сразу накладывает ограничение в том плане, что прочитать файл то она сможет, например через OPEN DATASET, но что с ним делать дальше? Значит читать смысла нет, значит читать должен OLE-компонент MS-офиса, а вот тут уже варианты значит должен быть офис на сервере приложений как один вариант или как второй должна быть машина, где это стоит оофис и к этой машине обеспечена связь с сервера приложений в любой момент, чтобы можно было по сети дернуть компоненты офиса, которые в свою очередь прочитают файл и вернут прочитанные данные например в формате внутренней таблицы с которой можно работать в SAP. Так как сервер приложений под виндой бывает, но вот ставить его в продуктив это уже к админам + там надо ставить кусок офиса, а это тоже к ним, а они вообще от такой связки могут придти в плохое расположение духа, то мой вариант ставим транзитную машину, пишем на делфи, си, васике обработчик файлов который читает файлы преобразовывает их в текстовый формат и кладет в каталог доступный серверу приложений, а тот в свою очередь в цикле или по событию появления файла запускает программу которая обрабатывает такой файл и обратно например выкладывает протокол обработки. Такая связка работает железо-бетонно и без проблем. Более сложный вариант делаем завязку на RFC-вызовы, ну это тоже есть машина которая получает файлы, читает их, а затем дергает SAP передав ему уже прочитанные данные, т.е. удаленный вызов RPC (в сапе оно RFC).

В общем где-то так... или еще как вариант поставить еще один маленький сервер приложений под виндой (не знаю возможно ли иметь сервера приложений под разными ОС), там сделать пару процессов. причем только фоновых например, там же поставить офис и запускать программу с привязкой к этому серверу приложений...
Название: Re: Запуск проги в фоне и чтение xls файла
Отправлено: №1 от Сентябрь 26, 2009, 04:27:22 pm
Не реклама... используем уже 6 лет
(http://www.winshuttle.com/assets/images/SHUTTLE_middle_4.jpg)
Название: Re: Запуск проги в фоне и чтение xls файла
Отправлено: Паганель от Сентябрь 26, 2009, 04:42:48 pm
а wishuttle это что?
Название: Re: Запуск проги в фоне и чтение xls файла
Отправлено: №1 от Сентябрь 26, 2009, 04:45:28 pm
Можно с подробностями на сайте ознакомиться. Он много чего может :)
http://www.winshuttle.com (http://www.winshuttle.com)