Текущее время: Вс, авг 24 2025, 21:29

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Загрузка из плоских файлов
СообщениеДобавлено: Ср, ноя 22 2006, 14:42 
Специалист
Специалист

Зарегистрирован:
Вс, фев 26 2006, 14:33
Сообщения: 171
Всем привет!

Ситуация такая: надо загрузить данные из плоского файла (csv). Загрузка происходит с сервера приложений (сервер BW). При предварительном просмотре все нормально отображается, а при загрузке выдается ошибка "The value '2140711.00#' from field AMOUNT is not convertible into the DDIC data type CURR of the InfoObject in data record 1 . The field content could not be transferred into the communication structure format." Опытным путем выяснила, что последний символ # - это перевод/возврат каретки (000D), который ставится в конце строки вместе с символов новой строки (000А) при нажатии на Enter.
Вопрос: как решить эту проблему?

Причем хочется заметить, что сервер приложений стоит на Unix. При загрузке с виндовых клиент.раб.станций все проходит на ура.


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

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
АБАПом удалить эти символы в StartRoutine на Transfer Rules

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 22 2006, 18:14 
Специалист
Специалист

Зарегистрирован:
Вс, фев 26 2006, 14:33
Сообщения: 171
А можно поподробнее? :wink:
а лучше просто маленький примерчик подпрограммы....


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

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
Mugunhwa написал(а):
Всем привет!

Ситуация такая: надо загрузить данные из плоского файла (csv). Загрузка происходит с сервера приложений (сервер BW). При предварительном просмотре все нормально отображается, а при загрузке выдается ошибка "The value '2140711.00#' from field AMOUNT is not convertible into the DDIC data type CURR of the InfoObject in data record 1 . The field content could not be transferred into the communication structure format." Опытным путем выяснила, что последний символ # - это перевод/возврат каретки (000D), который ставится в конце строки вместе с символов новой строки (000А) при нажатии на Enter.
Вопрос: как решить эту проблему?

Причем хочется заметить, что сервер приложений стоит на Unix. При загрузке с виндовых клиент.раб.станций все проходит на ура.


то же самое, когда пользователи в поле ставят первым символом ! (воскл знак)...


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

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
Mugunhwa написал(а):
А можно поподробнее? :wink:
а лучше просто маленький примерчик подпрограммы....


В строке line находится символ возврата каретки

data :
* Это символ возврата каретки
gc_cr(1) type c value cl_abap_char_utilities=>cr_lf,

* Это правило преобразования
gc_rule(2) type c.

* Сформируем строку- преобразования,
* 1-й символ будет заменён на второй
* Первый символ - возврат каретки, второй - пробел
concatenate gc_cr space into gc_rule.

* Преобразуем строку,
* все символы возврата каретки будут заменены пробелами
translate line using gc_rule.

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка из плоских файлов
СообщениеДобавлено: Чт, ноя 23 2006, 07:17 
Специалист
Специалист

Зарегистрирован:
Вс, фев 26 2006, 14:33
Сообщения: 171
Vitaly V.V. написал(а):
то же самое, когда пользователи в поле ставят первым символом ! (воскл знак)...


мне повезло - с такими пользователями не сталкивалась :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 23 2006, 09:34 
Специалист
Специалист

Зарегистрирован:
Вс, фев 26 2006, 14:33
Сообщения: 171
to RSA1:

огромное спасибо!!!
получилось :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 23 2006, 10:51 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вс, июн 26 2005, 22:41
Сообщения: 1135
Откуда: Москва
Пол: Мужской
Исток проблемы по ходу в том, что файл вы создаете на Windows машине, а сервер у вас на unix, у них немного отличается формат перевода каретки, от этого и проблемы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 23 2006, 12:03 
Специалист
Специалист

Зарегистрирован:
Вс, фев 26 2006, 14:33
Сообщения: 171
Bkmz написал:
Исток проблемы по ходу в том, что файл вы создаете на Windows машине, а сервер у вас на unix, у них немного отличается формат перевода каретки, от этого и проблемы.

да, так и есть.


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

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Чтобы не пограммить можно поступить так:
1. при создании CSV НЕ ставить показатели последним полем.
2. ставить CSV-delimeter после последнего поля

Выполнение одного из этих двух правил не даст больше проявиться ошибке.

Для редактирования CSV не использовать Excel!
Лучше CSVed хоть он и тормозит.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 24 2006, 18:54 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
G написал:
Чтобы не пограммить можно поступить так:
1. при создании CSV НЕ ставить показатели последним полем.
2. ставить CSV-delimeter после последнего поля

Выполнение одного из этих двух правил не даст больше проявиться ошибке.

Для редактирования CSV не использовать Excel!
Лучше CSVed хоть он и тормозит.


Добрые пользователи могут и "таб" (код 09) ввести в поле... тогда все равно загрузка упадет...


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

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


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

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


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

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