Автор Тема: Проблема с разделением столбцов  (Прочитано 7067 раз)

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

Оффлайн Y_Y

  • Newbie
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Проблема с разделением столбцов
« : Октябрь 30, 2012, 09:10:51 am »
Загружаю файл с помощью GUI_UPLOAD:
 CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename        = p_file
      filetype        = 'ASC'
      "HAS_FIELD_SEPARATOR = 'X'
     codepage = '1504'
    TABLES
      data_tab        = gt_datatab  "ITBL_IN_RECORD[]
    EXCEPTIONS
      file_open_error = 1
      OTHERS          = 2.

В итоге строка выглядит так:
30#КЕМЕРОВО#1#ФИЛИАЛ N 11 АКБ МОСОБЛБАНК ОАО##043207757#30101810000000000757

Пытаюсь разделить:
      SPLIT gs_string AT space INTO gs_uploadtxt-fielda "(2)
                                    gs_uploadtxt-ort01 "(35)
                                    gs_uploadtxt-fieldc "(1)
                                    gs_uploadtxt-banka "(60)
                                    gs_uploadtxt-fielde "(1)
                                    gs_uploadtxt-bankl "(15)
                                    gs_uploadtxt-brnch. "(40).
Но разделяется некорректно.  Экспериментировала с HAS_FIELD_SEPARATOR: там было и '   ' , и ' '  , и 'X', в последних двух случаех вообще разделять переставало. пыталась вместо спейс вставить стринговую переменную - та же ситуация.
Что делать чтобы всё корректно отработало?

Оффлайн Y_Y

  • Newbie
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: Проблема с разделением столбцов
« Ответ #1 : Октябрь 30, 2012, 09:35:37 am »
п.с. он в данном случае разделяет по пробелу, а нужно чтобы по '#'
пыталась вместо space подставить и '#' и стринговую переменную со значением '#' - не разделяет

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Проблема с разделением столбцов
« Ответ #2 : Октябрь 30, 2012, 10:03:40 am »
You are not allowed to view links. Register or Login
п.с. он в данном случае разделяет по пробелу, а нужно чтобы по '#'
пыталась вместо space подставить и '#' и стринговую переменную со значением '#' - не разделяет
Ну это вообще-то не '#' это скорее всего или табуляция или еще что-то, смотря какой был выбран разделитель формата, а вообще вы в целом не правильно используете этот модуль для загрузки данных.

Оффлайн Y_Y

  • Newbie
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: Проблема с разделением столбцов
« Ответ #3 : Октябрь 30, 2012, 10:05:52 am »
а что именно неправильно?
и как мне указать разделение именно по табуляции?

Оффлайн Y_Y

  • Newbie
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: Проблема с разделением столбцов
« Ответ #4 : Октябрь 30, 2012, 10:09:46 am »
фмник говорит что формат должен быть таков:
(HAS_FIELD_SEPARATOR) TYPE  CHAR01 DEFAULT SPACE
но по сути никакие символы типа ; Z и т.д. не подставляются
что делать если как раз по пробелу то мне разделять и не нужно?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Проблема с разделением столбцов
« Ответ #5 : Октябрь 30, 2012, 10:20:38 am »
Типа такая есть внутренняя таблица

Код: You are not allowed to view links. Register or Login
DATA: BEGIN OF gt_matnr OCCURS 1,
  numpos LIKE mseg-zeile,
  matnr LIKE mseg-matnr,
  erfmg LIKE mseg-erfmg,
  exbwr LIKE mseg-exbwr,
END OF gt_matnr.
Файл с разделителем табуляция, будет тогда загружен так. Раскладка по полям тоже будет автоматически, само собой поля в файле должны быть в той же последовательности, что они описаны во внутренней таблице.
Код: You are not allowed to view links. Register or Login
  DATA: l_filename TYPE string,
        l_filelength1 LIKE sy-tabix.

  l_filename = p_file_m.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = l_filename
      filetype                = 'ASC'
      has_field_separator     = cl_abap_char_utilities=>horizontal_tab
      dat_mode                = 'X'
    IMPORTING
      filelength              = l_filelength1
    TABLES
      data_tab                = gt_matnr
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      OTHERS                  = 17.

Оффлайн Y_Y

  • Newbie
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: Проблема с разделением столбцов
« Ответ #6 : Октябрь 30, 2012, 10:51:58 am »
не работает, как в случаях со всеми другими подставленными в has_field_separator значениями:
в строке остается только значение первого столбца. всё
то есть если с разделителем по умолчанию ' ' или вообще без оного (закомменчен) строка выглядела так:

30#КЕМЕРОВО#1#ФИЛИАЛ N 11 АКБ МОСОБЛБАНК ОАО##043207757#30101810000000000757

сейчас она выглядит так:

30


Оффлайн Y_Y

  • Newbie
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: Проблема с разделением столбцов
« Ответ #7 : Октябрь 30, 2012, 04:47:34 pm »
В общем путём долгих мытаний вставили cl_abap_char_utilities=>horizontal_tab
в сплит и всё заработало :)

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Проблема с разделением столбцов
« Ответ #8 : Октябрь 30, 2012, 05:41:38 pm »
You are not allowed to view links. Register or Login
В общем путём долгих мытаний вставили cl_abap_char_utilities=>horizontal_tab
в сплит и всё заработало :)
А зачем? Если сразу можно принять в нужные поля?

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Проблема с разделением столбцов
« Ответ #9 : Октябрь 31, 2012, 02:51:24 am »
Системы под рукой пока нет, ибо в отпуске, поэтому, если ошибусь в названии, то главный подправит... Сейчас рекомендуют использовать методы класса CL_GUI_FRONTEND_SERVICES, т.е. указанная ф-ция GUI_UPLOAD там просто "обернута" методом. ;)

Оффлайн Y_Y

  • Newbie
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Re: Проблема с разделением столбцов
« Ответ #10 : Октябрь 31, 2012, 08:30:21 am »
You are not allowed to view links. Register or Login
А зачем? Если сразу можно принять в нужные поля?
Первый раз общаюсь с этой функцией, так и не сообразить сразу

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Проблема с разделением столбцов
« Ответ #11 : Октябрь 31, 2012, 08:40:39 am »
You are not allowed to view links. Register or Login
Первый раз общаюсь с этой функцией, так и не сообразить сразу
Ну чуть выше я привел пример как это сделать...