Текущее время: Ср, ноя 05 2025, 22:38

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


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

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


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

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