+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средстваТема:
|- создание файла в фоновом режиме




Автор Тема: создание файла в фоновом режиме  (Прочитано 7005 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
создание файла в фоновом режиме
« : Октябрь 28, 2013, 09:36:39 am »
здраствуйте.
кто-нибудь знает как можно создать файл в фоновом режиме ? ФМ GUI_DOWNLOAD предназначен только для диалогового режима. в se37 много разных ФМ есть с *DOWNLOAD* но какой из них подходит не знаю. Мне нужно простой текстовый файл на сервере создать фоново.
или нужно через dataset работать...что-то вроде этого

Код: You are not allowed to view links. Register or Login
data: file TYPE string,
      begin of ls_address,
      line(400) type c,
      end of ls_address,
      lt_address LIKE ls_address OCCURS 0.

ls_address = 'test 0'.
APPEND ls_address TO lt_address.
ls_address = 'test 1'.
APPEND ls_address TO lt_address.
ls_address = 'test 2'.
APPEND ls_address TO lt_address.
ls_address = 'example 0'.
APPEND ls_address TO lt_address.
ls_address = 'example 1'.
APPEND ls_address TO lt_address.
ls_address = 'example 2'.
APPEND ls_address TO lt_address.
DATA mess TYPE string.

file = 'C:\Users\USER\Desktop\' && sy-datum && sy-UZEIT && '.txt'.
OPEN DATASET file FOR APPENDING
IN TEXT MODE ENCODING DEFAULT MESSAGE mess.
IF sy-subrc ne 0.
  MESSAGE mess TYPE 'I'.
ENDIF.

LOOP at lt_address INTO ls_address.
* Transfer the Recored to application server
TRANSFER ls_address TO file.

ENDLOOP.

CLOSE DATASET file.
« Последнее редактирование: Октябрь 28, 2013, 09:40:12 am от jacknk88 »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 685
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: создание файла в фоновом режиме
« Ответ #1 : Октябрь 28, 2013, 10:04:25 am »
You are not allowed to view links. Register or Login
или нужно через dataset работать...что-то вроде этого
Ну вы сами уже ответили на свой вопрос. По поводу кодировок при использовании dataset можно почитать: You are not allowed to view links. Register or Login

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Re: создание файла в фоновом режиме
« Ответ #2 : Октябрь 28, 2013, 10:24:55 am »
дело в том что мне нужно сначала создать этот файл, а  open dataset только открывает вроде и не создает....по крайней мере, у меня не получилсоь создать

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Re: создание файла в фоновом режиме
« Ответ #3 : Октябрь 28, 2013, 10:55:00 am »
You are not allowed to view links. Register or Login
дело в том что мне нужно сначала создать этот файл, а  open dataset только открывает вроде и не создает....по крайней мере, у меня не получилсоь создать
а нет...должен создать

Opens the file for writing. If the file already exists, its contents are deleted unless it is already open. If it is open, the positioning is set back to the start of the file. If the file does not exist, it is created.

только вместо FOR APPENDING надо использовать FOR OUTPUT...но и так не выходит
« Последнее редактирование: Октябрь 28, 2013, 10:57:33 am от jacknk88 »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 685
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: создание файла в фоновом режиме
« Ответ #4 : Октябрь 28, 2013, 10:58:44 am »
You are not allowed to view links. Register or Login
только вместо FOR APPENDING надо использовать FOR OUTPUT...но и так не выходит
У вас проблема с полномочиями скорее всего. Поэтому файл и не создается, т.е. пользователь от которого идет создание файла для этой файловой системы не авторизован. Решайте вопрос с базисом.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Re: создание файла в фоновом режиме
« Ответ #5 : Октябрь 28, 2013, 11:44:49 am »
You are not allowed to view links. Register or Login
У вас проблема с полномочиями скорее всего. Поэтому файл и не создается, т.е. пользователь от которого идет создание файла для этой файловой системы не авторизован. Решайте вопрос с базисом.
так значит при использовании ФМ GUI_DOWNLOAD  и OPEN DATASET разные полномочия проверяются...потому что с ФМ все работает в диалоговом решиме

у меня еще вопрос возник: на каких серверах OPEN DATASET позволяет записать файл...на любых на которые у пользователя есть полномочия?


еще интересно вот что...я после создания файла считываю данные с него и все получается, но файлика на сервере нет вообще

Код: You are not allowed to view links. Register or Login
data: file TYPE string.
TYPES: begin of t_address,
          line(40) type c,
       end of t_address.

data:  lt_address TYPE STANDARD TABLE OF t_address,
       ls_address LIKE LINE OF lt_address.

ls_address = 'test 0'.
APPEND ls_address TO lt_address.
ls_address = 'test 1'.
APPEND ls_address TO lt_address.
ls_address = 'test 2'.
APPEND ls_address TO lt_address.
ls_address = 'example 0'.
APPEND ls_address TO lt_address.
ls_address = 'example 1'.
APPEND ls_address TO lt_address.
ls_address = 'example 2'.
APPEND ls_address TO lt_address.

file = 'Z:\' && sy-datum && sy-UZEIT && '.txt'.

DATA mess TYPE string.

OPEN DATASET file FOR OUTPUT
                  IN TEXT MODE
                  ENCODING DEFAULT
                  MESSAGE mess.
IF sy-subrc ne 0.
*  MESSAGE mess TYPE 'I'.
  mess = sy-subrc.
ENDIF.

LOOP at lt_address INTO ls_address.
* Transfer the Recored to application server
  TRANSFER ls_address TO file.

ENDLOOP.

CLOSE DATASET file.

WRITE: / mess.

OPEN DATASET file FOR INPUT IN TEXT MODE
                            ENCODING DEFAULT.
WHILE sy-subrc = 0.
  READ DATASET file INTO mess.
  WRITE / mess.
ENDWHILE.
CLOSE DATASET file.

и в результате на экран выходит вот что

test 0
test 1
test 2
example 0
example 1
example 2
« Последнее редактирование: Октябрь 28, 2013, 11:49:48 am от jacknk88 »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 685
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: создание файла в фоновом режиме
« Ответ #6 : Октябрь 28, 2013, 01:20:52 pm »
You are not allowed to view links. Register or Login
так значит при использовании ФМ GUI_DOWNLOAD  и OPEN DATASET разные полномочия проверяются...потому что с ФМ все работает в диалоговом решиме
Даже не знаю откуда начинать то... с того что при записи с локальной станции проверяются доступы локальной станции, а при записи из фона полномочия сервера приложений. В общем похоже вы не очень представляете как работает вот этот вот 3 в бывшем названии системы SAP R/3.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Reputation Power: 0
  • jacknk88 has no influence.
  • YearsYearsYearsYearsYearsYears
Re: создание файла в фоновом режиме
« Ответ #7 : Октябрь 28, 2013, 01:32:49 pm »
You are not allowed to view links. Register or Login
В общем похоже вы не очень представляете как работает вот этот вот 3 в бывшем названии системы SAP R/3.
это точно))....я ж всего годик батрачу с sap-ом))
видимо все таки проблема с полномочиями
спасибо!

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 685
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: создание файла в фоновом режиме
« Ответ #8 : Октябрь 28, 2013, 03:53:20 pm »
You are not allowed to view links. Register or Login
это точно))....я ж всего годик батрачу с sap-ом))
видимо все таки проблема с полномочиями
спасибо!
Ну смотри когда работа идет в фоне, то задача выполняется на сервере приложений и соответственно он должен иметь доступ к этому пути, начиная от имени диска Z: в твоем случае. Правда там может оказаться, что сервер приложение под юниксом, поэтому дисков с буквенными именами он не знает, там по факт удаленный каталог должен быть тем или иным способом примонтирован в дерево каталогов сервера приложений. В общем это с базисом надо решать проблему.