Текущее время: Пн, авг 04 2025, 07:58

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Как правильно указать путь сохранения файла
СообщениеДобавлено: Чт, янв 31 2008, 11:44 
Ассистент
Ассистент

Зарегистрирован:
Пт, ноя 30 2007, 10:29
Сообщения: 32
Мне надо сохранить текстовый файл на сервере в свободном для доступа каталоге со след. путем:
\\mhrt-x1\public\docs\my_file.txt
Но при сохранении получаю ошибку.

Подозреваю, что нужно как-то иначе указать путь, потому что при сохранении в локальный файл на моем PC (напр., C:\Temp\my_file.txt) все нормально работает.

Может кто подскажет как правильно написать путь, чтобы SAP это понял?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 12:00 
Ассистент
Ассистент

Зарегистрирован:
Пт, ноя 30 2007, 10:29
Сообщения: 32
Code:
.....
DATA:  var_file LIKE rlgrap-filename,
              path(50) VALUE 'C:\Temp\'.
.....
*-------------------------------- File path
var_file+0(50)   = path.
var_file+50(40)  = 'my_file'.
var_file+90(1)   = '.'.
var_file+91(3)   = 'txt'.
CONDENSE var_file NO-GAPS.     

*-------------------------------- Save in file
CALL FUNCTION 'WS_DOWNLOAD'
   EXPORTING
     codepage         = 'IBM'
     filename          = var_file
     filetype            = 'ASC'     
   TABLES
     data_tab            = itab       
   EXCEPTIONS
     file_open_error        = 01
     file_write_error        = 02     
     invalid_filesize         = 03
     invalid_table_width = 04
     invalid_type             = 05
     no_batch                  = 06
     unknown_error        = 07.

IF sy-subrc <> 0.
  MESSAGE 'Error by download' TYPE 'E'.
  EXIT.
ENDIF.

Если я для path вместо 'C:\Temp\' напишу '\\mhrt-x1\public\docs\', то программа вылетает с ошибкой file_write_error (02)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 12:13 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
cbw07 написал(а):
Code:
.....
...
*-------------------------------- Save in file
CALL FUNCTION 'WS_DOWNLOAD'
...
...

Если я для path вместо 'C:\Temp\' напишу '\\mhrt-x1\public\docs\', то программа вылетает с ошибкой file_write_error (02)


Подключите '\\mhrt-x1\public\docs\' как диск, делов-то

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 12:14 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
поиск open dataset


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 13:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Дело в том, что путь к файлу у вас не локальный, а сетевой (т.н. UNC-имя). WS_DOWNLOAD с такими работать не умеет.
Так что, действительно, проще средствами операционной системы сервера приложений этот путь подмонтировать как локальный.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 15:40 
Ассистент
Ассистент

Зарегистрирован:
Пт, ноя 30 2007, 10:29
Сообщения: 32
Это как?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 16:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
cbw07 написал(а):
Это как?
Что как?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 17:46 
Ассистент
Ассистент

Зарегистрирован:
Пт, ноя 30 2007, 10:29
Сообщения: 32
как "этот путь подмонтировать как локальный"?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 17:59 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
cbw07 написал(а):
как "этот путь подмонтировать как локальный"?

За Linux не скажу, а в винде это "Мой компьютер"-сервис-подключить сетевой диск.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 21:35 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Я бы посоветовала заменить на OPEN DATASET, как тут уже правильно подсказали. Кстати, вместо этого ФМ SAP уже рекомендует класс CL_GUI_FRONTEND_SERVICES в ECC 6.0.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 31 2008, 21:58 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Jelena написала:
Я бы посоветовала заменить на OPEN DATASET

Извините Jelena, а зачем? Мне кажется - это translation problem :) Автор топика хотел сохранить файл не на сервере приложений, а на каком-то локальном сервере в своем ethernet...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 01 2008, 11:28 
Ассистент
Ассистент

Зарегистрирован:
Пт, ноя 30 2007, 10:29
Сообщения: 32
А вот еще пара вопросов назрела...
Я в программе вывожу табличку в Excel

Потом я вызываю метод
Code:
      CALL METHOD OF h_map 'SAVEAS'
        EXPORTING
        #1 = f_path.
и сохраняю экселевский файл на своем PC ( f_path = C:\Temp\MyExcel.xls).
А если я передаю f_path = \\mhrt-x1\public\docs\MyExcel.xls то ничего не сохраняется...
Вариант с подключением сетевого диска как локального не пойдет.
Нужен вариант программного сохранения

Я подумал, может сделать так: сохранять файл как я его сейчас и сохраняю, а потом с помощью OPEN DATASET прочитать его и пересохранить уже на сервере... Но сразу возникла проблема при попытке открыть DATASET с путем к локальному файлу:
Code:
  OPEN DATASET 'C:\Temp\MyExcel.xls' FOR INPUT
    IN TEXT MODE MESSAGE text ENCODING DEFAULT.
  IF sy-subrc NE 0.
    MESSAGE text TYPE 'E'.
    EXIT.
  ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 01 2008, 12:22 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
cbw07 написал(а):
А вот еще пара вопросов назрела... если я передаю f_path = \\mhrt-x1\public\docs\MyExcel.xls то ничего не сохраняется...
Это тот же самый вопрос.

cbw07 написал(а):
Вариант с подключением сетевого диска как локального не пойдет.
Нужен вариант программного сохранения

Ну, это же на сервере приложений, т.е. один раз и навсегда.
Более того, нехорошо зашивать в программе как константу. Тогда, если он изменится, достаточно будет поменять настройки на сервере приложений.

cbw07 написал(а):
OPEN DATASET прочитать его

Вы запутались. Эта команда работает с файлами на сервере приложений.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 01 2008, 20:43 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
John Doe написал:
Jelena написала:
Я бы посоветовала заменить на OPEN DATASET

Извините Jelena, а зачем? Мне кажется - это translation problem :) Автор топика хотел сохранить файл не на сервере приложений, а на каком-то локальном сервере в своем ethernet...


А почему бы и нет? :)

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

У нас почти все программы рассчитаны на background и используется OPEN DATASET в сочетании с Z табличкой, где хранятся пути. Проблем никогда не возникало.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 04 2008, 11:18 
Ассистент
Ассистент

Зарегистрирован:
Пт, ноя 30 2007, 10:29
Сообщения: 32
Проблема решилась след. образом:
вместо mhrt-x1 в пути файла записал жестко прописанный IP-адрес...
Стало работать
А с mhrt-x1 почему-тоне работает :roll:


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

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


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

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


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

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