Текущее время: Пт, июн 27 2025, 09:08

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка при активации запроса в инфо-провайдере
СообщениеДобавлено: Чт, дек 15 2011, 11:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
Добрый день, ситуация в следующем: при активации запроса в инфо-кубе запрос устанавливается в статус "ошибка" , в мониторе доходчиво написано, что -
@5C@ Значение "2579400081, ЦЗ, 110,77 " (HEX 0032003500370039003400300030003000380031002C002004) признака Z0XEXTEN7 содержит ошибку BRAIN 290 @35@ @3R@.
То есть в конце строки есть пробелы. При просмотре значения данного поля в PSA там выводится значение "2579400081, ЦЗ, 110,77#". Сначала задача показалась мне довольно тривиальной, что делаю я, для начала я модифицировал подпрограмму запуска для трансформации(Z0XEXTEN7 - поле, в которое приходит из исходной системы шлак) с текстом:

Code:
LOOP AT SOURCE_PACKAGE ASSIGNING <SOURCE_FIELDS>.
      CONDENSE <SOURCE_FIELDS>-Z0XEXTEN7.
      REPLACE ALL OCCURRENCES OF '#' IN <RESULT_FIELDS>-Z0XEXTEN7
      WITH ''.
    ENDLOOP.


Положительных результатов данное телодвижение не дало. Ошибка все еще воспроизводится.

Затем в самой трансформации в формуле по которой происходит присвоение исходного поля инфо-объекту составил формулу, с текстом:
REPLACE_ALL( '#', '', CONDENSE( EXT7 ) )

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при активации запроса в инфо-провайдере
СообщениеДобавлено: Чт, дек 15 2011, 12:44 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 16:14
Сообщения: 233
Пол: Мужской
Это может быть и не решетка совсем. Например пробел какой-нибудь хитрый #00A0.
Под отладчиком посмотрите это поле в hex, в сообщении оно выводится не полностью.

_________________
Роман Чуев


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при активации запроса в инфо-провайдере
СообщениеДобавлено: Чт, дек 15 2011, 17:12 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
Не большой специалист в 16-ой кодировке может подскажите... В отладчике получилось так:

В режиме просмотра текста:
2579400081, ЦЗ, 110,77#

Просмотр 16-го кода:

0032003500370039003400300030003000380031
002C002004260417002C0020003100310030002C
00370037000A0020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020
0020002000200020002000200020002000200020

Как этот символ можно отловить в трансформации?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при активации запроса в инфо-провайдере
СообщениеДобавлено: Чт, дек 15 2011, 18:48 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, дек 23 2008, 17:09
Сообщения: 315
Похоже, это перевод строки. Как отловить: http://www.sapboard.ru/forum/viewtopic.php?f=13&t=14616


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при активации запроса в инфо-провайдере
СообщениеДобавлено: Пт, дек 16 2011, 06:35 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, фев 09 2011, 07:19
Сообщения: 753
Откуда: Сибирь
Пол: Мужской
Пользовался как-то для удаления непечатаемых символов следующим:

Code:
* удаление непечатаемых символов из l_str

Translate l_str to upper case.

"# sign
IF STRLEN( l_str ) = 1.
   IF l_str(1) = '#'.
       l_str(1) = ' '.
   ENDIF.
ENDIF.

" ! sign
IF l_str(1) = '!'.
     l_str(1) = ' '.
ENDIF.

l_strlen = STRLEN( l_str ).
l_offset = 0.
DO l_strlen TIMES.
   IF l_str+l_offset(1) < ' '.
      l_str+l_offset(1) = ' '.
    ENDIF.

    ADD 1 TO l_offset.
ENDDO.


может не очень красиво, но у меня работает. Если кто скажет как сделать лучше, буду только рад :D

_________________
Ешьте рыбу, в ней фосфор.
__
Чат в Telegram по SAP BW: http://t.me/BW_SAP


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при активации запроса в инфо-провайдере  Тема решена
СообщениеДобавлено: Пт, дек 16 2011, 14:58 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
Спасибо за ответы коллеги, если кому-то интетерсно мой вопрос решился написанием в подпрограмме запуска в трансформации кода:

Code:
    LOOP AT SOURCE_PACKAGE ASSIGNING <SOURCE_FIELDS>.
      REPLACE ALL OCCURRENCES OF CL_ABAP_CHAR_UTILITIES=>CR_LF(1)   IN
      <SOURCE_FIELDS>-EXT7 WITH ''.
      REPLACE ALL OCCURRENCES OF CL_ABAP_CHAR_UTILITIES=>CR_LF+1(1) IN
      <SOURCE_FIELDS>-EXT7 WITH ''.
      REPLACE ALL OCCURRENCES OF CL_ABAP_CHAR_UTILITIES=>FORM_FEED(1) IN
      <SOURCE_FIELDS>-EXT7 WITH ''.
      REPLACE ALL OCCURRENCES OF CL_ABAP_CHAR_UTILITIES=>BACKSPACE(1) IN
      <SOURCE_FIELDS>-EXT7 WITH ''.
    ENDLOOP.



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

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


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

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


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

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