SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Application server



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Sun Dec 28, 2008 4:05 am    Post subject: Application server Reply with quote

вопрос про Application server.

какие действия с файлами я могу на нем производить?
то что читать и писать в фалы можно - это понятно...
а как создать там пресловутый DBF или XLS файлик?
и могу ли я их потом зажать в архив? запустив консольный архиватор например?

_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Sun Dec 28, 2008 10:27 am    Post subject: Reply with quote

Сразу вариант, запускать внешнюю программу - zip
Back to top
View user's profile Send private message Blog Visit poster's website
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Tue Feb 24, 2009 3:49 pm    Post subject: Reply with quote

А можно из ABAP создавать папки на Application server.
есть переменная стандартная DIR_HOME.
В ней хотелось бы создать свою подпапку? Возможно такое?

_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Feb 24, 2009 4:27 pm    Post subject: Reply with quote

Можно вызовом внешней программы через
CALL FUNCTION 'SXPG_CALL_SYSTEM'

Предварительно Вам нужно создать команду ZMKDIR в sm69 для ANYOS.
Back to top
View user's profile Send private message Blog Visit poster's website
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Tue Feb 24, 2009 5:22 pm    Post subject: Reply with quote

спасибо... сложновато конечно но ... попробую.
И сразу может быть подскажете, есть команда для сжатия файла ?
что-то типа compress ?
как это работает для unix?

_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Feb 24, 2009 6:10 pm    Post subject: Reply with quote

может лучше gzip?
Back to top
View user's profile Send private message Blog Visit poster's website
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Tue Feb 24, 2009 6:12 pm    Post subject: Reply with quote

Как использовать?
_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Tue Feb 24, 2009 6:16 pm    Post subject: Reply with quote

Так же, через создание внешний команды
gzip file.txt создаст сжатый файл file.txt.gz

gzip -d file.txt.gz распакует обратно в file.txt
Back to top
View user's profile Send private message Blog Visit poster's website
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Tue Feb 24, 2009 6:18 pm    Post subject: Reply with quote

Спасибо! Направили хорошо! буду все пробовать.
_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Wed Feb 25, 2009 6:15 pm    Post subject: Reply with quote

Все работает. Даже страшно ... как легко можно в систему сервера влезть...

Созрел еще вопросик про ApplServer.
Embarassed

1. как проверить существование пути на сервере?

2. в хелпе раскопал вот такое:
Code:
OPEN DATASET DSN FOR OUTPUT FILTER 'compress'.
 

как узнать список команд какие еще можно использовать?
и почему не работает
Code:
 'compress'.
в данном случае.
Во внешних командах его не прописано... но вот в хелпе есть, как пример ?

_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Wed Feb 25, 2009 7:10 pm    Post subject: Reply with quote

Crystal_Ra wrote:
Все работает. Даже страшно ... как легко можно в систему сервера влезть...

Не забывайте про систему полномочий Wink

По поводу архивирования: была где-то тема про класс CL_ABAP_GZIP Smile

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Crystal_Ra
Старший специалист
Старший специалист



Joined: 12 Mar 2008
Posts: 108
Location: Белгород

PostPosted: Wed Feb 25, 2009 7:16 pm    Post subject: Reply with quote

To Удав

система 4-6 нету здесь CL_ABAP_GZIP - и все тут...

_________________
(SAP) Система нипель... выпускает лучше, чем впускает!

Crystal_Ra
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Feb 25, 2009 9:55 pm    Post subject: Reply with quote

Quote:
Все работает. Даже страшно ... как легко можно в систему сервера влезть...
Вся отвественность за проверку полномочий в программе лежит на программисте.
Перед записью в файл проверьте полномочия.
Code:
  CALL FUNCTION 'AUTHORITY_CHECK_DATASET'
       EXPORTING
            activity         = 'WRITE'
            filename         = filename
       EXCEPTIONS
            no_authority     = 1
            activity_unknown = 2.


1)
Quote:
For application server file, generally we open it first within the event 'AT SELECTION-SCREEN'.If it can be opened successfully, this file exists. After open, do not forget to close it.
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN.
OPEN DATASET p_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.

IF sy-subrc = 0.
CLOSE DATASET p_file.
ELSE.
MESSAGE 'the input file does not exist.' TYPE 'E'.
ENDIF.
There is also a Function Module can be used, named 'OCS_GET_FILE_INFO'.

DATA: gdt_ocs_file TYPE TABLE OF ocs_file.
PARAMETERS p_file TYPE dxfile-filename.

AT SELECTION-SCREEN.
CALL FUNCTION 'OCS_GET_FILE_INFO'
EXPORTING
dir_name = p_file
file_name = '*'
TABLES
dir_list = gdt_ocs_file
Importing parameter 'file_name' is set as '*' means all the file in the specfied directory will be get and stored in the internal table 'gdt_ocs_file'. If the input file is included in the internal table, this file exists.
Для проверки существования директории, думаю, самое простое, попытаться создать в ней файл или (?) использовать FM OCS_GET_FILE_INFO для несуществующего файла и анализировать EXCEPTION = NOT_A_DIRECTORY.

2) не факт, что в вашей unix системе есть команда compress. И если даже есть, не факт, что путь к ней прописан в PATH.

например, в Linux, что у меня под рукой, compess вообще не установлена. на FreeBSD, под которой крутится этот сайт, она лежит в пути '/usr/bin/compress'.

Попробуйте так написать.

Code:
DATA: cmd(80).
MOVE '/usr/bin/compress' TO cmd.
OPEN DATASET file FILTER cmd.

для декомпресса команда '/usr/bin/uncompress'

Команд под unix много, в качестве архиватора можно использовать наверно любую, поддерживающую работу с pipe.
Тот же gzip (/usr/bin/gzip) и его алиас для декомпрессии gunzip тоже работают с pipe каналом.


Example
Quote:

Under UNIX, the following

DATA dsn(20) VALUE '/usr/test.dat'.

OPEN DATASET dsn FOR OUTPUT FILTER 'compress'

IN TEXT MODE ENCODING DEFAULT.


opens the file dsn and writes the data to the file in compressed form using the UNIX command compress.


OPEN DATASET dsn FOR INPUT FILTER 'uncompress'
IN TEXT MODE ENCODING DEFAULT.


reads the file again.
Back to top
View user's profile Send private message Blog Visit poster's website
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Thu Feb 26, 2009 11:28 am    Post subject: Reply with quote

vga wrote:
Вся отвественность за проверку полномочий в программе лежит на программисте.

OPEN DATASET сам проверяет полномочия Wink

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Thu Feb 26, 2009 11:42 am    Post subject: Reply with quote

Удав wrote:
vga wrote:
Вся отвественность за проверку полномочий в программе лежит на программисте.

OPEN DATASET сам проверяет полномочия Wink


Вы правы, но проверить все же стоит по другой причине Smile
Quote:

If the result of the automatic authorization check is negative, a runtime error occurs.

You should therefore check the authorization in your ABAP program before accessing the file using the function module AUTHORITY_CHECK_DATASET.
Back to top
View user's profile Send private message Blog Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.