Текущее время: Чт, июл 24 2025, 06:39

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Признак (классификация)
СообщениеДобавлено: Ср, фев 24 2010, 16:23 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 10 2007, 07:30
Сообщения: 22
Добрый день. Не могу подобрать ФМ или группу ФМ для проверки введеного значения признака, проверка как синтаксиса, по маске, так и проверка на соответствие допустимым значениям. Результаты есть, но не всё устраивает (например CTCV_PREPARE_SYNTAX_CHECK и CTCV_VALUE_SYNTAX_CHECK)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Ср, фев 24 2010, 16:35 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 10 2007, 07:30
Сообщения: 22
Отменяется, всё нашел....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Чт, фев 25 2010, 05:39 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Corleone написал(а):
Отменяется, всё нашел....

Так поделитесь пж-ста :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Пт, окт 24 2014, 16:31 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 09 2004, 11:38
Сообщения: 127
Пол: Мужской
Подниму тему.

Кто чем проверяет соответствие введенного значения допустимым значениям признака?

Я использовал CLFC_IS_LEGAL_VALUE. Однако у него одна неприятная особенность: значение должно быть в текстовом формате на входе и при дальнейших манипуляциях в этом модуле в ряде случаев мы получаем некорректное преобразование. Например:

Проверяем значение 7.0000000000000007E-01. Допустимое значение в системе также 7.0000000000000007E-01
Внешнее представление этого значения на основе настроек признака: 0,700 %.

Подаем на вход этого модуля 0,700, получаем ошибку. Так как внутри, при использовании модуля CHAR_FLTP_CONVERSION при преобразовании 0,700 получаем 6.9999999999999996E-01. Что формально не равно допустимому 7.0000000000000007E-01.

Коллеги, есть идеи, как с этим жить? :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Пн, окт 27 2014, 05:13 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 180
Попробуйте такой ФМ (он используется в стандарте):
Code:
  CALL FUNCTION 'CTCV_SYNTAX_CHECK'
    EXPORTING
      attribut                        = ps_feature-atnam
*     BASEUNIT                        = ' '
      decimals                        = ps_feature-anzdz
*     DEC_PRESENTATION                = '.'
*     EXPONENT                        = ' '
*     EXPONENT_ART                    = '0'
      format                          = ps_feature-atfor
*     INTERVAL                        = ' '
*     LANGUAGE                        = SY-LANGU
      length                          = ps_feature-anzst
*     LOWERCASE                       = ' '
      mask                            = ps_feature-atsch
      mask_allowed                    = 'X'
*     NEGATIV                         = ' '
*     SCREEN_NAME                     = ' '
*     SINGLE_SELECTION                = ' '
      string                          = ps_feature-atwrt
*     VALUE_SEPERATOR                 = ';'
*     CLASSTYPE                       = ' '
*     T_SEPARATOR                     = ' '
*     ERR_NAME                        =
*   IMPORTING
*     STRING_IS_MASKED                =
    TABLES
      tstrg                           = lt_strg
    EXCEPTIONS
      currency_check                  = 1
      date_check                      = 2
      format_check                    = 3
      illegal_internal_baseunit       = 4
      interval_check                  = 5
      pattern_check                   = 6
      time_check                      = 7
      unit_check                      = 8
      no_valid_dimension              = 9
      interval_not_allowed            = 10
      presentation_not_possible       = 11
      OTHERS                          = 12.

Можно поставить точку останова при вводе признаков в стандарте и посмотреть какие параметры нужно передавать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Пн, окт 27 2014, 10:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 09 2004, 11:38
Сообщения: 127
Пол: Мужской
UKY написал(а):
Попробуйте такой ФМ (он используется в стандарте):
Code:
  CALL FUNCTION 'CTCV_SYNTAX_CHECK'

...


Спасибо!

Но проблема в том, что это только синтаксическая проверка. Он не проверяет относительно допустимых значений.

_________________
Труд сделал из обезьяны человека, из коня - транспорт... Тут как повезет...


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

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


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

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


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

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