Текущее время: Пт, июн 20 2025, 18:50

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Неразрешённые символы в признаках
СообщениеДобавлено: Чт, мар 05 2009, 17:32 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Есть такая проблема. В одном из признаков, из R/3 системы подгружаются непечатаемые символы, они могут содержаться в строке CHAR, но в признаке содержаться не могут, при активации DSO возникает ошибка о том что символы с шеснадцатиричными значениями от HEX00 до HEX1F не разрешены в признаках, а моё значения содержит HEX23.
Вопрос, как отловить эту строку при загрузке? Никаких ошибок и exception в start routine и в update rule не возникает, как там отловить, не знаю. Ошибка происходит при уже акцивации. Ума не приложу куда вставить проверку на какой exception чтобы убрать из той строки этот символ.
Подскажите плиз если кто сталкивался.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Чт, мар 05 2009, 17:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Я просто в трансформации убивал такие символы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Чт, мар 05 2009, 17:47 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Lench написал:
Я просто в трансформации убивал такие символы


А как их отловить? Они неотображаемые, из COMM_STRUCTURE в активную таблицу DSO попадают без ошибок, но при акцивации потом ошибка.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Чт, мар 05 2009, 17:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Отловить по коду символа
Data ch type c.
ch = chr(1)
If <поле> co ch.
...
как то так

Можно вызвать исключение (они приведены в коментариях в трансформации по умолчанию), а можно заменить такие символы на пробел или вообще ниначто, т.е. убить


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Пт, мар 06 2009, 11:52 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 17 2006, 10:11
Сообщения: 52
Откуда: Москва
Пол: Мужской
Можно использовать регулярные выражения с заменой в трансформации или в правилах переноса. Допустим, чтобы убрать всё, что не является цифрой:

RESULT = TRAN_STRUCTURE-STCD3.
REPLACE ALL OCCURRENCES OF REGEX '\D' IN RESULT WITH space.
CONDENSE RESULT.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Пт, мар 06 2009, 12:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
А что если \W использовать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Пт, мар 06 2009, 12:40 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 17 2006, 10:11
Сообщения: 52
Откуда: Москва
Пол: Мужской
Ага, тогда уберётся, всё, что не является цифрой или символом или _. Думаю, что в общем случае, будет красиво:

REPLACE ALL OCCURRENCES OF REGEX '\W' IN RESULT WITH ''.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Пт, мар 06 2009, 14:37 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
ZShurik написал:
Ага, тогда уберётся, всё, что не является цифрой или символом или _. Думаю, что в общем случае, будет красиво:

REPLACE ALL OCCURRENCES OF REGEX '\W' IN RESULT WITH ''.


Не подходит, тогда пробелы тоже убираются, даже если '' заменить на ' ', почему-то. И ещё убираюся "-", а надо чтобы оставались, это строка с почтовым адресом и там могут быть всякие -, / ...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Пт, мар 06 2009, 15:31 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Есть еще какая-то маска [ [:cntrl:] ] - все управляющие символы
Но как это в коде написать и как оно работает непонятно


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неразрешённые символы в признаках
СообщениеДобавлено: Пт, мар 06 2009, 16:33 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Вроде как такой вариант должен сработать, сейчас будут тестировать в трансфер рулах.

Code:
DATA: regex TYPE REF TO cl_abap_regex,
      res   TYPE        match_result_tab,
      text, text_string  TYPE        string.

text_string = 'sample text 1-2 string'.

CREATE OBJECT regex
    EXPORTING pattern      = '[^[:word:] ]*[^[:graph:] ]'
              simple_regex = 'X'.


REPLACE ALL OCCURRENCES OF REGEX regex IN text_string WITH space.


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

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


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

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


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

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