Текущее время: Ср, июн 25 2025, 23:39

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


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

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


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

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