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

Часовой пояс: 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 часа


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

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


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

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